?? 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 + -