社区
单片机/工控
帖子详情
新人求教!!! STC89C52单片机掉电数据保存程序
Stenph
2017-10-21 10:08:24
求STC89C52单片机关掉电源之后能把程序中的某个变量(比如说a)保存下来,下次启动之后还是变成上次的数据。比如第一次用的时候a=100而关电源时是a=200,;那么下次开机时a=200....一次类推。希望要纯软件,不希望用到硬件功能。希望大佬能给完整的代码。
...全文
3970
4
打赏
收藏
新人求教!!! STC89C52单片机掉电数据保存程序
求STC89C52单片机关掉电源之后能把程序中的某个变量(比如说a)保存下来,下次启动之后还是变成上次的数据。比如第一次用的时候a=100而关电源时是a=200,;那么下次开机时a=200....一次类推。希望要纯软件,不希望用到硬件功能。希望大佬能给完整的代码。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
of123
2017-10-25
打赏
举报
回复
STC89C52 中有 4KB 称为 EEPROM 的非易失性存储空间,实质上也是 Flash。分开称呼是为了和程序存储所用的 Flash 加以区分。 你可以将掉电不丢的数据写入其中。因为也是 Flash 介质,也需要先擦后写。它的页长是 512 字节。
of123
2017-10-23
打赏
举报
回复
无论什么芯片,掉电保护的原理,就是将数据写入非易失性存储器。 现在的芯片,一般集成的非易失性存储器是 NOR Flash。它的特点是页擦后才能字节写或字写。 因此,你的保存策略要适当改变。假设你只保存一个变量,占用 4 字节,你的 Flash 页长是 512 字节。那么你需要 2 页来缓存它,才能保证任何情况下不会丢失所有(上一次和当前)数据。 开始时,你向第一页陆续写入。开机读取则是逆向的,读到的第一个不为 FFFFFFFF 的单元就是你上次的数据。你同时记下地址,下次就写入下一个单元地址。当第一页写满时,你先写第二页的起始单元,然后擦除第一页。这样,无论哪一个瞬间掉电,你都不会失去所有数据。第二页写满的处理方法类似。 很显然,你上电读的规则是,首先读第二页起始单元,如果为空,从第一页最后单元逆向搜索;否则从第二页最后单元逆向搜索。 更精致的防止写操作中途掉电的方案是,用 8 字节来表示你的变量,4 字节变量加上 4 字节 00000000 完成标志。如果逆向搜索到最后非空单元不是全 0,则再向前搜索。(其实,如果你用 3 字节足以容纳变量的话,对于 51 系列以字节为单位写入的芯片,后面加 1 字节完成标志就够了。) 如果你要保存的变量不止 1 个,你就将所有要保留的数据组成固定格式的串,以完成标志结尾。你的串长最好是能被页长整除的。否则,页尾空闲区不足串长时,就要从下一页开始写整个串。也就是串不跨页。
The sleeping lion
2017-10-23
打赏
举报
回复
我的开发板烧进程序之后就会自动保存,比如烧进蜂鸣器响的程序断电以后再开了还是会响直到你重新烧一个新的程序
tianxj001
2017-10-22
打赏
举报
回复
1
可以采用内部EEPROM ,其实是用FLASH模拟的。有专门的操作命令,具体的看
http://blog.sina.com.cn/s/blog_72359bde0101975q.html
STC
89C52
单片机
掉电
数据
保存
程序
:让
数据
安全无忧
STC
89C52
单片机
掉电
数据
保存
程序
:让
数据
安全无忧 去发现同类优质开源项目:https://gitcode.com/ 在当今科技迅速发展的时代,
数据
安全显得尤为重要。对于
STC
89C52
单片机
开发者来说,如何在设备
掉电
时确保
数据
不丢失,成为了一个关键问题。本文将详细介绍一个开源项目——
STC
89C52
单片机
掉电
数据
保存
程序
,帮助开发者轻松解决这一问题。 项目介绍
STC
89C52
单片机
掉电
数据
...
stc
89c52
单片机
另外,T2EX的负跳变使T2CON中的EXF2置位,EXF2也像TF2一样能够产生中断(其向量与定时器2溢出中断地址相同,定时器2中断服务
程序
通过查询TF2和EXF2来确定引起中断的事件),捕获模式。如果定时器2中断被使能,则当TF2或EXF2置1时,定时器2递增计数,计数到0FFFFH后溢出并置位TF2,还将产生中断(如果中断被使能)。在访问8位地址的外部
数据
存储器(如执行“MOVX @R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
STC
89C52
单片机
掉电
数据
保存
程序
STC
89C52
单片机
掉电
数据
保存
程序
去发现同类优质开源项目:https://gitcode.com/ 本仓库提供了一个
STC
89C52
单片机
掉电
数据
保存
程序
的代码,该
程序
能够帮助用户在
单片机
掉电
的情况下,有效
保存
数据
,防止
数据
丢失。 代码清晰易懂,非常适合想要深入了解和学习
STC
89C52
单片机
数据
保存
机制的工程师和爱好者。在使用过程中,你将能够掌握如何通过编程实现
数据
的有效
保存
和保护。 欢迎...
STC
89C52
单片机
内部EEPROM驱动
STC
89C52
单片机
内部带有4K的EEPROM,严格来说,应该是4K的FLASH,它分为8个扇区,每个扇区有512个字节。读写
数据
只能按字节操作,擦除
数据
只能按扇区操作。 由于它
掉电
不易失的特性,可以用来存储
程序
运行过程中产生的用户
数据
,
掉电
可
保存
。
基于
STC
89C52
RC
单片机
的密码门锁
基于
STC
89C52
RC
单片机
的密码门锁门锁介绍门锁软硬件介绍
STC
89
89C52
单片机
LCD1602显示屏矩阵键盘L298N电机驱动和电动推杆门锁实物展示门锁代码展示参考文档总结 门锁介绍 这个门锁是我2018年暑假做的一个小作品,是我入门
单片机
后的第二个作品,第一个是一个船,使用串口通讯,完成了对船的遥控,而在假期,利用放假时间做了这个门锁,做出来已经好长时间了,就做个简单的展示,为刚学51单...
单片机/工控
27,522
社区成员
28,796
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章