描述

掉电保护简介

掉电数据保护是系统设备一个重要的功能。

目前,掉电数据保护的方法主要有2种:

(1)加足够容量备用蓄电池,使系统掉电后继续工作;

(2)不加备用电池,把掉电时需要保护的数据存储在非易失性存储器中,如FLASH和EEPROM。

第一种方法器件体积大、费用高并且蓄电池寿命短;第二种方法简单,但擦写器件的寿命有限。本文在第二种的基础上提出一种改进方法,即利用LM358作为电压比较器,当检测到系统掉电时才将数据写入EEPROM中。该方法不仅实现了系统数据掉电的保护,而且延长了EEPROM的寿命。

基于LM358的单片机掉电保护电路设计

如图1,通过调节R2,使系统正常供电时,Ua》Ub=3.5V,c端输出高电平;当系统掉电时,因二极管D1的隔离,使LM358得不到供电。由于电容C2和电感L的存在,电容C2和电感L1继续为单片机提供短暂时供电,并且因下拉电阻R5的存在,使得c端输出低电平。用于触发单片机INT0中断。

根据STC12C5A60S2系列单片机资料,对EEPROM写一个字节和擦除一个扇区所需的时间分别为55μs和21ms。正常模式下,典型功耗为2mA-7mA。5V单片机和3.3V单片机对EEPROM进行操作的有效最低电压分别为Umin=3.7V和Umin=2.4V。

系统掉电后,等效电路模型为RLC串联回路。放电过程时电路的微分方程为:

根据R、L和C的参数值的不同,可分为欠阻尼振荡状态、临界阻尼状态、过阻尼状态。上面的方程可分为以下三种:

综上所述:当负载R一定时,选取合适的电容和电感(本文选取C 2 =6600uf/25V、L 1 =0.1H)。L 1 和C 2 的具体参数可通过试验测试得到。只要u c (t)从初始状态的u c (t)| t=0 衰减到u c (t)| t=t0 =U min 的时间大于维持触发中断对EEPROM进行操作所需的时间t0就能满足系统正常工作的要求。

单片机软件设计

主程序和中断服务子程序流程图分别如下图2和图3所示。

图2:主程序

图3:中断服务子程序

与本设计有关的程序如下:

void main(void)

{

⋯⋯

Byte_Read(Address);

While(1)

{⋯⋯}

}

void INT0_int()interrupt 0

{

Sector_Erase(Address);

Byte_Program(Address,Date);

Delay(XX); //延时,确保系统可靠

}

分析:系统掉电时,INT0中断被触发,在中断服务子函数中对EEPROM进行擦除和写的操作。

总结

该系统的实现,应用于二维运动控制平台。系统掉电时,X轴和Y轴坐标以及其他参数被写入EEPROM中。系统重新上电后,读取出存储在EEPROM里X轴和Y轴坐标及其他参数,工作平台以该位置为起点继续沿着原设定的位置运动。

本文的核心就是基于LM358作为电压比较器,检测到系统掉电时才对EEPROM进行擦写,避免了每执行一遍程序对EEPROM进行擦除一次而造成其寿命短的问题。软、硬件结构设计简单,提高了系统的实用性。

本文给出了典型的应用程序,具有良好的可移植性。加入循环语句可以把多个数据存EEPROM或从EEPROM里读出。

打开APP精彩内容

点击阅读全文

