3.5 单片机的定时器中断

我们先来了解单片机的定时器系统

51单片机内部有2各16位可编程的定时器/计数器,即定时器T0和定时器T1。52单片机内部多一个T2定时器/计数器。他们既有定时功能又有计数功能,通过设置与它们相关的特殊功能寄存器,可以选择启用定时功能或计数功能。

注意,定时器系统是单片机内部一个独立的硬件部分,它与CPU和晶振通过内部某些控制线连接并相互作用,CPU一旦设置开启定时功能后,定时器便在晶振的作用下自动开始计时,当定时器的计数器计满后,会产生中断,即通知CPU该如何处理。

定时器/计数器的实质是加1计数器(16位),由高8位和低8位2各寄存器组成。TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

#太原理工大学机器人团队# 学习单片机的第10天
加1计数器如数的计数脉冲由两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;另一个是T0或T1引脚输入的外部脉冲源。**每来一个脉冲,计数器就加1,当加到计数器全为1时,再输入一个脉冲就是计数器回零,且计数器的溢出时TCON寄存器中TF0或TF1置1,并且向CPU发出中断请求(在定时器/计数器中断允许时)**如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。

  • 12分频:通俗来讲,就是把原来晶振的频率12等分,比如晶振的频率是12MHZ,12分频后就是1MHZ,那么周期就是1/1MHZ=1us,也就是计时器每过1us加一。

由此可见,由溢出时计数器的值减去计数器初值才是加1计数器的计数值。

设置位定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即技术频率位晶振频率的1/12) 。计数值N乘以机器周期T就是定时时间t**。

设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间重采样T0、T1引脚电平。

  • S5P2解释:在之前的笔记中我们了解了,一个机器周期是由12个振荡周期构成,每两个振荡周期构成一个状态周期,从第一个状态周期开始到最后一个,称之为S1,S2········S6,然后每个状态周期中分成两个振荡周期,为P1和P2。这里的S5P2就是表示第十个振荡周期…

当某周期采样到高电平输入,而下一周期又采样到低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1~0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2μs。

  • 数字电路中,数字电平从高电平(数字“1”)变为低电平(数字“0”)的那一瞬间叫下降沿

接下来讲讲单片机使用计时器/计数器功能的时候,必定会用到的两个寄存器:TMOD和TCON

定时器工作方式寄存器TMOD

定时器/计数器工作方式寄存器TMOD在特殊功能寄存器中,字节地址为89H,不能位寻址,用来确定定时器的工作方式及功能选择。

单片机复位时,TMOD全部被清0,其各位的定义如下图

#太原理工大学机器人团队# 学习单片机的第10天

我们从表里可知,TMOD的高4位用于设置定时器1,第4位用于设置定时器0 ,各个位符号含义如下:

  • GATE—门控制位。GATE=0,定时器/计数器启动与停止仅受TCON寄存器中的TRX(X=0,1)来控制;GATE=1,定时器/计数器启动与停止由TCON寄存器中的TRX(X=0,1)和外部中断引脚(INT0或INT1)上的电平状态来共同控制。

  • C/T—定时器模式和计数器模式选择为。C/T=1,为计数器模式;C/T=0,为定时器模式。

  • M1、M0—工作方式选择位。每个定时器/计数器都有4种工作方式,它们由M1、M2设定,如下图所示;

#太原理工大学机器人团队# 学习单片机的第10天

定时器/计数器控制寄存器TCON

这个明天再说吧

相关文章:

  • 2021-11-04
  • 2021-04-22
  • 2021-08-25
  • 2021-07-29
  • 2021-12-26
  • 2021-08-02
  • 2021-11-06
  • 2021-09-01
猜你喜欢
  • 2021-11-18
  • 2021-12-05
  • 2021-05-10
  • 2021-08-18
  • 2021-04-03
  • 2021-07-09
  • 2021-11-19
相关资源
相似解决方案