1、单片机红绿灯程序完整版可编辑修改word版交通灯设计交通灯设计方案:1:实现东西路 南北路红绿灯的交通指示。2:东西路灯变化 红绿黄南北路灯变化 绿黄红3:红灯延时时间 25S绿灯延时时间 20S黄灯延时时间3S 4: 数码管显示:红灯 前 20S 不显示,只在最后 5S 开始倒计时显示。绿灯 前 15S 不显示,只在最后 5S 开始倒计时显示。黄灯 3S 倒计时显示(若东西路为黄灯,南北路为红灯,那么南北绿的数码管也显示 3S)。5:交通应急事件处理:利用中断分别实现东西路 南北路的交通应急事件处理。6:延时程序的使用:用循环延时和定时器计时的方法。注:P1.0-北路绿灯,P1.1-北路黄灯
2、,P1.2-北路红灯。P1.3- 东路绿灯,P1.4-东路黄灯,P1.5 东路红灯。开始【交通灯流程图】延时 20 秒5 秒倒计时结束南北路绿灯亮,红,黄灯灭东西路红灯亮,绿,黄灯灭南北路绿灯数码管开始倒计时 5 秒其他灯不变南北路绿灯灭,黄灯亮且数码管开始倒计时 3 秒东西路红灯数码管开始倒计时 3 秒3 秒倒计时结束东西路绿灯亮,黄灯,红灯灭南北路红灯亮,黄灯,绿灯灭延时 25 秒5 秒倒计时结束东西路数码管开始倒计时 5 秒其他灯不变东西路绿灯灭,黄灯亮且数码管开始倒计时 3 秒南北路红灯数码管开始倒计时 3 秒3 秒倒计时结束程序如下:ORG 0000H LJMP LOOPORG 00
3、0BH ;定时器 0 中断,实现交通应急事件LJMP WZD0ORG 0013H ;外部中断 1,实现交通应急事件LJMP WZD1ORG 0030H LOOP:MOV R3,#5 MOV R4,#5 MOV R2,#20MOV SP,#70H MOV IE,#85HMOVTMOD,#01H;置 T0 为工作方式 1MOVTH0,#3CH;置 T0 定时初值 50msMOVCLRTF0TL0,#0B0HSETB TR0 ;启动定时器 T0SETB P1.1 ;东-红灯亮,北-绿灯亮SETB P1.2CLR P1.0 SETB P1.3 SETB P1.4 CLR P1.5ACALL DEL30
4、SACALL YELLOW1 ;北-绿灯转黄灯,东-红灯亮ACALL DEL3S ;延时后北-黄灯灭SETB P1.0 ;东:红灯灭,绿灯亮,北:黄灯灭,红灯亮。SETB P1.1CLR P1.3CLR P1.2 SETB P1.4 SETB P1.5ACALL DEL55S ;北-红灯不变,东-绿灯转黄灯ACALL YELLOW2 ACALL DEL3S SJMP LOOPYELLOW1: ;北-绿灯转黄灯,东-红灯不变SETB P1.0 SETB P1.2 CLR P1.1 SETB P1.3 CLR P1.5 SETB P1.4 RETYELLOW2: ;东-绿灯转黄灯,北-红灯不变SE
5、TB P1.0 SETB P1.1 CLR P1.2 SETB P1.3 SETB P1.5 CLR P1.4RETWZD0: ;实现南北路交通应急事件CLR P1.0 ; (南北路保持畅通,东西路停止通行) SETB P1.1SETB P1.2 SETB P1.3 SETB P1.4 CLR P1.5JNB P3.2,WZD0 RETIWZD1: ;实现东西路交通应急事件CLR P1.3 ; (东西路保持畅通,南北路停止通行) CLR P1.2SETB P1.1 SETB P1.0 SETB P1.4 SETB P1.5JNB P3.3,WZD1 RETIDEL30S: ;红绿灯延时DEL2
6、5S:JNB TF0,DEL25S ;查询 50ms 到否CLR TF0MOV TH0,#3CH ;恢复 T0 定时初值 50msMOV TL0,#0B0HDJNZ R2,DEL25S ;判断 1s 到否?未到继续状态 1 MOV R2,#20 ;置 50ms 计数初值DJNZ R4,DEL25S ;状态 1 维持 25sDEL5S: ;取数延时MOV R2,#6DEL5:MOV A,R2ACALL ST ;取数MOV P0,A ;实现数码管显示ACALL DEL1S ;每隔 1S 减 1 DJNZ R2,DEL5RETDEL3S:MOV R2,#4HDEL3:MOV A,R2ACALL ST
7、 ;取数MOV P2,AMOV P0,A ;数码管显示ACALL DEL1S DJNZ R2,DEL3 RETDEL55S:ACALL DEL20SMOV R2,#6 ;倒计时 5SDEL55:ACALL DEL1S MOV A,R2ACALL STMOV P2,A ;数码管显示DJNZ R2,DEL55 RETDEL1S: ;1S 延时子程序MOV R5,#0BHST1:MOV R6,#0DAHST2:MOV R7,#0CFH DJNZ R7,$ DJNZ R6,ST2 DJNZ R5,ST1RETDEL20S: ;20S 延时子程序MOV R5,#0BH;#0DCHST3:MOV R6,#0DAHST4:MOV R7,#0CFH DJNZ R7,$ DJNZ R6,ST4 DJNZ R5,ST3RETST: ;取数MOV DPTR,#TAB MOVC A,A+DPTRRETTAB:DB 0FFH,0FFH,0F9H,0A4H,0B0H,99H,92HEnd
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1