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