MCS-51单片机时序

  一、时序:单片机时序是指单片机执行指令时应发出的控制信号的时间序列。这些控制信号在时间上的相互关系就是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,即模为2.jpg

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

  Tmax=2.jpg&TImes;T0=65536&TImes;1us=65.536ms。

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

  (216-x)T0=2ms。

  解:MCS-51单片机时序

  (2.jpg-x)T0=2ms=2&TImes;10-3s

  X=2.jpg- =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)。

技术专区

  • mybatis动态sql详解
  • 用VHDL语言设计数据传输系统中的HDB3编码器
  • 裸机程序如何驱动硬件?看前辈是怎么说的
  • 应用面向对象编程SoC原则的典型示例
  • 嵌入式开发之java常用开发工具介绍
  • MCS-51单片机时序已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网