模拟交通灯及设计报告.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模拟交通灯及设计报告

模拟交通灯设计报告组员:孟宇伟,侯晨涛,孙玉鼎【摘要】当今世界正处于一个自动化时代,交通灯控制等很多行业的设备都需要计算机来控制。因此,一个好的交通灯控制系统能在道路拥挤、违章控制等方面起到很大作用。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机STC89C52为中心器件来设计交通灯控制器,实现了红、黄、绿灯燃亮功能;红黄绿灯循环点亮。实现模拟交通灯的功能。本系统实用性强、操作简单、扩展功能强。关键词:单片机(89C52)交通灯数码管LED整体方案设计基本要求在十字路的东西南北方向各设置一组红黄绿灯以及一个转向灯并设置一个两位数码管,编程实现十字路口红黄绿灯交替点亮与数码管倒计时显示。实现功能正常情况东西车道与南北车道交替通行,每次通行时间为20秒,东西方向红灯亮30秒同时其方位的数码管倒计时30秒,南北向绿灯亮20秒之后黄灯闪5秒同时其方位的数码管倒计时25秒,之后南北向转向灯亮5秒数码管倒计时5秒。东西向绿灯亮20秒之后黄灯闪5秒同时南北向红灯亮30秒。紧急情况通过按压“禁止通行键”可使东西南北全部红灯,即全都不通,以应付突发情况。按压“东西紧急键”,则东西方向绿灯,南北方向红灯;再按一次解除东西紧急通行状态。按压“南北紧急键”,则南北方向绿灯,东西方向红灯;再按一次后解除南北紧急通状态。按压“东西转向键”,则东西转向灯开;按压“南北转向键”,则南北转向灯开。交通灯显示状态东西方向(简称A方向)南北方向(简称B方向)状态说明红灯黄灯绿灯转向红灯黄灯绿灯转向灭灭亮灭亮灭灭灭A方向通行,B方向禁行灭闪烁灭灭亮灭灭灭A方向警告,B方向禁行亮灭灭亮亮灭灭灭A方向左转亮灭灭灭灭灭亮灭A方向禁行,B方向通行亮灭灭灭灭闪烁灭灭A方向禁行,B方向警告亮灭灭灭亮灭灭亮B方向左转总体设计方案框图方案原理采用单片机STC89C52的I/O口P1口通过锁存器控制共阴极数码管,,在十字路口的四组红、黄、绿交通灯及转向灯中,由单片机P0口管脚分别控制,由于交通灯为发光二极管且阳极通过限流电阻和电源正极连接,因此I/O口输出低电平时,与之相连的灯会亮,并通过数码管显示时间倒计时。紧急情况的工作模式转换由人工控制计时是利用单片机内部的一个T0定时器/计数器来实现,它的处理过程如下:首先设定单片机内部的一个定时器/计数器工作于定时方式,先对它的定时进行校准,校准为50ms,之后以20个定时溢出为标准为1s进行计时同时根据条件语句与循环语句对数码管的计时及LED的燃亮进行调控。本系统共用4个两位数码管,数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区。在本系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出所显示的信息的字段码,从P1口输出,同时在P2口将对应的位选码输出选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。硬件设计单片机最小系统89C52单片机是硬件电路最核心的部分,时钟电路晶振使用11.0592HZ电源电路设计电源使用自制+5V直流稳压电源数码管显示电路数码管采用两位共阴极数码管,东西南北各一个LED交通灯电路东西南北各三个红黄绿LED模拟交通灯,外加一个转向灯软件设计程序流程图程序清单#includereg52.hsbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit key4=P2^3;sbit key5=P2^4;unsigned char code table[]={0x3f,0x0c,0x76,0x5e,0x4d,0x5b,0x7b,0x0e,0x7f,0x5f};voiddelayms(unsigned int x);void display(unsigned char x,unsigned char y,unsigned char a,unsigned char b);voidkeyscan();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) P0=0xbb;else if(keycts==4)

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档