单片机流水灯设计报告.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
单片机流水灯设计报告 单片机的发展和应用 近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,应用领域也在不断扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用,成为现代电子系统中最重要的智能化的核心部件。 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMO8 位微处理器,为许多嵌入式控制系统提供了一种灵活性高且价廉的方案。 流水灯设计需求分析 随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机 AT89C51 来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。 流水灯系统设计 硬件设计: * XTAL1: 单芯片系统时钟的反向放大器输入端。 * XTAL2: 系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入 20PF 的小电容,可以使系统更稳定,避免噪音干扰而死机。 * RESET: 重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。 * P0: 端口 0 是一个 8 位宽的开路汲汲双向输出入端口,共有 8 个位,P0.0 表示 0,P0.1 表示 1,以此类推。 * P2: 端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可以推动 4 个 LS 的 TTL 负载,若将端口 2 的输出设为高电平时, 此端口便能当成输入端口来使用。 软件设计: * 软件框图 * 详细程序清单 #include<reg51.h> // 头文件 sbit k1=P0^0; // 定义按键 k1 sbit k2=P0^1; // 定义按键 k2 sbit k3=P0^2; // 定义按键 k3 code unsigned char num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,// 左移 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,// 右移 0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e};// 两边到中间 unsigned char k; // 数组的移动指针 void delay10ms(void) // 延时 10ms { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } void delay02s(void)// 延时 0.2s { unsigned char i; for(i=20;i>0;i--) { delay10ms(); } } void KEY(void) // 按键扫描程序 { if(k1==0) { delay10ms(); if(k1==0) { k=0; } } if(k2==0) { delay10ms(); if(k2==0) { k=8; } } if(k3==0) { delay10ms(); if(k3==0) { k=16; } } void main(void) // 主程序 { ... 流水灯设计的硬件详细设计 1. 复位电路部分 复位电路部分如图所示, 当要对晶片重置时,只要按此开关就能完成 LED 和开关的重置。 2. 晶振部分 晶振部分产生时钟信号 3. 开关部分 开关部分 S2、S3、S4 分别控制 3 种 LED 显示效果,这里就不用详细说明了。 4. LED 显示部分 限流电阻为 470 欧姆,经过的电流大概为 10mA。 本设计报告的优点是使用单片机 AT89C51 来实现流水灯的设计,使得制作简单、功能强大且经济实惠。
剩余10页未读,继续阅读
- 粉丝: 1
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助