应广单片机读写24C02程序代码.docx

上传人:b****2 文档编号:592566 上传时间:2022-10-11 格式:DOCX 页数:8 大小:11.39KB
下载 相关 举报
应广单片机读写24C02程序代码.docx_第1页
第1页 / 共8页
应广单片机读写24C02程序代码.docx_第2页
第2页 / 共8页
应广单片机读写24C02程序代码.docx_第3页
第3页 / 共8页
应广单片机读写24C02程序代码.docx_第4页
第4页 / 共8页
应广单片机读写24C02程序代码.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

应广单片机读写24C02程序代码.docx

《应广单片机读写24C02程序代码.docx》由会员分享,可在线阅读,更多相关《应广单片机读写24C02程序代码.docx(8页珍藏版)》请在冰豆网上搜索。

应广单片机读写24C02程序代码.docx

应广单片机读写24C02程序代码

应广单片机读写24C02程序代码

#include"extern.h〃

#include,zmain.h"

]f

•1••I••I••I••I••I••I••I••1••I••I••I••I••I••I••I••1••I••I••I••I••I••I••I••1••I••I••I••I••I••I••I••1••I••I••I••I••I••I••I••1••I••I••I••I••I••I••I••1••I••I•

1/

tf^

//?

?

0aI2C?

0?

0

I2C_SDAequpb.2

I2C_SCLequpb.0

I2C_SDA_DIRequpbc.2

I2C_SCL_DIRequpbc.0

I2C_L0NG_DLYequ50

I2C_SH0RT_DLYequ20

I2C_SDA_HIGHequsetlI2C.SDAI2C_SDA_L0WequsetOI2C.SDA

I2C_SCL_HIGHequsetlI2C.SCLI2C_SCL_L0WequsetOI2C.SCL

I2CSDAOUTPUTequsetlI2CSDADIRI2CSDAINPUTequsetOI2CSDADIR

I2CSCLOUTPUTequsetlI2CSCLDIRI2CSCLINPUTequsetOI2CSCLDIR//?

?

0aI2C?

aA?

uchari2c_rw_addr;//?

AD?

M0O?

uchari2c_rw_byte;//?

AD?

fiy?

Yuchari2c_rw_cmd;//?

AD?

MAJ£?

?

t)M0O?

uchari2c_rw_temp;//?

AD?

?

y?

10D?

a?

aA?

uchari2c_rw_cnt;//?

AD?

?

y?

tOD?

a?

aA?

//

////?

u£uSTARTDA°A

i2c_start:

I2CSDAOUTPUT

I2C_SCL_0UTPUT

I2C_SDA_HIGH

delayI2C_L0NG_DLY

I2C_SCL_HIGH

delayI2C_L0NG_DLY

I2C_SDA_L0W

delayI2C_L0NG_DLY

I2C_SCL_L0W

delayI2C_L0NG_DLYret

//

//?

ufiiiSTOPDA0A

//

i2c_stop:

I2C_SCL_L0W

delayI2C_L0NG_DLY

I2C_SDA_L0W

delayI2C_L0NG_DLY

I2C_SCL_HIGH

delayI2C_L0NG_DLY

I2C_SDA_HIGH

delayI2C_L0NG_DLYret

//

//?

1?

QSALVEACKDAoA//

i2c_slave_ack:

//don'tcheckACK

I2C_SDA_INPUT

delayI2C_SH0RT_DLY

I2C_SCL_HIGH

delayI2C_SH0RT_DLY

I2C_SCL_LOW

delayI2C_SH0RT_DLY

I2C_SDA_0UTPUT

I2C_SDA_L0W

delayI2C_SH0RT_DLY

ret

//

//餡?

6MASTERACKDA°A//

i2c_master_ack:

I2C_SDA_0UTPUT

I2C_SDA_L0W

delayI2C_SH0RT_DLY

I2C_SCL_HIGH

delayI2C_SH0RT_DLY

I2C_SCL_LOW

delayI2C_SH0RT_DLY

ret

//

//骼?

6MASTERNACKDAoA//

i2c_master_nack:

I2C_SDA_0UTPUT

I2C_SDA_HIGH

delayI2C_SH0RT_DLY

I2C_SCL_HIGH

delayI2C_SH0RT_DLY

I2C_SCL_L0W

delayI2C_SH0RT_DLYret

//

//D?

0?

?

oXO?

0

//Input:

i2c_rw_temp

//Used:

i2c__rw_cnt

//

i2c_write_8bit:

i2crwent=8;

i2c_write_8bit_loop:

sici2c_rw_temp

swapcI2C_SDA

delayI2C_SHORT_DLY

I2C_SCL_HIGH

delayI2C_SHORT_DLY

I2CSCLLOW

delayI2C_SH0RT_DLY

dzsni2c_rw_cnt

gotoi2c_write_8bit_loop

ret

//

//?

A0?

?

dxo?

0

//Used:

i2c__rw_cnt

//Output:

i2c_rw_temp//

i2c_read_8bit:

i2c_rw_temp=0;

i2crwent=8;

delayI2C_SHORT_DLY

i2c_read_8bit_loop:

I2C_SCL_HIGH

delayI2C_SHORT_DLY

swapcI2C_SDA

sici2c_rw_temp

I2C_SCL_LOW

delayI2C_SHORT_DLY

dzsni2c_rw_cnt

gotoi2c_read_8bit_loop

ret

//

//Input:

i2c_rw_addr//i2c_rw_cmd

//Used:

i2c__rw_cnt

//i2c_rw_temp//Output:

i2c_rw_byte

i2c_read_byte:

//start

calli2c_start

//writedeviceaddress(write)i2c_rw_temp=i2c_rw_cmd;calli2c_write_8bit

//slaveack

cal1i2c_slave_ack

//writeregisteraddressi2c_rw_temp=i2c_rw_addr;

calli2c_write_8bit

//slaveack

//don'tcheckACK

cal1i2c_slave_ack

//startrepeat

calli2c_start

//writedeviceaddress(read)i2c_rw_temp=i2c_rw_cmd;i2c_rw_temp・0二1;

calli2c_write_8bit

//slaveack

//don'tcheckACK

I2C_SDA_INPUT

delayI2C_SHORT_DLY

I2C_SCL_HIGH

delayI2C_SHORT_DLY

I2C_SCL_LOW

delayI2C_SHORT_DLY//OaAi?

10fia(;6?

dI2C_SDA?

?

6Axa?

fia?

d

//readdata

i2c_rw_temp=0;

calli2c_read_8bit

i2c_rw_byte=i2c_rw_temp;//storedata

//masternack

calli2c_master_nack

//stop

calli2c_stop

//retune

delayI2C_LONG_DLY

wdreset

ret

//

//Input:

i2c_rw_addr//i2c_rw_byte//i2c_rw_cmd//Used:

i2c_rw_cnt

//i2c_rw_temp//

i2c_write_byte:

//start

calli2c_start

//writedeviceaddressi2c_rw_temp=i2c_rw_cmd;

calli2c_write_8bit

//slaveack

//don'tcheckACK

calli2c_slave_ack

//writeregisteraddressi2c_rw_temp=i2c_rw_addr;

calli2c_write_8bit

//slaveack

//don'tcheckACK

cal1i2c_slave_ack

//writedata

i2c_rw_temp=i2c_rw_byte;

calli2c_write_8bit

//slaveack

//don'tcheckACK

calli2c_slave_ack

//stop

calli2c_stop

//retune

delayI2C_L0NG_DLY

wdreset

ret

EEPRONLRW.CN©equOxAO

////°?

CyAu:

eeprom_read_byte//Input:

i2c_rw_addr

//Used:

i2c._rw_cnt

//i2c_rw_temp

//Output:

i2c_rw_byte

//eeprom_read_byte:

i2c_rw_cmd=EEPROM_RW_CMD;

gotoi2c_read_byte//X?

0a0aA16AmA£(^10Xa

////°?

£yAu:

eeprom_write_byte//Input:

i2c_rw_addr

//i2c_rw_byte

//Used:

i2c__rw_cnt

//i2c_rw_temp

//X?

0a?

°M?

6Ai§°6D^da^?

y0?

?

ifi?

?

a0O?

?

O?

D?

?

0X?

te?

fi

//eeprom_write_byte:

i2c_rw_cmd=EEPROM_RW_CMD;

gotoi2c_write_byte//X?

0a0aAi6ApAfi(pl0Xa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1