文档详情

LED模拟交通灯.doc

博****1
实名认证
店铺
DOC
146.50KB
约8页
文档ID:397552856
LED模拟交通灯.doc_第1页
1/8

目录一、摘要..........................................1二、设计任务与原理.................................1三、系统电路组成...................................11、AT89c51单片机......................................12、AT89c51单片机芯片系统..............................13、RESPACK-7..........................................24、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。

2) 复位电路:系统刚上电时,单片机内部的程序还没有开始执行,需要一段准备时间,也就是复位时间一个稳定的单片机系统必须设计复位电路当程序跑飞或死机时,也需要进行系统复位3) EA脚的功能及接法:单片机的EA脚控制程序从内部存储器还是从外部存储器读取程序由于现在单片机内部的flash容量都很大,因此基本都是从内部的存储器读取程序,即不需要外接ROM来存储程序,因此,EA脚必须接高电平原理图:3、RESPACK-7:是一种七脚电阻排其中一个引脚是公共端,其余六个引脚对公共引脚的电阻值是相等的这种电阻排大都用来做集成电路的上拉电阻,占用面积小,使用方便,而且一致性好4、Led模拟交通灯:四、1、设计流程图由于方便交通灯的显示效果,均设绿灯亮5秒2、设计步骤:(1)单片机P0的前六个端口分别连接上七脚电阻排的端口,并通过一条总线分别连接对应控制的交通灯P0^1、P0^2、P0^3分别控制东西方向的红灯,黄灯、绿灯;P0^4、P0^5、P0^6分别控制南北方向的红灯,黄灯、绿灯高电平灯亮,低电平灯灭2)首先程序初始化,初始确定东西绿灯亮,南北红灯亮3)为了方便交通灯的显示效果,绿灯均设定亮5秒,5秒后,东西向绿灯灭,黄灯闪烁5次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,5秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

五、总电路原理图:七、程序C语言代码:#include#define uchar unsigned char#define uint unsigned intsbit 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)%256;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;Operation_Type=2;break;case 2: if(++Time_Count!=10) return;Time_Count=0;YELLOW_A=~YELLOW_A;GREEN_A=0;//东西向黄灯开始闪烁,绿灯关闭if(++Flash_Count!=10) return; //黄灯闪烁5次Flash_Count=0;Operation_Type=3;break;case 3: RED_A=1;YELLOW_A=0;GREEN_A=0;RED_B=0;YELLOW_B=0;GREEN_B=1;//东西向红灯与南北向绿灯亮 5sif(++Time_Count!=100) return; //5s( 100*50ms)Time_Count=0;Operation_Type=4;break;case 4: if(++Time_Count!=10) return;Time_Count=0;YELLOW_B=~YELLOW_B;GREEN_A=0;//南北向黄灯开始闪烁,绿灯关闭if(++Flash_Count!=10) return; //黄灯闪烁5次Flash_Count=0;Operation_Type=1;break;}}//主程序void main(){TMOD=0x01; //T0 方式 1IE=0x82;TR0=1;while(1);}八、调试与运行按照总原理图开始接线,在完成电路原理图以及编写程序后,开始用proteus软件开始仿真。

整体运行后,电路显示结果与目标设想的一致,因此led模拟交通灯设计任务取得成功九、设计总结通过一个星期的交通灯课程设计,我对单片机相关知识有了更深的了解,特别对protues软件画电路图及仿真的过程,我几乎是从零开始学习并使用的这次设计过程中,遇到了很多棘手的问题,很多东西,动起手来束手无策,大多都只得先通过查阅资料或者参考别人做类似课题,才能自己动手设计画图,编程调试过程中还错误不少,就这个程序吧,我写了改,改了写,花了很长时间还有就是protues软件仿真原来及整个过程,虽然并不太难,但是我是花了挺多时间才真正弄明白的这次的课程设计让我明白,在以后的学习中,应更注重知识的应用,更注重实质的掌握,自己也开始对单片机产生了浓厚的兴趣十、设计资料及参考文献 1、 张毅刚.单片机原理及应用-C51编程+Proteus仿真.高等教育出版社,2012.11(2015.5重印)2、 郭天祥.新概念51单片机C语言教.电子工业出版社,2009.13、 阎石.数字电子技术基础教程. 清华大学出版社,2007.8。

下载提示
相似文档
正为您匹配相似的精品文档