news 2026/6/24 4:33:05

第二章(2.5):微控制器8051的硬件结构---时钟、复位和MCU工作方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第二章(2.5):微控制器8051的硬件结构---时钟、复位和MCU工作方式

时钟电路与时序

微控制器的时钟为CPU和各个功能模块的协调工作提供同步信号和基本时序信号。

时钟电路

经典8051MCU必须通过外接晶振、电容,与内部时钟电路构成时钟发生器来产生MCU工作需要的信号,如下图所示。晶振频率范围一般为1.2MHz~12MHz,常用12MHz或11.0592MHz。其中电容C1和C2具有起振和稳频作用,一般取值为20~30pF,且C1和C2必须相等。

现代增强型8051单片机(如STC15系列)内置了RC振荡器,这些芯片可以在不接外部晶振的情况下,使用内部RC振荡器作为时钟源工作。内部RC振荡器的优点是启动快、功耗低、无需外部元件,但频率精度较差(±1%~5%),且容易受温度和电压影响。而外部晶振的频率精度可达±0.01%~±0.1%,稳定性更好,所以在对定时精度有要求的场合也需要外接晶振。

早期MCU选12MHz的石英晶体。随着频率选择与应用场合密切相关制造工艺发展及MCU 性能提高,时钟频率也在逐步提高。

  • 低速晶振(<1MHz)(典型值:32.768kHz、125kHz、500kHz):应用场景为低功耗设备(智能手环休眠模式)、实时时钟(RTC)。
  • 中速晶振(1MHz~10MHz)(典型值:4MHz、8MHz、12MHz):应用场景为8 位MCU( 8051)、简单控制器(家电定时器)、低速串口通信(<9600bps )。
  • 高速晶振(10MHz~100MHz)(典型值:24MHz、48MHz、72MHz、100MHz):应用场景为32 位 MCU( STM32F1 系列72MHz、STM32F4 系列 168MHz)、高速通信。
  • 超高速晶振(>100MHz)(典型值:120MHz、168MHz、200MHz):应用场景为高性能 MCU(如 STM32H7 系列 480MHz)、图像处理、高频 PWM 输出(电 机矢量控制)。 系统性能需求(运算速度、外设高速驱动)大的场合。

时序与工作周期

所谓时序,就是CPU在执行指令和功能模块工作时,各控制信号之间的时间顺序关系。微控制器的内部电路在时钟信号控制下,严格按时序执行指令规定的一系列操作。8051 MCU中规定了几种工作周期,即时钟周期(振荡周期)、状态周期、机器周期和指令周期。

  • 时钟周期T0:时钟周期也称为振荡周期,是外接晶振频率的倒数。它是微控制器中最基本、最小的时间单位,在一个时钟周期内,CPU仅完成一个最基本的动作。若晶振频率fosc为6MHz,则时钟周期为1/fosc,即1/6μs;若晶振频率fosc为12MHz,则时钟周期为1/fosc,即1/12μs。由于系统时钟信号控制着MCU的工作节拍,因此时钟频率越高,MCU的工作速度越快。不同型号MCU有不同的时钟频率范围,要根据芯片手册的参数进行设置,不能随意提高。
  • 状态周期S:在8051 MCU中,1个时钟周期定义为1个节拍,用P表示,连续的两个节拍P1和P2定义为一个状态周期,用S表示。
  • 机器周期TM:机器周期是MCU执行一个基本的硬件操作所需要的时间,如取指令、存储器读、存储器写等。8051 MCU的一个机器周期由6个状态周期(S1~S6)即12个时钟周期组成,用TM表示。
    8051单片机采用12个时钟周期构成一个机器周期,是因为单个时钟周期无法完成一个完整的基本操作,这里的基本操作是指取指令、存储器读、存储器写等操作,这些基本操作的完成需要多个步骤,以取指令这个基本操作为例,由下图可以看出8051将“取指令”这个看似简单的操作,精确地分解到12个时钟节拍中。8051采用固定时序架构,一个机器周期固定为12个时钟周期,这12个周期被精确划分为6个状态(S1-S6),每个状态又包含P1和P2两个节拍,每个基本操作都固定为一个机器周期,且一个机器周期内各个节拍要做什么也是固定的。


    8051采用非流水线结构,指令执行是串行的,其采用CISC(复杂指令集)架构,指令长度不同(1-3字节),执行时间也不同。机器周期作为统一的时间基准,确保所有指令的执行时间都是机器周期的整数倍,简化了时序控制。而现代增强型8051单片机(如STC15系列)已采用精简指令集并取消了“机器周期”这一时序单位,其采用流水线架构,将指令执行分为多个阶段并行处理,实现了单时钟周期执行一条指令,大大提高了执行效率。
  • 指令周期:指令周期是执行一条指令所需要的时间,由若干个机器周期组成。指令不同,所需的机器周期数也不同。8051 MCU的111条指令,由3种指令周期的指令组成,分别为单周期指令、双周期指令和四周期指令。其中,四周期指令只有乘法和除法两条,其余都是单周期和双周期指令。

时钟周期、状态周期、机器周期之间的关系如下图所示

复位与复位状态

复位是使微型计算机或微控制器退出死机或无效状态,进行初始化操作,重新开始工作的一种方式。MCU在启动运行前要复位,其作用是使CPU和内部功能模块都处于一个确定的初始状态,并从这个状态开始工作。

复位条件:

8051微控制器采用高电平复位。经典8051微控制器没有内置复位电路,需要通过外部电路在复位引脚(RST)施加2个机器周期以上的高电平,进行复位。现在大多MCU已具有内部上电/掉电复位电路,以及软件复位、时钟检测复位、内部低压检测复位、看门狗复位等自动复位功能。

