3.17 定时器控制交通指示灯 |
|
Proteus内置了交通指示灯组件,图3-21用定时器控制交通指示灯按一定时间间隔切换显示。为了能够快速观察切换闪烁及切换显示效果,源程序中缩短了切换时间间隔。
图3-21 定时器控制交通指示灯电路
本例交通指示灯所有切换过程由定时器中断函数控制,因为指示灯切换有4种不同类型操作,程序中引入变量Operation_Type表示当前操作类型,取值1~4对应的操作如下:
① 东西向绿灯与南北向红灯亮5s;
② 东西向绿灯灭,黄灯闪烁5次;
③ 东西向红灯与南北向绿灯亮5s;
④ 南北向绿灯灭,黄灯闪烁5次。
在第4项操作后回到第1项操作继续重复。
由于延时要求为5s,定时器所设置的50ms延时无法直接完成,因而程序中用Time_Count来实现延时值的加倍,其中1,3的操作用Time_Count将延时加长100倍,形成5s延时;而2,4操作则复杂一些,因为它们不仅需要加长延时,还需要控制闪烁,除了仍用Time_Count加长延时外,还用Flash_Count来控制闪烁次数。
① 调试本例后修改代码,使其实现完整的交通指示灯仿真效果。
② 改用数码管设计交通指示灯。