📄 最后.txt
字号:
;P1.0南北直行红 P1.1东西直行红 P1.2南北左转红 P1.3东西左转红
;P1.4南北直行绿 P1.5东西直行绿 P1.6南北左转绿 P1.7东西左转绿
;P2.2南北直行黄 P2.3南北左转黄 P2.4东西直行黄 P2.5东西左转黄
;东西直行1011 0100 #B4H 东西左转1110 0001 #E1H
;南北直行0111 1000 #78H 南北左转1101 0010 #D2H
;P0为数码管输出端
;P2.0为十位片选
;P2.1为个位片选
;DSC为红绿灯输出
;SSC为数码管输出
ORG 0000H
DSC EQU P1
SSC EQU P0
MOV P2,#00H ;P2清零
MOV R7,#40 ;40S
DXZX: MOV DSC,#0B4H ;0.5S 东西直行
MOV R6,#02
DXZX1: LCALL DISP
DJNZ R2,DXZX1
DEC R7
CJNE R7,#03,DXZX ;不等则转移
DXZXH: MOV DSC,#0B0H
MOV R6,#02
DXZXH1: CPL P2.4 ;取反闪烁
LCALL DISP
DJNZ R2,DXZXH1 ;循环实现闪烁
DJNZ R7,DXZXH
MOV R7,#40 ;40S
NBZX: MOV DSC,#78H ;0.5S 南北直行
MOV R6,#02
NBZX1: LCALL DISP
DJNZ R2,NBZX1
DEC R7
CJNE R7,#03,NBZX
NBZXH: MOV DSC,#70H
MOV R6,#02
NBZXH1: CPL P2.2 ;取反闪烁
LCALL DISP
DJNZ R2,NBZXH1 ;循环实现闪烁
DJNZ R7,NBZXH
MOV R7,#40 ;37S
DXZZ: MOV DSC,#0E1H ;0.5S 东西左转
MOV R6,#02
DXZZ1: LCALL DISP
DJNZ R2,DXZZ1
DEC R7
CJNE R7,#03,DXZZ1
DXZZH: MOV DSC,#0E0H
MOV R6,#02
DXZZH1: CPL P2.5 ;取反闪烁
LCALL DISP
DJNZ R2,DXZZH1 ;循环实现闪烁
DJNZ R7,DXZZH
MOV R7,#40 ;40S
NBZZ: MOV DSC,#0D2H ;0.5S 南北左转
MOV R6,#02
NBZZ1: LCALL DISP
DJNZ R2,NBZZ1
DEC R7
CJNE R7,#03,NBZZ1
NBZZH: MOV DSC,#0D0H
MOV R6,#02
NBZZH1: CPL P2.3 ;取反闪烁
LCALL DISP
DJNZ R2,NBZZH1 ;循环实现闪烁
DJNZ R7,NBZZH
MOV R7,#40 ;40S
AJMP DXZX
;;;;;;;250ms延时;;;;;;
DEL: MOV R0,#5
DEL1: MOV R1,#199
DEL2: MOV R2,#125
DEL3: DJNZ R2,DEL3
DJNZ R1,DEL2
DJNZ R0,DEL1
RET
;;;;;;;;;;;;数码管显示子程序;;;;;;;;;;;;;
DISP: MOV B,#10
MOV A,R7
DIV AB
MOV 79H,A ;十位上的数
MOV 7AH,B ;个位上的数
MOV A,79H
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SSC,A
SETB P2.0
LCALL DEL
CLR P2.0
MOV A,7AH
MOVC A,@A+DPTR
MOV SSC,A
SETB P2.1
LCALL DEL
CLR P2.1
RET
TAB: DB 3FH,06H,5BH
DB 04FH,66H,6DH
DB 7DH,07H,7FH
DB 6FH
;TAB: DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -