您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机pic16f877A软件模拟I2C通信读写24C02 正文
pic16f877A软件模拟I2C通信读写24C02

pic16f877A软件模拟I2C通信读写24C02

点击数:7613 次   录入时间:03-04 11:38:25   整理:http://www.55dianzi.com   PIC单片机
       DECFSZ COUNT ,1      ;循环读完8位
       GOTO RD000
       BSF STATUS ,RP0
       BCF TRISB ,5            ;恢复SDA脚为输出
       BCF STATUS ,RP0
       BSF SDA
       CALL DELAY2
       BSF SCLK
       CALL DELAY2
       BCF SCLK          ;应答毕,SDA置1
       CALL STOP          ;送停止信号
        MOV FW  TEMP          ;将读的数据送入W中
       RETURN
;******************************写入24C02程序
WT24     MOV WF ADDR         ;  先将地址暂存于F4  
        CALL START24      ;开始条件
         MOV LW 0A0H
        CALL  SUBS      ;写器件地址1010000+最后一位0写操作
         MOV FW ADDR          ;载入地址
        CALL  SUBS      ;写地址
         MOV FW DAT          ;载入数据 
        CALL SUBS       ;写数据
        CALL STOP         ;停止信号
        RETURN 

START24
                      ;开始条件
        BSF  SDA
        BSF  SCLK
        CALL DELAY2
        BCF  SDA
        CALL DELAY2
        BCF  SCLK
        RETURN 

STOP   
        BCF  SDA       ;停止条件
        NOP
        NOP 
        BSF  SCLK
        CALL DELAY2
        BSF  SDA
        RETURN 

SUBS                   ;写数据 
        MOV WF TEMP     ;将要写的数据存于F2中
        MOV LW 08H
        MOV WF COUNT    ;写8位数据
SH01  
       RLF TEMP ,1
       BSF SDA
       BTFSS  STATUS ,C
       BCF SDA
       NOP
       BSF SCLK
       CALL DELAY2
       BCF SCLK
       DECFSZ COUNT ,1  ;循环写完8位
       GOTO SH01
       BSF  SDA
       NOP
       NOP
       BSF  SCLK
       BSF  STATUS,RP0
       BSF  TRISB ,5
       BCF  STATUS,RP0
REP
       BTFSC SDA     ;判应答到否,未到则等待
       GOTO REP
       BCF  SCLK
       BSF  STATUS,RP0
       BCF  TRISB ,5
       BCF  STATUS,RP0
       RETURN

DELAY2  
        NOP
        NOP
        NOP
        NOP
        RETURN 
;********************************************
       end                   ;源程序结束



上一页  [1] [2] 


本文关键字:通信  软件  PIC单片机单片机-工控设备 - PIC单片机