您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC16C74B单片机与AT24C64通讯程序 正文
PIC16C74B单片机与AT24C64通讯程序

PIC16C74B单片机与AT24C64通讯程序

点击数:7974 次   录入时间:03-04 11:46:02   整理:http://www.55dianzi.com   PIC单片机
I2CBUS_INIT
        BCF        STATUS,RP0
        MOVF       RC,W
        ANDLW      0X18
        MOVWF      RC
        CLRF       BUSSTA
        CLRF       BUSCON
        RETURN         
;=======================================    
; 传送设备地址
;入口:  BUSCON
;出口:  BUSSTA
;=======================================
TX_SLAVE_ADDR
        BCF        STATUS,RP0
        BCF        BUSSTA,ACK_ERROR
        MOVLW      SLAVEADDR
        MOVWF      TXBUF
        BTFSC      BUSCON,SLAVE_RW
        BSF       TXBUF,R_NOT_W
        CALL       I2CTXB           
        BTFSC      BUSSTA,TX_SUCCESS 
        GOTO       TXADDR_SUCCESS
        CLRWDT
        BTFSS      BUSSTA,ACK_ERROR
        CALL       I2CSTOP
        GOTO       TXADDR_END
TXADDR_SUCCESS
        CLRWDT
TXADDR_END
        RETURN
;=======================================    
;TX_DATA_ADDR   发送写/读的地址
;=======================================
TX_DATA_ADDR
        BCF        STATUS,RP0
        MOVLW      DATAADDRH
        MOVWF      TXBUF
        CALL       I2CTXB
        BCF        STATUS,RP0
        BTFSS      BUSSTA,TX_SUCCESS
        GOTO       TX_DATA_ADDR_ERROR
        MOVLW      DATAADDRL
        MOVWF      TXBUF
        CALL       I2CTXB
        BCF        STATUS,RP0
        BTFSS      BUSSTA,TX_SUCCESS
        GOTO       TX_DATA_ADDR_ERROR
        GOTO       TX_DATA_END
TX_DATA_ADDR_ERROR
        BCF        BUSSTA,TX_PROGRESS
        BCF        BUSSTA,TX_SUCCESS
        BSF        BUSSTA,ACK_ERROR
TX_DATA_END
        RETURN
;=======================================    
;向 EEPROM 输出一个8位数据,并检测EEPROM的ACK信号
;入口:  TXBUF  寄存器
;       BUSSTA 寄存器
;出口:  EEPROM 存储器
;       BUSSTA 寄存器
 ;======================================    
I2CTXB  BCF        STATUS,RP0
        BSF        BUSSTA,TX_PROGRESS
        BCF        BUSSTA,TX_SUCCESS
        MOVLW      0X08
        MOVWF      BCOUNT
TXLOOP  CLRWDT                
        BSF        STATUS,RP0     
        BCF        TRISC,SCL 
        NOP    
        BCF        TRISC,SDA     
        BCF        STATUS,RP0    
        RLF        TXBUF,F       
        BSF        STATUS,RP0
        BTFSC      STATUS,C
        BSF        TRISC,SDA
        NOP
        BSF        TRISC,SCL
        NOP
        NOP
        BCF        STATUS,RP0
        DECFSZ     BCOUNT,F
        GOTO       TXLOOP
;---------------------------------------
;检测是EEPROM否有ACK信号产生,产生为正常
;检测方法:
;   1. 将RC口的SCL.SDA分别设置为输出和输入状态
;   2. 延时2个指令周期,将SCL设置为高电平
;   3. 延时2个指令周期,检测RC口SDA的状态

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


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