单片机的工作原理和编程语言介绍
扫描二维码
随时随地手机看文章
单片机(Microcontroller Unit, MCU)是一种集成了微处理器、存储器和各种输入输出接口的芯片,具有控制、数据处理和通信等多种功能。单片机通过编程实现各种控制逻辑,广泛应用于各种电子设备中,包括家电控制、工业自动化、数据处理、通信设备、医疗设备等领域。1单片机的具体应用领域
家电控制:如智能冰箱、空调、洗衣机等,通过单片机控制温度、湿度等参数。
工业自动化:如生产线上的机器人控制、数据采集系统、过程控制等。
数据处理:单片机可以读取传感器数据,进行滤波、计算和存储,用于环境监测、医疗设备等。
通信设备:通过UART、SPI、I2C、CAN等通信协议,实现设备间的数据通信,如智能门锁、分布式控制系统等。
医疗设备:如心电图机、血糖仪等,通过读取传感器数据,进行校准和计算,显示结果。
其他领域:如智能玩具、办公自动化设备、商业营销设备等。
单片机的工作原理和编程语言
单片机是一种通过编程控制的微处理器,编程时可以选择C语言或汇编语言。C语言因其学习快、容易理解而被推荐使用。单片机通过编写程序控制各个引脚输出不同的电平,进而控制外围电路的电气状态,实现各种功能。
单片机的历史背景和发展趋势
单片机自20世纪70年代末问世以来,经历了多次技术革新。随着集成电路技术的发展,单片机的集成度越来越高,功能越来越强大。未来,随着物联网和人工智能的发展,单片机将在更多领域发挥重要作用,特别是在智能家居、工业4.0和智慧城市等领域。
”STM32内部自带了一个可编程电压检测器(PVD),对VDD的电压进行监控可以通过电源控制寄存器PLS[ 2:0 ]位来设置监控电压的阀值,这样通过与VDD电压比较达到了监控电压的目的。
电源控制状态寄存器(PWR_CSR)中的PVDO用来表明VDD是高于还是低于PVD的电压阀值。当VDD下降到PVD阀值以下或VDD上升到PVD阀值之上时,通过外部中断16线上升或下降边沿触发设置,产生PVD中断。在中断处理函数中做相应的保护措施。
具体由以下图片和表格所示。

图1:阀值与PVD输出关系

表:具体寄存器参数
下面对上面的图片和表格中的数据做一个简要的解释:
(1)
PVD = Programmable Votage Detector 可编程电压监测器
它的作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。在给出表格的上半部分就是可编程的监视阀值数据。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。
供电下降的阀值与供电上升的PVD阀值有一个固定的差值,这就是表中的VPVDhyst(PVD迟滞)这个参数,通过列出的PVD阀值数据可以看到这个差别。引入这个差值的目的是为了防止电压在阀值上下小幅抖动,而频繁地产生中断。
(2)
POR = Power On Reset 上电复位;
PDR = Power Down Reset 掉电复位。
POR的功能是在VDD电压由低向高上升越过规定的阀值之前,保持芯片复位,当越过这个阀值后的一小段时间后(图中的"滞后时间"或表中的"复位迟滞"),结束复位并取复位向量,开始执行指令。这个阀值就是表中倒数第4行(min=1.8,typ=1.88,max=1.96)。
PDR的功能是在VDD电压由高向低下降越过规定的阀值后,将在芯片内部产生复位,这个阀值就是表中倒数第3行(min=1.84,typ=1.92,max=2.0)。
(3)
当可以看到POR比PDR大了0.04V,这就是表中倒数第2行,VPDRhyst(PDR迟滞)=40mV。
(4)
当VDD上升越过POR阀值时,内部并不马上结束复位,而是等待一小段时间(Reset temporization),这就是表中的最后一行TRSTTEMPO,它的典型数值是2.5ms。
这个滞后时间是为了等待供电电压能够升高到最低可靠工作电压以上,我们看到POR阀值最小只有1.8V,最大也只有1.96V,都低于数据手册中给出的最低可靠工作电压2.0V,所以这个滞后时间是十分必要的,如果供电电压上升缓慢,尤其是从1.8V升到2.0V以上超过1~2.5ms,则很可能造成上电复位后MCU不能正常工作的情况。
(5)
BOR,即Brown-out reset,欠压复位。
主要用于单片机因为电源电压供电中电压波动或者有较大负载造成过流。可以设置一个电压阈值,当电压低于阈值时单片机产生中断,高于阈值时也产生中断,另外还有机制使阈值允许在某个范围内波动,避免电压在阈值附近波动时造成连续中断。