1、在电路板的供电上增加一个超级电容,保证掉电状态电压可以缓慢下降,例如5V降到45V约05秒的时间。
2、使用T0中断提供时钟,每01秒对电源电压采样一次,当电压下降到47V时,开始保存数据 *** 作。 *** 作完毕后单片机进入休眠。
3、之间和之后的工作应该没有问题了吧?用24C01,X25045等等做数据存储器都可以,建议用25045
IAP11F62X 用的不是数据掉电保护,用的不是电池 是外中断的一种扩展应用 你要想学单片机,靠别人教是没用的,最有效的办法 是要自己 读懂芯片规格书 这是搞数字电路的基本条件
利用MAX813L芯片检测外部掉电,然后通过单片机中断来控制保存掉电时的参数,在外部电源与单片机单独供电之间须加一个IN5819二极管,在单片机供电侧加一个4700uf的大电容即可保持外部断电后单片机仍可维系1S左右的时间来保存你的系统状态是搓搓有余的。
用I2C存储器吧,掉电后数据也在,可读可写,在单片机运行处理后得到的数是不能再存在FLASH里的,除非你是别外加的一个用于存储数据的FLASH,一般用于存储数据的存储器可选I2C,在掉电之后也不用供电。
1、首先你要明确,电子钟需要一直运行,如果断电了就停了,那么你断电1分钟和断电1小时候怎么才能保证上电后时间是对的
2、一般电子钟需要用专用芯片,由单片机直接读取时间数据,如PCF8563或DS1302等,1302有后备电池的接入管脚,8563则需在设计电路时提供单独的后备电源
如果以上均满足了,则没有频繁读写EEPROM的问题了
3、数码管如果直接用单片机驱动一般显示频率应大于50HZ,即两次扫描间隔时间小于20ms,或者换用74hc595(串入并出带有锁存功能8位移位寄存器)等驱动数码管
Keil C51中,code类型存放在ROM存储器中,所以运行时是不能修改的,它只能用来保存常量。当然,掉电后数据仍然是保存着的。
如果你要实现掉电保存的变量,就需要额外加一块EEPROM/Data Flash,典型的有AT24Cxx系列等,网上相关资料很好找,写一个很简单的驱动函数就可以控制了。
当然,你也可以尝试使用带有片上EEPROM功能的单片机,这方面我了解的不多,只知道STC的不少型号有这个功能(不过并不是真EEPROM,而是Data Flash,只能扇区擦除),你可以看看他们的数据手册就知道怎么控制了。
1修改startupasm。主要是去掉RAM_Inite()部分;
2跟踪CallStack,并且做好记录;
3主程序要以step作为运行指针,记好该参数;
4复位后,恢复step,恢复CallStack即可!
用STC的单片机,实现所述功能应该没有问题,如每次设定值后把数值 保存到EEPROM中,
在单片机 上电时先读出这个 数值,只要有改变 就保存就可以了,
数据保存方法 的 C 语言程序,在 STC单片机的数据手册 上都有例程
可以 上 STC 官网下载。
以上就是关于请高手指导51单片机掉电保护电路的设计全部的内容,包括:请高手指导51单片机掉电保护电路的设计、51单片机数据存储器掉电保护、单片机掉电后,如何保留程序执行后得到的变量,以便控制单片机上电时执行那段程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)