1、模拟交通灯设计报告毕业设计模拟交通灯设计报告【摘要】当今世界正处于一个自动化时代,交通灯控制等很多行业的设备都需要计算机来控制。因此,一个好的交通灯控制系统能在道路拥挤、违章控制等方面起到很大作用。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机STC89C52为中心器件来设计交通灯控制器,实现了红、黄、绿灯燃亮功能;红黄绿灯循环点亮。实现模拟交通灯的功能。本系统实用性强、操作简单、扩展功能强。关键词:单片机(89C52) 交通灯 数码管 LED一、 整体方案设计1
2、. 基本要求在十字路的东西南北方向各设置一组红黄绿灯以及一个转向灯并设置一个两位数码管,编程实现十字路口红黄绿灯交替点亮与数码管倒计时显示。2. 实现功能1) 正常情况东西车道与南北车道交替通行,每次通行时间为20秒,东西方向红灯亮30秒同时其方位的数码管倒计时30秒,南北向绿灯亮20秒之后黄灯闪5秒同时其方位的数码管倒计时25秒,之后南北向转向灯亮5秒数码管倒计时5秒。东西向绿灯亮20秒之后黄灯闪5秒同时南北向红灯亮30秒。2) 紧急情况a) 通过按压“禁止通行键”可使东西南北全部红灯,即全都不通,以应付突发情况。b) 按压“东西紧急键”,则东西方向绿灯,南北方向红灯;再按一次解除东西紧急通
3、行状态。按压“南北紧急键”,则南北方向绿灯,东西方向红灯;再按一次后解除南北紧急通状态。c) 按压“东西转向键”,则东西转向灯开;按压“南北转向键”,则南北转向灯开。3) 交通灯显示状态东西方向(简称A方向)南北方向(简称B方向)状态说明红灯黄灯绿灯转向红灯黄灯绿灯转向灭灭亮灭亮灭灭灭A方向通行,B方向禁行灭闪烁灭灭亮灭灭灭A方向警告,B方向禁行亮灭灭亮亮灭灭灭A方向左转亮灭灭灭灭灭亮灭A方向禁行,B方向通行亮灭灭灭灭闪烁灭灭A方向禁行,B方向警告亮灭灭灭亮灭灭亮B方向左转3. 总体设计方案框图二、 方案原理采用单片机STC89C52的I/O口P1口通过锁存器控制共阴极数码管,在十字路口的四组
4、红、黄、绿交通灯及转向灯中,由单片机P0口管脚分别控制,由于交通灯为发光二极管且阳极通过限流电阻和电源正极连接,因此I/O口输出低电平时,与之相连的灯会亮,并通过数码管显示时间倒计时。紧急情况的工作模式转换由人工控制计时是利用单片机内部的一个T0定时器/计数器来实现,它的处理过程如下:首先设定单片机内部的一个定时器/计数器工作于定时方式,先对它的定时进行校准,校准为50ms,之后以20个定时溢出为标准为1s进行计时同时根据条件语句与循环语句对数码管的计时及LED的燃亮进行调控。 本系统共用4个两位数码管,数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区。在本系统中数码管显示采用
5、软件译码动态显示。在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出所显示的信息的字段码,从P1口输出,同时在P2口将对应的位选码输出选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。三、 硬件设计1. 单片机最小系统89C52单片机是硬件电路最核心的部分,时钟电路晶振使用11.0592HZ2. 电源电路设计电源使用自制+5V直流稳压电源3. 数码管显示电路数码管采用两位共阴极数码管,东西南北各一个4. LED交通灯电路东西南北各三个红黄绿LED模拟交通灯,外加一个转向灯四、 软件设计1. 程序流程图2. 程序清单#in
6、cludesbit key1=P20;sbit key2=P21;sbit key3=P22;sbit key4=P23;sbit key5=P24;unsigned char code table=0x3f,0x0c,0x76,0x5e,0x4d,0x5b,0x7b,0x0e,0x7f,0x5f;void delayms(unsigned int x);void display(unsigned char x,unsigned char y,unsigned char a,unsigned char b);void keyscan();unsigned char keycts,num1,nu
7、m11,num22,ge1,shi1,ge2,shi2;char num60=60;void main() TMOD=0x01; TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; while(1) if(TR0=0) if(keycts=1) P0=0xbe; else if(keycts=2) P0=0xee; else if(keycts=3) P0=0xbb; else if(keycts=4) P0=0x3e; else P0=0xb6; else if(num60-400) num11=num60-30
8、; num22=num60-35; P0=0xee; else if(num60-350) num11=num60-30; num22=num60-35; if(num10) num11=num60-30; num22=num60-30; P0=0x3e; else if(num60-100) num11=num60-5; num22=num60; P0=0xbb; else if(num60-50) num11=num60-5; num22=num60; if(num10;i-) for(j=110;j0;j-);void T0_time()interrupt 1 TH0=(65536-45
9、872)/256; TL0=(65536-45872)%256; num1+; if(num1=20) num1=0; num60-; if(num60=0) num60=60; void keyscan() if(key1=0) delayms(10); if(key1=0) while(!key1); TR0=TR0; keycts=1; if(key2=0) delayms(10); if(key2=0) while(!key2); TR0=TR0; keycts=2; if(key3=0) delayms(10); if(key3=0) while(!key3); TR0=TR0; k
10、eycts=3; if(key4=0) delayms(10); if(key4=0) while(!key4); TR0=TR0; keycts=4; if(key5=0) delayms(10); if(key5=0) while(!key5); TR0=TR0; keycts=5; 五、 总结我们对本次制作的作品还是比较满意的,经过两周的设计、分析和焊接,我们做出了所需要的东西,终于圆满地完成此次比赛的作品。虽然在这个过程中也遇到一些困难,但通过与同学的交流和自己查资料,我们对电子设计有了更深的体会。通过本次比赛我们感觉到自己对各种元器件的功能特性不是很熟悉,在用到所需元件时都要进行查阅
11、,在今后不仅要增加自己的理论学习,还要进一步提高自己的动手能力,全面地提高自己的电子设计的能力。在这次比赛中,我们要感谢芯空科协给我们提供的机会,在此期间,我们不仅学到了许多新的知识,而且也开阔了视野,提高了自己的动手能力。最后,我还要感谢帮助过我的学长,他们也为我们解决了不少我们不太明白的设计上的难题。六、 参考文献【1】 郭天祥 新概念51单片机C语言教程 电子工业出版社,2011【2】 杨欣,莱诺克斯,王玉凤,刘湘黔 电子设计从零开始(第二版) 清华大学出版社,2010【3】 谭浩强 C程序设计(第三版) 清华大学出版社,2005附件:模拟交通灯器件清单名称规格数量单片机STC89C521单片机插座40引脚1锁存器74HC5731锁存器插座20引脚1晶振11.0592MHZ1按键6数码管两位共阴极4发光二极管红、黄、绿16变压器220V 6V1杜邦线若干二极管1N40074电解电容1000F2瓷介电容0.1F3瓷介电容30pF2电阻10k2电阻4.7k4电阻1k1电阻3509排阻10k1焊锡丝若干
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1