CS			EQU		P1.7				
SK			EQU		PI.6				
DI			EQU		P15				
DO			EQU		P1.4				
ADRCODE	BYTE	7FH
DATAH		BYTE	7EH			
DATAL		BYTE	7DH				
OUTBYTE		BYTE	7CH				
OUTLEN		BYTE	7BH				
INBYTE		BYTE	7AH				
INLEN		BYTE	79H				
FLAG		BYTE	20H				
B5BITADR	BIT		01H				
DATOUT:
CLR		SK							
MOV	R2,OUTLEN					
MOV	A,OUTBYTE					
DOUT1:
CLR		SK							
NOP									
RLC		A							
MOV 	DI,C							
NOP
SETB	SK							
NQP
DJNZ 	R2,DOUT1					
RET									
DATIN':
CLR		SK							
MOV 	R2,INLEN						
DATINI:
CLR		SK							
NOP
MOV	C,DO						
RLC		A							
NOP
SETB	SK							
NOP
DJNZ	R2,DATINI					
MOV	INBYTE,A						
RET									
READ:
SETB	CS							
MOV	OUTBYTE,#11000000E			
MOV	OUTI.EN,#03H					
LCALL	DATAOUT						
JB		BSBITADR,READ 				
MOV	OUTLEN,#08					
MOV	OUTBYTE,ADRCODE
LCALL	DATAOUT						
AJMP	READ2						
READ:
MOV	OUTLEN,#06H					
MOV	OUTBYTE,ADRCODE			
LCALL	DATAOUT						
READ2:
MOV	INLEN,#08H
LCALL	DATAIN
MOV	DATAH,INBYTE
MOV	INLEN,#08H					
LCALL	DATAIN
MOV	DATAL,INBYTE				
CLR		CS
CLR		SK
RET									
WRITE:
SETB	CS
MOV	OUTBYTE,#10100000B
MOV	OUTLEN,#03H					
LCALL	DATAOUT
JB		B5BITADR,WRITEI
MOV	OUTLEN,#OS
MOV	OUTBYTE,ADRCODE
LCALL	DATAOUT						
JMP		WRITE2
WRITE1:
MOV	OUTLEN,#06H
MOV	OUTBYTE,ADRCODE
LCALL	DATAOUT						
WRITE2:
MOV	OUTLEN,#OSH
MOV	OUTBYTE,DATAH
LCALL	DATAOUT						
MOV	OUTLEN.#08H					
MOV	OUTB YTE,DATAL
LCALL 	DATAOUT						
CLR		CS							
NOP										
NOP
SETB	CS 							
WRITE3:
MOV	C,DO
JNC		WRITE3
CLR		CS							
RET 
WEN:
SETB	CS							
MOV	OUTBYTE,#10000000B
MOV	OUTLEN,#03H
LCALL	DATAOUT						
JB		B5BITADR,WEN
MOV	OUTLEN,#08H
MOV	OUTBYTE,ADRCODE
LCALL	DATAOUT						
CLR		WEN2						
WENT:
MOV	OUTLEN,#06H
MOV	OUTBYTE,ADRCODE
LCALL 	DATAOUT						
WEN2:
CLR		CS							
RET			



