📄 jiaotong.asm
字号:
;===========================================
;这是一个十字路口交通等控制程序,
;红、绿灯亮的时间是50秒,黄灯闪烁的时间是10秒
;============================================
ORG 0
START: MOV R7,#10 ;黄灯闪烁10次
MOV A,#0
MOV P1,A
MOV P0,A ;熄灭所有的灯
LP: SETB P0.0 ;南北红灯亮
SETB P0.1
SETB P1.2 ;东西绿灯亮
SETB P1.3
LCALL DELAY50S ;延时50秒
CLR P1.2 ;东西绿灯灭
CLR P1.3
LP1: SETB P0.6 ;东西黄灯亮
SETB P0.7
LCALL DELAY ;延时0.5秒
CLR P0.6 ;东西黄灯灭
CLR P0.7
LCALL DELAY
DJNZ R7,LP1 ;黄灯闪烁10次,未到则转
MOV R7,#10
SETB P0.2 ;东西红灯亮
SETB P0.3
CLR P0.0 ;南北红灯灭
CLR P0.1
SETB P1.0 ;南北绿灯亮
SETB P1.1
LCALL DELAY50S
CLR P1.0 ;南北绿灯灭
CLR P1.1
LP2: SETB P0.4 ;南北黄灯亮
SETB P0.5
LCALL DELAY
CLR P0.4 ;南北黄灯灭
CLR P0.5
LCALL DELAY
DJNZ R7,LP2 ;黄灯闪烁10次,未到则转
MOV R7,#10
CLR P0.2 ;东西红灯灭
CLR P0.3
SJMP LP
;=======================================
;延时500ms子程序
;使用R2,R3,R4工作寄存器
;=======================================
DELAY: MOV R4,#2
DL1: MOV R3,#250
DL2: MOV R2,#250
DL3: NOP
NOP
DJNZ R2,DL3
DJNZ R3,DL2
DJNZ R4,DL1
RET
;=======================================
;延时50秒子程序
;使用R2,R3,R4,R5工作寄存器
;=======================================
DELAY50S:MOV R5,#100
DL50: LCALL DELAY
DJNZ R5,DL50
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -