首页 理论教育 交通信号灯控制器的设计优化方案

交通信号灯控制器的设计优化方案

时间:2023-06-25 理论教育 版权反馈
【摘要】:当有急救车到达时,两个方向上均亮起红灯,以便急救车通过,10s后,交通信号灯恢复中断前的状态。同时,送出信号控制相应的交通信号灯和调用相应的LED显示子程序。T0可工作于方式1,每50ms产生一次中断,由中断服务程序实现规定的延时,同时,送出信号控制相应的交通信号灯和调用相应的LED显示子程序。图7.2模拟交通信号灯控制电路原理图5.程序流程图模拟交通信号灯程序流程图如图7.3所示。

交通信号灯控制器的设计优化方案

1.设计目的

(1)掌握I/O接口电路的编程方法。

(2)掌握模拟交通信号灯控制的实现方法。

(3)掌握外部中断处理程序编程方法。

2.设计要求

(1)设计一个模拟的十字路口交通信号灯控制系统,东西、南北两方向交通信号灯的亮灭规律为:初始态是两个路口的红灯全亮;之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车;延时一段时间后,东西路口绿灯灭,黄灯开始闪烁;闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车;延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁;闪烁若干次后,再切换到东西路口方向,重复上述过程。

(2)当有急救车到达时,两个方向上均亮起红灯,以便急救车通过,10s后,交通信号灯恢复中断前的状态。

3.原理说明

东西、南北方向各采用3个LED,分别表示红灯、黄灯和绿灯。各LED的阳极通过限流电阻接到+5V的电源上,阴极接到输出I/O口上,因此若要使其点亮,则应使相应I/O口输出低电平。

程序设计要点如下。

1)延时程序的设计方法

交通信号灯的延时可用两种方法实现:软件延时和定时器延时。

软件延时可先编写一段延时1s的子程序,然后在主程序中反复调用,以实现不同的延时。同时,送出信号控制相应的交通信号灯和调用相应的LED显示子程序。

定时器延时可以通过单片机内部定时器T0产生中断来实现。T0可工作于方式1,每50ms产生一次中断,由中断服务程序实现规定的延时,同时,送出信号控制相应的交通信号灯和调用相应的LED显示子程序。

2)中断处理程序的设计

发生中断时两方向的红灯一起亮10s,然后返回中断前的状态。(www.xing528.com)

本实训中最主要的问题是如何保护中断前的状态,使中断程序执行完毕后能回到交通信号灯中断前的状态。要保护的寄存器,除了累加器ACC、标志寄存器PSW外,还要注意以下几点。

(1)主程序中的延时程序和中断处理程序中的延时程序不能混用。

(2)主程序中每执行一步经I/O口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行I/O口输出数据的操作,中断返回时如果没有恢复中断前I/O口锁存器的数据,则显示可能出错,不能返回中断前的状态。

例如,有如下操作:

程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的,而不是(0)语句中给出的0F0H,显示出错。将(1)(2)两句顺序颠倒一下则没有问题。

4.硬件电路原理图

模拟交通信号灯控制电路原理图如图7.2所示。

图7.2 模拟交通信号灯控制电路原理图

5.程序流程图

模拟交通信号灯程序流程图如图7.3所示。

图7.3 模拟交通信号灯程序流程图

(a)主程序;(b)中断子程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