mcu-51单片机是什么意思?
MCU是微处理器的意思。处理器的内核有很多种。比如,ARM核,8051核。51单片机是指它的内核是51。
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。
怎么在keil4中添加stc单片机?
1)以KEIL C9.51A为例,原来在【Project】菜单 建立新的Project时,设备列表是不包含STC单片机的。
2)先退出KEIL(以免冲突),运行STC-ISP V6.31(或更高版本,可于STC官网下载), 在右侧的【Keil关联设置】标签点击【添加MCU型号到Keil中】按钮,系统提示“STC型号添加成功!”即可将全系列宏晶STC单片机添加到KEIL中。
3)重新启动KEIL,在Project 建立新的Project时,会提示选择原来的设备库或STC单片机库,选【STC MCU Database】即可。
4)这时可在树形菜单选择对应的STC单片机了。
请教单片机掉电后,如何快速的保存数据问题?
针对题主的问题,我想应该从以下几个方面入手:
尽量选用内部的flash来存储数据,内部flash的读写速度快,可靠性高。
如果用外置的flash或者是eeprom进行存储,flash一般是spi接口,考虑到电磁干扰,MCU的响应速度等问题,即使是采用MCU的硬件SPI模块进行通信,SPI的clock时钟最高也就1MHz左右,发送1个字节的数据大概需要10us,不考虑擦除flash的时间,存储100个字节的数据,如果考虑可靠性,需要读取验证,大概需要5ms左右的时间。
而eeprom一般采用IIC接口,与SPI接口类似,以高速IIC进行通信,存储100个字节的数据至少需要5ms左右的时候。
FLASH的特点是写数据只能由1改写为0,由0改写为1需要整个page,或者整个sector,或者整个block进行擦除。
以STM32F051为例,一个page为1kByte,一个block为64kByte,擦除一个page大概耗时约20ms,在整个擦除过程中,整个MCU是挂机的,也就是不执行任何操作。而FLASH的写操作比较快,大概1个Byte耗时1us。
需要有掉电检测电路,掉电检测需要通过检测给MCU供电的LDO或者DC-DC的前级电压。
比如MCU通过12V-3.3V的LDO供电,则需要通过检测12V的电压来判断是否断电。
将12V通过电阻分压之后,接入MCU的A/D检测口来判断是否掉电。
MCU供电的LDO或者DC-DC的前级并联足够的电容,以确保电容的供电能保证MCU将数据写入。
可以通过以下的步骤确认电容的大小:
评估由掉电时前级电压供电的工作电流大小,MCU一旦检测到掉电,需要切掉耗电大的输出,比如控制继电器输出的I/O口需要立即断开。比如20mA。
确认LDO的最低输入电压,比如5.3
确认判断掉电的电压,比如10V,确认掉电开始到LDO最低输入电压之间的压差,比如4.7V
确认写入所有数据所需要的时间,比如20ms。
根据公式计算所需电容的容量,C=IT/U=20mA20mS/4.7V=85uF。可选择100uF的电容。
MCU一旦检测到掉电,需要切掉耗电大的输出,比如控制继电器输出的I/O口需要立即断开。
在正常工作时,事先准备一块存储空间,将其擦除成为0xFF。
检测到掉电之后,可以不需要擦除FLASH内容,可以直接写入数据,可以节省大量的时间。