单片机控制的交通灯控制系统设计(8)
发布时间:2021-06-08
发布时间:2021-06-08
单片机控制的十字路口交通灯控制系统设计
3.2.4 键盘程序
为了实现设置通行时间、紧急情况处理、有车放行等功能,本次设计中有键盘电路。通行时间设置由外部中断0实现,紧急情况由外部中断1处理,有车放行是用普通的键盘程序实现的。
按键实际是一种常用的按钮,按键未按下时,键的两个触点处于断开状态,按键按下时,两个触点闭合。按键是利用机械触点来实现键的闭合和释放,由于弹性作用的影响,机械触点在闭合及断开瞬间均有抖动过程,从而使键输入也出现抖动。
抖动时间一般为5—10ms。本次设计采用软件的办法消抖。在第一次检测到有键按下时不动作,延时10ms,再次检测按键的状态,如果仍保持闭合状态,则确定真的有键按下。当按键释放后,转入按键的处理程序
延时程序如下:
/*延时t毫秒*/ void delay(uchar t) {
uchar i; /*定义无符号字符常量*/ for(t;t>0;t--) /*执行t次循环*/ {
for(i=2000;i>0;i--) /*由于时钟脉冲是12MHz,执行2000次循环的时间为1ms*/ { } }
}
3.2.4.1 通行时间设置程序
本次设计通过外部中断0设置各个干道的通行时间。
外部中断0的请求信号由P3^2引脚输入,采用低电平有效的方式响应中断,即IT0=1。响应中断0期间,CPU禁止响应其他中断,按键K0,K1起调整时间的作用。采用加1的方式,每按一下K0,主干道通行时间加1,每按一下K1,支干道通行时间加1。通行时间可以直接在数码管上显示出来。按一下K3,可以使系统退出中断,回到主程序断点处,从下一个状态开始执行新设置的通行时间。CPU再开放总中断。
由于本次设计使用两位一体的共阴极数码管显示时间,故设置各个干道的通行时间的范围为0—100s。考虑道路通车的实际情况,时间太短无法通过交通路
上一篇:医疗器械行业2010年投资分析