📄 jiaotongdeng.asm
字号:
ORG 0000H;晶振取12MHZ
AJMP MAIN
ORG 000BH
AJMP CLOCK;T0中断,用于定时50ms
MAIN:MOV TMOD,#01H ;T0选方式1
MOV 40H,#20 ;T0中断次数,50ms*20=1s
MOV 41H,#7 ;设置各种组合的延迟秒数
MOV 42H,#3
MOV 43H,#5
CLR F0 ;前进/后退标志
CLR A
MOV P1,A
MOV R0,#41H
MOV R1,#3
SETB EA
SETB ET0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB P1.2 ;先显示黄/黄3秒
SETB P1.3
SETB TR0
SJMP $
WAIT:RETI
CLOCK:MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ 40H,WAIT
MOV 40H,#20
DJNZ R1,WAIT
MOV A,@R0
CJNE A,#7,YY1 ;若不为7,则转YY1
RG:CLR F0 ;显示红/绿7秒
CLR A
MOV P1,A
SETB P1.0
SETB P1.4
MOV A,@R0
MOV R1,A
INC R0
RETI
YY1:CJNE A,#3,GR ;若不为3,则转GR。否则显示黄/黄3秒
CLR A
MOV P1,A
SETB P1.2
SETB P1.3
JB F0,YY2 ;若F0为1,则转YY2
MOV A,@R0
MOV R1,A
INC R0
RETI
YY2:MOV A,@R0 ;R0后退
MOV R1,A
DEC R0
RETI
GR:CLR A ;显示绿/红5秒,设置F0为1,R0后退
MOV P1,A
SETB P1.1
SETB P1.5
SETB F0
MOV A,@R0
MOV R1,A
DEC R0
RETI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -