CALL I2CBUS_INIT
CALL REGTOI2CBUF
CALL I2CWRITE
CALL CLRI2CBUF
CALL D10
CALL I2CREAD
CALL I2CBUFTOREG
GOTO START1
;=======================================
;CLRI2CBUF
;---------------------------------------
CLRI2CBUF
BCF STATUS,RP0
MOVLW I2CBUF
MOVWF FSR
MOVLW 0X08
MOVWF COUNT
CLRLOOP CLRF INDF
INCF FSR,F
DECFSZ COUNT,F
GOTO CLRLOOP
RETURN
;---------------------------------------
;将各个REGSTER数据写入 I2CBUF 缓冲区
;---------------------------------------
REGTOI2CBUF
BCF STATUS,RP0
MOVLW I2CBUF
MOVWF FSR
MOVF I2C_A,W
MOVWF INDF
INCF FSR,F
MOVF I2C_B,W
MOVWF INDF
INCF FSR,F
MOVF I2C_C,W
MOVWF INDF
INCF FSR,F
MOVF I2C_D,W
MOVWF INDF
INCF FSR,F
MOVF I2C_E,W
MOVWF INDF
INCF FSR,F
MOVF I2C_F,W
MOVWF INDF
INCF FSR,F
MOVF I2C_G,W
MOVWF INDF
RETURN
;---------------------------------------
;将 I2CBUF 缓冲区数据写入各个REGSTER
;---------------------------------------
I2CBUFTOREG
BCF STATUS,RP0
MOVLW I2CBUF
MOVWF FSR
MOVF INDF,W
MOVWF I2C_A
INCF FSR,F
MOVF INDF,W
MOVWF I2C_B
INCF FSR,F
MOVF INDF,W
MOVWF I2C_C
INCF FSR,F
MOVF INDF,W
MOVWF I2C_D
INCF FSR,F
MOVF INDF,W
MOVWF I2C_E
INCF FSR,F
MOVF INDF,W
MOVWF I2C_F
INCF FSR,F
MOVF INDF,W
MOVWF I2C_G
RETURN
;=======================================
;将I2CBUF缓冲区内的数据写入EEPROM
;=======================================
I2CWRITE
CALL I2CSTART
BTFSS BUSSTA,BUS_BUSY
GOTO TX_FAIL
BCF BUSCON,SLAVE_RW
CALL TX_SLAVE_ADDR
BTFSS BUSSTA,TX_SUCCESS ;SUCESSFULL?
上一页 [1] [2] [3] [4] [5] [6] 下一页
本文关键字:单片机 程序 PIC单片机,单片机-工控设备 - PIC单片机