单片机的流水灯设计
单片机的流水灯设计
学 院: 武汉职业技术学院 专 业: 指 导 老 师: 姓 名: 班 级: 学 号:
2014年 6 月 6
日
摘要:当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 This age is a new technology emerge in endlessly era, in the electronic field especially automation intelligent control field, the traditional schism components or digital logic circuit, is composed of control system with unprecedented speed was replaced by microcontroller intelligent control system. SCM has small, strong function, low cost, etc, it can be said that wide application, intelligent control and automatic control core is the microcontroller. 关键词:LED 单片机 控制系统 流水灯
目录
1.前言
1.1 设计概述 ………………………………………………………………(1) 1.2 设计主要功能 …………………………………………………………(2) 2. 系统设计 2.1硬件组成
2.1.1 80C51单片计算机的组成原理…………………………………………2.1.2组成框图及内部总体结构……………………………………………(3) 3. 软件编程
控制程序 ……………………………………………………………() 4. Proteus仿真 5、课程设计体会 6、 参考文献 1、前言
学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个毕业课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软
件组成的单个单片机。其具体硬件组成如图1所示。
图1 流水灯硬件原理图
从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2、 系统设计 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。 3、软件详细设计 1. 软件框图
2.详细程序清单
#include // 头文件
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) //主程序
{
unsigned char i;
while(1)//死循环
{
if(P0!=0xff)//判断是否有按键按下
{
KEY();//执行按键扫描程序
for(i=0;i
{
P2=num[i+k];//根据按下的键得到亮的状态
delay02s();//延时0.2s
}
P2=0xff;//全灭
}
}
}
4、 Proteus仿真
Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil μVision3, 在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C52并单击鼠标左键,对AT89C52进行设置,设置单片机时钟频
率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。
仿真结果如下:当S2关闭
当S3关闭
当上述程序之一编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到AT89C51单片机中,最后连接好电路通电,我们就看到LED1~LED8的“流水”效果了。本文所给程序实现的功能比较简单,旨在抛砖引玉,用户可以自己在此基础上扩展更复杂的流水灯控制,比如键盘控制流水花样、控制流水灯显示数字或图案等等。
5、课程设计体会
由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位师长、同行提出宝贵意见。
通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西
6、参考文献:
[1]徐煜明,韩雁.单片机原理及接口技术[M].北京:电子工业出版社,2005.1
[2]万光毅,严义,邢春香.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2006.4
[3]例说51单片机(C语言版) 人民邮电出版社 张义和等 编著
[4]单片机原理及接口技术 清华大学出版社 北京交通大学出版社 梅丽凤等
[5]基于Proteus的51系列单片机设计与仿真 电子工业出版社 侯玉宝等编著
[6]51单片机应用从零开始 清华大学社 杨欣 王玉凤 刘湘黔 编著
[7]51单片机应用系统开发典型实例 中国电力出版社 戴佳等编著
[8]51单片机应用实例详解 清华大学出版社 杨欣 王玉凤 刘湘黔 编著