单片机访问一次存储器的时间是什么?单片机的机器周期

在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,也就是机器周期=12*时钟周期,(上面讲到的原因)如果是12MHZ,那么机器周期=1微秒。例如一个单片机选择了12MHZ晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。

时钟周期也称为振荡周期或晶振周期,是单位时间内晶振发出的脉冲数。 它通常由外部振荡器产生。 例如12MHZ=12×10的6次方,即每秒发出12,000,000个脉冲信号,那么一个脉冲的时间就是时钟周期,即1/12微秒。 通常也称为系统时钟周期。 它是计算机中最基本、最小的时间单位。

在8051单片机中,1个时钟周期定义为1个节拍(用P表示),2个节拍定义为1个状态周期(用S表示)。

单片机访问一次存储器的时间是什么?单片机的机器周期

机器周期:

在计算机中,为了便于管理,常常将一条指令的执行过程分为几个阶段,每个阶段完成一个任务。 例如,取指令、读内存、写内存等。这些任务中的每一个都称为基本操作。 完成一个基本操作所需的时间称为一个机器周期。 一般一个机器周期由几个S周期(状态周期)组成。 8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 如前所述,1 个时钟周期定义为 1 个节拍(用 P 表示),2 个节拍定义为 1 个状态周期(用 S 表示)。 8051单片机的机器周期由6个状态周期组成,也就是说1个机器周期=6个状态周期=12个时钟周期。

在标准51单片机中,正常情况下,1个机器周期等于12个时钟周期,即机器周期=12*时钟周期。 (由于上面提到的原因)如果是12MHZ,那么机器周期=1微秒。 单片机工作时,从ROM中一条一条地取出指令,然后一步步执行。 微控制器访问内存一次所花费的时间称为一个机器周期,也就是时基。

单片机访问一次存储器的时间是什么?单片机的机器周期

机器周期不仅对于指令执行很重要,而且机器周期也是微控制器定时器和计数器的时基。 例如,如果单片机选择12MHZ晶振,那么当定时器值加1时,实际经过的时间是1us。 这就是单片机的时序原理。

不过,在8051F310中,CIP-51单片机内核采用了流水线结构,与标准8051结构相比,指令执行速度大大提高。 在标准8051中,除MUL和DIV之外的所有指令都需要12或24个系统时钟周期,最大系统时钟频率为12-24MHz。 对于CIP-51核,70%指令的执行时间为1或2个系统时钟周期,只有4条指令的执行时间大于4个系统时钟周期。 所以在计算定时器的值时要注意这里的变化。

单片机访问一次存储器的时间是什么?单片机的机器周期

指令周期:

指令周期是执行一条指令所需的时间,一般由几个机器周期组成。 不同的指令需要不同数量的机器周期。 对于一些简单的单字节指令,在取指令周期中,指令被取入指令寄存器后,立即译码执行,不需要其他机器周期。 对于一些更复杂的指令,例如传送指令和乘法指令,需要两个或更多机器周期。

系统时钟:

系统时钟:系统时钟是CPU指令运行的频率。 这是CPU的真实频率。

单片机内部的所有工作都是基于晶振产生的同一个触发信号源。 该信号用于同步和协调工作步骤。 我们将此信号称为系统时钟。 系统时钟一般由晶振产生,但单片机内部的系统时钟并不一定要等于晶振频率。 它可能小于晶体振荡器频率,也可能大于晶体振荡器频率。 具体频率由单片机的内部结构决定。 一般情况下,与晶振频率会存在整数倍关系。 系统时间是整个单片机工作节奏的基准。 每次振荡时,都会触发微控制器执行操作。

单片机访问一次存储器的时间是什么?单片机的机器周期

一般来说,单片机只有一个时钟源。 使用外部晶体振荡器时,无需内部 RC。 使用内部 RC 时,无需外部晶体振荡器。 振荡器振荡并产生周期波。 微控制器在这种周期波的作用下有规律地工作。 节拍一个节拍,波的频率越高,单片机工作的速度越快,而波的频率越低,单片机工作的速度越慢。

有了以上概念,就可以正确理解定时器的工作原理了。 在8051F310微控制器中,有3个定时器。 如果定时器1工作在模式1,则为16位。 定时器的最大值为65535。当加1(=65536)时,就会发生溢出并产生中断。 所以如果我们想让它计数1000,那么定时器的初始值为65536-1000,结果为64536。这个值被发送到TH和TL。 因为是十六进制,所以高位是64536/256,就是商,低位是64536%6,就是余数。

此外,每次计数需要多长时间? 一般我们拿12M晶振来说,一个周期正好是1us,计数1000就是1ms。 这是因为标准51单片机有12个时钟周期(STC有6个时钟和1个时钟模式)。 所以,如果我们的晶振是12M的话,就比较容易计算了。 如果是其他的就用12除即可。 比如是6M,那么12/6=2,每次计数2us。 如果想计时到1ms,只需要数到500就可以了。

单片机访问一次存储器的时间是什么?单片机的机器周期

定时器的初值与定时器的工作模式和晶振的频率有关。 一个机器周期 Tcy = 晶振频率 X12,计数次数 N = 计时时间 t/机器周期 Tcy,则初始值为 这里以定时器 O 工作模式 1 为例,如果是其他工作模式则不能65535。工作模式0为8192,模式2和3为256。下面是一个公式:

TH=(65536-时间/(12/ft))/256

其中time为需要延迟的100ms(需要100000us),ft为晶振频率。 这个公式可以简化为TH=(65536-time*ft/12)/256

单片机访问一次存储器的时间是什么?单片机的机器周期

TL=(65536-时间*ft/12)%6

我还在书上看到如何计算时序初始值,如下所示:

TH0=-(50235/256); //重新设置100ms计时初始值

TL0=-(50235%6); ///这里使用的6M晶振,

这里是一个6M晶振,延迟100ms。 根据上面讲的原理,6M每次计数2us,100ms计时意味着计数50000次。

那么定时器的初始值为65536-50000=15536​​,换算成16,就是3CB0。 这是要发送到 TH(=3C) 和 TL(=B0) 的值。

程序中写入TH0=-(50235/256); 其实是这样的:TH0=0x100-(50235/256); 51中取一个负数,结果是它的值取反+1,也可以用0x100(十进制减去256,结果是多少?结果是3C

单片机

单片机最小系统的设计与应用和系统优化和应用

2024-4-24 22:02:47

单片机

MCS-51单片机课程设计任务书--单片机应用系统

2024-4-24 23:02:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索