《模拟交通灯设计报告》由会员分享,可在线阅读,更多相关《模拟交通灯设计报告(18页珍藏版)》请在金锄头文库上搜索。
1、1模拟交通灯设计报告组员:孟宇伟,侯晨涛,孙玉鼎2【摘要】当今世界正处于一个自动化时代,交通灯控制等很多行业的设备都需要计算机来控制。因此,一个好的交通灯控制系统能在道路拥挤、违章控制等方面起到很大作用。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机STC89C52为中心器件来设计交通灯控制器,实现了红、黄、绿灯燃亮功能;红黄绿灯循环点亮。实现模拟交通灯的功能。本系统实用性强、操作简单、扩展功能强。关键词:单片机(89C52) 交通灯 数码管 LED一、 整体方案
2、设计1. 基本要求在十字路的东西南北方向各设置一组红黄绿灯以及一个转向灯并设置一个两位数码管,编程实现十字路口红黄绿灯交替点亮与数码管倒计时显示。2. 实现功能1) 正常情况东西车道与南北车道交替通行,每次通行时间为20秒,东西方向红灯亮30秒同时其方位的数码管倒计时30秒,南北向绿灯亮20秒之后黄灯闪5秒同时其方位的数码管倒计时25秒,之后南北向转向灯亮5秒数码管倒计时5秒。东西向绿灯亮20秒之后黄灯闪5秒同时南北向红灯亮30秒。2) 紧急情况a) 通过按压“禁止通行键”可使东西南北全部红灯,即全都不通,以应付突发情况。b) 按压“东西紧急键 ”,则东西方向绿灯,南北方向红灯;再按一次解除东
3、西紧急通行状态。按压“ 南北紧急键” ,则南北方向绿灯,东西方向红灯;再按一次后解除南北紧急通状态。c) 按压“东西转向键” ,则东西转向灯开;按压“南北转向键” ,则南北转向灯开。33) 交通灯显示状态东西方向(简称A方向) 南北方向(简称B方向)红灯 黄灯 绿灯 转向 红灯 黄灯 绿灯 转向状态说明灭 灭 亮 灭 亮 灭 灭 灭 A方向通行,B方向禁行灭 闪烁 灭 灭 亮 灭 灭 灭 A方向警告,B方向禁行亮 灭 灭 亮 亮 灭 灭 灭 A方向左转亮 灭 灭 灭 灭 灭 亮 灭 A方向禁行,B方向通行亮 灭 灭 灭 灭 闪烁 灭 灭 A方向禁行,B方向警告亮 灭 灭 灭 亮 灭 灭 亮 B
4、方向左转3. 总体设计方案框图二、 方案原理采用单片机 STC89C52 的 I/O 口 P1 口通过锁存器控制共阴极数码管, ,在十字路口的四组红、黄、绿交通灯及转向灯中,由单片机 P0 口管脚分别控制,由于交通灯为发光二极管且阳极通过限流电阻和电源正极连接,因此 I/O 口输出低电平时,与之相连的灯会亮,并通过数码管显示时间倒计时。紧急情况的工作模式转换由人工控制5v 直流稳压电源独立键盘控制基于STC89C52 的单片机最小系统两位共阴极数码管LED 模拟交通灯4计时是利用单片机内部的一个 T0 定时器/ 计数器来实现,它的处理过程如下:首先设定单片机内部的一个定时器/计数器工作于定时方
5、式,先对它的定时进行校准,校准为50ms,之后以 20 个定时溢出为标准为 1s 进行计时同时根据条件语句与循环语句对数码管的计时及 LED 的燃亮进行调控。 本系统共用4个两位数码管,数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区。在本系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出所显示的信息的字段码,从P1口输出,同时在P2口将对应的位选码输出选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。三、 硬件设计1. 单片机最小系统89C52单片机是硬件电路最核心
6、的部分,时钟电路晶振使用11.0592HZ52. 电源电路设计电源使用自制+5V直流稳压电源3. 数码管显示电路数码管采用两位共阴极数码管,东西南北各一个4. LED交通灯电路东西南北各三个红黄绿LED模拟交通灯,外加一个转向灯6四、 软件设计1. 程序流程图主程序开始设置中断工作方式、触发方式、初始化是否有中断运行过程执行中断YN中断结束,退出中断,返回7NYYNYYNNY运行过程SN:绿灯(20) ,EW:红灯(30)Num60 是否到 10SN:黄灯亮, EW:红灯Num60 是否到 5SN:黄灯灭,EW:红灯,转向亮(5)Num60 是否到 0秒NEW:绿灯(20),SN:红灯(30)
7、Num60 是否到 40EW:黄灯亮(5) ,SN:红灯Num60 是否到 35EW:黄灯灭,EW:红灯,EW 转向亮(5 )Num60 是否到30s 秒N数码管显示缓冲区 Y8Y数码管显示程序获取当前通行剩余时间送 h、lE/S/W/N 状态送 P1 口位选码送 P3 口调用 Delay 延时四位显示完?返回主程序T0 中断 定时计数初值50ms 计数(num) 加 1判断 1S(num=20?)到否Num=0Num60-恢复现场中断返回92. 程序清单#includesbit key1=P20;sbit key2=P21;sbit key3=P22;sbit key4=P23;sbit k
8、ey5=P24;unsigned char code table=0x3f,0x0c,0x76,0x5e,0x4d,0x5b,0x7b,0x0e,0x7f,0x5f;void delayms(unsigned int x);获取 P2 口信号Key1=0 Key2=0 Key5=0 Key4=0 Key3=0 关闭/开始计数器关闭/开始计数 关闭/开始计数 关闭/开始计数 关闭/开始计数Keycts=1 Keycts=2 Keycts=3 Keycts=4 Keycts=5红灯全亮 南北红东西绿南北绿东西红红灯全亮东西转向红灯全亮南北转向按键10void display(unsigned ch
9、ar x,unsigned char y,unsigned char a,unsigned char b);void keyscan();unsigned char keycts,num1,num11,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)
10、P0=0xbb;else if(keycts=4)P0=0x3e;11elseP0=0xb6;elseif(num60-400)num11=num60-30;num22=num60-35;P0=0xee;else if(num60-350)num11=num60-30;num22=num60-35;if(num10)num11=num60-30;num22=num60-30;12P0=0x3e;else if(num60-100)num11=num60-5;num22=num60;P0=0xbb;else if(num60-50)num11=num60-5;num22=num60;if(num
11、10;i-)for(j=110;j0;j-);void T0_time()interrupt 1TH0=(65536-45872)/256;TL0=(65536-45872)%256;num1+;if(num1=20)num1=0;num60-;if(num60=0)num60=60;void keyscan()if(key1=0)15delayms(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
12、(10);if(key3=0)16while(!key3);TR0=TR0;keycts=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;17五、 总结我们对本次制作的作品还是比较满意的,经过两周的设计、分析和焊接,我们做出了所需要的东西,终于圆满地完成此次比赛的作品。虽然在这个过程中也遇到一些困难,但通过与同学的交流和自己查资料,我们对电子设计有了更深的体会。通过本次比赛我们感觉到自己对各种
13、元器件的功能特性不是很熟悉,在用到所需元件时都要进行查阅,在今后不仅要增加自己的理论学习,还要进一步提高自己的动手能力,全面地提高自己的电子设计的能力。在这次比赛中,我们要感谢芯空科协给我们提供的机会,在此期间,我们不仅学到了许多新的知识,而且也开阔了视野,提高了自己的动手能力。最后,我还要感谢帮助过我的学长,他们也为我们解决了不少我们不太明白的设计上的难题。六、 参考文献【1】 郭天祥 新概念51单片机C语言教程 电子工业出版社,2011【2】 杨欣,莱诺克斯,王玉凤,刘湘黔 电子设计从零开始(第二版) 清华大学出版社,2010【3】 谭浩强 C程序设计(第三版) 清华大学出版社,2005附件:模拟交通灯器件清单名称 规格 数量单片机 STC89C52 1单片机插座 40引脚 1锁存器 74HC573 118锁存器插座 20引脚 1晶振 11.0592MHZ 1按键 6数码管 两位共阴极 4发光二极管 红、黄、绿 16变压器 220V 6V 1杜邦线 若干二极管 1N4007 4电解电容 1000F 2瓷介电容 0.1F 3瓷介电容 30pF 2电阻 10k 2电阻 4.7k 4电阻 1k 1电阻 350 9排阻 10k 1焊锡丝 若干