PIC16F1829 DATA EEPROM 读写操作示例

来源:本站
导读:目前正在解读《PIC16F1829 DATA EEPROM 读写操作示例》的相关信息,《PIC16F1829 DATA EEPROM 读写操作示例》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《PIC16F1829 DATA EEPROM 读写操作示例》的详细说明。
简介:本文给出一个PIC16F1829 DATA EEPROM 读写操作示例,感兴趣的朋友可以看看。

#defineReadRomString_CALL#defineWriteRomString_CALL//*************************************// 函数名称:ReadRomByte// 函数功能:从ROM的某一地址读数据// 入口参数:所读数据的地址// 出口参数:所读地址的数据//***************************************uint8 ReadRomByte(uint8 addr){    uint8 num;    while(RD==1);//等待读完成    EEADR=addr;//写入要读的址址    EEPGD=0;//操作EEPROM    RD=1;//执行读操作    while(RD==1);//等待读完成    num=EEDATA;    return num;//返回读取的数据}//*************************************// 函数名称:WriteRomByte// 函数功能:从RAM的某一地址写数据// 入口参数:所写数据的地址及数据// 出口参数:无//***************************************void WriteRomByte(uint8 addr,uint8 data){uint8 Tmp ;uint8 i ;Tmp = ReadRomByte(addr) ;if(Tmp == data) return ; //如果读出数据与要写的数一样 直接返回for(i=3;i>0;i--)//最多写三次{    while(WR==1);//等待写完成           EEADR=addr;//写入地址信息    EEDATA=data;//写入数据信息    EEPGD=0;//操作EEPROM    WREN=1; //写EEPROM允许    EECON2=0x55;//写入特定时序    EECON2=0xaa;    WR=1; //执行写操作    while(WR==1);//等待写完成    WREN=0;//禁止写入EEPROMTmp = ReadRomByte(addr) ;if(Tmp == data){break ;}}}//*************************************// 函数名称:ReadRomString// 函数功能:从RAM读一连串的数据// 入口参数:所读数据的首地址 读得的数据的存放首地址 读数据 长度// 出口参数:所读地址的数据/***************************************/#ifdefReadRomString_CALLvoid ReadRomString(uint8 InAddr,uint8 *OutAddr,uint8 DataLong){uint8 i ;for(i=DataLong;i>0;i--){while(RD==1);//等待读完成EEADR = InAddr;//写入要读的址址EEPGD = 0;//操作EEPROMRD = 1;//执行读操作while(RD==1);//等待读完成*OutAddr = EEDATA;InAddr ++ ;//存储地址加1OutAddr ++ ; //数据地址加1}}#endif//ReadRomString_CALL//*************************************// 函数名称:WriteRomString// 函数功能:从RAM写一连串的数据// 入口参数:要写进RAM的首地址 要写的数据 写数据的长度// 出口参数:无/***************************************/#ifdefWriteRomString_CALLvoid WriteRomString(uint8 InAddr,uint8 *InData,uint8 DataLong){uint8 i,j;uint8 Tmp ;for(i=DataLong;i>0;i--){//读出的和要写的数据一致 直接写下一个数据Tmp = ReadRomByte(InAddr) ;if(Tmp != (*InData))  //读数据与要写数据不一至 进行写 操作{for(j=3;j>0;j--)//最多写三次{    while(WR==1);//等待写完成           EEADR = InAddr;//写入地址信息    EEDATA = *InData;//写入数据信息    EEPGD = 0;//操作EEPROM    WREN = 1; //写EEPROM允许    EECON2 = 0x55;//写入特定时序    EECON2 = 0xaa;    WR = 1; //执行写操作    while(WR==1);//等待写完成    WREN = 0;//禁止写入EEPROMTmp = ReadRomByte(InAddr) ;if(Tmp == (*InData)){break ;}} }InAddr ++ ; //存储地址加1InData ++ ; //数据地址加1} }#endif//WriteRomString_CALL

提醒:《PIC16F1829 DATA EEPROM 读写操作示例》最后刷新时间 2024-03-14 00:58:10,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《PIC16F1829 DATA EEPROM 读写操作示例》该内容的真实性请自行鉴别。