单片机掉电数据保存共5页
单片机程序存储空间和数据存储空间详解

创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*单片机程序程序存储空间(ROM)和数据存储空间(RAM)详解问题:STC89C52RC单片机:8K字节程序存储空间,512字节数据存储空间,内带2K 字节EEPROM存储空间;它们分别存的是什么?8K的程序存储空间是存储代码,也就是你写的程序生成的HEX文件的,相当于电脑系统的C盘。
512字节相当于内存,存储空间存储变量,像u8 x,y,z,u32 a之类的临时变量掉电后数据丢失。
2K eeprom相当于电脑系统的硬盘,数据写入后掉电不丢失。
主要是单片机在运行的过程中写入数据或者读取数据。
像设置的闹铃值,设置好了就不用每次都去设置了,保存在单片机里面,即使掉电了,设置的数据也不会丢失,只需单片机上电再读取就好了。
单片机原理及系统结构在此先详细分析51单片的存储器结构和寻址方法,再分析片外存储器的扩展,最后给出设计原理并分析系统结构。
图一:存储空间分布51单片机存储器结构分析8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。
这种程序存储和数据存储分开的结构形式被称为哈佛结构。
MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。
所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。
而ARM (甚至是x86)这种冯诺依曼结构的MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块,各自为政。
MCS-51单片机存储器的配置特点①内部集成了4K的程序存储器ROM;②内部具有256B的数据存储器RAM(用户空间+SFR空间);③可以外接64K的程序存储器ROM和数据存储器RAM。
单片机掉电保护)总结

单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1 简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOS RAM。
CMOS型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMS RAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
单片机系统中的掉电检测与数据存储问题

5)理论Байду номын сангаас算
(1)按恒流充放电的简化计算:Q = CV = IT.Q是电量,C是电容量,V是电压,I是电流,T是时间
那么T=CV/I,在本例中可以估算时间为 T= 0.0033f*(5.0V-3.8V) / 0.012A = 0.33s,即330ms.
330/8.5 = 38.8mS,即最多可以保存38字节数据到EEPROM中,38字节对于本应用已经足够。
1)总体思路
由于电能表的计量是要求持续性的,而主供电系统不可能是持续的,注意这里需要一个掉电检测与数据存储的问题。首先检测出供电系统已经断电,然后启用备用电源存储数据,而且数据必须存储在掉电不易失的存储器(如EEPROM,FLASH等)中。
本应用中,需要检测出掉电后备用电源能提供足够的电能供单片机进行数据存储。总体思路,本应用中单片机采用的是STC89C58RD+,单片机内部已经集成了16K的EEPROM,所以不需要另外外接存储器。ADE7755已经自带了电源监控功能,前面的ADE7755的介绍中已经有所描述,所以亦无须担心。这里只需要解决好单片机的掉电问题即可。在系统的稳压前端设置监测点,当监测点的电压下降到另一个基准比较电压时产生单片机外部中断。当单片机接收到外部中断后启动数据存储程序,将数据存储到片内EEPROM内。当主供电系统恢复供电后,单片机首先读取EEPROM数据,然后再恢复计数。
3)备用电源
虽然备用电源可以采用可充电电池,大电容等方案,但由于这里所需要的电量并不是很大,持续时间也不需要很长,只需要能完成数据存储即可。所以这里选择了大电容作为备用电源这一方案。选择了在稳压后端与单片机电源端直接并联了两个达3300uF的大容量电解电容。同时,为安全起见,在单片机的电源输入端还串入了一个低正向压降压降的二极管来阻止大电容向除单片机意外的其他电路放电。
掉电保存方案

