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