📄 h15.asm
字号:
Flash equ 0 ; LED状态
STOP equ 1
SR equ p1.0 ; 南北红灯
SY equ p1.1 ; 南北黄灯
SG equ P1.2 ; 南北绿灯
ER equ P1.3 ; 东西红灯
EY equ P1.4 ; 东西黄灯
EG equ p1.5 ; 东西绿灯
ljmp Start
org 3
setb STOP ; 南北, 东西均红灯
reti
Start:
mov SP, #70
mov TCON, #01h ; down edge IT0
mov IE, #81h ; enable EA, EX0
setb SR ; 南北, 东西均红灯
clr SY
clr SG
setb ER
clr EY
clr EG
clr STOP
Loop:
jb STOP, AllRed
setb SR ; 南北红灯, 东西绿灯
clr SY
clr SG
clr ER
clr EY
setb EG
mov a, #20
call Delay
jb STOP, AllRed
setb SR ; 南北红灯, 东西黄灯闪
clr SY
clr SG
clr ER
clr EY
clr EG
clr Flash
mov r7, #9
Loop1:
mov c, Flash
mov EY, c
mov a, #1
call Delay
cpl Flash
djnz r7, Loop1
jb STOP, AllRed
clr SR ; 南北绿灯, 东西红灯
clr SY
setb SG
setb ER
clr EY
clr EG
mov a, #20
call Delay
jb STOP, AllRed
clr SR ; 东西红灯, 南北黄灯闪
clr SY
clr SG
setb ER
clr EY
clr EG
clr Flash
mov r7, #9
Loop2:
mov c, Flash
mov SY, c
mov a, #1
call Delay
cpl Flash
djnz r7, Loop2
ljmp Loop
AllRed:
setb SR
clr SY
clr SG
setb ER
clr EY
clr EG
clr STOP
mov a, #10
call Delay
ljmp Loop
Delay: ; 延时子程序
mov r1, #80H
mov r0, #0
DelayLoop:
jb STOP, ExitDelay
djnz r0, DelayLoop
djnz r1, DelayLoop
djnz ACC, Delay
ExitDelay:
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -