51单片机的at24c02驱动程序
cuat
函数功能: 从mcu移出数据到24c02
参数:wratdata(数据)
返回:ackbit(应答)
备注:配合wratbyte使用
*************************************/
bit mcuat(uchar wratdata)
{
uchar i;
bit ackbit;
for(i = 0; i < 8; i++) // 循环移入8个位
{
SDAat = (bit)(wratdata & 0x80);
_nop_();
SCLat = 1;
delayNOP();
SCLat = 0;
wratdata <= 1;
}
ackbit=atack();
return ackbit; // 返回AT24C02应答位
}
/*************************************
函数名:wratbyte
函数功能: 在指定地址addr处写入数据write_data
参数:addr wratdata
返回:无
备注:无
*************************************/
void wratbyte(uchar addr, uchar wratdata)
{
atstart();
mcuat(atwrite);
mcuat(addr);
mcuat(wratdata);
atstop();
delayms(10); // 写入周期
}
/*************************************
函数名:fillbyte
函数功能:填充数据fill_data到EEPROM内fill_size字节
参数: fillsize(地址),filldata(数据)
返回:无
备注:无
*************************************/
void fillbyte(uchar fillsize,uchar filldata)
{
uchar i;
for(i = 0; i < fillsize; i++)
{
wratbyte(i, filldata);
}
}
/*************************************
函数名:reatbyte
函数功能:在当前地址读取
参数:无
返回:reatdata(读取的数据)
备注:配合readrandom使用
*************************************/
uchar reatbyte()
{
uchar reatdata;
atstart();
mcuat(atread);
reatdata = atmcu();
atstop();
return reatdata;
}
/*************************************
函数名:readrandom
函数功能:在指定地址读取
参数:random_addr(地址)
返回:reatdata(读取的数据)
备注:无
*************************************/
uchar readrandom(uchar random_addr)
{
atstart();
mcuat(atwrite);
mcuat(random_addr);
return(reatbyte());
}
51单片机at24c02驱动程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)