单片机控制的交通灯控制系统设计(7)

发布时间:2021-06-08

单片机控制的十字路口交通灯控制系统设计

图06 键盘开关电路

单片机控制的十字路口交通灯控制系统设计

3 软件设计

3.1 系统流程图

单片机控制的十字路口交通灯控制系统设计

3.2 系统软件设计

本次单片机课程设计软件部分利用C语言编程,采用模块化程序设计。程序部分由主程序、定时器程序、T0/T1中断服务程序、键盘扫描程序、交通灯点亮程序、LED数码管扫描显示程序和延时程序构成。 3.2.1 LED的编程

本次交通灯设计采用两位一体的共阴极数码管来显示相应的时间。数码管为七段数码管,由8个发光二极管构成,通过不同的组合可用来显示数字0-9,字符A-F、H、L、P、R、U、Y、符号“-”及小数点“.”。本设计只需要显示数字0-9,来表示相应的时间。

共阴极数码管的8个发光二极管的阴极连接在一起接位选端。两个两位一体的共阴极数码管共有4个位选端,分别接在 P2^O-P2^3,低电平有效。数码管各个阳极管脚接各段的驱动电路输出端,既P0口。P0^0接a,P0^1接b, P0^6接g,P0^7接dp,高电平有效。

本设计采用逐位扫描的方式实现相应时间的动态显示。先将P2^1置低电平,P2^0、P2^2、P2^3置高电平,来选中南北方向数码管的个位,此时P0口的数据接传送给它显示。经延时一段时间,将P2^1置低电位选中南北方向数码管的十位,此时P0口的数据接传送给它显示。再用同样的方法依次驱动东西方向数码管。通过不断改变P0口、P2口的输出,用循环扫描的方式,即可实现LED的动态显示。

LED动态显示的流程图如图08:

单片机控制的十字路口交通灯控制系统设计

3.2.2交通灯模块的编写设计

本次设计的交通灯演示模块由单片机的P1口作信号输出端来控制12个交通灯的亮灭。P1^1-P1^6依次连接南北的红灯、绿灯、黄灯,东西的红灯、绿灯,黄灯。所以4种状态依次为0x6A,0x66,0x5C,0x3C。当交通灯的剩余时间为零时,改变P1口的输出,进而改变交通灯的点亮状态。交通灯依次循环上面的4个状态,就可以实现指挥交通的作用。 3.2.3 定时器程序

本次设计用定时计数器T1,TMOD是定时计算器的工作方式控制寄存器,通过对该寄存器的操作可以改变T1的工作方式。T1有4种工作方式,由TMOD寄存器中间的M1、M0这两位来决定。本次设计的定时计数器工作在工作方式1,M1、M0设定为01。定时计算器采用加1计数的方式,当接收到一个驱动事件时计数器加1。工作方式1的内部计数器宽度为16位,由TH1的8位和TL1的8位组成。当TL1溢出时将向TH1进位,当TH1溢出后会产生相应的溢出中断。

驱动事件之间的时间间隔即为定时计数器的定时宽度。在定时的工作方式下,定时宽度是单片机的机械周期,也是外部时钟频率的1/12。本次设计的外部时钟频率为12MHz。可知,接收106个驱动事件的时间为1s。

定是1s的流程图如图09所示:

单片机控制的交通灯控制系统设计(7).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219