单片机流水灯设计报告.docx

上传人:b****5 文档编号:7924547 上传时间:2023-01-27 格式:DOCX 页数:8 大小:311.34KB
下载 相关 举报
单片机流水灯设计报告.docx_第1页
第1页 / 共8页
单片机流水灯设计报告.docx_第2页
第2页 / 共8页
单片机流水灯设计报告.docx_第3页
第3页 / 共8页
单片机流水灯设计报告.docx_第4页
第4页 / 共8页
单片机流水灯设计报告.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

单片机流水灯设计报告.docx

《单片机流水灯设计报告.docx》由会员分享,可在线阅读,更多相关《单片机流水灯设计报告.docx(8页珍藏版)》请在冰豆网上搜索。

单片机流水灯设计报告.docx

单片机流水灯设计报告

1.摘要:

近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。

而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

2.关键字:

单片机、流水灯

3.需求分析:

随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机AT89C51来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。

4.系统设计

1.硬件框图

2.总设计图

3.选用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的输出设为高电平时,此端口便能当成输入端口来使用。

4.说明

如图所示,S1为复位开关,S2、S3、S4分别为切换不同流水效果的开关,P2口控制LED灯D1~D7的显示,P0口作为LED的输出控制。

当按下S2后能实现D1和D7同时亮其他不亮,然后D2和D6亮,依此类推。

当按下复位S1,然后按下S2实现LED灯从D7到D1循环亮,按下S1然后按下S3实现LED从D1到D7的循环亮。

硬件详细设计

1.复位电路部分

如图所示,当要对晶片重置时,只要按此开关就能完成LED和开关的重置。

2.晶振部分

产生时钟信号

3.开关部分

S2、S3、S4分别控制3种LED显示效果,这里就不用详细说明了。

4.LED显示部分

限流电阻为470欧姆,经过的电流大概为10mA。

软件详细设计

1.软件框图

2.详细程序清单

#include//头文件

sbitk1=P0^0;//定义按键k1

sbitk2=P0^1;//定义按键k2

sbitk3=P0^2;//定义按键k3

codeunsignedcharnum[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//左移

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,//右移

0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e};//两边到中间

unsignedchark;//数组的移动指针

voiddelay10ms(void)//延时10ms

{

unsignedchari,j;

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

voiddelay02s(void)//延时0.2s

{

unsignedchari;

for(i=20;i>0;i--)

{delay10ms();

}

}

voidKEY(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;

}

}

}

voidmain(void)//主程序

{

unsignedchari;

while

(1)//死循环

{

if(P0!

=0xff)//判断是否有按键按下

{

KEY();//执行按键扫描程序

for(i=0;i<8;i++)//循环8次的出8个亮的状态

{

P2=num[i+k];//根据按下的键得到亮的状态

delay02s();//延时0.2s

}

P2=0xff;//全灭

}

}

}

5.Protuce仿真

Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。

本设计利用KeilμVision3,在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“OptionsForTarget”对话窗口中,选中“Output”选项中的“CreateHEXFile”,编译链接后就可以生成.HEX文件。

在ProteusISIS中,选中AT89C52并单击鼠标左键,对AT89C52进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。

对单片机设置完毕后就可以开始仿真了。

仿真结果如下:

当S2关闭

当S3关闭

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1