兄弟們,我寫了一個交通燈匯編程序,放在單片機上好事,但是放在Proteus上數碼管就變得缺胳膊少腿了,不知道怎么回事
ORG 000H
LJMP MAIN
ORG 000BH
LJMP T0J
ORG 30H
MAIN:MOV P1,#11011110B;東西綠,南北紅
MOV R2,#1
MOV R4,#1
MOV R0,#9
MOV R1,#5
MOV R3,#99
MOV DPTR,#KCODE
MOV TMOD,#01H
MOV TL0,#0F0H
MOV TH0,#0D8H
MOV P0,#00H
SETB TR0
SETB ET0
SETB EA
HERE:ACALL OUT
SJMP HERE
T0J:
MOV TL0,#0F0H
MOV TH0,#0D8H
DJNZ R3,GOBACK
MOV R3,#100
DEC R0
CJNE R0,#255,GOBACK
MOV R0,#9
DEC R1
CJNE R1,#255,GOBACK
MOV R1,#5
ACALL HUANDENG
GOBACK:RETI
OUT: JNB P3.7,K1
JNB P3.6,K3
JNB P3.5,K4
JNB P3.4,K5
JNB P3.3,K6
JNB P3.2,K7
MOV A,R0
MOV P2,#01111111B;WEI
MOV P0,#11111101B
MOV P2,#0BFH;DUAN
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV A,R1
MOV P2,#01111111B;WEI
MOV P0,#11111110B
MOV P2,#0BFH;DUAN
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV A,R0
MOV P2,#01111111B;WEI
MOV P0,#11011111B
MOV P2,#0BFH;DUAN
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV A,R1
MOV P2,#01111111B;WEI
MOV P0,#11101111B
MOV P2,#0BFH;DUAN
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
RET
K1:CLR TR0
RET
K3:SETB TR0
RET
K4:JNB P3.5,$
INC R0
RET
K5:JNB P3.4,$
INC R1
RET
K6:JNB P3.3,$
DEC R0
RET
K7:JNB P3.2,$
DEC R1
RET
HUANDENG:CJNE R4,#1,R
MOV P1,#11101101B;HUANG
MOV R0,#5
MOV R1,#0
MOV R5,A
MOV A, R4
CPL A
MOV R4,A
MOV A,R5
RET
R:
CJNE R2,#1,RRR
MOV R4,#1
MOV P1,#11110011B;HONG
MOV R5,A
MOV A, R2
CPL A
MOV R2,A
MOV A,R5
RET
RRR:
MOV P1,#11011110B;LV
RET
DELAY:
MOV R6,#20
K2:MOV R7,#100
DJNZ R7,$
DJNZ R6,K2
RET
KCODE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
|