void Write_eeprom(unsigned char adder,unsigned char dat)
{
NVMADDRL=adder;
NVMDATAL = dat;
__asm
MOV R5 ,#0x04
MOV _NVMCTL0,R5
MOV R5,#0x69
MOV _NVMCTL1,R5
MOV R5,#0x96
MOV _NVMCTL1,R5
SET _NVMCTL0 , 1 ;// 写存在高压,高压还原添加空指令确保后续运行正常
NOPZ
NOPZ
NOPZ
NOPZ
NOPZ
NOPZ ;// 建议10条,至少2条
NOPZ
NOPZ
NOPZ
NOPZ
MOV R5,#0X00
MOV _NVMCTL0,R5
__endasm;
}
unsigned char Read_eeprom(unsigned char adder)
{
unsigned char ret;
NVMADDRL = adder;
NVMCTL0 = 0X01;
__asm
NOPZ
__endasm;
ret = NVMDATAL;
return ret;
}
|