;********************************************************************
;IIC_START
IIC_START:
BS R6,SCL SCL=1
BS R6,SDA SDA=1
CALL IIC_DELAY
BC R6,SDA SDA=0
CALL IIC_DELAY
RET
;********************************************************************
;IIC_STOP
IIC_STOP:
BS R6,SCL SCL=1
BC R6,SDA SDA=0
CALL IIC_DELAY
BS R6,SDA SDA=1
CALL IIC_DELAY
RET
;********************************************************************
;IIC_CACK IF ACK,FIIC=0
IIC_CACK:
SET SDA INPUT
IOR IOC6
MOV TREG,A
BS TREG,SDA
MOV A,TREG
IOW IOC6
BS R6,SCL SCL=1
BC R3,GP
JBC R6,SDA
BS R3,GP
BC R6,SCL SCL=0
SET SDA OUTPUT
IOR IOC6
MOV TREG,A
BC TREG,SDA
MOV A,TREG
IOW IOC6
RET
;********************************************************************
;IIC_SACK
IIC_SACK:
BC R6,SDA SDA=0
NOP
BS R6,SCL SCL=1
CALL IIC_DELAY
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页