![单片机原理及应用系统设计](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=1739301020-1gXSJO2fL9YobT90F3PX43CHqMefjCnd-0-40e022eff82704ac7b270b10a720afbd)
2)编写EEPROM初始化函数。
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/47_03.jpg?sign=1739301020-r2S8fQ2VfCeTQg1hW9oBi1BFP6AgI6wm-0-1489b3e0a4a26c37c5eac2e25224d256)
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/48_01.jpg?sign=1739301020-DxmqumOFKC7EMIKsXI7v5oiaep3toHlz-0-3c7a0459ef3b86018d0a1fa51a85aeff)
3)编写擦除函数。
擦除是指对某个扇区512字节全部擦除,该扇区中任何一个字节单元的地址,就代表该扇区的地址。
以下为扇区擦除函数:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/48_02.jpg?sign=1739301020-ZgZlvICrhoTzkGH0IYGh1wqNiDydEJny-0-a12ed845304a144ab1fa90ac23fae53b)
4)编写字节写入函数。
STC片内EEPROM写入数据是按字节编程,只能将字节中的“1”位写成1或0,可将0写成0,而无法将0写成1,所以,在写入数据前,一定要用扇区擦除将所有字节变为0xff。
以下为字节写函数:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/48_03.jpg?sign=1739301020-fTgspDOWDEge7GxItEgAROas3xZAlBgl-0-6e99d09e9333ea4953ecea135b619baf)
5)编写字节读取函数。
以下为字节读取函数:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/49_01.jpg?sign=1739301020-ZWbgbNVcDCxRzeufv00WsGuURuadmXK3-0-544744080d8885b685658b0b74aa1b3b)
6)在需要读取EEPROM字节内容时调用字节读取函数。
7)在需要进行“写”EEPROM字节时,先调用字节擦除函数,将字节内容擦除成FFH后,再调用字节写函数,将数据写入EEPROM的地址单元中。