Ⅰ 基于PIC单片机对EEPROM读写的一种方法
是需要读写程序吗?
从指定地址下读取一个字节:
uchar ReadEEPROM(uchar EE_Addr)
{
EEADR=EE_Addr; //给地址
EEPGD=0; //
RD=1; //开始读
return EEDATA; //直接返回读取的EEPROM
}
将一个字节的数据写入指定地址里:
bool WriteEEPROM(uchar EE_data,uchar EE_addr)
{
uchar j=0;//多次执行
EEIF=0; //clear flag
EEADR=EE_addr; //set address
EEDATA=EE_data; //set data.(one byte)
EEPGD=0; //EEPROM to be the data memory.
while(++j<10) //if there is wrong to write,begin
{
GIE=0; //关中断,保护
WREN=1; //写允许
EECON2=0x55;
EECON2=0xaa;
WR=1; //写开始,写完后硬件置0写
WREN=0; //写使能禁止
GIE=1; //开中断
while(WR); //等待写操作完成,没有判断EEIF
if(!WRERR) //如果无误,跳出程序,否则重写
return true;
}
return false;
}
Ⅱ PIC的EEPROM的读写问题
你是通过在线仿真,变量观察的么?
1.首先你的E2是片内的还是片外的。
2.如果是片外的,看看你的接口时序的情况。
3.看你的描述像是片内的flash存储器,看看读取数据的地址,是在唯一地址上读取数么。
因为片内的flash的读写时序都是硬件完成的,几乎不会出问题。
4.仔细查看下程序吧,希望对你有所帮助
是否可以解决您的问题?
Ⅲ pic单片机 的EEPROM 问题
库文件里有eeprom读写函数,直接调用吧。
可以确定你程序有问题。要么你写的时候都写成0x11,
要么你读的时候程序有问题
Ⅳ 如何读写网卡中的eeprom
PIC片内EEPROM读写都很可靠。但要注意,在Noise较强的应用环境,应该打开MCU的BOR功能,否则容易出现干扰导致的EEPROM误改写。另外,EEPROM读写程序,必须按照数据手册上的代码流程来写。
Ⅳ pic单片机EEPROM怎么编写程序啊
在你的C文件里引用EEPROM函数的头文件,eeprom_routines.h
然后在程序中使用
void eeprom_write(unsigned char addr, unsigned char value);
unsigned char eeprom_read(unsigned char addr);
这两个函数了。
这两个函数一个读一个写。比如你想写0x10到地址为0x55的EEPROM,
就写:eeprom_write(0x55,0x10);
同理,如果想读取0x55地址处的值,
就写:ee_value = eeprom_read(0x55);
如果编译时编译器提示找不到eeprom_routines.h,可以在
X:Program FilesHI-TECH SoftwarePICC9.81include 目录下找,然后复制到自己项目文件夹下。
对了,我用的是MPLab IDE,编译器使用的是PICC。
Ⅵ 读取PIC EEPROM时为什么偶尔会读出2FH读取的是累计数据,一直读取正常,为什么偶尔就出错,读出错误的数
你是通过在线仿真,变量观察的么?
1.首先你的E2是片内的还是片外的。
2.如果是片外的,看看你的接口时序的情况。
3.看你的描述像是片内的flash存储器,看看读取数据的地址,是在唯一地址上读取数么。
因为片内的flash的读写时序都是硬件完成的,几乎不会出问题。
4.仔细查看下程序吧,希望对你有所帮助
Ⅶ PIC单片机内部EEPROM数据保存读取
写程序的时候是会重新改写eeprom内容的,这个你需要修改下程序,断电验证比较合适。
Ⅷ 用PICkit3怎么操作来先写其内部EEPROM-PIC 单片机论坛
往pickit3中装载程序:
Ⅸ pic单片机的eeprom问题
我打开其头文件看了下,包括
EEPROM_WRITE(0x08,buzzValue);EEPROM_READ(0x08)这两个函数
其原型是EEPROM_WRITE(addr, value),EEPROM_READ(addr)
你要知道PICC包含什么头文件最好打开头文件的文件夹
路径是HI-TECH Software\PICC\lite\9.60\include
打开pic.h可以看到里面的内容
PICC包含pic1687x.h,这个看编译器而定,MPLAB本身没有这个头文件