Program Size: data=84.0 xdata=1751 code=16158和STC单片机里的Flash、SRAM、EEPROM是怎么对应的

Program Size: data=84.0 xdata=1751 code=16158和STC单片机里的Flash、SRAM、EEPROM是怎么对应的,第1张

1 data=840,就是变量占内存的空间为84字节程序执行时,动态变量要占用空间 ,RAM断电数据消失

2 xdata=1751,占用扩充RAm1751字节空间, 当变量或数组量比较多计算时,原始内部RAM无法完成,就会启动扩展RAM,stc内部有扩展ram,只要在Keil设置了存储模式为xdata就可以用了,不然变量占用空间大于内部空间而没启动扩充RAm就会报错

3 code=16158,就是写在单片机flash中(E^2rom,程序存储器)为16158字节,也就是程序固化到程序存储器中的字节数。

4 stc 中flash 中有的有伪E^2PROM的部分,实际不是真正数据存储器(EEPROM),但可以完成数据存储器功能,就是整个扇区去 *** 作,比较麻烦,不像真正的EEPROM可以随意地址读写。

STC8F2K64S2是没有专门的EEPROM,它的64K的FLASH即是程序存储器,又可以当EEPROM来用。如下图,STC8F2K64S2单片机数据表。画红圈一行就是,EEPROM一项为IAP,就是FLASH和EEPROM通用。所以,也不分扇区了,要保存的数据可以写在任意单元内。但要注意,千万别写在程序区了,否则就改写了程序代码了,就破坏了程序。至于要写的数据最大会是2592000,内部是十六进制数是278d00H,使用3个字节保存就够。

BYTE IapReadByte(WORD addr) 读一字节

调用:void main()

{

A=BYTE IapReadByte();//括号里输入你需要读取的数据所在的地址

//比如BYTE IapReadByte(0x33)表示读取存储在E2PROM0x33地址处 的数据给前面的变量A。

IapProgramByte() ; //括号内先输入你需要写入E2PROM的地址,然后输入写给这个地址的数据。 //比如IapProgramByte(0x33,0x45)表示你希望在E2PROM的0x33这个位置写入0x45这个数据。

IapEraseSector() ;//括号内写入你想擦除的地址。IapEraseSector(0x66)表示你想把E2PROM的0x66这个位置写成0x00或者0xff

}

以上就是关于Program Size: data=84.0 xdata=1751 code=16158和STC单片机里的Flash、SRAM、EEPROM是怎么对应的全部的内容,包括:Program Size: data=84.0 xdata=1751 code=16158和STC单片机里的Flash、SRAM、EEPROM是怎么对应的、单片机EEPROM扇区存多大数字、stc单片机EEPROM程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9806848.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存