1、红灯-前20S不显示,只在最后5S开始倒计时显示。绿灯-前15S不显示,只在最后5S开始倒计时显示。黄灯-3S倒计时显示(若东西路为黄灯,南北路为红灯,那么南北绿的数码管也显示 3S)。5:交通应急事件处理:利用中断分别实现东西路-南北路的交通应急事件处理。6:延时程序的使用:用循环延时和定时器计时的方法。注:P1.0-北路绿灯,P1.1-北路黄灯,P1.2-北路红灯cP1.3-东路绿灯,P1.4-东路黄灯,P1.5-东路红灯。【交通灯流程图】开始延时20秒5秒倒计时结束其他灯不变南北路绿灯亮,红,黄灯灭东西路红灯亮,绿,黄灯灭南北路绿灯数码管开始倒计时 5秒南北路绿灯灭,黄灯亮且数码管开始倒
2、计时 3秒东西路红灯数码管开始倒计时 3秒3秒倒计时结束延时25秒东西路绿灯亮,黄灯,红灯灭南北路红灯亮,黄灯,绿灯灭东西路数码管开始倒计时 5秒东西路绿灯灭,黄灯亮且数码管开始倒计时 3秒南北路红灯一一数码管开始倒计时 3秒l=LIfc=ER 川程序如下:ORG 0000H;定时器0中断,实现交通应急事件外部中断1,实现交通应急事件LJMP LOOPORG 000BHLJMP WZDOORG 0013HLJMP WZD1ORG 0030HLOOP:MOV R3,#5MOV R4,#5MOV R2,#20MOV SP,#70HMOV IE,#85HMOVTMOD,#01H置T0为工作方式1TH
3、0,#3CH;置T0定时初值50msTL0,#0B0HCLRTF0SETBTR0启动定时器T0SETB P1.1 ;东-红灯亮,北-绿灯亮SETB P1.2CLR P1.0SETB P1.3SETB P1.4CLR P1.5ACALL DEL30SACALL Y ELLOW1 北-绿灯转黄灯,东-红灯亮ACALL DEL3S 延时后北-黄灯火SETB P1.0 ;东:红灯火,绿灯亮,北:黄灯火,红灯CLR P1.3CLR P1.2SETB P1.5ACALL DEL55S ; 北-红灯不变,东-绿灯转黄ACALL Y ELLOW2SJMP LOOPYELLOW1: ; 北-绿灯转黄灯,东-红灯
4、不变SETB P1.0CLR P1.1RETYELLOW2: 东-绿灯转黄灯,北-红灯不变SETB P1.1CLR P1.4WZD0:实现南北路交通应急事件(南北路保持畅通,东西路停止通行)JNB P3.2,WZD0RETIWZD1:实现东西路交通应急事件(东西路保持畅通,南北路停止通DEL30S:J红绿灯延时DEL25S:JNBTF0QEL25S查询50ms到否TFO恢复T0定时初值50msDJNZR2,DEL25S判断1s到否?未到继续状态R2,#20置50ms计数初值R4,DEL25S状态1维持25sDEL5S:5取数延时MOV R2,#6DEL5:MOV A,R2ACALLST取数MO
5、V P0,A实现数码管显示ACALL DEL1S每隔1S减1DJNZ R2,DEL5DEL3S:MOV R2,#4HDEL3:ACALL ST ;MOV P2,AMOV P0,A ;数码管显示DJNZ R2,DEL3DEL55S:ACALL DEL20SMOV R2,#6 ;倒计时 5SDEL55:MOV P2,A ;DJNZ R2QEL55DEL1S:1S 延时子程序MOV R5,#0BHST1:MOV R6,#0DAHST2:MOV R7,#0CFHDJNZ R7,$DJNZ R6,ST2DJNZ R5,ST1DEL20S:20S延时子程序MOV R5,#0BH;#0DCHST3:ST4:DJNZ R6,ST4DJNZ R5,ST3ST:MOV DPTR,#TABMOVC A,A+DPTRTAB:DB 0FFH,0FFH,0F9H,0A4H,0B0H,99H,92HEnd
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1