STC單片機EEPROM功能模塊
#include
#include
// 聲明與IAP相關的SFR
sfr IAP_DATA = 0xE2;
sfr IAP_ADDRH = 0xE3;
sfr IAP_ADDRL = 0xE4;
sfr IAP_CMD = 0xE5;
sfr IAP_TRIG = 0xE6;
sfr IAP_CONTR = 0xE7;
// 定義ISP/IAP/EEPROM命令
#define CMD_IDLE 0
#define CMD_READ 1
#define CMD_PROGRAM 2
#define CMD_ERASE 3
// 定義IAP_CONTR的值ENABLE_IAP,根據時鐘頻率有所不同
//#define ENABLE_IAP 0x80 // 時鐘頻率<30MHz
//#define ENABLE_IAP 0x81 // 時鐘頻率<24MHz
//#define ENABLE_IAP 0x82 // 時鐘頻率<20MHz
#define ENABLE_IAP 0x83 // 時鐘頻率<12MHz
//#define ENABLE_IAP 0x84 // 時鐘頻率<6MHz
//#define ENABLE_IAP 0x85 // 時鐘頻率<3MHz
//#define ENABLE_IAP 0x86 // 時鐘頻率<2MHz
//#define ENABLE_IAP 0x87 // 時鐘頻率<1MHz
// EEPROM數(shù)據保存的首地址
#define IAP_ADDRESS 0x0800 // 應跳過程序所占空間的位置
// 禁止ISP/IAP/EEPROM功能
void IapIdle()
{
}
// 從EEPROM中讀一個字節(jié)
BYTE IapReadByte(WORD addr)
{
}
// 寫一個字節(jié)到EEPROM
void IapProgramByte(WORD addr, BYTE dat)
{
}
// 擦除EEPROM中的一個扇區(qū)
void IapEraseSector(WORD addr)
{
}
評論