問題:為什么第一次不是正常的碼制,而之后顯示正常
ORG 0000H JMP MAIN ORG 0003H JMP INT_0 ORG 000BH JMP TIM_0 LATCHB EQU P2.2 ;8位數碼管鎖存口 LATCHA EQU P2.3 RECEIVEOK EQU 20H.0 REDATEOK EQU 20H.1 DTTMP EQU 70H ;TEMP PRTMP EQU 71H CONS32 EQU 72H MAIN: CALL INITIAL CALL INITIME0 CALL INIINT0 MAILP: JNB RECEIVEOK,MAILP CLR RECEIVEOK CLR REDATEOK CALL PROCESS CALL DISPLAY JMP MAIN INITIAL: ; INITIAL CLR RECEIVEOK CLR REDATEOK MOV R7,#00H MOV DTTMP,#30H MOV PRTMP,#50H MOV CONS32,#32 RET INITIME0: ;TIME0 INITIAL MOV TMOD,#02H MOV TL0,#00H MOV TH0,#00H SETB ET0 SETB EA RET INIINT0: ;INT0 INITIAL SETB IT0 SETB EX0 SETB EA SETB PX0 RET PROCESS: CLR EX0 MOV R0,#30H MOV R3,#8 PROLP2: MOV R2,#4 CLR A PROLP0: CJNE @R0,#7,CMP SETB C RRC A JMP PROLP1 CMP: JC ZERO CPL C RRC A JMP PROLP1 ZERO: CPL C RRC A PROLP1: INC R0 DJNZ R2,PROLP0 SWAP A MOV R1,PRTMP ; 開辟50H以后為解碼存儲區 MOV @R1,A INC R1 MOV PRTMP,R1 DJNZ R3,PROLP2 SETB EX0 RET DISPLAY: MOV R3,#0FFH CLR EX0 DISDL0: MOV R1,#11111110B MOV R0,#50H MOV R2,#8 DISLP0: MOV A,@R0 INC R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A SETB LATCHB CLR LATCHB MOV A,R1 MOV P0,A SETB LATCHA CLR LATCHA RL A MOV R1,A CALL DELAY DJNZ R2,DISLP0 DISDL: MOV R5,#100 DJNZ R5,$ DJNZ R3,DISDL0 SETB EX0 RET DELAY: MOV R4,#2 MOV R5,#2 DELLP1: MOV R6,#2 DJNZ R6,$ DJNZ R5,DELLP1 DJNZ R4,DELLP1 RET TIM_0: INC R7 RETI INT_0: SETB TR0 JB REDATEOK,REDATE CJNE R7,#30,CHOOSE CHOOSE: JC INTEXIT0 ;CJNE R7,#200,CHOOSE1 ; CHOOSE1: ; JNC INTEXIT0 SETB REDATEOK JMP INTEXIT1 REDATE: MOV R0,DTTMP ;開辟30H以后為數據接收區 MOV A,R7 MOV @R0,A INC R0 MOV DTTMP,R0 DJNZ CONS32,INTEXIT1 SETB RECEIVEOK CLR TR0 INTEXIT1: MOV R7,#00H RETI INTEXIT0: RETI TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |