资源描述
成绩
课程论文
题 目: 基于51单片机LED流水灯设计
课程名称:
学生姓名:
学生学号:
系 别:
专 业:
年 级:
任课老师:
电气信息工程学院制
1月
基于51单片机LED流水灯设计
1 单片机AT89C51芯片介绍
MCS-51兼容4K字节,可编程闪烁存放器,寿命:1000写/擦循环,数据保留时间:。全静态工作:0Hz—24Hz,三级程序存放器锁定。128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中止源可编程串行通道,低功耗闲置和掉电模式,片内震荡器和时钟电路。
图1 AT89C51芯片
1.1电源引脚
Vcc(40脚):经典值+5V。
Vss(20脚):接低电平。
1.2外部晶振
XTAL1、XTAL2分别和晶振两端相连接。
1.3输入输出口引脚
P0口:I/O双向口。作输入口时,应先软件置“ 1”. P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流方法驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存放器时,它是时分多路转换地址(低8位)/数据总线,在访问期间将激活内部上拉电阻。
1.4控制引脚
RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51控制总线。 RST(9脚):复位信号输入端(高电平有效)。 ALE/-PROG(30脚):地址锁存信号输出端.第一功效:编程脉冲输入。-PSEN(29脚):外部程序存放器读选通信号。-EA/Vpp(31脚):外部程序存放器使能端。第二功效:编程电压输入端(+21V)。
2硬件电路
2.1晶振电路
单片机晶振作用是为系统提供基础时钟信号。通常一个系统共用一个晶振,便于各部分保持同时。有些通讯系统基频和射频使用不一样晶振,而经过电子调整频率方法保持同时。也就是说.晶振是给单片机提供工作信号脉冲。这个脉冲就是单片机工作速度。比如 这里选择是12MHZ晶振. 假如一个单片机选择了12MHZ晶振,它时钟周期是1/12us,它一个机器周期是12×(1/12)us,也就是1us。晶振和单片机XTAL0和XTAL1引脚组成振荡电路中会产生偕波,这个波对电路影响不大,但会降低电路时钟振荡器稳定性。为了提升电路稳定性,在晶振两引脚处接入两个10pf-50pf瓷片电容接地来削减偕波对电路稳定性影响。晶振电路中两个电容取值全部是相同,或说相差不大,假如相差太大,轻易造成谐振不平衡,轻易造成停振或干脆不起振。这里我们选择30pf电容。复位电路:复位电路原理是单片机RST引脚接收到2US以上电平信号,只要确保电容充放电时间大于2US,即可实现复位。复位电路由电容串联电阻组成,结合"电容电压不能突变"性质,能够知道,当系统一上电,RST脚将会出现高电平,而且,这个高电平连续时间由电路R、C值来决定。在这个电路中,这里选择10K电阻和1uf电容。
2.2排阻作用
所谓排阻就是若干个参数完全相同电阻,它们一个引脚全部连到一起,作为公共引脚。其它引脚正常引出。所以假如一个排阻是由n个电阻组成,那么它就有n+1只引脚,通常来说,最左边那个是公共引脚。它在排阻上通常见一个色点标出来。排阻通常应用在数字电路上,比如:作为某个并行口上拉或下拉电阻用。使用排阻比用若干只固定电阻更方便。
2.3 LED发光二极管
是一个能够将电能转化为可见光固态半导体器件,它能够直接把电转化为光。LED心脏是一个半导体晶片,晶片一端附在一个支架上,一端是负极,另一端连接电源正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边关键是电子。但这两种半导体连接起来时候,它们之间就形成一个P-N结。当电流经过导线作用于这个晶片时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子形式发出能量,这就是LED灯发光原理。而光波长也就是光颜色,是由形成P-N结材料决定。
单片机AT89C51
瓷片片电容CAP-22pf
晶振CRYSTAL11.0592MHz
解电容CAP-ELEC
电阻RES
排阻RESPACLK-8
发光二极管LED-GREEN
发光二极管LED-YELLOW
发光二极管LED-RED
发光二极管LED-BLUE
发光二极管LED-BIBY
发光二极管LED-BIGY
发光二极管LED-BIRG
发光二极管LED-BIRY
按钮BUTTO
表1 元器件表
2.4电路图
图2 电路仿真图
3软件设计
3.1软件(Proteus+Keil uV4)
在PROTUES绘制好原理图后,再在keil uV2中输入程序代码而且进行编译。然后就能够调入已编译好目标代码文件:*.HEX,利用这两个软件进行联合仿真。PROTUES不仅可将很多单片机实例功效形象化,也可将很多单片机实例运行过程形象化。前者可在相当程度上得到实物演示试验效果,后者则是实物演示试验难以达成效果。它元器件、连接线路等却和传统单片机试验硬件高度对应。因为PROTUES提供了试验室无法相比大量元器件库,提供了修改电路设计灵活性、提供了试验室在数量、质量上难以相比虚拟仪器、仪表,所以也提供了培养学生实践精神、发明精神平台。它含有设计灵活,结果、过程统一特点。可使设计时间大为缩短、耗资大为降低,也可降低工程制造风险。相信在单片 开发应用中PROTUES也能茯得愈来愈广泛应用。
3.2步骤图
P1,P3端口置为FFH
开始
是否按下K1?
LED灯左移
结束
是否按下K2?
LED灯右移
图3 LED流水灯步骤图
4仿真结果
4.1仿真结果
右移 左移
图4 仿真结果图
当K1键按下时实现右移即从下往上移动,当K2键按下时实现左移即从上往下移动。
5参考文件
[1] 康光华主编. 电子技术基础[M]. 高等教育出版社,
[2] 陈海宴主编. 51单片机原理及应用基Keil C和Proteu[M] . 北京航空航天大学出版社,
[3] 林立主编. 单片机原理及其应用--基于Proteus和keil C[M]. 电子工业出版社,
[4] 陈忠平主编. 基于proteus 51系列单片机设计和仿真[M]. 电子工业出版社,
[5] 何应浚. 51单片机C语言编程一学就会[M]. 机械工业出版社,
[6] 陈志旺主编.51单片机应用实例详解[M].机械工业出版社,
附录
程序设计
#include<reg52.h>
#include<intrins.h>
unsigned int a,d;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
void delay();
bit flag1=0;
bit flag2=0;
bit flag3=0;
bit flag4=0;
void main()
{
d=0xfe;
while(1)
{
if(key1==0)
{
flag1=1;
flag2=0;
}
if(flag1==1)
{
P0=d;
delay();
d=_cror_(d,1);
}
if(key2==0)
{
flag2=1 ;
flag1=0 ;
}
if(flag2==1)
{
P0=d;
delay();
d=_crol_(d,1);
}
}
}
void delay(unsigned int c)
{
for(c=8000;c>0;c--);
}
展开阅读全文