⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiaotong.txt

📁 一个智能交通灯的源代码
💻 TXT
字号:
1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。 
2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。油箱:chenjunlei1016@163.com
提问者: CJL寒夜飘雪 - 试用期 一级 最佳答案
系统晶振是 11.0592 MHz 
ORG 0000H 
LJMP START 
ORG 0003H ;INT 0 中断入口地址 
LJMP INT0 
ORG 0040H 
START: 
MOV SP,#60H 
SETB EX0 ;INT 0 中断有效 
SETB IT0 
SETB EA 
LCALL STATUS0 ;初始状态(都是红灯) 
CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 
LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 
LCALL STATUS3 ;南北红灯,东西绿灯 
LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 
LJMP CIRCLE 
INT0: 
PUSH PSW ;保护现场 
PUSH 2 
PUSH ACC 
MOV DPTR,#8300H 
MOV A,#0FH ;南北,东西都亮红灯 
MOVX @DPTR,A 
MOV R2,#100 ;延时10秒 
LCALL DELAY 
POP ACC ;恢复现场 
MOVX @DPTR,A 
POP 2 
POP PSW 
RETI 
STATUS0: ;南北红灯,东西红灯 
MOV DPTR,#8300H 
MOV A,#0FH 
MOVX @DPTR,A 
MOV R2,#10 ;延时1秒 
LCALL DELAY 
RET 
STATUS1: ;南北绿灯,东西红灯 
MOV DPTR,#8300H 
MOV A,#96H ;南北绿灯,东西红灯 
MOVX @DPTR,A 
MOV R2,#200 ;延时20秒 
LCALL DELAY 
RET 
STATUS2: ;南北绿灯闪转黄灯,东西红灯 
MOV DPTR,#8300H 
MOV R3,#03H ;绿灯闪3次 
FLASH: MOV A,#9FH 
MOVX @DPTR,A 
MOV R2,#03H 
LCALL DELAY 
MOV A,#96H 
MOVX @DPTR,A 
MOV R2,#03H 
LCALL DELAY 
DJNZ R3,FLASH 
MOV A,#06H ;南北黄灯,东西红灯 
MOVX @DPTR,A 
MOV R2,#10 ;延时1秒 
LCALL DELAY 
RET 
STATUS3: ;南北红灯,东西绿灯 
MOV DPTR,#8300H 
MOV A,#69H 
MOVX @DPTR,A 
MOV R2,#200 ;延时20秒 
LCALL DELAY 
RET 
STATUS4: ;南北红灯,东西绿灯闪转黄灯 
MOV DPTR,#8300H 
MOV R3,#03H ;绿灯闪3次 
FLASH1: MOV A,#6FH 
MOVX @DPTR,A 
MOV R2,#03H 
LCALL DELAY 
MOV A,#69H 
MOVX @DPTR,A 
MOV R2,#03H 
LCALL DELAY 
DJNZ R3,FLASH1 
MOV A,#09H ;南北红灯,东西黄灯 
MOVX @DPTR,A 
MOV R2,#10 ;延时1秒 
LCALL DELAY 
NOP 
RET 
DELAY: ;延时子程序 
PUSH 2 
PUSH 1 
PUSH 0 
DELAY1: MOV 1,#00H 
DELAY2: MOV 0,#0B2H 
DJNZ 0,$ 
DJNZ 1,DELAY2 ;延时 100 mS 
DJNZ 2,DELAY1 
POP 0 
POP 1 
POP 2 
RET 
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -