//****************************11.0592MHz晶振,延时8.69*Count US****************************
void DelayUS(unsigned int Count)
{
while(--Count){;}
}
//****************************AT24C02B存储芯片代码****************************
/****************************************************************************/
void Write24C02B(unsigned char Wdata,unsigned char RomAddress)
{
AT24C02B_Start();
AT24C02B_Write8Bit(Write24C02BAddress);
AT24C02B_TestAck();
AT24C02B_Write8Bit(RomAddress);
AT24C02B_TestAck();
AT24C02B_Write8Bit(Wdata);
AT24C02B_TestAck();
AT24C02B_Stop();
DelayUS(11000);
}
/***************************************************************************/
unsigned char Read24C02B(unsigned char RomAddress)
{
unsigned char data temp;
AT24C02B_Start();
AT24C02B_Write8Bit(Write24C02BAddress);
AT24C02B_TestAck();
AT24C02B_Write8Bit(RomAddress);
AT24C02B_TestAck();
AT24C02B_Start();
AT24C02B_Write8Bit(Read24C02BAddress);
AT24C02B_TestAck();
temp=AT24C02B_Read8Bit();
AT24C02B_NoAck();
AT24C02B_Stop();
return temp;
}
/****************************************************************************/
void AT24C02B_I2CWait(void)
{
_nop_();
_nop_();
}
/****************************************************************************/
void AT24C02B_Start(void)
{
AT24C02B_SDA=1;
AT24C02B_SCL=1;
AT24C02B_I2CWait();
AT24C02B_SDA=0;
AT24C02B_I2CWait();
AT24C02B_SCL=0;
AT24C02B_I2CWait();
}
/****************************************************************************/
void AT24C02B_Stop(void)
{
AT24C02B_SCL=0;
AT24C02B_SDA=0;
AT24C02B_I2CWait();
AT24C02B_SCL=1;
AT24C02B_I2CWait();
AT24C02B_SDA=1;
AT24C02B_I2CWait();
}
/****************************************************************************/
void AT24C02B_NoAck(void)
{
AT24C02B_SDA=1;
AT24C02B_SCL=1;
AT24C02B_I2CWait();
AT24C02B_SCL=0;
AT24C02B_I2CWait();
}
/****************************************************************************/
unsigned char AT24C02B_TestAck(void)
{
unsigned char data ErrorBit;
AT24C02B_SDA=1;
AT24C02B_SCL=1;
AT24C02B_I2CWait();
ErrorBit=AT24C02B_SDA;
AT24C02B_I2CWait();
AT24C02B_SCL=0;
AT24C02B_I2CWait();
AT24C02B_I2CWait();
return(ErrorBit);
}
/****************************************************************************/
void AT24C02B_Write8Bit(unsigned char input)
{
unsigned char data temp;
for(temp=8;temp!=0;temp--)
{
if(input&0x80)
AT24C02B_SDA=1;
else
AT24C02B_SDA=0;
AT24C02B_I2CWait();
AT24C02B_SCL=1;
AT24C02B_I2CWait();
AT24C02B_SCL=0;
AT24C02B_I2CWait();
input=input<<1;
}
}
/****************************************************************************/
unsigned char AT24C02B_Read8Bit(void)
{
unsigned char data temp,rbyte=0;
for(temp=8;temp!=0;temp--)
{
AT24C02B_SCL=1;
AT24C02B_I2CWait();
rbyte=rbyte<<1;
if(AT24C02B_SDA)
rbyte=rbyte|0x1;
AT24C02B_I2CWait();
AT24C02B_SCL=0;
AT24C02B_I2CWait();
}
return(rbyte);
}
我的温湿度监控板子上的部分代码。
AT24CXX.rar_AT24cxx 读写 程序_at24cxx
版权申诉
118 浏览量
2022-09-19
15:16:02
上传
评论
收藏 2KB RAR 举报
林当时
- 粉丝: 98
- 资源: 1万+
最新资源
- boboav_night.apk
- 235486247769308自带键盘安卓海贼.apk
- 672536945416276wap.stuzn.com_1000_1137350andme_signed.apk
- 737836185360652wap.stuzn.com_1000_1642030hzw_n73d.apk
- JavaWeb阶段综合项目的接口文档
- 003 登录rsa+token 登录rsa+token(需改善 私钥不应该硬编码在类中、密码应该存储为哈希值)
- 992475461755466幼稚园春游功能版.apk
- spark编程基础实验三数据
- windows之mysql8+的配置文件my.ini
- cglib完美支持java17及以上
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0