单片机带掉电保护c语言,基于LM358的单片机掉电保护电路相关推荐

  1. matlab广域保护分区算法,基于行波信息的广域后备保护关联域识别方法与流程

    本发明属于广域后备保护技术领域,具体涉及一种基于行波信息的广域后备保护关联域识别方法. 背景技术: 随着广域测量系统的发展,全网数据共享得以实现,在信息全景化的背景下,广域保护系统将电力系统继电保护由 ...

  2. 电商系统设计MySQL_基于MySQL设计的图书电商系统的制作方法

    本发明涉及一种图书销售系统,尤其涉及基于MySQL设计的图书电商系统. 背景技术: 相较于传统的图书经营模式,网络图书销售的成本更低,且图书信息更新快,而消费者也能够随时随地购买图书,完全不受时间和空 ...

  3. 51单片机电机测速程序c语言,基于51单片机光电编码器测速.doc

    基于51单片机光电编码器测速 PAGE PAGE 2 课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器 ...

  4. 单片机0 10秒计时C语言,基于单片机的秒,分,时的精确计时实现

    这个学期接触到了单片机,算是个微处理机,是把计算机的部分功能集成化了的.在生活中随处可见:想厨房用的电磁炉内就集成了单片机的控制,客厅挂的数字万年历也是用单片机实现的!经过了解后,我对此产生了极大的兴 ...

  5. 单片机动态从00到99C语言,基于c语言单片机秒表课程设计1.doc

    基于c语言单片机秒表课程设计1 课程设计报告 课程名称:单片机原理及应用 报告题目:秒表 学生姓名: 所在学院:信息科学与工程学院 专业班级: 学生学号: 指导教师: 2013 年 12 月 25 日 ...

  6. 单片机数码管显示程序c语言,基于STC89C52单片机的动态数码管显示C语言程序

    * 实验说明 : 8位数码管显示0~F #include #define GPIO_DIG P0 //段选 #define GPIO_PLACE P1 //位选 //--定义全局变量--// unsi ...

  7. 单片机音乐门铃实验报告 C语言,基于单片机的音乐门铃

    你好!我的博客上有几个与音乐相关的程序,你只要稍微修改一下,就应该可以用了. 看看这个可不可以! #include sbit mic=P1^0; //定义喇叭接口 sbit key=P3^7; bit ...

  8. 服务器位置超差保护,浅议基于位置服务(LBS)的隐私保护

    范勇 蔡键 摘要:LBS隐私的泄露问题不仅包含用户提交的位置和查询数据,更是包含了其中隐藏的用户身份.兴趣爱好.社会习惯.行为模式等.文章重点介绍了位置服务的几种应用场景,并且对LBS隐私保护体系结构 ...

  9. 单片机产生可调方波(c语言),为什么我用单片机做的频率可调的方波输出会有尖刺,而且会断...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include"reg52.h" #define uchar unsigned char #define uint unsigned ...

最新文章

  1. python 的文件读写方法:read readline readlines wirte   writelines
  2. 无准备,不编程——计算机达人成长之路(15)连载
  3. 多线程threading
  4. C: Answers to “The C programming language, Edition 2”
  5. JavaScript substr() 和 substring() 方法的区别
  6. tensorflow-读写数据最佳代码组合方式
  7. java 关键字volatile的作用
  8. 4种不同类别的机器学习概述
  9. Android Images
  10. Commons- BeanUtils学习笔记(转)
  11. 李海自学java_JAVA程序设计 实验一
  12. PyTorch学习—18.标准化—Batch Normalization、Layer Normalizatoin、Instance Normalizatoin、Group Normalizatoin
  13. 最值得收藏的 人工智能导论 全部知识点思维导图整理(王万良慕课课程)
  14. 自从硬派网倒闭后,就没有什么好看的IT硬件网站了
  15. 年轻时代,噢,年轻时代
  16. [离散数学]命题逻辑P_2:命题联结词
  17. celeste第二章_『第二章』 蔚蓝的剑
  18. 异步实现商品详情页查询
  19. 使用翻译的neko模块
  20. 全球与中国PMN-PT单晶市场深度研究分析报告

热门文章

  1. Linux 安装与多重引导摘要
  2. 关于安装双系统时多重引导的说明
  3. Axios实现zip文件下载
  4. 中国古代地方官制------地方行政机构之沿革简释
  5. 保险IT从业者必须知道 的健康险
  6. python实训报告pygame_20192423 2019-2020-2 《Python程序设计》实验四报告
  7. 宋宝华: kvmalloc ——倚天剑屠龙刀两大神器合体?
  8. 七年级上册英语第三单元单词课文翻译
  9. 【干货】营销拓客思维导图24式.pdf(附下载链接)
  10. 怎么做到ERP基础数据快速简单管理