怎样在STC89c52单片机的EEPROM里写入和读出一个unsigned int型的数据啊?

如题所述

在STC89C52单片机中,对EEPROM进行写入和读出unsigned int类型的数,涉及到的编程较为复杂。下面提供一个参考程序,以帮助理解这一过程。

首先,定义必要的寄存器和函数。例如,ISP_DATA、ISP_ADDRH、ISP_ADDRL、ISP_CMD、ISP_TRIG等都是ISP/IAP操作时使用的特殊功能寄存器,而eeprom_write、eeprom_read、eeprom_erase、delay和timerset等函数分别对应着对EEPROM的写入、读出、擦除操作和延时、时间设定。

在main主程序中,首先定义了一个标志变量flag2用于控制程序流程。接着,进行了EEPROM的擦除和写入操作。通过读取TSET2的值,对P1_0进行控制,实现振动功能。

在timerset函数中,实现了延时时间的设定。当按键P3_3被按下时,增加TSET1的值;当按键P3_4被按下时,减少TSET1的值。设定完毕后,通过擦除和写入EEPROM,更新TSET2的值。

在eeprom_write函数中,首先通过ISP_CMD寄存器设置为写模式,然后将数据TSET1写入ISP_DATA寄存器,最后通过ISP_CONTR寄存器使能ISP/IAP,触发写操作。

在eeprom_read函数中,通过设置ISP_CMD寄存器为读模式,读取ISP_DATA寄存器中的数据,并返回。

在eeprom_erase函数中,设置ISP_CMD寄存器为擦除模式,然后通过ISP_CONTR寄存器使能ISP/IAP,触发擦除操作。

延时函数delay通过嵌套循环实现。其中,TSET2的值影响延时时间,通过eeprom_read读取其值,实现对延时时间的动态调整。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