8051 时钟周期,机器周期,指令周期
- 格式:doc
- 大小:12.50 KB
- 文档页数:3
51单片机指令周期,机器周期,时钟周期详解51单片机有指令周期,机器周期,时钟周期的说法,看似相近,但是又都不太一样,很容易混淆。
还是详细分析一下。
时钟周期:单片机外接的晶振的振荡周期就是时钟周期,时钟周期=振荡周期。
比方说,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语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。
单片机时钟周期、机器周期、指令周期与总线周期时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
具体计算就是1/fosc。
也就是说如果晶振为1MHz,那么时钟周期就为1us;6MHz的话,就是1/6us。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
具体计算为:时钟周期Xcycles。
如果单片机是12周期的话,那么机器周期就是T×12。
假设晶振频率为12M,单片机为12周期的话,那么机器周期就是1us。
例如外接24M晶振的单片机,他的一个机器周期=12/24M秒;52系列单片机一个机器周期等于12个时钟周期。
设晶振频率为12MHz时,52单片机是12T的单片机,即频率要12分频。
1.单片机概念:单片机,又称微控制器,是在一块硅片上集成了各种部件的微型计算机。
这些部件包括中央处理器CPU,数据存储器RAM,程序存储器ROM,定时器/计数器和多种I/O接口电路。
2.MCS-51系列单片机中的基本型产品是8051,8031和8751,这三个产品只是片内程序存储器制造工艺不同。
8051的片内程序存储器ROM为掩膜型的在制造芯片时已将应用程序固化进去,使它具有了某种专用功能;8031无ROM,使用时需外接ROM;8751的片内ROM是EPROM型的,固化的应用程序可以方便改写。
(除片内ROM 类型不同外,其他性能完全相同)3.其他性能的结构特点:(1)8位CPU;(2)片内震荡器及时钟电路(3)32根I\O线(4)外部存储器ROM和RAM寻址范围各64KB(5)2个16位的定时器/计数器(6)5个中断源,2个中断优先级(7)全双工串行口(8)布尔处理器4.8051的内部结构8051内部结构可划分为CPU,存储器,并行口,串行口,定时器/计数器和中断逻辑几部分。
(1)中央处理器8051的中央处理器CPU由运算器和控制逻辑构成。
其中包括若干特殊功能寄存器(SFR)。
a 以ALU为中心的运算器运算逻辑单元ALU能对数据进行加减乘除等算术运算和“与”“或”“异或”等逻辑运算以及位操作运算。
ALU只能进行运算,运算的操作数可以事先存放在累加器ACC或暂存器TMP 中,运算结果可以送回ACC或通用寄存器或储存单元中。
累加器ACC也可以写为A。
B寄存器在乘法指令中用来存放乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。
程序状态字PSW是8位寄存器,用来寄存本次运算的特征信息,用到其中的七位,下面是其各位的定义:CY:进位标志,有进位或借位时,CY=1;否则CY=0.AC:半进位标志,当D3位向D4位产生借位或进位时,AC=1;否则AC=0;常用于十进制调整运算中。
F0:用户可设定的标志位,可置位或复位,也可供测试。
单片机指令周期怎么计算指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。
传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。
现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。
来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。
指令周期是不确定的,因为她和该条指令所包含的机器周期有关。
一个指令周期=1个(或2个或3个或4个)机器周期,像乘法或除法就含有4个机器周期,单指令就只含有1个机器周期。
对于大多说的51单片机来说,1个机器周期=12个时钟周期(或振荡周期)也有部分单片机时钟周期和振荡周期不相等,例如,1个时钟周期=2个振荡周期。
该定义指的是执行一条指令所需要的时间,通常一个指令周期会由若干个机器周期组成。
指令不同,所需的机器周期数也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
PIC单片机指令周期计算PIC单片机的每四个时钟周期为一个内部指令周期例如:8MHz的晶振,则内部指令周期为1/(8/4)= 0.5 uS实例一:35us,8MHz的晶振,8位定时器,分频比1/2 ,初值E4实例二:156.25us ,32768Hz的晶振,8位定时器,分频比1/32 ,初值FC计算方法一:35 = =(256-初值)*分频*4/晶振+ 14/分频=(256-初值)+14/2。
51单片机的指令周期051芯片内部有一高增益反相放大器,用于构成振荡器,反向放大器输入端为XTAL1,输出端XTAL2。
在XTAL1和XTAL2两端跨接一个石英晶体及两个电容就构成了稳定自激振荡器,电容器C1和C2通常都取30pF左右,对振荡频率有微调作用。
振荡频率范围是1.212MHz。
8051也使用外部震荡脉冲信号,由XTAL2端引脚输入,XTAL1端接地,外部震荡脉冲源方式常用于多块8051同时工作,以便于同步。
晶体振荡器的振荡信号从XTAL2端输出到片内的时钟发生器上,时钟发生器是一个二分频触发电路,它将振荡器的信号频率fosc除以2,向CPU提供两相时钟信号P1和P2。
时钟信号的周期称为机器状态时间S,CPU就以两相时钟P1和P2为基本节拍指挥8051单片机各个部件协调地工作。
除时钟周期外,还有两个与时间有关的概念叫机器周期和指令周期。
计算机的一条指令由若干个字节组成。
执行一条指令需要多少时间则以机器周期为单位。
所谓一个机器周期就是指CPU访问存储器一次所需要的时间。
例如取指令,读存储器,写存储器等等。
MCS51的一个机器周期为12个振荡周期,分为六个S状态,S1S6.而每个状态又分为两拍,称为P1和P2。
因此,一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1等直到S6P2.若采用6MHZ晶体振荡器,则每个机器周期恰为2us。
每条指令都由一个或几个机器周期组成。
在MCS51系统中,有单周期指令,双周期指令。
四周期指令只有乘,除两条指令。
指令的运算速度和它的机器周期直接相关,机器周期数较小则执行速度快。
在编程时要注意选用具有同样功能而机器周期数小的指令。
每一条指令的执行都可以包括取指和执行两个阶段。
在取指阶段,CPU从内部或者外部ROM中取出指令操作码及操作数,然后再执行这条指令。
在8051指令系统中,根据各种操作的繁简程度,其指令可由单字节,双字节和三字节组成。
从机器执行指令的速度看,单字节和双字节指令都可能是单周期或双周期,而三字节指令都是双周期,只有乘,除指令占四个周期,一条指令的字节数表征这条指令在存储器中所占空间大小,而周期数表征运行这条指令所花时间长短,即运行速度。
一、填空题:1、当使用8051单片机时,需要扩展外部程序存储器,此时EA应接低电平。
2、8051上电复位后,从地址0000H开始执行程序,外部中断1的中断入口地址为0013H.3、8051最多有64KB的程序存储器和64KB的数据存储器。
4、P0口通常用作分时复用为地址总线(低8位)及数据总线或外接上拉电阻用作普通I/O 口。
5、P2口的功能为用作地址总线和作为普通I/O口使用。
6、若由程序设定RS1、RS0=01,则工作寄存器R0的直接地址为08H。
7、若由程序设定RS1、RS0=00,则工作寄存器R0的直接地址为00H。
8、若累加器A中的数据为01110010B,则PSW中的P=0(偶数个1为0,奇数为1)9、8051单片机共有5个中断源,分别是INT0外部中断0、INT1外部中断1、T0定时器/计数器中断0中断、T1定时器计数器1中断、串行口中断。
10、ADC0809是8通路8位逐次逼近式模/数转换器。
11、计算机中按功能把总线分为数据总线、地址总线和控制总线。
12、MOV A,#0F5H中,#0F5H的寻址方式称之为立即寻址。
MOV类指令称之为一般传输指令。
13、8051的一个机器周期等于12个晶体震荡周期;通常8051单片机的ALE引脚以1/6倍的晶振频率输出脉冲。
14、8051单片机复位后,堆栈指针SP指向第07H号内部RAM;8051的堆栈是向上生长的。
15、十进制调整指令DA A,专用于BCD码的加减运算。
16、单片机的中断触发方式有低电平触发和下降沿触发两种。
大多数情况下,单片机控制系统采用下降沿触发方式触发中断。
17、若执行加法运算后累加器(A)中的数据为01110010B,则PSW中的P=018、8051单片机的程序存储器和数据存储器编址方式采用的是哈佛结构,即数据存储器和程序存储器分开的编址方式。
二、单项选择题1、8051单片机执行MOVX写指令时,相关的信号状态是PSEN无效为高电平,WR有效为低电平2、若PSW.4=1,PSW.3=1,现在需要保存R1的内容,可执行PUSH 19H指令3、下列指令不是变址寻址方式的是MOVX A,@DPTR4、在8051片外扩展一片EEPROM 28C64需要13根地址线(片选除外),8根数据线。
1.时钟周期:(晶振频率倒数、控制计算机节奏)时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ 的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
2.机器周期:(指令中单个阶段的执行周期)在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期由6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
(例如外接24M晶振的单片机,他的一个机器周期=12/24M秒)3.指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
51单片机中几个时间周期的概念区分时钟周期:时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。
通常也叫做系统时钟周期。
是计算机中最基本的、最小的时间单位。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,也就是机器周期=12*时钟周期,(上面讲到的原因)如果是12MHZ,那么机器周期=1微秒。
单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。
单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。
机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。
例如一个单片机选择了12MHZ晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。
但是在8051F310中,CIP-51 微控制器内核采用流水线结构,与标准的 8051 结构相比指令执行速度有很大的提高。
在一个标准的 8051 中,除 MUL和 DIV 以外所有指令都需要12 或24 个系统时钟周期,最大系统时钟频率为12-24MHz。
时钟周期
时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ 的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。
我们学习的8051单片机的时钟范围是1.2MHz-12MHz。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储
器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
指令周期
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期数也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
以51为例,晶振22.1184M,时钟周期(晶振周期)就是(1/22.1184)μs,一个机器周期包含12个时钟周期,一个机器周期就是0.5425μs。
一个机器周期一般是一条指令花费的时间,也有些是2个机器周期的指令,DJNZ,就是双周期指令,所以指令周期为0.5425μs 但不是所有机器周期都等于12个时钟周期的。
一个机器周期=6个状态周期=12个时钟周期。
时钟周期=外接晶振的倒数
机器周期=12乘与时钟周期列24m的晶振一个机器周期=12x1/24 us。