在使用STC15点亮WS2811之前,我们需要知道一个nop对应的时长。在单片机的运行过程中存在时钟周期、机器周期与指令周期,区别如下:

时钟周期

单片机的运行需要依靠固定的节奏,在PC的CPU上表现为主频,在单片机上表现为晶振频率。如使用一个12M的晶振,时钟周期固定为1/12us。在传统8051单片机上,晶振均为外置,在STC15上可以选用内部晶振,下文均使用12M晶振的配置。

机器周期

在单片机运行的过程中,一条指令需要拆分为多个步骤,完成一个基本操作的时间被称为机器周期。在传统的8051上,一个基本的的机器周期由6个S周期构成,每个S周期又有2个时钟周期构成。因此,一个机器周期=6个S周期=12个时钟周期,即1us。

指令周期

完成一条指令所需要的机器周期,根据指令不同其周期长度也不同。例如nop指令:

  • 在8051上需要1个机器周期,即1us;
  • 在STC15的12T模式下需要1个机器周期,即1us;
  • 在STC15的1T模式下只需要1/12个机器周期,即1/12us。请注意,STC15上电AUXR默认复位为0x00,即12T模式。

其它不同的指令中,指令周期的长度会有所不同,可见STC-ISP的指令表。一般来说STC15的12T模式速度是传统8051的8~12倍,