交通灯实验要求:以 74LS273 或 p1 口作为输出口,控制 4 个双色 LED 灯(可发红,绿,黄光)模拟交通灯管理
根据交通灯的显示规律,相对的两个分别显示红、绿、黄
当外部中断到来时,四个 LED 全部显示红色,维持 1 秒钟后恢复中断前的状态
本实验是交通灯是控制实验,所以要先理解实际交通灯的变化规律
假设一个十字路口为东西南北走向
初始状态 0 为东西红灯,南北红灯
然后转状态 1南北绿灯通车,东西红灯
过一段时间转状态,南北绿灯闪几次转两黄灯,延时几秒,东西仍然红灯,再转状态 3,东西绿灯通车,南北红灯
过一段时间转状态 4
东西绿灯山几次转黄灯,延时几秒,南北仍然红灯,,最后循环至状态1
在前面内容的基础上增加允许急救车先通过的要求
有急救车到达时,两项交通信号为全红,以便让急救车通过
假定急救车通过路口时间为 10 秒,急救车通过后,交通恢复中断前状态
被实验已按键为终端申请,表示有急救车通过
实验原理: 可以通过对 P1 口赋值实现状态的改变,并采纳延时使状态的时间达到要求,闪耀通过多次赋值并调用短延时实现,初始状态的全红也采纳此方法,特别情况考虑用外部中断实现
实验硬件图:实验流程图:实验程序: ORG 0000H LJMP MAIN ORG 0003H LJMP WINT ORG 0030H MAIN: SETB EX0 SETB IT0 SETB EA MOV P1,#0FH LCALL LOOP LOOP:MOV P1,#96H LCALL DELAY MOV P1,#06H LCALL DELAY MOV P1,#69H LCALL DELAY MOV P1,#09H 开始给初始状态 即全红调用延时赋第二个状态开中断赋第一个状态中断调用延时调用延时实现闪耀赋第三个状态实现闪耀赋第四个状态调用延时调用延时赋全红 状态调用延时返回 LCALL D