C51单片机中断系统和定时器/计时器的理论原理

前言

文章的开始,有人可能会问,我们在前几节课学了延时函数,为什么不用延时函数来取代定时器,而必须学定时器呢?这里,有如下几个理由:

1.使用delay函数时,单片机的cpu做不了其他事情,只能等待延时结束。

2.用了定时器cpu就可以做其他的事情,只要定时器溢出时,执行一下中断即可。

3.这就相当于原来用delay的时候cpu得自己数数计时,有了定时器就相当于cpu有了一个闹钟,时间一到就响了,提醒你做该做的事情。

一.定时器的工作模式

STC89C52的定时器1和定时器2有如下四种工作模式

 我们通常使用的是工作模式1,即16位定时器/计数器,本文所使用的也是工作模式1,所以其他工作模式便不再过多介绍。有兴趣的小伙伴可以自行了解。

下面的配图即为工作模式1的流程图

流程图详解:

定时器分为三大部分: 从左到右的圈圈里分别是时钟、计数系统、中断系统

1.我们先来看时钟部分,首先,我们所使用的单片机在时钟部分接入的是12T mode,往下走,遇到一个C/T开关,C->counter 计数器,当这个开关选1时,则为计数器模式。 T->timer 定时器,当这个开关选0时即为定时器,也就是我们本节课所需要使用到的。当定时器\计数器 模式开启时,时钟系统会在固定的时间间隔内向计数系统发送一次脉冲,当计数系统的寄存器(TH0,TH1)溢出时

便将中断标志位TF0置1,标志着中断信号的传递。

2.我们再来看计数系统部分,这部分包括上下两部分,我们先来讲下面部分。下面部分是一个开关的控制系统,也就是上半部分的那个开关,这个开关决定着定时器0是否开启,时钟的脉冲信号是否能传输到计数系统中。这个开关有两种控制模式。

1.GATE门控端置0,由TR0单独控制,若TR0为1,则开关闭合,反之开关则断开。

2.GATE门控端置1,由外部引脚INT0和TR0共同控制,这种情况下下,INT0和TR0必须都为1才可以实现开关的闭合,否则开关都是断开。

原因:GATE门控端出来的那个三角形是一个“非门”,如果给GATE赋值0,则出来是1,如果给GATE赋值1,则出来是0。三角形出来的又遇到一个图形,这个图形是“或门”。最后一个图形是“与门”,这里的“非门、或门、与门”与C语言中的与或非完全相同。这就解释了上面的两种情况。

3.最后我们再来看看中断系统:

 当计数系统溢出时,中断标志位TF0置1,向中断系统请求中断,我们本次使用的是定时器0,所以配置T0中断即可,ET0为定时器0的中断寄存器,置1开启即可,EA为总使能,相当于总开关,也置1开启即可,最后就是PT0优先级寄存器,系统默认定时器0为低优先级,所以配置0即可。

总结:1.定时器原理:系统时钟每隔一段时间向计数系统发送脉冲,计数系统由TR0直接控制或者TR0和GATE门控端共同控制,当定时器开关被打开后,脉冲发送到计数系统,当计数系统溢出时,中断标志位TF0被置1,向中断系统发送中断请求,中断系统通过配置中断寄存器从而产生中断。

2.定时器0所用的16位定时器是由两个八位寄存器拼接在一起的,每次中断结束后都置0,所以需要赋初值,而后面所讲的串口用的是8位重装定时器,和这个有所差别

3.高优先级的中断可以打断低优先级的中断。

4.单片机通过配置寄存器来控制内部电路的连接

5.TCON是定时器控制寄存器,也就是TR0,TF0,TR1,TF1等寄存器

6.TMOD是定时器模式寄存器,控制单片机位定时器1或者定时器0,其中,高4位配0,低四位中的最后两位M1、M0分别配置为0 1,则为定时器0的工作模式1(常用),若低四位配置为0,高四位中的M1、M0分别配置为0 1则为定时器1的工作模式1。(常用)

 7.可位寻址就是可以单独赋值,如LED,可以单独对每个灯进行配置。

8.不可位寻址只能整体赋值,TMOD就是不可位寻址,只能整体赋值,下节我们会讲到TMOD的具体赋值方法。

物联沃分享整理
物联沃-IOTWORD物联网 » C51单片机中断系统和定时器/计时器的理论原理

发表评论