?? x1226.asm
字號:
SDA BIT P3.2
SCL BIT P3.4
PUBLIC DELAY0
PUBLIC CLOCK
PUBLIC JACK
PUBLIC ACK
PUBLIC NACK
PUBLIC INBYT
PUBLIC OUTBYT
PUBLIC STOP
PUBLIC START
PUBLIC WRBTY
PUBLIC WATCH0
PUBLIC SEND1
PUBLIC _EWRITE
PUBLIC _EREAD
X1203P SEGMENT CODE
RSEG X1203P
;****************************************
; FUN: READ COUNT BYTES DATA FROM X1203
; INP: DPTR(R7)
; RETURN: DATA (R7)
;****************************************
_EREAD: LCALL WRBTY
MOV A,#00H
LCALL SEND1
MOV A,R7
LCALL SEND1
LCALL START
MOV A,#0DFH
LCALL SEND1
LOOP0: LCALL INBYT
MOV R7,A
LCALL NACK
LCALL STOP
RET
;****************************************
; FUN: WRITE COUNT BYTES DATA TO X1203
; INP: DPTR(R7), DATA(R5)
;****************************************
_EWRITE: LCALL WRBTY
MOV A,#00H
LCALL SEND1
MOV A,#3FH
LCALL SEND1
MOV A,#02H
LCALL SEND1
LCALL STOP
LCALL START
MOV A,#0DEH
LCALL SEND1
MOV A,#00H
LCALL SEND1
MOV A,#3FH
LCALL SEND1
MOV A,#06H
LCALL SEND1
LCALL STOP
LCALL START
MOV A,#0DEH
LCALL SEND1
MOV A,#00H
LCALL SEND1
MOV A,R7
LCALL SEND1
MOV A,R5
LCALL SEND1
LCALL STOP
RET
SEND1:LCALL OUTBYT
LCALL JACK
RET
WATCH0: SETB P3.5
NOP
NOP
NOP
NOP
CLR P3.5
RET
WRBTY: LCALL START
MOV A,#0DEH
LCALL OUTBYT
LCALL WATCH0
SETB SDA ;ORL P3,#04H
NOP
NOP
NOP
SETB SCL ;ORL P3,#10H
NOP
NOP
JB SDA,RTY ;JB ACC.2,RTY
JMP RT
RTY: LCALL STOP
LJMP WRBTY
RT: NOP
CLR SCL ;ANL P3,#0F7H
RET
START: SETB SDA ;ORL P3,#04H
nop
nop
nop
nop
SETB SCL ;ORL P3,#08H
NOP
NOP
NOP
NOP
CLR SDA ;ANL P3,#0FBH
NOP
NOP
CLR SCL ;ANL P3,#0F7H
RET
STOP: CLR SDA ;ANL P3,#0FBH
nop
nop
nop
nop
SETB SCL ;ORL P3,#08H
NOP
NOP
NOP
NOP
SETB SDA ;ORL P3,#04H
nop
nop
nop
nop
RET
OUTBYT: MOV R2,#08H
LOOPO: RLC A
JC IS1
CLR SDA ;ANL P3,#0FBH
JMP BITSET
IS1: SETB SDA ; ORL P3,#04H
BITSET: LCALL CLOCK
DJNZ R2,LOOPO
RET
INBYT: MOV R2,#08H
SETB SDA ; ORL P3,#04H
LOOPI: LCALL CLOCK
RLC A
DJNZ R2,LOOPI
RET
NACK: SETB SDA ;ORL P3,#04H
LCALL CLOCK
RET
ACK: CLR SDA ;ANL P3,#0FBH
LCALL CLOCK
RET
JACK: SETB SDA ;ORL P3,#04H
NOP
NOP
NOP
SETB SCL ;ORL P3,#08H
NOP
JACK1:
;MOV B,P3
;ANL B,#04H
;MOV R1,B
lcall watch0
;CJNE R1,#0H,JACK1
JB SDA,JACK1
NOP
CLR SCL ;ANL P3,#0f7H
NOP
NOP
NOP
NOP
RET
CLOCK:
NOP
NOP
NOP
NOP
NOP
NOP
SETB SCL ;ORL P3,#08H
NOP
NOP
;MOV B,P3
;ANL B,#04H
;MOV R1,B
;CJNE R1,#0,CLOCK1
;JB SDA,CLOCK1
;CLR C
;JMP CLOCK2
;CLOCK1: SETB C
;CLOCK2:
MOV C,SDA
NOP
NOP
NOP
CLR SCL ;ANL P3,#0F7H
NOP
NOP
NOP
NOP
RET
delay0:mov r6,#10h
delay: mov r5,#0ffh
de2: mov r4,#0ffh
de0: mov r3,0ffh
djnz r3,$
djnz r4,de0
djnz r5,de2
lcall watch0
djnz r6,delay
ret
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -