CLR VSDA RET STOP: CLR VSDA SETB VSCL NOP NOP NOP NOP SETB VSDA NOP NOP NOP NOP CLR VSDA CLR VSCL RET MACK: CLR VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL SETB VSDA RET
MNACK: SETB VSDA SETB VSCL NOP NOP NOP
30
NOP CLR VSCL CLR VSDA RET CACK: SETB VSDA SETB VSCL CLR F0 MOV C,VSDA JNC CEND SETB F0 CEND: CLR VSCL RET WRBYT: MOV R0,#08H WLP1: RLC A JC WR1 AJMP WR0 WR1: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL AJMP WLP1 WR0: CLR VSDA SETB VSCL NOP NOP NOP NOP
31
CLR VSCL AJMP WLP1 RDBYT: MOV R0,#08H RLP : SETB VSDA SETB VSCL MOV C,VSDA MOV A,R2 RLC A MOV R2,A CLR VSCL DJNZ R0,RLP RET
WRNBYT: MOV R3,NUMBYT LCALL STA MOV A,SLA LCALL WRBYT LCALL CACK JB F0,WRNBYT MOV R1,#MTD WRDA: MOV A,@R1 LCALL WRBYT LCALL CACK JB F0,WRNBYT INC R1 DJNZ R3,WRDA LCALL STOP RET
RDNBYT: MOV R3,NUMBYT LCALL STA MOV A,SLA
32
LCALL WRBYT LCALL CACK JB F0,RDNBYT RDN: MOV R1,#MRD RDN1: LCALL RDBYT MOV @R1,A DJNZ R3,ACK LCALL MNACK LCALL STOP RET ACK: LCALL MACK INC R1 SJMP RDN1 DISPLAY: MOV R1,#70H MOV R2,#0FEH PLAY: MOV A,R2 MOV P2,A MOV A,@R1 ANL A,#0FH MOV DPTR,#TAB MOVC A,@A+DPTR LCALL DLIMS INC R1 MOV A,R2
JNB ACC.3,ENDOUT RL A MOV R2,A AJMP PLAY ENDOUT: SETB P2.0 SETB P2.1
33
SETB P2.2 SETB P2.3 RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DB 00H
SSS: MOV 19H,#64H MOV 18H,#00H MOV 17H,#00H MOV 16H,#00H MOV 11H,#00H MOV 12H,#00H MOV 13H,62H MOV 14H,61H MOV 15H,60H LCALL DIVST LCALL BCDST MOV A,25H ANL A,#0FH MOV 70H,A MOV A,25H SWAP A ANL A,#0FH MOV 71H,A MOV A,24H ANL A,#0FH MOV 72H,A MOV A,24H SWAP A ANL A,#0FH
34