![单片机原理及应用系统设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/759/41309759/b_41309759.jpg)
上QQ阅读APP看书,第一时间看更新
2.10.3 EEPROM应用的步骤
如果要在用户程序中对EEPROM操作,一般按以下步骤进行。这些操作,通过汇编语言或C51语言都可以实现,以下给出的是C51程序举例,程序可在学完第4章后阅读。
1)声明并设置与EEPROM相关的寄存器。
例如:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/47_02.jpg?sign=1739024217-TVNum1WIn4E2b6o1jAuKIeVBvvOJ6Qp4-0-6c3de190563b9fbf22e0db22d7a42e3a)
2)编写EEPROM初始化函数。
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/47_03.jpg?sign=1739024217-REuxwlIFaE6vJ9g14HmUrVp5bGE14lMU-0-d091460b7d7b22533f33640231d06f9d)
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/48_01.jpg?sign=1739024217-toImpD8OyiREw7G5o2nsQrNUUSExdPEA-0-70638330ac0b1543635294046777b5bd)
3)编写擦除函数。
擦除是指对某个扇区512字节全部擦除,该扇区中任何一个字节单元的地址,就代表该扇区的地址。
以下为扇区擦除函数:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/48_02.jpg?sign=1739024217-lKmrZcOVDpp9VSSCJ2jUPvSzlpZMqCLg-0-930d84d4b5cd8139facf069ca9e229ff)
4)编写字节写入函数。
STC片内EEPROM写入数据是按字节编程,只能将字节中的“1”位写成1或0,可将0写成0,而无法将0写成1,所以,在写入数据前,一定要用扇区擦除将所有字节变为0xff。
以下为字节写函数:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/48_03.jpg?sign=1739024217-PuKZV21HK9p7wPlORFseOvO7AHKb2W2Z-0-08578d9f12981420fa0fb19fe3a6ecee)
5)编写字节读取函数。
以下为字节读取函数:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/49_01.jpg?sign=1739024217-XVuMn1H8Dqz7DIbqawoeWTN9bfOAbSKZ-0-34da464ee883fa6a9c1be054d279d657)
6)在需要读取EEPROM字节内容时调用字节读取函数。
7)在需要进行“写”EEPROM字节时,先调用字节擦除函数,将字节内容擦除成FFH后,再调用字节写函数,将数据写入EEPROM的地址单元中。