/************************************************************************
* 擦除NVM区域,可以选择擦除第几页
*************************************************************************/
void EraseNVMPage(unsigned char ErasePage_Num)
{
switch(ErasePage_Num)
{
case 0:
NVMADDR=0x00; // NVM第0页
break;
case 1:
NVMADDR=0x40; // NVM第1页
break;
case 2:
NVMADDR=0x80; // NVM第2页
break;
case 3:
NVMADDR=0xc0; // NVM第3页
break;
default:
break;
}
NVMCON|=0x80; // EER = 1时进行擦除工作
}
/************************************************************************
* 向NVM地址中写入数据
*************************************************************************/
void WriteNVM(unsigned char NVM_WAddr,unsigned char NVM_WData)
{
NVMDAT = NVM_WData; // 数据
NVMADDR = NVM_WAddr; // 地址
NVMCON |= 0x40; // EWR = 1写NVM
}
/************************************************************************
* 读取NVM数据并送串口,用于检验是否写入NVM数据存储器成功
*************************************************************************/
void WriteSerialPort(unsigned char S_Data)
{
unsigned int i = 10000;
SBUF = S_Data; // 写串口
while(!TI);
TI = 0;
while(i--);
}