微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MCS-51单片机时序

MCS-51单片机时序

时间:01-24 来源:互联网 点击:

一、时序:单片机时序是指单片机执行指令时应发出的控制信号的时间序列。这些控制信号在时间上的相互关系就是CPU的时序。它是一系列具有时间顺序的脉冲信号。

CPU发出的时序有两类:一类用于片内各功能部件的控制,它们是芯片设计师关注的问题,对用户没有什么意义。另一类用于片外存储器或I/O端口的控制,需要通过器件的控制引脚送到片外,这部分时序对分析硬件电路的原理至关重要,也是软件编程遵循的原则,需要认真掌握。

扩展阅读:什么是单片机的时序

二、时钟周期、机器周期和指令周期

1、 时钟周期:又称振荡周期。指为单片机提供定时信号的振荡源周期。是最小的时序单位。

振荡源的频率越高,单片机的工作速度越快。

时钟周期被分成两个节拍P1和P2。每个时钟周期的前半周期P1信号有效,这时CPU通常完成算术逻辑操作;在每个时钟的后半周期P2信号有效,内部寄存器与寄存器之间的数据一般在此状态发生。

2、 机器周期:定义为实现特定功能所需要的时间。机器周期按其功能来命名,如取指机器周期等。

MCS-51的机器周期时间是不变的,均为12个晶振周期或6个状态周期。分为S1P1,SIP2;S2P1,S2P2;等

3、 指令周期:执行一条指令的时间。

按指令执行的时间可分为:单周期、双周期和四周期(只有乘法和除法两条指令)。

时钟周期、机器周期和指令周期均是单片机时序单位。机器周期是单片机计算其它时间值(如波特率、定时器的定时时间等)的基础时序单位。

如MCS-51外接晶振为12MHz,则:

时钟周期= = =0.167us;

机器周期= = =1us;

指令周期=(1~4) =(1~4) =1~4us.

例:若单片机时钟频率为12MHz,计算定时2ms所需要的定时器初值。(设定时器工作在方式1,即模为)

分析:MCS-51有两个8位的计数器,每过来一个机器周期,计数器加1。当计数器从0FFFFH~0000H时,定时器自动产生溢出请求。故方式1的最大定时时间为Tmax=×T0,其中T0为是一个机器周期的时间。由于时钟周期的频率为12MHz,这里的

Tmax=×T0=65536×1us=65.536ms。

现在要产生2ms的定时时间,故必须在计数器中预先放置一定的初值x,使:

(216-x)T0=2ms。

解:

(-x)T0=2ms=2×10-3s

X=- =216-2×103=63536=F830H。

注:

十进制数与二进制数、十六进制数快速转换方法

1、 若十进制数小于256,则用这个数除16,得到商和余数。若把这个十进制的商写成二进制形式,则就是二进制的高4位。把这个十进制的余数写成二进制的形式,则就是二进制的低4位。合在一起就是转换的8位二进制数。同样,若把这个十进制的商写成十六进制的形式,则就是二进制的高4位的十六进制表示,把这个十进制的余数写成十六进制的形式,则就是二进制的低4位的十六进制表示,合在一起就是转换成的十六进制表示。

2、 若十进制数大于256小于65536,则用这个数除256,得到商和余数,再分别用商和余数除16。商除16后,又得到商和余数,这个商和余数是十进制形式,写成十六进制就是高8位的高4位和高8位的低4位的十六进制形式。余数除16也得到商和余数,这个商和余数也是十进制,写成十六进制,就是低8位的高4位和低8位的低4位的十六进制形式。

例:求出下列十进制数的二进制和十六进制。

(1)212; (2)65365

解:(1)

212/16=13……4

若把13写成十六进制,为D,4写成十六进制,为4,则转换成十六进制为:

212=D4(H)

若把13写成二进制,为1101,4写成二进制,为0100,则转换成二进制为:

212=11010100(B)。

(2)

65365/256=255……85

(这个商除16就是高8位,这个余数除16就是低8位)

255/16=15……15

(这个商就是高8位的高4位,余数就是高8位的低4位)

把商15写成十六进制为F,把余数15写成十六进制为F,故高8位的十六进制为:FFH;

85/16=5……5

(这个商就是低8位的高4位,余数就是低8位的低4位)

把商5写成十六进制为5,把余数5写成十六进制为5,故低8位的十六进制为:55F。

高8位和低8位合在一起即为这个十进制数的十六进制形式:

65365=FF55(H)。

化为二进制为:65365=FF55(H)=11111111010101010(B)。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top