unsigned char EEPROM_read(unsigned char addr)
{
unsigned char temp;
EEADR=addr;//写入地址
EEPGD=0;//bit6=0,访问数据存储器
CFGS=0;//bit7=0,访问存储器
EECON1bits.RD=1;//启动读操作
GIE=0;//禁止总中断
//while(RD);//等待读取完成
temp=EEDATA;//读取数据
GIE=1;//打开总中断
return temp;
}
void EEPROM_write(unsigned char addr,unsigned char data)
{
EEADR=addr;//写入地址
EEDATA=data;//写入数据
EEPGD=0;//bit6=0,访问数据存储器
CFGS=0;//bit7=0,访问存储器
GIE=0;//关闭总中断
WREN=1;//使能写操作
EECON2=0x55;//必要时序
NOP();
EECON2=0xAA;//必要时序
NOP();
EECON1bits.WR=1;//启动写操作
while(EECON1bits.WR==1);//等待写操作完成
GIE=1;//打开总中断
WREN=0;//禁止写操作
EEDATA=0;
}
这段代码有问题吗?读出来的一直是出厂默认值,写不进去
|