目录
一、摘要..........................................1 二、设计任务与原理.................................1 三、系统电路组成...................................1
1、AT89c51单片机......................................1 2、AT89c51单片机芯片系统..............................1 3、RESPACK-7..........................................2 4、led模拟交通灯....................................2
四、设计流程图及步骤...............................3 五、总电路原理图...................................3 七、程序C语言代码.................................4 八、调试与运行.....................................5 九、设计总结.......................................5 十、设计资料及参考文献 ..............................6
一、摘要
在日常生活中,交通灯作为管理交通、调协车辆的一个便捷的手段,起着很大的作用。各种交通工具、行人都要根据交通灯的变化来决定是否前行,通行的时间的规定协调了它们的步伐,极大的减少了由于交通混乱引起的各种事故的发生。因此,一个完善的交通系统中,交通灯是必不可少的设备,一个完善的交通灯程序会更有效的管理当前道路中出现的实际情况,使车辆、行人的行进变得更顺畅、更和谐。
交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制带来更大的经济和社会利益,为创造美好的城市交通形象发挥更多作用。
二、设计任务与原理
1、设计任务
用LED模拟交通灯,东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。 2、设计原理
通过基于89C51单片机用proteus软件与keil软件调试,首先通过单片机的P0的前六个口的分别运用,并分别连接上七脚电阻排的端口,其次通过keil软件调试程序,首先程序初始化,确定交通灯的亮法,让东西向绿灯与南北红灯亮,东西向黄灯闪烁 绿灯关闭,东西向红灯南北向绿灯亮,南北向黄灯闪烁5次,然后依次重复。
三、系统电路组成
1、AT89c51单片机芯片
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2、AT89c51单片机芯片系统
(1)时钟电路:首先介绍一下单片机的晶振电路,即时钟电路。单片机的工作流程,就是在系统时钟的作用下,一条一条地执行存储器中的程序。单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。单片机系统常用的晶振频率有6MHz、11.0592MHz、12MHz、本系统采用12MHz晶振,电容选22pf。
1
(2)复位电路:系统刚上电时,单片机内部的程序还没有开始执行,需要一段准备时间,也就是复位时间。一个稳定的单片机系统必须设计复位电路。当程序跑飞或死机时,也需要进行系统复位。
(3)EA脚的功能及接法:单片机的EA脚控制程序从内部存储器还是从外部
存储器读取程序。由于现在单片机内部的flash容量都很大,因此基本都是从内部的存储器读取程序,即不需要外接ROM来存储程序,因此,EA脚必须接高电平。
原理图:
3、RESPACK-7:是一种七脚电阻排。其中一个引脚是公共端,其余六个引脚对公共引脚的电阻值是相等的。这种电阻排大都用来做集成电路的上拉电阻,占用面积小,使用方便,而且一致性好。
4、Led模拟交通灯:
2
四、1、设计流程图
由于方便交通灯的显示效果,均设绿灯亮5秒。
2、设计步骤:
(1)单片机P0的前六个端口分别连接上七脚电阻排的端口,并通过一条总线分别连接对应控制的交通灯。P0^1、P0^2、P0^3分别控制东西方向的红灯,黄灯、绿灯;P0^4、P0^5、P0^6分别控制南北方向的红灯,黄灯、绿灯。高电平灯亮,低电平灯灭。
(2)首先程序初始化,初始确定东西绿灯亮,南北红灯亮。
(3)为了方便交通灯的显示效果,绿灯均设定亮5秒,5秒后,东西向绿灯灭,黄灯闪烁5次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,5秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。
五、总电路原理图:
3
七、程序C语言代码:
#include
#define uchar unsigned char #define uint unsigned int sbit RED_A=P0^0; sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2; //东西向指示灯 sbit RED_B=P0^3; sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;//南北向指示灯
uchar Time_Count=0,Flash_Count=0,Operation_Type=1;//延时倍数,闪烁次数,操作类型
void T0_INT() interrupt 1 //定时器 0 中断函数 {
TMOD=0x01; IE=0x82; TR0=1;
TH0=(65535-50000)/256; TL0=(65535-50000)%6; switch(Operation_Type) {
case 1:
RED_A=0;YELLOW_A=0;GREEN_A=1; RED_B=1;YELLOW_B=0;GREEN_B=0;
if(++Time_Count!=100) return; //5s( 100*50ms)切换 Time_Count=0;
4