51单片机中几个时间周期的概念区分
51单片机指令周期,机器周期,时钟周期详解
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语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。
51单片机自学笔记(基础部分)
一、51单片机的硬件结构1. 硬件结构框图说明:○1微处理器(CPU):51单片机含一个8位CPU,与通用的CPU功能基本相同,含运算器和控制器,不仅可以字节处理,还可以位处理。
例如:未处理、查表、状态检测、中断处理等。
○2数据存储器(RAM):51为128B,52为256B;片外最大可扩展到64K。
○3程序存储器(ROM/EPROM):8031没有,8051有4K的ROM,8751有4K的EPROM;片外可扩展至64K。
○4中断系统:5个中断源,2级优先权。
○5定时器/计数器:2个16位定时/计数器,四种工作方式。
○6串行口:1个全双工串行口,四种工作方式。
可进行串口通信,扩展并行I/O口,多机通信等。
○7P1、P2、P3、P0口:四个8位并行I/O口。
○8特殊功能寄存器(SFR):共21个,对片内部件进行管理、控制、监视;实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。
2. 引脚排列(1)电源及时钟引脚○1电源引脚:Vcc(40脚)解5V电源、Vss(20脚)接地。
○2时钟引脚:两个始终引脚XTAL1、XTAL2外接晶振,或接晶体与片内反相放大器构成振荡器。
XTAL1(19脚):内部反相放大器的输入端。
若接晶振则应接地;XTAL2(18脚):内部反相放大器的输出端。
若采用外部时钟振荡器,该引脚接收时钟振荡信号。
(2)控制引脚○1RST/Vpd(9脚):复位信号输入,高电平有效。
单片机运行时,此脚持续2个机器周期(24个时钟振荡周期)的高电平,就可复位。
平时应为0.5V低电平;Vpd为第二功能,备用电源输入端。
○2:ALE为地址锁存允许,正常工作时,ALE不断输出正脉冲信号。
当访问外部存储器时,ALE输出信号的负跳变沿用作低8位地址的锁存信号;PROG’为编程脉冲输入端。
○3PSEN’(Program Strobe Enable,29脚):程序存储器允许输出控制端。
低电平是外部程序存储器选通。
单片机中各种周期的关系与定时器原理
单片机中各种周期的关系与定时器原理
我们现来理解几个比较重要的概念:
时钟周期:
时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12乘以10的6次方,即每秒发出12000000个脉冲信号,那幺发出一个脉冲的时间就是时钟周期,也就是1/12微秒。
通常也叫做系统时钟周期。
是计算机中最基本的、最小的时间单位。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
单片机时序的相关概念
单片机时序的相关概念
单片机时序的相关概念包括以下几个方面:
1. 时钟频率:单片机的工作时钟频率决定了其内部指令和数据的处理速度,一般以赫兹(Hz)为单位表示,如8MHz、
16MHz等。
2. 时钟周期:时钟周期是指单片机内部时钟的一个完整震荡周期,它是时钟频率的倒数,表示为T,单位为秒。
时钟周期包
括一个上升沿(脉冲从低电平到高电平)和一个下降沿(脉冲从高电平到低电平)。
3. 机器周期:机器周期是指一条指令(机器指令)的执行时间,它由若干个时钟周期组成。
不同的指令由于执行的操作不同,其机器周期也不同,一般以个别时钟周期的数量表示。
4. 外设时序:单片机与外设设备进行通信时,要求时序满足一定要求,如数据的传输速率、读写操作的时序等。
外设时序的合理设计和控制是保证系统正常工作的重要因素。
5. 中断时序:中断是单片机响应外部事件的一种方式。
在中断发生时,单片机要保存当前执行的指令和相关寄存器的状态,跳转到中断服务程序执行相应的处理,处理完后再返回原程序继续执行。
中断时序涉及到中断请求、中断响应、中断服务程序的执行等过程。
单片机中的各周期介绍
晶振与单片机周期单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。
单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。
—个机器周期包括12个时钟周期。
如果一个单片机选择了12MHZ晶振,它的时钟周期是1/12us,也是一个晶振周期。
它的一个机器周期是12×(1/12)us,也就是1us。
机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。
例如一个单片机选择了12MHZ 晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。
时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250ns。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。
我们学习的8051单片机的时钟范围是1.2MHz-12MHz。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
51单片机延时时间计算和延时程序设计
一、关于单片机周期的几个概念时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12MHz 的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
机器周期完成一个基本操作所需要的时间称为机器周期。
以51 为例,晶振12M,时钟周期(晶振周期)就是(1/12)μs,一个机器周期包含12 个时钟周期,一个机器周期就是1μ s。
指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
2.延时常用指令的机器周期1.指令含义DJNZ:减 1 条件转移指令这是一组把减 1 与条件转移两种功能结合在一起的指令,共2条。
DJNZ Rn,rel ;Rn←(Rn)-1;若(Rn)=0,则PC←(PC)+2 ;顺序执行;若(Rn)≠ 0,则PC←(PC)+2+rel,转移到rel 所在位置DJNZ direct,rel ;direct ←(direct )-1;若(direct)= 0,则PC←(PC)+3;顺序执行;若(direct)≠ 0,则PC←(PC)+3+rel,转移到rel 所在位置2.DJNZ Rn,rel 指令详解例:MOV R7,#5DEL:DJNZ R7,DEL; r在el本例中指标号DEL三、51 单片机延时时间的计算方法和延时程序设计1.单层循环由上例可知,当Rn赋值为几,循环就执行几次,上例执行 5 次,因此本例执行的机器周期个数=1(MOV R7,#5)+2(DJNZ R7,DE)L ×5=11,以12MHz的晶振为例,执行时间(延时时间)=机器周期个数×1μs=11μ s,当设定立即数为0 时,循环程序最多执行256 次,即延时时间最多256μ s。
51单片机中的周期
51单片机中的周期
首先明确几个概念:时钟周期、振荡周期、状态周期、机器周期、指令周期1、时钟周期,也称为振荡周期:定义为时钟脉冲的倒数,在单片机中也就等于晶振的倒数。
51 单片机中把一个时钟周期定义为一个节拍(用P 表示),2 个节拍定义为状态周期(用S 表示)
时钟周期是单片机中最小的时间单位。
eg:12M 晶振的单片机,时钟周期=振荡周期=1/12 us。
2、机器周期:定义为完成一项基本操作所需要的时间,称为机器周期。
在计算机中,为了方便管理,把一条指令的执行过程分为若干个阶段,每个阶段去执行一项基本操作。
如:取指令,存储器读,存储器写等。
在51 单片机中1 个机器周期由6 个状态周期组成,也就是12 个时钟周期=12 x 1/12 us =1 us
定义机器周期是因为时钟周期时间太短,根本做不了什么。
3、指令周期:定义为执行一条指令所需的时间。
通常,包含一个机器周期的指令称为单周期指令,比如MOV 指令,CLR 指令等。
包含两个机器周期的指令称为双周期指令。
另外还有四周期指令。
判断指令是单周期指令还是双周期指令,最可靠的是查指令表。
我在网上找到了一个规律总结,
此规律应按照顺序进行判断,前一条原则高于后一条(主要指2~6),按顺。
51单片机的延时及时序分析
要给我们的计算机CPU提供时序,就需要相关的硬件电路,即振荡器和时钟电路。我们学习的8051单片机内部有一个高增益反相放大器,这个反相放大器的作用就是用于构成振荡器用的,但要形成时钟,外部还需要加一些附加电路。8051单片机的时钟产生有以下两种方法:
51单片机的延时及时序分析
计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序,为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地控时序进行工作,在学习51单片机的时序之前,我们先来了解下时序相关的一些概念。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。请大家参考后面的时序图。
机器周期
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。参见后面的时序图。
二、外部时钟方式:
此方式是利用外部振荡脉冲接入XTAL1或XTAL2。HMOS和CHMOS单片机外时钟信号接入方式不同,HMOS型单片机(例如8051)外时钟信号由XTAL2端脚注入后直接送至内部时钟电路,输入端XTAL1应接地。由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上接电阻。对于CHMOS型的单片机(例如80C51),因内部时钟发生器的信号取自反相器的输入端,故采用外部时钟源时,接线方式为外时钟信号接到XTAL1而XTAL2悬空。如下图
MCS-51单片机的指令时序
MCS-51单片机的指令时序时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。
·节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。
·机器周期:MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。
·指令周期:执行一条指令所需要的时间称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期(这些内容,我们将在下面的章节中加以说明)。
·MCS-51的指令时序:MCS-51指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。
执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:·单字节指令单机器周期·单字节指令双机器周期·双字节指令单机器周期·双字节指令双机器周期·三字节指令双机器周期·单字节指令四机器周期(如单字节的乘除法指令)下图是MCS-51系列单片机的指令时序图:上图是单周期和双周期取指及执行时序,图中的ALE脉冲是为了锁存地址的选通信号,显然,每出现一次该信号单片机即进行一次读指令操作。
51单片机晶振频率、时钟周期、状态周期、机器周期、指令周期和总线周期的关系
51单⽚机晶振频率、时钟周期、状态周期、机器周期、指令周期和总线周期的关系⼀、晶振频率1、英⽂全称:frequency oscillate2、定义:晶体振荡器的固有频率, 不能改变。
⼆、时钟周期1、英⽂全称:Clock Cycle。
2、时钟周期是计算机中最基本的、最⼩的时间单位。
在⼀个时钟周期内,CPU仅完成⼀个最基本的动作。
3、时钟周期 = 晶振周期 = 振荡周期Tosc = 晶振频率(振荡频率fosc)的倒数。
4、若晶振周期为12MHz,则时钟周期 = 1/12us。
每秒发出12000000个脉冲信号,那么发出⼀个脉冲的时间就是时钟周期,即1/12微妙。
三、状态周期振荡器脉冲信号经过时钟电路⼆分频之后产⽣的单⽚机时钟信号的周期(⽤S表⽰)称为状态周期。
故⼀个状态周期S包含2个节拍,前⼀时钟周期称为P1节拍,后⼀时钟周期称为P2节拍。
四、机器周期1、定义:CPU完成⼀项基本操作(取指令、存储器读写等)所消耗的最短时间。
2、⼀般由12个时钟周期或者6个状态周期组成。
3、计算:机器⼈周期 = 12 / 晶振频率。
4、存在的原因:1个时钟周期⽆法⼲完⼀件事,⽽12个时钟周期能够完成基本的操作。
五、指令周期取出并执⾏⼀条指令的时间。
指令周期是不确定的,因为她和该条指令所包含的机器周期有关。
⼀个指令周期=1个(或2个或3个或4个)机器周期,像乘法或除法就含有4个机器周期,单指令就只含有1个机器周期。
六、总线周期访问1次存储器和I/O端⼝操作所需要的时间。
七、⼩结所需时间:时钟周期 < 状态周期 < 机器周期 < 指令周期 < 总线周期————————————————————————————————————————————————————————————。
MCS51单片机时序
S1
S1
P1P2 S2 S3 S4 S5 S6 P1P2 S2 S3 S4 S5 S6
ALE
读操作码
读下一个操作码(丢弃)
单字节单周期指令
S1 S2 S3 S4 S5 S6 S1
例:INC A
读操作码 读第二个字节
双字节单周期指令
S1 S2 S3 S4 S5 S6 S1
例:ADD A,DATA
读操作码
一、片内振荡器及时钟信号的产生
8051芯片内部有一个高增益反相放大器,用于构成振 荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,分 别是8051的19脚和18脚。
在XTAL1和XTAL2两端跨接石英晶体及两个电容就可以 构成稳定的自激振荡器。电容器C1和C2通常取30pF左右, 对 振 荡 频 率 有 微 调 作 用 。 振荡 频 率 范围 是 0.5MHz-16MHz
提供定时信号的振荡源的周期; 计算机中最基本的时间单位。
时钟周期:
1个时钟周期=2个振荡周期; 分为P1节拍和P2节拍; P1节拍通常完成算术逻辑操作; P2节拍完成内部寄存器间的传送。
机器周期*:
1个机器周期 = 12个振荡周期 CPU访问存储器一次所需的时间; 执行一条指令需要的时间以机器周期为单位。
指令的字节数指指令的存储长度,在进行程序跳转时用 于计算跳转的偏移量。
指令的周期数指指令的运行时间,决定了指令执行的速 度,同时在定时时要用于计算实际定时时间。
CPU取指、执行周期时序
每一条指令都可以包括取指和执指两个阶段。 在取指阶段,CPU从内部或者外部ROM中取出指令操作 码及操作数,然后再执行这条指令。 在8051指令系统中,根据各种操作的繁简程度,其指 令可由单字节、双字节和三字节组成。从机器执行指令速 度看,单字节和双字节指令都可能是单周期或双周期的, 而三字节指令都是双周期的,只有乘、除指令占四个周期。 此外,在6MHz时钟频率下,执行一条指令的时间(指 令周期)分别为2μs,4μs和8μs。
MCS51单片机的指令时序
单片机时序图MCS51单片机的指令时序接下来我们分别对几个典型的指令时序加以说明。
·单字节单周期指令:单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,那么读出的还是原指令,属于一次无效的读操作。
·双字节单周期指令:这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。
·单字节双周期指令:两个机器周期需进行四读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。
单字节双周期指令有一种特殊的情况,象MOVX这类指令,执行这类指令时,先在ROM 中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。
在第二个指令周期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。
上页的时序图中,我们只描述了指令的读取状态,而没有画出指令执行时序,因为每条指令都包含了具体的操作数,而操作数类型种类繁多,这里不便列出,有兴趣的读者可参阅有关书籍时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。
·节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。
·机器周期:MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。
51单片机指令和时序讲解
1110 0101 direct
mov a, direct
8位的 RAM地址
三字节指令(16条): ①指令中的操作数为双字节。 MOV DPTR,#data16 1001000B,data15-8,data7-0 ②指令中分别包含1个字节的操作数和1个字节的操作数地址。 MOV direct ,#data 举例:MOV 20H,#0FFH
特点: 直接存储在程序存储器ROM中、被CPU直接识别、 运行的指令形式,也称机器码。
缺点:不便于人工阅读、记忆和调试修改。
2,十六进制表示方式:
它是对二进制形式的一种简化。
00100100B 00001000B
二进制表示的形式
24H 08H
十六进制表示的形式
在实验室等少数环境下,可以将这种形式作为输入程 序的一种辅助手段。但是,这种形式的指令格式必须由对 应的监控程序把它们翻译成二进制的“机器码”后存入程 序存储器并运行。
指令的字节数:MCS-51单片机的指令系统有: 单字节 双字节 (占用1个ROM存储单元 — 1个 字节); (占用2个ROM存储单元 — 2个字节);
三字节指令(占用3个ROM存储单元 — 3个字节)。
ROM ROM ROM
OP
O P2-2 O P2-1
O P3-3 O P3-2 O P3-1
单字节指令
T
机器周期:完成特定功能所需要的时间。
机器周期由12个时钟周期构成,为了描述方便将其分6个状态 (S1-S6),每个状态又分为P1和P2两拍。 既:
S1P1,S1P2,S2P1,S2P2,S3P1,S3P2 … S6P1,S6P2 一种描述时序图时间参数的定标方法
T S1 S2 S3 S4 S5 S6
单片机的几个周期介绍
单片机的几个周期介绍
(1)时钟周期
也称为振荡周期,定义为时钟频率的倒数(外接12MHZ的晶振,其时钟周期就是1/12us),t它是单片机中最基本、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作
(2)状态周期
它是时钟周期的两倍。
(3)机器周期
在一个操作周期内,单片机完成一项基本周期,如取指令、存储器读/写等,它是由12个时钟周期(6个状态周期)组成。
(4)指令周期
它是指CPU执行一条指令的所需要的时间。
(5)左移<<
每执行一次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位,CY 位中原来的数丢弃,最低位补 0 ,其他位向左移动一位。
总结51单片机时钟与周期之间的关系
总结51单片机时钟与周期之间的关系 单片机机中,有时钟周期,机器周期,指令周期,初学者往往不能弄清楚他们之间的关系,这里我就简单介绍一下. 在说明之前我首先要明确几个概念,既什么是周期和频率,相信大多数人都知道他们的含义,周期就是物体循环一周的时间,频率就是1 秒钟内循环的次数.单片机是靠脉冲工作的,既一个脉冲单片机产生一个操作.下面言归正传. 时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),既产生一个脉冲的时间,是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250ns。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。
我们学习的8051单片机的时钟范围是1.2MHz-12MHz。
机器周期:单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期既单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。
—个机器周期包括12个时钟周期。
如果一个单片机选择了12MHZ晶振,它的时钟周期是。
51单片机指令时间计算
51单片机指令时间计算引言:在嵌入式系统中,单片机是一种常用的控制器,而51单片机指令时间计算是评估单片机执行效率的重要指标之一。
本文将详细介绍51单片机指令时间计算的相关内容,包括指令周期、机器周期、时钟周期以及如何计算指令的执行时间。
一、指令周期指令周期是指单片机执行一条指令所需要的时间。
在51单片机中,一个指令周期包括12个机器周期。
每个机器周期的时间为1/12个机器周期。
二、机器周期机器周期是指单片机所需的最小时间单位,由时钟周期决定。
在51单片机中,一个机器周期包括6个时钟周期。
每个时钟周期的时间为1/6个机器周期。
三、时钟周期时钟周期是指单片机内部时钟发生一次跳变所需要的时间。
在51单片机中,时钟周期的时间周期为1/12个机器周期。
四、指令执行时间计算指令执行时间可以通过以下公式计算:指令执行时间 = 指令周期× 时钟周期五、示例计算假设某条指令的指令周期为3个机器周期,时钟周期为1.5个机器周期,则该指令的执行时间计算如下:指令执行时间 = 3个机器周期× 1.5个机器周期 = 4.5个机器周期六、指令执行时间的影响因素1.指令周期的长度:不同的指令周期长度会直接影响指令的执行时间。
指令周期越长,执行时间越长。
2.时钟周期的长度:时钟周期的长度与单片机的工作频率有关。
时钟周期越长,执行时间越长。
3.指令的类型:不同类型的指令可能需要不同的机器周期和时钟周期来执行。
4.指令之间的依赖关系:如果一个指令依赖于前面的指令执行结果,那么它的执行时间将会受到前面指令执行时间的影响。
七、指令执行时间的应用1.性能评估:通过计算指令执行时间,可以评估单片机的性能表现,从而选择合适的单片机。
2.程序优化:了解指令执行时间可以帮助程序员优化程序,提高程序的执行效率。
3.实时系统设计:在实时系统中,需要根据指令执行时间来确定任务的调度策略,以保证系统的实时性。
八、结论51单片机指令时间计算是评估单片机执行效率的重要指标之一,通过计算指令周期、机器周期和时钟周期,可以得到指令的执行时间。
51单片机延时程序算法详解
51单片机汇编延时程序算法详解将以12MHZ晶振为例,详细讲解MCS-51单片机中汇编程序延时的精确算法。
指令周期、机器周期与时钟周期指令周期:CPU执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的,指令不同,所需的机器周期也不同。
时钟周期:也称为振荡周期,一个时钟周期=晶振的倒数。
MCS-51单片机的一个机器周期=6个状态周期=12个时钟周期。
MCS-51单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期指令被执行所占时间为12*(1/12000000)=1μs。
程序分析例1 50ms 延时子程序:DEL:MOV R7,#200 ①DEL1:MOV R6,#125 ②DEL2:DJNZ R6,DEL2 ③DJNZ R7,DEL1 ④RET ⑤精确延时时间为:1+(1*200)+(2*125*200)+(2*200)+2=(2*125+3)*200+3 ⑥=50603μs≈50ms由⑥整理出公式(只限上述写法)延时时间=(2*内循环+3)*外循环+3 ⑦详解:DEL这个子程序共有五条指令,现在分别就每一条指令被执行的次数和所耗时间进行分析。
第一句:MOV R7,#200 在整个子程序中只被执行一次,且为单周期指令,所以耗时1μs 第二句:MOV R6,#125 从②看到④只要R7-1不为0,就会返回到这句,共执行了R7次,共耗时200μs第三句:DJNZ R6,DEL2 只要R6-1不为0,就反复执行此句(内循环R6次),又受外循环R7控制,所以共执行R6*R7次,因是双周期指令,所以耗时2*R6*R7μs。
例2 1秒延时子程序:DEL:MOV R7,#10 ①DEL1:MOV R6,#200 ②DEL2:MOV R5,#248 ③DJNZ R5,$ ④DJNZ R6,DEL2 ⑤DJNZ R7,DEL1 ⑥RET ⑦对每条指令进行计算得出精确延时时间为:1+(1*10)+(1*200*10)+(2*248*200*10)+(2*200*10)+(2*10)+2 =[(2*248+3)*200+3]*10+3 ⑧=998033μs≈1s由⑧整理得:延时时间=[(2*第一层循环+3)*第二层循环+3]*第三层循环+3 ⑨此式适用三层循环以内的程序,也验证了例1中式⑦(第三层循环相当于1)的成立。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。
而对于 CIP-51 内核,70%的指令的执行时间为 1 或2个系统时钟周期,只有 4 条指令的执行时间大于 4 个系统时钟周期。
所以在计算定时器的
值时要注意这里的变化。
指令周期
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期数也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
系统时钟:
系统时钟:系统时钟就是CPU指令运行的频率,这个才是CPU真正的频率。
单片机内部所有工作,都是基于由晶振产生的同一个触发信号源,由这个信号来同步协调工作步骤,我们把这个信号称为系统时钟,系统时钟一般由晶振产生,但在单片机内部系统时钟不一定等于晶振频率,有可能小于晶振频率,也有可能大于晶振频率,具体是多少由单片机内部结构决定,正常情况和晶振频率会存在一个整数倍关系。
系统时种是整个单片机工作节奏的基准,它每振荡一次,单片机就被触发执行一次操作。
一般来说,单片机只有一个时钟源.用了外部晶振,就不用内部RC,用了内部RC,就不用外部晶振.振荡器振荡,产生周期波.单片机在这样的周期波的作用一下有规律的一拍一拍的工作,波的频率越高,单片工作得就越快,波的频率越低,单片机工作得就越慢。
有了以上的概念以后,就可以正确的理解定时器的工作原理了,在8051F310单片机中,有3个定时器,如果定时器1工作在模式1下,如工作模式1下,是16位的计时器,最大数值是65535,当再加1时(=65536),就会发生溢出,产生中断,所以如果我们要它计1000个数,那么定时初值就是65536-1000,结果就是64536,这个值送给TH、TL,因为是16进制的,所以高位是64536/256取商,低位是64536%256取余。
再者,就是每一计数的时间是多久?一般我们取12M晶振时,一个周期刚好是1us,计数1000个就是1ms,这是因为标准的51单片机是12时钟周期的(STC 有6时钟和1时钟方式)。
那么,如果我们晶振是12M,就比较好算,如果是其它的,就用12去除好了。
比如是6M的,那么就是12/6=2,每个计数是2us,
那么你要定时1ms就只要计数500个即可以。
定时器的初值跟定时器的工作方式,跟晶振频率都有关系。
一个机器周期Tcy=晶振频率X12,计数次数N=定时时间t/机器周期Tcy,那么初值就X=65536-N,得出的数化成十六进制就行了。
这里是用定时器O工作方式1做例子,如果是其它工作方式,就不能是65535了。
工作方式0是8192,方式2,3是256。
这里
有一个公式:
TH=(65536-time/(12/ft))/256
其中,time就是要延时的100ms(要取100000us),ft是晶振频率。
这个式
子又可以简化成
TH=(65536-time*ft/12)/256
TL=(65536-time*ft/12)%256
在一本书上还看到了这样计算定时初值的:
TH0=-(50235/256); //重装100ms定时初值
TL0=-(50235%256); ///这里使用的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。