关于51单片机新增的EPROM功能就不做介绍了,几年没碰51,没想到都发展到如此地步了,非常不错。
下面是一个EPROM读写的驱动。
读写内部内存,不管是flash或是EPROM都离不开如下几个步骤:
读操作:
1 解锁此功能
2读取内存上内容
3上锁此功能
u8 EEPROM_read(u16 address) //读数据
{
u8 vl;
IAP_CMD=0x01;
IAP_ADDRH=address>>8;
IAP_ADDRL=address;
IAP_TRIG=0x5a;
IAP_TRIG=0xa5; _nop_();
vl = IAP_DATA;
IAP_CMD=0;
return vl;
}
写操作
1解锁此功能
2擦除所在扇区(如果地址上内容为0xFF可以不用擦,一擦就是整个区一起的,没有单个地址)
3写入内存
4上锁此功能
void EEPROM_write(u16 address,u8 byte) //写入数据
{
IAP_CMD=0x02;
IAP_DATA=byte;
IAP_ADDRH=address>>8;
IAP_ADDRL=address;
IAP_TRIG=0x5a;
IAP_TRIG=0xa5; _nop_();
IAP_CMD=0;
}
void EEPROM_clean(u16 address) //擦除数据
{
IAP_CMD=0x03;
IAP_ADDRH=address>>8;
IAP_ADDRL=address;
IAP_TRIG=0x5a;
IAP_TRIG=0xa5;_nop_();
IAP_CMD=0;
}
51单片机EPROM地址范围,不同的芯片大小不一样,具体可以看手册,一般都是从0x0000开始为第一扇区。