📄 eeprom.c
字号:
#include "MATH.H"
#include "STC12.H"
#include "pin.h"
#include "function.h"
#include "evariable.h"
void EE_Write( unsigned int addr,unsigned char *da ,unsigned char len)
{
unsigned char i;
if((ISP_CONTR&0x10)!=0)
{
ISP_CONTR&=0xef;
}
for(i=0;i<len;i++)
{
ISP_DATA=(*da++);
ISP_ADDRL=(unsigned char)addr;
ISP_ADDRH=(unsigned char)(addr>>8);
ISP_CMD=isp_write;
ISP_CONTR=0x8b;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
addr++;
if((ISP_CONTR&0x10)!=0)
{
ISP_CONTR&=0xef;
da--;
addr--;
}
}
ISP_DATA= 0;
ISP_ADDRL=0;
ISP_ADDRH=0;
ISP_CMD= 0;
ISP_CONTR=0x08;
ISP_TRIG= 0;
ISP_TRIG= 0;
}
void EE_Read( unsigned int addr,unsigned char *da ,unsigned char len)
{
unsigned char i;
for(i=0;i<len;i++)
{
ISP_ADDRL=(unsigned char)addr;
ISP_ADDRH=(unsigned char)(addr>>8);
ISP_CMD=isp_read;
ISP_CONTR=0x8b;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
addr++;
(*da++)= ISP_DATA;
}
ISP_DATA= 0;
ISP_ADDRL=0;
ISP_ADDRH=0;
ISP_CMD= 0;
ISP_CONTR=0x08;
ISP_TRIG= 0;
ISP_TRIG= 0;
}
void EE_Erase( unsigned int addr)
{
ISP_ADDRL=(unsigned char)addr;
ISP_ADDRH=(unsigned char)(addr>>8);
ISP_CMD=isp_eraser;
ISP_CONTR=0x83;//cpu below 8MHz
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
ISP_DATA= 0;
ISP_ADDRL=0;
ISP_ADDRH=0;
ISP_CMD= 0;
ISP_CONTR=0x08;
ISP_TRIG= 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -