目 录
第一部分 课程设计任务书 ............................................................................................ 1
一、课程设计题目 ................................................................................................... 1
二、课程设计时间 ................................................................................................... 1
三、课程设计提交方式 ........................................................................................... 1
四、设计要求 ........................................................................................................... 1
第二部分 课程设计报告 ................................................................................................ 2
一、单片机发展简史 ............................................................................................... 2
二、MCS-51单片机系统简介 ................................................................................ 2
三、设计思路 ........................................................................................................... 4
四、硬件设计电路 ................................................................................................... 4
五、软件设计流程 ................................................................................................... 5
六、程序源代码 ....................................................................................................... 6
七、结束语 ............................................................................................................... 9
八、参考文献 ........................................................................................................... 9
第一部分 课程设计任务书
一、课程设计题目
MCS-51单片机简易可调数字钟
二、课程设计时间
三天
三、课程设计提交方式
提交打印课程设计报告及电子稿。
四、设计要求
本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统主要实现功能如下:
(1)显示十字路口南北,东西俩个方向的红、黄、绿的指示状态,用俩组红、黄、绿三色灯作为这俩个方向的红、黄、绿灯。
(2)现按交通灯方式显示。先实现定时显示:如,东西向红灯亮15秒,南北向绿灯亮12秒,后黄灯闪烁3秒;然后南北向红灯亮15秒,东西向绿灯亮12秒,后闪烁3秒;依次循环次过程。
(3)现计数功能,能够通过按键对计数器的初值进行设定和实现计数器的加、减计数。
第二部分 课程设计报告
一、单片机发展概况
(1)第一阶段(1974——1976年)
在这个时期生产的单片机,制造工艺落后,集成度低,而且采用了双片结构。特点是片内需要外加一块3581芯片才能组成一台完整的单片机。
(2)第二阶段(1977——1978年)
这个时期生产的单片机虽然在单片芯片内集成CUP,并行口,定时器/计数器,RAM和ROM,等功能部件,但性能低,品种少,应用范围也不是很广。
(3)第三阶段(1979——1982年)
这一代单片机和前两代相比,不仅存储容量和寻址范围增大,而且中断源,并行I/O接口和定时器/计数器的个数都有了程度的增加,并且集成有全双工串行
通信接口。
(4)第四阶段(1983年至今)
这是16位单片机和8位高性能单片机并行发展的时代。16位单片机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的专用语言,如PL/M和C语言等。
近年来出现的32位单片机,是单片机的顶级产品,具有较高的运算速度。
二、MCS-51单片机系统简介
AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4KB的可反复擦除的只读程序存储器(PEROM)和128B随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合。
主要性能参数:
①与MCS-51产品指令系统完全兼容
②4K字节可重擦写FLASH闪速存储器
③1000次擦写周期
④全静态操作:0HZ-24MHZ
⑤三级加密程序存储器
⑥128 8字节内部RAM
⑦32个可编程I/O口线
⑧2个16位定时/计数器
⑨6个中断源
⑩可编程串行UART通道
图 3.111 AT89C51 引脚封装图
芯片引脚介绍:
(1)主电源引脚
◇ VCC:+5 V电源
◇ VSS:地线。
(2)时钟电路引脚
◇ XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(3)控制信号引脚
◇ RST/VPD:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片内RAM提供备用电源,一保持片内RAM中的数据不丢失。
◇ ALE/PROG:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
对于EPROM型单片机,在EPRAM编程期间,此引脚接收编程脉冲。
◇ PSEN:片外程序存储器读选通信号输出端。
◇ EA/VPP:访问程序存储控制信号。当EA信号为低电平时,对ROM的读操作限定在外
部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
对于EPROM型单片机,在EPRAM编程期间,此引脚接上加21V EPROM编程电源VPP。
(4)I/O引脚
P0.0 ~ P0.7: P0口8位双向口线。
P1.0 ~ P1.7 :P1口8位双向口线。
P2.0 ~ P2.7 :P2口8位双向口线。
P3.0 ~ P3.7 :P3口8位双向口线。
对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。
三、设计思想
将引脚p2口定义为数码管的输入端,通过其可以控制数码管的亮灭;将P3^1, P3^2 ,P3^3, P3^4用于控制数码管的位选端,将P1口的0、1、2端分别定义为东西向的红、黄、绿灯,将4、5、6端定义为南北向的红、黄、绿灯,定义好各组引脚的功能后再加上晶振电路,后经编译后下入单片机,在protues仿真环境中进行仿真,进行调试。运用keil编译程序后生成hex文件。
四、硬件电路设计
(1)总电路显示图
(2)振电路
五、软件设计框
六、程序源代码
/*南北:P1-0红,P1-1黄,P1-2绿,
东西:P1-4红,P1-5黄,P1-6绿, */
#include"REG51.H"
sbit P1_0 = 0x90;
sbit P1_1 = 0x91;
sbit P1_2 = 0x92;
sbit P1_3 = 0x93;
sbit P1_4 = 0x94;
sbit P1_5 = 0x95;
sbit P1_6 = 0x96;
sbit P1_7 = 0x97;
char point=10,time=39,out=0x01;
delay( )
{ unsigned tt ;
for(tt=0;tt<1000;tt++)
;
}
display(int zt)
{
char chr[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} ; //共阴极数码管0~9
char i,lie,a[4];
a[3]=zt%10;
zt=zt/10;
a[2]=zt%10;
zt=zt/10;
a[1]=zt%10;
zt=zt/10;
a[0]=zt%10;
lie=0x01;
for ( i=0;i<4;i++)
{
P3=~lie;
P2=chr[a[i]];
delay( );
lie= lie<<1 ;
}
}
void main (void)
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;ET0=1;
while (1)
{
if(time>24)
P1=0xeb; //P1--2=0,P1_4=0,南北绿东西红
else if(time>19)
{ //南北绿熄灭,南北黄闪烁
P1_2=1;
P1_1=~P1_1; }
//P1=0xed;
else if(time>4 )
P1=0xbe; //P1--0=0,P1_6=0,南北红东西绿
else
{
P1_6=1; //东西绿熄灭,东西黄闪烁
P1_5=~P1_5;
}
if(time>=25)
display((time-20)+(time-25)*100);
else if(time>=20)
display((time-20)*101);
else if(time>=5)
display(time*100+(time-5));
else
display(time*101);
}
}
void t0int ( ) interrupt 1
{
TH0=0x3c;
TL0=0xb0;
point--;
if(point==0)
{
point=10;
if(time==0)
time=39;
else
time--;
}
}
七、结束语
本次设计实现了一个交通灯的一些基本功能,完全由软件仿真实现的,系统中有关部分是用软件中相似功能模块替代的,主要有以下两个部分:
1)外加一晶振电路作为脉冲输入端,
2)交通灯的显示部分是由软件中自带的发光二极管进行模拟显示的,交通灯的计数端是通过六位的数码管进行显示。
通过做这次课程设计,我学到了很多东西,首先是Proteus及Keil C软件的运用,并对交通灯的相关原理有了更深入的理解,以前我只是对这些软件有个大概的了解,但通过这次实践,对这些软件有了更深刻的了解,不足之处:设定初值时不能进行控制。
八、参考文献
[1] 韩志军等.单片机应用系统设计.北京:机械工业出版社,2005
[2]蔡美琴等.MCS-51系列单片机系统极其应用.北京:高等教育出版社,2004
[3]怀林.单片机原理与接口技术.武汉:华中科技大学出版社,2001
[4]茂.8051单片机彻底研究实习篇.北京:人民邮电出版社,2004
[5]学海.单片机原理极其应用系统设计.北京:电子工业出版社,2005