复位状态:

8051 MCU复位主要表现为SFR回复到初始化状态。复位后,MCU的初始状态如下:
①PC的值为0000H,即程序指针指向ROM的0000H单元;
②堆栈指针SP的值为07H,即堆栈区域为08H开始向上的内存单元;
③4个I/O端口的锁存器输出为FFH,为准双向I/O端口的输入状态;
④其余所有SFR的有效位均为0。

MCU工作方式

微控制器的工作方式包括低功耗方式、程序执行方式和复位方式

低功耗工作方式

低功耗方式的控制

8051微控制器有两种低功耗方式,休闲ID(idle)方式和掉电PD(power down)方式。通过电源控制寄存器PCON中的IDL位和PD位进行选择。PCON的字节地址为87H,不可位寻址,其定义如下:

PCON各位作用如下:

8051MCU休闲方式和掉电方式的时钟控制如下图所示:

休闲方式

休闲方式的进入:将PCON中的IDL置为1(如执行“ORL PCON,#1”),MCU即进入休闲方式。休闲方式时,由上图可见,内部时钟发生器正常工作,并向中断系统、串行口和定时器/计数器提供时钟信号。但关闭了CPU的时钟,使CPU停止工作,此时MCU功耗得到大大降低。

休闲方式的退出:复位或中断可退出休闲方式,即在休闲期间,复位或任何一个允许的中断被触发,IDL都会被硬件清0,从而使MCU退出休闲方式。退出休闲方式后,内部RAM、SFR的内容不变。若要再次进入休闲状态,则要重新设置PCON,使IDL=1。

掉电方式

掉电方式的进入:将PCON中的PD位置为1(如执行“ORL PCON,#2”),MCU即进入掉电方式。在掉电方式下,由上图可见,内部时钟发生器不工作,由于没有时钟使得所有功能模块停止工作,因此MCU功耗得到极大降低,具有最好的省电效果。

掉电方式的退出:退出掉电方式的唯一方法是复位MCU。复位后,所有特殊功能寄存器的内容重新初始化,但内部RAM的数据不变。

低功耗方式的功耗比较

MCU正常运行方式、休闲方式(ID方式)、掉电方式(PD方式),在不同晶振频率下的功耗状况见下表:

程序执行方式

程序执行方式即运行方式,是微控制器的基本工作方式。复位后,MCU即进入程序执行方式,从ROM的0000H单元开始逐条取指令执行程序,从而完成用户编写的程序功能。

复位方式

复位是微控制器的初始化操作,复位时(RST引脚为高电平时)微控制器不工作;复位后MCU中各SFR的内容恢复到初始值,CPU重新开始运行程序,进入程序执行方式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 3:36:52

ContextMenumanager插件增强开发体验:右键运行TensorFlow脚本

右键运行 TensorFlow 脚本&#xff1a;用 ContextMenuManager 提升开发效率 在现代 AI 工程实践中&#xff0c;一个看似微不足道的操作——“右键运行脚本”&#xff0c;却可能成为决定团队迭代速度的关键。想象这样一个场景&#xff1a;数据科学家刚调完一组超参数&#xff0c…

作者头像 李华
网站建设 2026/6/23 19:08:27

M1 Mac使用Miniconda安装Python与深度学习框架

在 M1 Mac 上构建高效的 Python 深度学习环境 当手头的 MacBook 从 Intel 切换到 Apple Silicon&#xff0c;许多开发者第一次运行 pip install 时都会心头一紧&#xff1a;为什么这么慢&#xff1f;明明是更强大的芯片&#xff0c;却感觉像是在用 Rosetta 翻译一层又一层的代码…

作者头像 李华
网站建设 2026/6/23 17:59:44

PaddleOCR多语言识别优化:基于conda的环境隔离与依赖管理

PaddleOCR多语言识别优化&#xff1a;基于Conda的环境隔离与依赖管理 在智能文档处理日益普及的今天&#xff0c;企业对高精度、多语言OCR系统的需求正快速增长。尤其是中文场景下&#xff0c;由于字体复杂、排版多样、背景干扰严重&#xff0c;通用识别工具往往力不从心。百度…

作者头像 李华
网站建设 2026/6/22 15:05:29

Air780EPM开发板FFT应用示例核心要点实战解读!

基于Air780EPM开发板的FFT应用实践&#xff0c;本文将对示例核心要点进行实战解读。涵盖开发板环境配置、FFT功能实现的关键步骤&#xff0c;以及示例运行中的核心问题与解决方案&#xff0c;以实战视角拆解Air780EPM开发板FFT应用的核心要点&#xff0c;为开发者提供实用参考。…

作者头像 李华
网站建设 2026/6/17 6:28:26

CordovaOpenHarmony导入导出功能

欢迎大家加入开源鸿蒙跨平台开发者社区&#xff0c;一起共建开源鸿蒙跨平台生态。 概述 导入导出功能允许用户在不同设备或应用之间转移数据。本文将详细讲解如何在Cordova&OpenHarmony框架中实现导入导出系统。 导出数据 用户可以导出所有数据为文件。 async exportAl…

作者头像 李华
网站建设 2026/6/23 18:59:47

日志收集的智能分析:异常模式识别

日志收集的智能分析&#xff1a;异常模式识别关键词&#xff1a;日志收集、智能分析、异常模式识别、机器学习、数据挖掘摘要&#xff1a;本文聚焦于日志收集的智能分析中的异常模式识别。在当今复杂的信息技术环境下&#xff0c;系统和应用产生的海量日志数据蕴含着重要信息&a…

作者头像 李华