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单片机