当前位置:文档之家› 基于单片机AT89C51的交通灯控制器的设计

基于单片机AT89C51的交通灯控制器的设计

1 选题背景本设计是单片机控制的交通灯控制系统设计随着社会经济的发展,城市交通问题越来越引起人们的关注。

人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

传统的交通信号灯控制一般采用电子线路和继电器控制.结构复杂,可靠性低。

故障率高.因此研究计算机与自动控制技术,设计新型的交通灯控制系统,对缓解交通阻塞.提高畅通率具有十分现实的意义。

以下通过介绍一种基于8051的交通灯控制系统,东西、南北的通行时间可调。

能倒计时显示通行时间。

并有急车强行通过、交通异常状况判别及处理等功能,该系统具有设计周期短、可靠性高、维护方便、使用简单等优点。

2 方案论证电源提供方案为使模块稳定工作,须有可靠电源。

因此考虑了两种电源方案:方案一:采用独立的稳压电源。

此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。

方案二:采用单片机控制模块提供电源。

改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。

综上所述,我选择第二种方案。

显示界面方案该系统要求完成倒计时功能。

基于上述原因,我考虑了二种方案:方案一:采用数码管显示。

这种方案只显示有限的符号和数码字符,简单,方便。

方案二:采用点阵式LED 显示。

这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。

综上所述,我选择第一种方案输入方案:题目要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。

该方案的优点是:使用灵活可编程,并且有RAM,及计数器。

若用该方案,可提供较多I/O 口,但操作起来稍显复杂。

方案二:直接在I/O口线上接上按键开关。

由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二。

3 硬件电路设计综上所述本设计系统以AT89C51单片机为控制核心,连接成最小系统,由倒计时显示模块、交通灯显示模块、按键开关控制模块组成。

软件部分使用的是C 语言编程,由软件设置交通灯的初始时间,东西方向(主干道)通行60秒,南北方向(支干道)通行50秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的点亮与熄灭,采用中断方式实现各按键的功能。

3.1 设计原理及方法电路主要由AT89S51单片机、上拉电阻和两片7407、红、黄、绿交通灯各两个以及按钮开关组成,如图1所示。

在设计中采用6个发光二极管来模拟2个路口的黄红绿灯,通过单片机P1口实现对交通灯的控制主程序执行对P1口各使用位的控制,并调用相应的延时子程序实现。

有中断产生时,则转入相应的中断服务子程序,使相应方向切换成“绿灯”,另外方向切换成“红灯”。

系统各组成部分说明如下。

3.1.1 复位电路单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。

当复位电平持续两个机器周期以上时复位有效。

复位电平的持续时间必须大于单片机的两个机器周期。

具体数值可以由RC电路计算出时间常数。

复位电路由手动复位和上电复位两部分组成。

(1)上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。

上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。

RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。

(2)手动复位:手动复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。

单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。

这表明单片机复位期间不会有任何取指操作。

图3 单片机手动复位电路3.1.2 时钟电路单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。

单片机晶振的作用是为系统提供基本的时钟信号。

单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。

单片机的时钟电路设计有两种方式,一种是部时钟方式,一种是外部时钟方式。

在部时钟方式下单片机部的高增益、反相放大器通过XTAL1、XTAL2外接作为反馈元件的外部晶体管振荡器与电容组成的并联谐振回路构成一个稳定的自激振荡器,向部时钟电路提供振荡时钟。

振荡器的频率主要取决于晶体的振荡频率。

外部时钟方式是把外部已有的时钟信号引入到单片机。

此方式常用于多片单片机同时工作,以便于各单片机的同步。

一般要求外部信号高电平的持续时间大于20μs,且为频率低于12MHz的方波。

本设计采用部时钟方式,单片机系统常用的晶振频率有6MHz、11.0592MHz、12MHz、本系统采用11.0592MHz晶振,电容选22pF或30pF均可。

图4 单片机时钟电路3.1.3 EA脚的功能及接法AT89C51 单片机的EA/VPP(31 脚)是部和外部程序存储器的选择管脚。

当EA 保持高电平时,单片机访问部程序存储器;当EA 保持低电平时,则不管是否有部程序存储器,只访问外部存储器。

由于现在单片机部的flash容量都很大,因此基本都是从部的存储器读取程序,即不需要外接ROM来存储程序,因此,EA脚必须接高电平。

图5 单片机最小系统3.1.4 按键控制模块本系统设置了有4个键:K0键,K1键,K2键,K3键。

每个按键一端接地,另一端接上二极管。

低电平有效,当按键按下端口接地,单片机捕获到低电平,从而得到相应的输入信息。

本系统采用了二极管做开关,是为了防止有一按键被按下3根线同时被低,中断无效。

二极管在正向电压作用下电阻很小,处于导通状态,相当于一只接通的开关;在反向电压作用下,电阻很大,处于截止状态,如同一只断开的开关。

利用二极管的开关特性,可以组成各种逻辑电路。

程序开始运行先东西段通行、南北段禁止60s,后南北段通行、东西段禁止50s,依此循环。

系统分三种工作模式:南北通行模式、东西通行模式、返回模式、紧急情况模式,并且通过四个按键K0、K1、K2、K3实现之间的相互转化。

图8 按键控制模块3.1.3电源模块单片机工作时需要的+5V电压,所以在设计电源电路时,需要一个电子元件能提供+5V电压,由于78L05能够提供5V电压的三端稳压电源,78L05一脚为电源输入端,二脚为公共接地端,三脚即为我们所需要的+5V电压输出端.本系统采用典型的78L05提供电压的电路,即在78L05的1脚和公共接地端(即2脚)之间接入0.3μF的电容,在公共接地端和三脚+5V电压输出端之间接入0.1μF的电容.图9 电源模块4. 系统的软件设计4.1 系统相关参数计算3.1.1 T0的计数初值T0的计数初值:X=216-12*50*1000/12=15536=3CB0H3.1.2 倒计时显示的理论分析倒计时显示的理论分析:利用定时器中断,设TH0=TH1=(65536-50000)/256,即每0.05秒中断一次。

每到第20次中断即过了20*0.05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。

3.1.2 交通灯状态显示的理论分析状态灯显示的理论分析:黄灯闪烁同样可以利用定时器中断。

每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。

4.2 系统主程序设计本系统采用AT89C51单片机实现交通灯的控制,程序的编写用C语言来完成。

系统控制程序可以分为若干模块:初始化程序,按键开关控制程序,交通灯转换控制程序,LED数码管显示程序,按键消抖动程序,延时程序,中断服务子程序等。

系统相应的程序流程如图所示。

图10 程序流程图5 结束语通过这次毕业设计,使我受益匪浅。

使我在软硬件结合的综合运用能力上有了进一步的提升,对课堂上所学的单片机知识有了进一步的加深和巩固,在C 语言的掌握方面也向前迈了一大步,在老师和同学的帮助下,提高了个人分析解决实际问题的综合能力以及协同合作的能力,同时还锻炼了我查阅资料的能力、动手能力、发现问题、解决问题的能力。

面对电脑搜索资料,一点点,一块块的电路慢慢拼成完整的电路经过一次次的反复修改终于设计出了属于自己的程序和电路,虽然还有诸多不足之处,不过使自己真正的体会到了探索事物的奥秘的快乐,同时自己也更深入的了解到了单片机的巨大的潜力,虽然有的时候可能遇到了一些困难,但是我最终解决了,我也会感觉到成功给我带来的喜悦,我知道我在专业知识上的掌握还是远远不够的,我还要更加努力的去学习,提高自己了实践能力。

相关主题