宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计
2.3 其它硬件模块介绍及连接 2.3.1 倒计时显示模块
系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间。7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符。本设计采用共阴数码管,需要接上470欧上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。
图6 数码管显示模块
7
宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计
2.3.2 交通灯显示模块
本系统利用单片机的P1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管。发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。 发光二极管的反向击穿电压约5伏。它的正向伏安特性曲线
很陡,使用时必须串联限流电阻以控制通过管子的电流。
图7 交通灯模块
8
宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计
2.3.3 按键控制模块
本系统设置了有4个键:K0键,K1键,K2键,K3键。每个按键一端接地,另一端接上二极管。 低电平有效,当按键按下端口接地,单片机捕获到低电平,从而得到相应的输入信息。 本系统采用了二极管做开关,是为了防止有一按键被按下3根线同时被低,中断无效。二极管在正向电压作用下电阻很小,处于导通状态,相当于一只接通的开关;在反向电压作用下,电阻很大,处于截止状态,如同一只断开的开关。利用二极管的开关特性,可以组成各种逻辑电路。
程序开始运行先东西段通行、南北段禁止60s,后南北段通行、东西段禁止50s,依此循环。 系统分三种工作模式:南北通行模式、东西通行模式、返回模式、紧急情况模式,并且通过四个按键K0、K1、K2、K3实现之间的相互转化。
图8 按键控制模块
9
宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计
2.3.4 电源模块
单片机工作时需要的+5V电压,所以在设计电源电路时,需要一个电子元件能提供+5V电压,由于78L05能够提供5V电压的三端稳压电源,78L05一脚为电源输入端,二脚为公共接地端,三脚即为我们所需要的+5V电压输出端.本系统采用典型的78L05提供电压的电路,即在78L05的1脚和公共接地端(即2脚)之间接入0.3μF的电容,在公共接地端和三脚+5V电压输出端之间接入0.1μF的电容.
图9 电源模块
3. 系统的软件设计
3.1 系统相关参数计算 3.1.1 T0的计数初值
T0的计数初值:X=216-12*50*1000/12=15536=3CB0H 3.1.2 倒计时显示的理论分析
倒计时显示的理论分析:利用定时器中断,设TH0=TH1=(65536-50000)/256,即每0.05秒中断一次。每到第20次中断即过了20*0.05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。
10
宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计
3.1.2 交通灯状态显示的理论分析
状态灯显示的理论分析:黄灯闪烁同样可以利用定时器中断。每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。
3.2 系统主程序设计
本系统采用AT89C51单片机实现交通灯的控制,程序的编写用C语言来完成。系统控制程序可以分为若干模块:初始化程序,按键开关控制程序,交通灯转换控制程序,LED数码管显示程序,按键消抖动程序,延时程序,中断服务子程序等。系统相应的程序流程如图所示。
图10 程序流程图
11