2016 - 2024

感恩一路有你

单片机如何实时存储数据(单片机秒表怎么存储读取数据?)

浏览量:4610 时间:2023-03-11 10:10:46 作者:采采

单片机如何实时存储数据(单片机秒表怎么存储读取数据?)

51单片机如何存储采集的数据?

51单片机的程序存储器有片内和片外两部分。

而且无论片内程序存储器还是片外程序存储器,它们的地址都是共享的。如果片内为4kROM,则地址为0x0000-0x0FFF,0x1000-0xFFFF的地址空间为外部ROM。外部ROM的0x0000-0x0FFF这部分可以用吗?这个取决于单片机EA引脚的电平值。当EA=1时,这部分内部ROM被使用,这部分外部ROM被浪费。当EA=0时,使用外部ROM,内部ROM被浪费。用汇编的MOVC指令从代码段中读取数据,单片机会根据MOVC指令、

51单片机如何存储数据?

没有 不知道要保存哪种数据,断电保护还是缓存?

如果是为了保存不受掉电保护的缓存数据,可以使用单片机内部的RAM空间,包括20H~7FH的直接寻址区,不被SFR占用的80H~FFH的间接寻址区,也可以使用STC单片机内部的扩展RAM。

如果是保存掉电保护的数据,可以在单片机外面挂上flash或者

请教单片机掉电后,如何快速的保存数据问题?

;关于这个问题,我认为我们应该从以下几个方面着手:

尽量使用内部闪存存储数据。内部flash读写速度快,可靠性高。

如果使用外部flash或eeprom进行存储,flash通常是一个spi接口。考虑到电磁干扰和MCU的响应速度,即使使用MCU的硬件SPI模块进行通信,SPI的最大时钟也在1MHz左右,发送一个字节的数据大约需要10us。不考虑擦除闪存的时间,存储100字节的数据大约需要5ms。如果考虑可靠性,需要阅读和验证。

Eeprom一般采用IIC接口,类似SPI接口,高速IIC存储100字节数据至少需要5ms。

FLASH的特点是写数据只能从1重写到0,从0重写到1需要擦除整个页面,或者整个扇区,或者整个块。

以STM32F051为例。一个页面是1kb,一个块是64kByte。擦除一页大约需要20毫秒。在整个擦除过程中,整个MCU被挂起,即不执行任何操作。和FLASH的写操作比较快,大约1字节需要1us。

需要掉电检测电路,掉电检测需要检测给MCU供电的LDO或DC-DC的前级电压。

比如MCU采用12V-3.3V LDO供电,需要检测12V的电压来决定是否断电。

通过电阻分压12V的电压,然后连接到MCU的A/D检测口,判断是否断电。

MCU供电的LDO或DC-DC的前级并联足够的电容,保证电容的供电能保证MCU能写数据。

电容器的尺寸可通过以下步骤确定:

评估断电时前一电压提供的工作电流。一旦单片机检测到掉电,就需要切断耗电输出,比如控制继电器输出的I/O口。比如20mA。

确认LDO的最低输入电压,如5.3。

确认判断断电的电压,如10V,确认断电开始与LDO最低输入电压的电压差,如4.7V

确认写入所有数据所需的时间,例如20 ms。

根据公式计算所需电容,C=I*T/U=20mA*20mS/4.7V=85uF。可以选择100uF的电容。

一旦MCU检测到掉电,需要切断耗电输出,比如控制继电器输出的I/O口需要立即断开。

在正常操作中,预先准备一个存储空间并将其擦除到0xFF中。

检测到掉电后,可以直接写入数据,无需擦除FLASH内容,可以节省大量时间。

数据 MCU 掉电 单片 电压

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。