.ORG 0H MAIN MOV A,R7 OUTL P1,A MOV A,R6 OUTL P2,A CLR A INC A OUTL BUS,A CLR A OUTL BUS,A JNT1 GETCODE JMP MAIN GETCODE CLR A MOV T,A JNT1 $ STRT T JTF TIMEOUT JT1 $-2 STOP TCNT MOV A,T CLR C RRC A CLR C RRC A CLR C RRC A MOV R0,A CLR C RRC A ADD A,R0 CPL A INC A MOV R3,A CLR F0 CALL GETBYTE JF0 MAIN CLR F0 CALL GETBYTE JF0 MAIN CLR F0 CALL GETBYTE JF0 MAIN MOV R7,A CLR F0 CALL GETBYTE JF0 MAIN MOV R6,A CALL LONGDLY JMP MAIN GETBYTE CLR A MOV R5,#08H GETBIT CLR C RLC A MOV R2,A CLR A MOV T,A JNT1 $ STRT T JTF TIMEOUT JT1 $-2 STOP TCNT MOV A,T CLR C ADD A,R3 JNC ZERO INC R2 ZERO MOV A,R2 DJNZ R5,GETBIT RET TIMEOUT CPL F0 RET DELAY MOV R0,#0FFH DEB1 DJNZ R0,DEB1 RET LONGDLY MOV R1,#0FFH D2 CALL DELAY DJNZ R1,D2 RET .END