时钟电路与时序
微控制器的时钟为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重新开始运行程序,进入程序执行方式。