掉电保存方案
掉电保存方案主要通过在系统中加入掉电检测电路和掉电数据保存功能来实现。
下面是一种常见的单片机掉电检测电路和掉电数据保存方案:
单片机掉电检测电路通常由法拉电容实现。
法拉电容具有大容量、高储能的特性,能够储存足够多的电能。
在电源断电的情况下,法拉电容可以通过电荷泵电路等将电力输送给单片机,使其保持工作状态,并将数据保存在存储器中。
当电源恢复供电时,单片机将继续执行任务,并且可以从存储器中恢复掉电前保存的数据。
掉电数据保存方案通常采用数据备份和恢复机制。
在系统运行过程中,单片机可以定期将重要的数据备份到非易失性存储器中,如EEPROM、Flash等。
当电源断电时,单片机可以立即将剩余的数据写入存储器中,确保数据不会丢失。
当电源恢复供电时,单片机可以从存储器中恢复数据,确保数据的完整性。
另外,为了避免电源断电时对单片机的干扰,可以采用低功耗技术来降低单片机的工作电流,使其在断电时能够快速进入休眠状态。
同时,可以在单片机外部添加去抖动电路、滤波电路等抗干扰措施,以确保数据的准确性。
总的来说,掉电保存方案需要在硬件和软件方面进行全面设计和实现。
硬件方面需要选择合适的法拉电容、非易失性存储器等器件,软件方面需要编写相应的掉电检测和数据备份程序,以确保系统在掉电时能够正确地保存数据并恢复工作状态。
在掉电瞬间将数据存入EEPROM的方法

∙在掉电瞬间将数据存入E2PROM的方法∙作者:广西-陈瑜峰发布时间:2009-11-18 阅读次数:280 字体大小: 【小】【中】【大】在单片机的应用中,一些需要高速处理且掉电后需要保存的数据多放在单片机片内RAM中,采用备用电池保存RAM中的数据。
备用电池使用期限有限,存储的数据易受干扰,可靠性低。
将数据存在E2PROM中可靠性较高。
如果数据量较小(10个字节以内),则可采用在掉电瞬间靠电容储能将需要保存的数据存入E2PROM的方法。
在单片机系统中,常用X25045来存储数据。
89C2051和X25045的耗电量都比较低,当稳压电源的滤波电容在3000μF以上时,一检测到掉电立即关掉耗电量较大的输出,则电容的储能可以保证单片机在系统掉电后继续工作40ms以上。
X25045的存储时间为2ms/字节,50Hz交流电压掉电可在20ms内检测到,因此可以将10个字节的数据存入X25045。
这样,在单片机的正常运行期间数据存储在内部RAM中,存取速度快,掉电后数据存入E2PROM中,数据保存的可靠性高,系统电路简单、成本低。
1.硬件电路及原理由于电容的储能只能保证单片机在掉电后40ms内正常工作,掉电检测电路必须在尽可能短的时间内准确地检测到掉电。
将50Hz的交流电压转换为50Hz占空比约为50%的脉冲信号,单片机检测50Hz脉冲,如果脉冲停止则判断为掉电,立即转入掉电处理程序。
硬件电路如图1所示。
220V交流电经过变压器TI,输出9V交流电,通过1kΩ电阻R2接到光耦D1的输入端。
当交流电正半周A、B两点间的电压大于光耦的导通电压时,光耦导通,经过74LS14整形反相后输出一个高电平到单片机;当A、B两点间的电压小于光耦的导通电压时,74LS14输出一个低电平到单片机,输入到单片机的是一个占空比略小于50%的脉冲信号,高电平的脉冲宽度在5~10ms之间。
将扫描周期定为5ms,可以保证用最短的时间准确地检测到掉电(如图2所示)。
单片机掉电检测电路与单片机掉电数据保存

单片机掉电检测电路与单片机掉电数据保存
摘要: 单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM 中。
为此,...
单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM 中。
为此,通常做法是在这些系统中加入单片机掉电检测电路与单片机掉电数据保存。
用法拉电容可从容实现单片机掉电检测与数据掉电保存。
电路见下图。
这里首先用6V 供电(如7806),为什幺用6V 不用5V 是显而易见的.电路中的二极管们一般都起两个作用,一是起钳位作用,钳去0.6V,保证使大多数51 系列的单片机都能在4.5V--5.5V 之间的标称工作电压下工作.而4.5-5.5 间这1V 电压在0.47F 电容的电荷流失时间就是我们将来在单片机掉电检测报警后我们可以规划的预警回旋时间。
二是利用单向导电性保证向储能电容0.47F/5.5V 单向冲电。
两只47 欧电阻作用:第一,对单片机供电限流。
一般地单片机电源直接接。
单片机掉电保护总结完整版

