对于传统的51单片机,这是不可能的做到的。ROM中的数据只能用code 定义,而且是在烧录程序时烧录到ROM中,在运行程序时,只能读,是不能再改写的,所以,只能保存常量,而不能保存变量。
不用等运行时不能改写,就是程序有改写ROM的语句,编译时都是错的。但是,要用STC12,STC15系列的单片机(STC8是更新的系列),这都不成问题,有多种解方法。
方法一,内部RAM的容量大于256B,足够你存放变量数据的。如果还不够,用方法二,闪部有大容量的EEPROM存储器,即可存放常量,也可存放变量。
方法三,选IAP型号的,ROM即可烧录程序,又可以在运行程序时,当变量去改写ROM单元数据了。