微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机的at24c02驱动程序

51单片机的at24c02驱动程序

时间:12-01 来源:互联网 点击:

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());

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top