前面的文章整理了关于定时器、晶振之类的相关概念,其中有三个概念是需要掌握的,分别是晶振的频率、时钟周期和机器周期。它们三个是相关联的,如何相关联在上篇文章中也整理过了,本篇文章来进行一次计算。
0x01:机器周期与时钟周期的关系
上篇文章中整理到机器周期与时钟周期的关系,机器周期是若干个时钟周期,那么机器周期到底是多少个时钟周期,这个由手册给出。
在 STC89C51RC 手册的 188 页中是这样写的:
STC89C51RC/TD 系列单片机的定时器有两种技术速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;另外一种是 6T 模式,每 6 个时钟加 1,速度是传统 8051 单片机的 2 倍。
现在已经知道了晶振的频率、时钟周期、机器周期,以及机器周期和时钟频率之间的关系,那么我们就来计算一下,一个机器周期是多少个时钟周期。
0x02:时钟周期与机器周期的换算
我们晶振的频率是 11.0592 MHz,那么相当于是 11059200 Hz。
时钟周期是晶振频率的倒数,那么就是 1/11059200
机器周期是 12 * (1/11059200) = 1.085 微秒
如果我们要延时 1 秒,那么就是 (1 * 1000 * 1000) / 1.085 = 921658 个机器周期,也就是它要数 921658 次。
0x03:用某 chat 进行计算
我们使用某 chat 进行相应的提问,让它计算一次给我们看,提问如下:
晶振频率是11.0592MHz,机器周期是时钟周期的12倍,那么一个机器周期是多少微秒,要延时1秒,要经过多少个机器周期
它给出的解释如下:
晶振频率是11.0592MHz,机器周期是时钟周期的12倍。我们需要计算一个机器周期是多少微秒,以及要延时1秒需要经过多少个机器周期。 首先,我们定义晶振频率为 F_osc = 11.0592MHz,即 F_osc = 11059200 Hz。 机器周期是时钟周期的12倍,所以机器周期 T_machine = 12 × T_clock。 时钟周期 T_clock 是晶振频率的倒数,即 T_clock = 1 / F_osc。 因此,机器周期 T_machine = 12 × (1 / F_osc)。 要延时1秒,即延时时间为1000000微秒,我们需要计算经过多少个机器周期才能达到这个延时。 所需的机器周期数 N = 延时时间(微秒) / T_machine(微秒)。 计算结果为:一个机器周期是 1.0850694444444444 微秒。 要延时1秒,需要经过 921600 个机器周期。
从它给出的结果来看,和我们的结果是相近的。只是取的近似值不同,但是大差不差吧!
好了,本篇整理的内容就到这里了,本篇文章依然枯燥,不过,学习就是这样!