您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC的I2C读写程序 正文
PIC的I2C读写程序

PIC的I2C读写程序

点击数:7488 次   录入时间:03-04 11:36:41   整理:http://www.55dianzi.com   PIC单片机
BSF     EEPROM,DO       ; Otherwise data bit = 1
CALL    BITOUT          ; Serial data out
RLF     TXBUF, F        ; Rotate TXBUF left
SKPC                    ; f(6) ---> f(7)
BCF     TXBUF,0         ; f(7) ---> carry
SKPNC                   ; carry ---> f(0)
BSF     TXBUF,0
DECFSZ  COUNT, F        ; 8 bits done?
GOTO    TXLP            ; No.
CALL    BITIN           ; Read acknowledge bit
MOVLW   3
BTFSC   EEPROM,DI       ; Check for acknowledgement
CALL    ERR             ; No acknowledge from device
RETLW   0
;
;END SUB
 PAGE
;
;-----------------------------------------------------------------------------
;       BYTE-WRITE, write one byte to EEPROM device
;-----------------------------------------------------------------------------
;       Input   :       DATAO= data to be written
;                       ADDR    = destination address
;                       SLAVE   = device address (1010xxx0)
;       Output  :       Data written to EEPROM device
;-----------------------------------------------------------------------------
;
ORG     080             ; The location for BYTE-WRITE routine CAN be
;                               ; assigned anywhere between (377-777) octal.
WRBYTE
MOVF    SLAVE,W         ; Get SLAVE address
MOVWF   TXBUF           ; to TX buffer
CALL    BSTART          ; Generate START bit
CALL    TX              ; Output SLAVE address
MOVF    ADDR,W          ; Get WORD address
MOVWF   TXBUF           ; into buffer
CALL    TX              ; Output WORD address
MOVF    DATAO,W         ; Move DATA 
MOVWF   TXBUF           ; into buffer
CALL    TX              ; Output DATA and detect acknowledgement
CALL    BSTOP           ; Generate STOP bit
goto    wrt_end
;
;
;
;-----------------------------------------------------------------------------
;       BYTE-READ, read one byte from serial EEPROM device
;-----------------------------------------------------------------------------
;       Input   :       ADDR    = source address
;                       SLAVE   = device address (1010xxx0)
;       Output  :       DATAI   = data read from serial EEPROM
;-----------------------------------------------------------------------------
;
ORG     0C0             ; The location for BYTE-READ routine can be
;                               ; assigned anywhere between (377-777) octal.
RDBYTE
MOVF    SLAVE,W         ; Move SLAVE address 
MOVWF   TXBUF           ; into buffer (R/W = 0)
CALL    BSTART          ; Generate START bit
CALL    TX              ; Output SLAVE address. Check ACK.
MOVF    ADDR,W          ; Get WORD address
MOVWF   TXBUF
CALL    TX              ; Output WORD address. Check ACK.
CALL    BSTART          ; START READ (if only one device is
MOVF    SLAVE,W         ; connected to the I2C bus)
MOVWF   TXBUF
BSF     TXBUF,0         ; Specify READ mode (R/W = 1)
CALL    TX              ; Output SLAVE address
CALL    RX              ; READ in data and acknowledge

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:程序  PIC单片机单片机-工控设备 - PIC单片机