stc15XX单片机的EPROM读写

关于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开始为第一扇区。

 

你可能感兴趣的:(单片机)