【问题标题】:Time per cycle for 8051 Micro controller8051 微控制器每个周期的时间
【发布时间】:2014-08-26 12:40:14
【问题描述】:

我正在用汇编语言编程,有一个 8051 微控制器,上面有一个 24.5 MHz 晶振,时钟周期除以 12。

我正忙于一个程序,我必须在其中显示带有 LED 的信号列车。因此,我必须在延迟中编程以实现必要的占空比和周期,但是,我无法计算完成每个周期所需的时间。

谁能帮我计算一下?

谢谢。

【问题讨论】:

  • 我认为答案将取决于您使用的特定 8051 兼容芯片。
  • 这是一个列出周期计数的nice reference(还有一个您可能感兴趣的awesome tutorial section)。只需将代码的计数相加即可。有关任何可能的差异,请查阅您芯片的数据表。
  • 24.5 MHz 和 div 12 时钟听起来很像 Silabs 的某些部件,它们具有现代化的流水线 8051 实现。粗略估计大约是 1 个时钟/代码字节 IIRC。

标签: assembly 8051


【解决方案1】:

需要计算机器周期。机器周期是表示执行一条指令的时间的术语。(简单的指令,如 NOP,只需要一个机器周期来执行其他指令,需要一个或多个取决于指令执行)

你的晶振频率是 Fctl=24.2MHz

首先你把 Fctl 分成 12 个部分。 Fctl/12 = 24.2MHz/12= 2.0167MHz

现在这是您的机器频率。你的机器周期是 1/机器频率= 1/2.0167MHz = 0.4959uS

这就是你的机器周期。当你输入一条 NOP 指令时,它会给你 0.4959uS 的延迟。

【讨论】:

  • 这告诉你一个周期的持续时间。但是 8051 上的指令不会在一个周期内退出。每条指令的确切周期数因指令和您使用的 8051 兼容 MCU 而异。您将需要数据表中的该表。
猜你喜欢
  • 2010-10-28
  • 2015-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多