设计与开发

单片机的指令周期 51单片机指令周期,机器周期,时钟周期详解

小编 2024-10-12 设计与开发 23 0

51单片机指令周期,机器周期,时钟周期详解

51单片机有指令周期,机器周期,时钟周期的说法,看似相近,但是又都不太一样,很容易混淆。还是详细分析一下。

本文引用地址:http://www.eepw.com.cn/article/201609/310558.htm

时钟周期:单片机外接的晶振的振荡周期就是时钟周期,时钟周期=振荡周期。比方说,80C51单片机外接了一个11.0592M的晶体振荡器,那我们就说这个单片机系统的时钟周期是1/11.0592M,这里要注意11.0592M是频率,周期是频率的倒数。

机器周期:单片机执行指令所消耗的最小时间单位。我们都知道51单片机采用的CISC(复杂指令指令集),所以有很多条指令,并且各条指令执行的时间也可能不一样(有一样的哦),但是它们执行的时间必须是机器周期的整数倍,这就是机器周期的意义所在。8051系列单片机又在这个基础上进行细分,将一个机器周期划分为6个状态周期,也就是S1-S6,每个状态周期又由两个节拍组成,P1和P2,而P1=P2=时钟周期。这也就是经常说的8051系列单片机的的时钟频率是晶振频率的12分频,或者是1/12,就是这个意思。现在(截至2012)新的单片机已经能做到不分频了,就是机器周期=时钟周期。

指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。

来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。

单片机的周期频率

单片机的振荡如下所示:

振荡周期:振荡周期=1/晶振频率

时钟周期:=2*振荡周期

机器周期:=6*时钟周期=12*振荡周期

指令周期:=1条指令完成所需要的机器周期

单片机执行指令的过程是顺序的从ROM(程序存储器)里面取出指令一条条的顺序执行,再通过一些操作控制,来完成各种制定的动作。

它在执行程序的时候,各种动作必须有一定的顺序,简单来说就是控制信号在时间上有一个严格的先后顺序,这种次序就是单片机的时序。

单片机在每访问一次存储器的时间成为一个机器周期,机器周期是一个时间基准,就像我们生活中的秒一样,单片机一个机器周期包括12个振荡周期,振荡周期就是振荡源一个高低电平的转换时间,如果我们用12MHz的晶振,那么振荡周期为(T=1/F),也就1/12微妙,那我们用的是12MHz的晶振,一个机器周期就等于12*1/12=1微妙。

单片机中,有的指令只用一个机器周期就可以处理完,有的指令则需要两到三个机器周期才能处理完,所需机器周期越少,那么执行程序的速度就越快。

除了以上介绍的单片机的结构外,还有一个就是单片机的I/O结构,一般有以下几种:

1.OC开路输出结构:具有输出低电平电流大,高电平电流小的特性

2.带上拉OC输出结构:同上

3.推挽输出结构:具有输出低电平和高电平电流一样大的特性

我们学习单片机首先要有以下仪器及材料:

1.电脑一台,需要带有USB和串口功能,主要用来程序编写,程序编译,下载调试

2.安装编译软件KEIL

3.具备基础电路、模电数电知识

如果先要学习单片机,我首推的是51系类的入门,可以作一些简单的小玩意,像是跑马灯,延时器,感应器,红绿灯切换等等,这些容易培养起兴趣。

相关问答

指令周期 包括哪两个周期?

这个问题是涉及单片机基本时序周期的问题。我们知道一条指令译码时会产生一系列的操作信号,这个信号在时间上有严格的先后顺序,我们称这个次序就是计算机的时序...

51 单片机 执行一条 指令 所需时间?

这个与单片机型号、指令类型和使用的晶振频率有关,比如AT89C51,是一个12个时钟周期等于1个机器周期的单片机,如果使用的晶振是12MHz的话,执行一条单指令的NO...

单片机 中汇编 指令 占多少机器 周期 ?

END代表汇编程序到此结束,编译程序对END以后的内容不作编译。占用一个机器周期END代表汇编程序到此结束,编译程序对END以后的内容不作编译。占用一个机器周期

单片机 里的时钟 周期 是什么意思?

时钟周期就是单片机的时间,我们人类的常用的最小时间是秒,单片机的时间是微妙,每一个微妙执行一条指令,1秒钟可以执行很多程序,可以跑几圈了,没有时钟单片...

当80C51 单片机 晶振频率为12MHz时,时钟 周期 .机器 周期 各是多少?

1.时钟周期即晶振的单位时间发出的脉冲数,12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1/12微秒。2.一个机器...

AT89S52时钟周期、机器周期、 指令周期 是如何分配的?

机器周期是单片机指令中最少的时钟周期,是时钟周期的12倍指令周期是运行一条指令所需要的机械周期例如单片机接晶振12M机械周期是T=12×1/12M=1uSMU...

12mhz的晶振的 指令周期 是多少?

【12mhz的晶振的指令周期】12M的晶振,它的时间周期就是1/12us。指令周期则根据单片机的种类不同,指令的不同而不同,要具体情况具体分析。【机器周期】在计算...

单片机 频率算法?

对于精简指令集性能的单片机的工作频率(1/机器周期)=时钟频率(1/时钟周期).普通的51单片机来说:频率是1MHZ,时钟周期是1/12us(1除以12M),机器周期是12倍的...

单片机 机器周期是振荡 周期的 几倍?

单片机的机器周期是振荡周期的2倍。单片机的机器周期也叫做状态周期,是指完成一条指令所需的时间。由于单片机的时钟信号是通过晶振提供的,故机器周期是晶振...

单片机 定时器在12M晶振下,方式二最长可定时多久?怎么算?

12M晶振,每个指令周期是1us,采用方式1定时,那么定时公式为:定时时间=(2^16-定时初值)×1us,当初值=0时,最大可以是2^16us=65536us即一次循环最多可以定时...1...

猜你喜欢