欢迎来到天天文库
浏览记录
ID:43273325
大小:236.51 KB
页数:4页
时间:2019-09-29
《基于单片机的交通灯信号控制器设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机的交通灯信号控制器设计(含源程序和电路图)发布:2011-8-31
2、作者:——
3、来源:haoyugang
4、查看:345次
5、用户关注:设计一个基于单片机的交通灯信号控制器。已知东、西、南、北四个方向各有红黄绿色三个灯,在东西方向有两个数码管,在南北方向也有两个数码管。要求交通灯按照表1进行显示和定时切换,并要求在数码管上分别倒计时显示东西、南北方向各状态的剩余时间。表1交通灯的状态切换表南北方向东西方向序号状态序号状态1绿灯亮25秒,红、黄灯灭1红灯亮30秒,绿、黄灯灭2黄灯亮5秒,红、绿灯灭3红灯亮30秒,绿、黄灯灭2绿灯亮25秒,红、黄灯灭设计
6、一个基于单片机的交通灯信号控制器。已知东、西、南、北四个方向各有红黄绿色三个灯,在东西方向有两个数码管,在南北方向也有两个数码管。要求交通灯按照表1进行显示和定时切换,并要求在数码管上分别倒计时显示东西、南北方向各状态的剩余时间。表1交通灯的状态切换表南北方向 东西方向 序号 状态 序号 状态 1 绿灯亮25秒,红、黄灯灭 1 红灯亮30秒,绿、黄灯灭 2 黄灯亮5秒,红、绿灯灭 3 红灯亮30秒,绿、黄灯灭 2 绿灯亮25秒,红、黄灯灭 3黄灯亮25秒,红、绿灯灭 回到状态1 回到状态1 3.2.1模块1:系统设
7、计(1)任务分析与整体设计思路试题要求实现的功能主要包括计时功能、动态扫描以及状态的切换等几部分。计时功能:要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断的时间间隔,再利用一个变量记录定时器溢出的次数,达到定时1秒中的功能。当计时每到1秒钟后,东西、南北信号灯各状态的暂存剩余时间的变量减1。当暂存剩余时间的变量减到0时,切换到下一个状态,同时将下一个状态的初始的倒计时值装载到计时变量中。开始下一个状态,如此循环重复执行。动态扫描:需要使用4个数码管分别显示东西、南北的倒计时数字,将暂存各状态剩余时间的数字从变量中提取出“十位”和
8、“个位”,用动态扫描的方式在数码管中显示。整个程序依据定时器的溢出数来计时,每计时1S则相应状态的剩余时间减1,一直减到0时触发下一个状态的开始。 (2)单片机型号及所需外围器件型号,单片机硬件电路原理图图3-5交通灯硬件电路原理图选用MCS51系列AT89S51单片机作为微控制器,选择两个四联的共阴极数码管组成8位显示模块,由于AT89S51单片机驱动能力有限,采用两片74HC244实现总线的驱动,一个74HC244完成共阴极数码管位控线的控制和驱动,另一个74HC244完成数码管的7段码输出,在7段码输出口上各串联一个100欧姆的电阻对7段数码管限流
9、。用P3口的P3.0-P3.5完成发光二极管的控制,实现交通灯信号的显示,每个发光二极管串联500欧姆电阻起限流作用。硬件电路原理图如图3-5所示。(3)程序设计思路,单片机资源分配以及程序流程①单片机资源分配单片机P3口的P3.0-P3.1引脚用作输出,控制发光二极管的显示。在计时模块中,需要定义两个数组变量(init_sn[3],init_ew[3])来存储东西、南北两个方向在不同状态中倒计时的初始值,题目中每个方向的交通灯共有3种显示状态,因此数组元素个数为3。还需要定义两个变量(cnt_sn,cnt_ew)暂存东西、南北两个方向的倒计时剩余时间。
10、 在状态的切换中,为了明确当前处于哪种状态,东西、南北方向各设置一个状态变量(state_val_sn,state_val_ew),当倒计时的剩余时间到零时,状态变量增1,表示启动下一个状态,当该变量增到3时变为0,回到序号为1的状态。 ②程序设计思路在设计中,由于没有键盘功能,因此只涉及定时计数和动态扫描功能。主程序将变量初始化之后,设置单片机定时器和中断特殊功能寄存器的初始值,将定时器T1的工作方式设置为8位自动装载模式,定时器每隔250us产生一次溢出。在初始化变量与寄存器后,主程序进入一个循环结构,在循环中只做动态扫描的工作,根据东西、南北两向的
11、剩余时时间进行动态扫描显示。 计时以及状态的切换通过定时器的中断服务程序来实现,在中断服务程序中,每计时到一秒时,则各方向当前状态的剩余时间减1,一直减到0时触发下一个状态的开始,改变交通灯的指示。 ③程序流程
此文档下载收益归作者所有