交通信号灯控制系统+完整的C51编程[1]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交通信号灯控制系统
摘要:十字路口的红绿灯指挥着行人和各种车辆安全通行,实现红绿灯的自动指挥是城市交通管理自动化的重要课题。因为交通信号灯控制系统是要根据计时的情况实现对交通信号灯的控制和对数字显示器的控制,所以用微控制器MCU(Microcontroller Unit,又称单片机)实现交通信号控制系统的设计。又因为微控制器MCU应用系统抗干扰性差,故一般应该综合采用软、硬件抗干扰措施,才能获得好的抗干扰效果,以便交通信号的控制系统更好的实现。关键词:单片机芯片AT89C52;驱动器芯片74LS245;显示模块;RTX51Tiny内核
十字路口的红绿灯指挥着行人和各种车辆安全通行,实现红绿灯的自动指挥是城市交通管理自动化的重要课题。一般说来,十字路口处的两条相互交叉的道路是由主次之分的,其中一条道路平时车流量较大,称为主干道;而另一条道路平时车流量较小,称为次干道。十字路口交通信号灯控制系统应考虑十字路口主、次干道车流量不同的特点,并且能根据车流量发生变化的实际情况,可以很方便地更改主、次干道的通车时间。
1 方案的比较论证
1.1 以CPLD为核心的实现方案
运用EDA技术实现电子系统的设计特别是数字电子系统的设计,是现代电子技术发展的趋势。CPLD芯片内部的电路功能可以通过标准硬件描述语言进行设计,而且整个设计过程都是在通过计算机的帮助下完成的,从而使得以CPLD为核心的方案容易实现、容易修改、容易保存。因此,无论是在系统的工作可靠性方面,还是在系统的成本、系统的运行速度、系统结构的简易程度等方面,以CPLD为核心的实现方案具有一定的技术先进性,而且最后能得到让人比较满意的设计结果。....
1.2 以MCU为核心的实现方案
用微控制器MCU实现交通信号控制系统的设计,相对而言是最容易的,因为交通信号灯控制系统就是要根据计时的情况实现对交通信号灯的控制和对数字显示器的控制。而微控制器MCU最适宜于对物理对象的控制,通过微控制器软件编程,很容易实现对交通信号灯的控制和对LED数码管的显示控制。但是,微控制器MCU应用系统具有抗干扰性差的特点,而对交通信号灯控制系统工作可靠性的要求是很高的,因此,必须采取有效措施提高微控制器MCU应用系统的可靠性。一般应该综合采用软、硬件抗干扰措施,才能获得好的抗干扰效果。
上述两种实现方案各自的特点有所不同,采用的技术手段有较大区别。但是,因为设计任务时要求“为了便于制作,系统硬件要求尽可能的简单”,所以我采用以MCU为核心的实现方案。
2 系统硬件设计
2.1 交通信号灯控制电路
“交通信号灯控制电路”是本系统的核心,由它实现对红、绿、黄三色信号灯的控制。交通信号控制系统只包含“交通信号灯控制电路”和“红、黄、绿三色信号灯”两个部分。有一条主干道和一条次干道的城市道路交叉路口,其每一边(共4边)都设置红、绿、黄三色信号灯。红灯亮表示禁止通行;绿灯亮表示可以通行;在绿灯亮转变为红灯亮之前,先要
求黄灯亮几秒钟,以便让交叉路口停车线以外的车辆停止通行,而交叉路口停车线以内的车辆快速通过交叉路口。每一边的红、黄、绿三的信号灯亮的顺序是红→绿→黄→红→绿→黄……。主干道红灯亮时,对应次干道的绿灯亮、黄灯亮;主干道绿灯亮时,对应次干道黄灯亮的时间之和。同理,次感到红灯亮的时间,应等于主干道绿灯亮的时间与主干道黄灯亮的时间之和。设某城市道路十字交叉路口的交通信号灯控制方案如表1所示:
表1 交通信号灯控制方案
Tab.1 The control scheme of the traffic lights
由表1可知,十字交叉路口的主干道车辆通行时间是30s,次干道车辆通行时间是20s,交通信号灯由绿灯亮状态转换到红灯亮状态以前,黄灯亮的时间是5s。控制红、黄、绿三色信号灯的控制信号是开关信号,并且约定,当色灯亮时用逻辑0表示,色灯灭时用逻辑1表示。交通信号灯控制电路如图1所示:
由图1可知,这是一种简单的微控制器最小系统。为了以后能够在线升级更新系统用户应用程序,采用了带ISP下载接口的单片机AT89C52。AT89C52具有快速8051内核、8KB FLASH EEPROM、256字节IDATA RAM,完全符合运行嵌入式实时操作系统RTX51Tiny的硬件要求。图中包含了信号灯电路,用6个发光二极管模拟主干道和次干道的红、黄、绿三色信号灯。
间,为下一个正确的行为或操作提前做好思想准备,这样能够提高交叉路口的交通效率和交通安全性。自适应倒计时器硬件电路图如图2所示:
图2 自适应倒计时器电路图
Fig.2 The circuit digram of the implement which can adapt
to move backward and reckon by time by itself
由图2可知,自适应倒计时器以AT89C52为核心。微控制器芯片AT89C52的输入信号为红、黄、绿三色灯信号,由交通信号灯控制电路提供,它们是3个矩形脉冲信号,在不同的时间段内,这3个矩形脉冲信号的周期是不同的。微控制器芯片AT89C52根据接受到的红、黄、绿三色灯信号,在其内部进行一系列的处理后,由AT89C52的P0口和P2口输出信号给“倒计时时间数字显示部分”,并由二极管显示模块用数字的形式显示倒计时时间。“倒计时时间数字显示部分”由驱动器和发光二极管阵列显示模块组成,驱动器就是8位总线缓冲器/驱动器芯片74LS245,共有两片。发光二极管阵列显示模块由若干个双色发光二极管组成,每个双色发光二极管是一个像素点,能显示红、黄、绿3种颜色。
3 系统软件设计
3.1 交通信号灯控制电路的软件设计
交通信号灯控制电路的软件设计目的是结合图1所示的硬件电路,实现如表1所示的城市道路十字交叉路口交通信号灯控制方案,根据交通常识,可列出十字交叉路口交通信号灯的状态变换关系为:主绿支红30s →主黄支红5s →主红支绿20s →主红支黄5s →主绿支红30s 。
任务0:系统初始化任务。首先将6个信号灯全部熄灭,然后启动任务1,最后自我删除任务0,这样可以保证系统初始化任务0只在系统复位时运行一次。
任务1:按照时间原则控制信号灯任务。控制系统处于某一状态,然后调用操作系统函数os_wait(K_IVL,ticks)实现精确定时,使得系统在这一状态下停留特定的时间,再控