ORG 0000H
SJMP A3 ;四盏红灯亮
A3:MOV SP,#60H
MOV A, #24H
MOV P1, A
CLR P3.4
CLR P3.3
SETB P3.5
SETB P3.2 ;显示5秒
MOV R4,#05H
LOOP1: MOV R2,#03H
LCALL LP ;调显示子程序
DJNZ R4,LOOP1
MOV R4,#00H
MOV R2,#03H
LCALL LP ;东西绿灯亮,南北红灯亮
A2:MOV A,#0CH
CLR P3.5
MOV P1,A
SETB P3.3
CLR P3.4
SETB P3.2 ;显示20秒
MOV R4,#14H
LOOP2 :MOV R2,#03H
LCALL LP ;调显示子程序
DJNZ R4,LOOP2
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序
SETB P3.2
CLR P3.3 ; 显示5秒
MOV R4 ,#05H ;东西黄灯亮,南北红灯亮
LOOP9:MOV A,#14H
MOV P1 ,A
CLR P3.5
SETB P3.4
MOV R2,#02H
LCALL LP ;调显示子程序
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序,南北红灯亮
MOV A ,#04H
MOV P1 ,A
CLR P3.4
CLR P3.5
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序
DJNZ R4,LOOP9
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序,东西红灯亮,南北绿灯亮
A8:MOV A, #61H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
SETB P3.5 ; 显示20秒
MOV R4,#14H
LOOP3:MOV R2,#03H
LCALL LP ;调显示子程序
DJNZ R4,LOOP3
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序
SETB P3.5
MOV R4 ,#05H
LOOP10:MOV R2,#02H
LCALL LP ;调显示子程序,东西红灯亮,南北黄灯亮
A0:MOV A,#0A2H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序,东西红灯亮
MOV A,#20H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序
DJNZ R4,LOOP10
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序
LJMP A2 ;延时子程序
DELAY:PUSH 2
PUSH 1
PUSH 0
DELAY1: MOV 1,#00H
DELAY2:MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
DJNZ R2 ,DELAY
RET ;显示子程序
xian: MOV A,R4
MOV B,#10
DIV AB
MOV R6,A
MOV DPTR,#TAB
MOV A,B
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S:DJNZ R7,H55S
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S1:DJNZ R7,H55S1
LCALL DELAY
RET
这是交通灯的子程序。它主要是被调用控制各个方向灯亮灭情况和时间。
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh ;查表子程序
END
温馨提示:内容为网友见解,仅供参考