#include <reg52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/*寄存器*/
sfr IAP_DATA = 0xE2;//数据寄存器
sfr IAP_ADDRH = 0xE3;//地址寄存器高8位
sfr IAP_ADDRL = 0xE4;//地址寄存器低8位
sfr IAP_CMD = 0xE5;//命令寄存器
sfr IAP_TRIG = 0xE6;//命令触发寄存器
sfr IAP_CONTR = 0xE7;//命令寄存器
/*IAP_CMD寄存器命令*/
#define CMD_STAND 0x00;//待机
#define CMD_READ 0x01;//读
#define CMD_WRITE 0x02;//写
#define CMD_ERASE 0x03;//擦除
/*IAP_CONTR寄存器命令*/
//IAP_CONTR最高位为1时允许读写和擦除
//#define IAP_ENABLE 0x80 //系统晶振<40MHz
#define IAP_ENABLE 0x81 //系统晶振<20MHz
//#define IAP_ENABLE x82 //系统晶振<10MHz
//#define IAP_ENABLE 0x83 //系统晶振<5MHz
//定义EEPROM扇区
#define IAP_ADDR1 0x2000;
sbit LED0=P2^0;//定义led IO口
sbit LED1=P2^1;
sbit K0=P1^4;//定义按键 IO口
sbit K1=P1^5;
void IapClose();//关闭IAP
void IapClear(uint addr);//清空一个扇区
uchar IapRead(uint addr);//读EEPROM中的数据
void IapWrite(uint addr,uchar dat);//向EEPROM写数据
void main()
{
uchar edata;
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/*寄存器*/
sfr IAP_DATA = 0xE2;//数据寄存器
sfr IAP_ADDRH = 0xE3;//地址寄存器高8位
sfr IAP_ADDRL = 0xE4;//地址寄存器低8位
sfr IAP_CMD = 0xE5;//命令寄存器
sfr IAP_TRIG = 0xE6;//命令触发寄存器
sfr IAP_CONTR = 0xE7;//命令寄存器
/*IAP_CMD寄存器命令*/
#define CMD_STAND 0x00;//待机
#define CMD_READ 0x01;//读
#define CMD_WRITE 0x02;//写
#define CMD_ERASE 0x03;//擦除
/*IAP_CONTR寄存器命令*/
//IAP_CONTR最高位为1时允许读写和擦除
//#define IAP_ENABLE 0x80 //系统晶振<40MHz
#define IAP_ENABLE 0x81 //系统晶振<20MHz
//#define IAP_ENABLE x82 //系统晶振<10MHz
//#define IAP_ENABLE 0x83 //系统晶振<5MHz
//定义EEPROM扇区
#define IAP_ADDR1 0x2000;
sbit LED0=P2^0;//定义led IO口
sbit LED1=P2^1;
sbit K0=P1^4;//定义按键 IO口
sbit K1=P1^5;
void IapClose();//关闭IAP
void IapClear(uint addr);//清空一个扇区
uchar IapRead(uint addr);//读EEPROM中的数据
void IapWrite(uint addr,uchar dat);//向EEPROM写数据
void main()
{
uchar edata;