单片机掉电保护总结Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM 不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOSRAM。
CMOS 型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMSRAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
AVR单片机掉电数据保护应用实例

片 机 电容 的 电压 恰好 处于 复 位 电压 以上 和 正 常 工作 电压 以
电路 中 参 数 可 以保 证 截 止 时 间超 过 1 ms,在 此 时 间 之 内 0
下 , 会 出现上 面的 现象 。这是本 人在 实际 应用 当中所 遇到 的 CP 已经进 入 正 常工作 状 态 ,在 程 序 中将 OU 就 U T端 置 “ I 1I 电
_
慢 放 电, 提供 单 片机 向 e po 存储 数据 所需 要 的时间 。所选 独 给单 片机供 电 , 片 机耗 电通 常小 于 5毫 安 , e rm 单 由于 使用 C 4 的电容 小 , 提供 的 时间 短 , 存储 数 据 不可 靠 , 选 电容 大提 供 ( 2 0If 电容 , 路 电源 的放 电时 间较长 。 另外 一路 电源经 所 20 J ) 该 时 间长 , 存储 数据 可 靠。 但是 随 之而来 的 问题是 , 电后 电容 过 d 掉 2送 到 电路 负载 中 ( c = .V) V c 53 ,通 常此路 电源 的 电流 较 放 电过程 中 , 片机 的供 电电压在 缓 慢下 降 , 单 当下将 到某 个值 大 , 过 几 十 毫 安 。 超 但还 没有 降到 复位 门 限 电压 之前 , 果此 时再 次开机 , 如 则单 片 这样 ,在 断 电后 , c V c由于 放 电 电流大 而且 滤 波 电容 小 ,
机不 能正 常启动 , 导致单 片机 重复 上 电后工作 混乱 。下面具 体 很 快放 电 , 常在 几毫秒 以 内。而 另 外一 路 c u v 由于滤 波 通 p_ , 分析 这一过 程并 给 出解 决 的办 法。 电容 大 而且 放 电电流 小 ,所 以放 电很慢 ,> 2 0If 0 6X t2 0 J 1 — X
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用法拉电容从容实现单片机掉电数据保存
电路见下:这里首先用6V供电(如7806),为什么用6V不用5V是显而易见的.这里的二极管们一般都起两个作用,一是利用单向导电性保证向储能电容0.47F/5.5V单向冲电;二是起钳位作用,钳去0.6V,保证使大多数51系列的单片机都能在4.5V--5.5V之间的标称工作电压下工作.而4.5-5.5间这1V电压在0.47F电容的电荷流失时间就是我们将来在掉电报警后我们可以规划的预警回旋时间.
两只47欧电阻也有两个作用:
1:和47UF和0.01UF电容一起用于加强电源滤波.
2.对单片机供电限流
一般电子工程师都喜欢把单片机电源直接接7805上,这是个非常不好的习惯,为什么?7805可提供高达2A的供电电流,异常时足够把单片机芯片内部烧毁.有这个电阻47欧姆电阻挡作及时把芯片或者极性插反也不会烧单片机和三端稳压器,但这电阻也不能太大,上限不要超过220欧,否则对单片机内部编程时,会编程失败(其实是电源不足).
3.对0.47F/5.5V储能电容,串入的这只47欧电阻消除"巨量法拉电容"的上电浪涌.实现冲电电流削峰
大家算一算要充满0.47F电容到5.5V,即使用5.5A恒流对0.47F电容冲电,也需要0.47秒才能冲到5.5V,既然知道了这个问题,大家就清楚:
1.如果没有47欧姆电阻限流,上电瞬间三端稳压器必然因强大过电流而进入自保.
2.长达0.47秒(如果真有5.5A恒流充电的话)缓慢上电,如此缓慢的上电速率,将使得以微分(RC电路)为复位电路的51单片机因为上电太慢无法实现上电复位.(其实要充满0.47UF电容常常需要几分种).
3.正因为上电时间太慢,将无法和今天大多数主流型以在线写入(ISP)类单片机与写片上位计算机软件上预留的等待应答时间严重不匹配(一般都不大于500MS),从而造成应答失步,故总是提示"通信失败".
知道这个道理你就不难理解这个电路最上面的二极管和电阻串联起来就是必须要有上电加速电路.这里还用了一只(内部空心不带蓝色的)肖特基二极管(1N5819)从法拉电容向单片机VCC放电,还同时阻断法拉电容对上
电加速电路的旁路作用,用肖特基二极管是基于其在小电流下导通电压只有0.2V左右考虑的,目的是尽量减少法拉电容在掉电时的电压损失.多留掉点维持时间.
三极管9014和钳制位二极管分压电阻垫位电阻(470欧姆)等构成基极上发射极双端输入比较器,实现掉电检测和发出最高优先级的掉电中断,这部分电路相当于半只比较器LM393,但电路更简单耗电更省(掉电时耗电小于0.15MA).
47K电阻和470欧姆二极管1N4148一道构成嵌位电路,保证基极电位大约在0.65V左右(可这样计算0.6(二极管导通电压)+5*0.47/47),这样如果9014发射极电压为0(此时就是外部掉电),三极管9014正好导通,而且因为51单片机P3.2高电平为弱上拉(大约50UA),此时9014一定是导通且弱电流饱和的,这样就向单片机内部发出最高硬件优先级的INX0掉电中断.
而在平时正常供电时,因发射极上也大约有6*0.22/2.2=0.6V电压上顶,不难发现三极管9014一定处于截止状态,而使P3.2维持高电平的.
下面还有两个重要软硬件要点和建议:
1.硬件要点:凡是驱动单片机外部口线等的以输出高电平驱动外部设备,其电源不能和电片机的供电电压VCC去争抢(例如上拉电阻供电不取自单
片机VCC).而应直接接在电源前方,图中4.7K电阻和口线PX.Y就是一个典型示例,接其它口线PX.Y'和负载也雷同.这里与上拉4.7K电阻相串联二极管也有两个作用:
1.钳去0.6V电压以便与单片机工作电压相匹配,防止口线向单片机内部反推电.造成单片机口线功能紊乱.
2.利用二极管单向供电特性,防止掉电后单片机通过口线向电源和外部设备反供电.
上面的硬件设计,在与软件结合起来(见下面叙述)就可以保证在掉电期间,不会因法拉电容上的积累电荷为已经掉电的外部电路无谓供电和向电源反供电造成电容能量泄放缩短掉电维持时间.
2.软件要点:首先INX0在硬件上(设计)是处于最高优先级的,这里还必须要在软件保证最高级别的优先.从而确保掉电时外部中断0能打断其他任何进程,最高优先地被检测和执行.其次在INX0的中断程序入口,还要用: MOV P1,#00H
MOV P2,#00H
MOV P3,#00H
MOV P0,#00H
SJMP 掉电保存
来阻断法拉电容的电荷通过单片机口线外泄和随后跳转掉电写入子程序
模块.(见硬件要点)
有了上面的预备和细节处理,下面我们信心百倍地一道来计算0.47UF的电容从5.5V跌落到4.5V(甚至可以下到3.6V)所能维持的单片机掉电工作时间.
这里设单片机工作电流为20MA(外设驱动电流已经被屏蔽)不难算出:
T=1V*0.47*1000(1000是因为工作电流为豪安)/20=23.5秒!!!!!
天!这个对单片机而言相当于从原始社会到共产主义社会的历史慢长.休说是写内部FLASH ROM,就是从新写片子本身都能写5
希望以上资料对你有所帮助,附励志名言3条::
1、世事忙忙如水流,休将名利挂心头。
粗茶淡饭随缘过,富贵荣华莫强求。
2、“我欲”是贫穷的标志。
事能常足,心常惬,人到无求品自高。
3、人生至恶是善谈人过;人生至愚恶闻己过。