• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请问一下 用89c52芯片 程序里有一个值,我想实现开机后实

chenxing940122 2017-12-13 浏览量:1277
请问一下 用89c52芯片 程序里有一个值,我想实现开机后实现关机之前的值,怎么定义?
比如说烧入时是5,按了两下变成了7. 断电后开机想让它还是7,可以吗?
5 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 使用EEPROM或是FLASH,或是使用片上的FLASH(有一些51的芯片,支持对片上的程序空间的FLASH进行读写)

    时实存储这个值,更改后立刻进行存储。

    开机后先读取这个值,再赋值给你的变量。

    由于可能存在这个值刚更改而没有存储时就断电的情况,所以,要加断电检测,并加个大的电容或是后备电池,检测到断电后存储后不再运行其他程序。直到断电关机

    • 发布于 2017-12-13
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了 :外观的损坏会影响到耐焊性、可焊性、焊接不良、上机开路、磁路破损等等等问题,建议联络供应商退换货 回复

其他答案 数量:9
  • 如果就C52单片机本身来说,你要断电保存数据,你需要将数据保存才FLASH里面才行,这个我没试过,也不知道行不行,没听过有人实现过。

    如果你加一个EEPROM,那肯定行,比如AT24C02 等。

    也有其他的单片机内部本来就集成了EEPROM,如stc12c5a60s2。


    也有STM32单片机,直接用一个没有用过的FLASH扇区来保存数据,也是可以的。

    • 发布于2017-12-13
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :CD16FD222JO3 回复

  • 建议还是外挂EEPROM或者FRAM,Flash即使能写,次数多了也容易损坏,EEPROM几十万次写入没问题,FRAM万亿次写入没问题。
    • 发布于2017-12-13
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :2180CL08-U 回复

电子老工程师 回复了  :尾缀包装区别,-2代表卷装 回复

  • 需要用外部存储器暂存数据,实现实时更新
    • 发布于2017-12-14
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :湿气敏感性等级 (MSL) 2 回复

  • 加个AT24C02,i2c通信,有断电保存功能
    • 发布于2017-12-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 外加eeprom或者flash,如果不加,可以挂一个电池,用于保存ram数据…直接存在寄存器中
    • 发布于2017-12-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以接eeprom如AT24C02.修改后将这个值写入eeprom,开机时将这个值读出就行了。这是AT24C02的例程http://www.51hei.com/mcu/3029.html

    STC89C52也有内部eeprom可以不外接其他芯片直接存在单片机中,这是介绍加例程https://wenku.baidu.com/view/b3a7878884868762caaed5da.html

    • 发布于2017-12-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种功能,只能是存储在掉电不丢失数据的存储器里,上电的时候再读出来。
    • 发布于2017-12-17
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :代表包装 回复

  • 其实就是掉电存储吧,用EEPROM就行了。

    • 发布于2017-12-13
    • 举报
    • 评论 1
    • -1
    • 0
电子老工程师 回复了  :请核实料号与厂牌是否正确https://invensense.tdk.com/wp-content/uploads/2016/06/DS-000189-ICM-20948-v1.3.pdf 回复

相关问题

问题达人换一批

请问一下 用89c52芯片 程序里有一个值,我想实现开机后实