51单片机的定时器/计数器工作原理

[复制链接]
查看11 | 回复0 | 2021-6-5 15:25:58 | 显示全部楼层 |阅读模式
MCS-51系列单片机有两个定时器/计数器: T0和T1,可以用来对外部信号计数或者对外部设备进行定时控制。通常计数功能由外部中断引脚输入信号而发生计数,定时功能是由内部寄存器发生的工作事件。
基础知识:
1.计数:对某一事件的统计,以1为单位进行累加。
2.计数器的容量:计数器的计数是有容量的限制,T0和T1都是由2个8位寄存器组成(TH0和TL0)。MCS-51单片机有四种工作模式,不同的工作模式,计数的容量不同:模式0——13位;模式1——16位;模式2——8位;模式3——8位。当计数器计数溢出时,则会发出请求CPU,CPU中断处理。
3.定时:定时器/计数器处于定时模式时,需要与外部断开连接,即由内部时钟产生计时信号。每个脉冲产生多长时间的定时时间,与单片机本身的震荡频率相关。比如振荡器产生12MHZ的时钟脉冲信号,经过12分频后产生1MHz的脉冲信号,得到每个脉冲信号定时时间是1微秒。定时器工作在模式0时,可以定时65536微秒。
定时器/计数器的结构及工作原理
1.定时器/计数器的结构
T0由TH0和TL0组成;T1由TH1和TL1组成。二者均为16位计数器,以1为单位累加。
除此之外还有TCON以及TMO寄存器,分别控制定时器/计数器的启动、停止和工作方式。
定时器/计数器通过内部总线将控制信号发送给CPU。
2.定时器/计数器的工作原理
计数模式:与外部引脚INT0或者INT1连接,当引脚的信号由1跳变到0时,计数器加1,直至溢出。
定时模式:晶振产生的信号经过12分频后,作为定时器的定时脉冲信号,直至溢出。
定时器/计数器的控制
定时器/计数器只有在TMOD和TCON设置好的前提下,才能快乐的定时或者计数。
定时器/计数器的方式控制寄存器(TMOD):主要功能控制T0和T1的工作方式。对于工作方式的控制:控制M1、M0进行组合的四种工作方式;C/T:控制定时器/计数器的工作模式在定时还是计数。定时器/计数器控制寄存器(TCON):接收各种中断源送来的请求信号,同时对定时器/计数器进行启动和停止控制。
TR0和TR1时启动相应的定时器;TF0和TF1是溢出标志。

定时器/计数器的工作方式:
1.工作方式0(M1M0=00)
以定时器/计数器T1为例。由TL1的低5位+TH1的高8位组成,当7溢出时,TCON寄存器的TF1=1,表示溢出。
如何启动定时器模式?TMOD的C/T=0
如何启动计数器模式?TMOD的C/T=1,当外部中断引脚(INT0、INT1)发生负跳变时,计数器加1.
如何启动定时器或者计数器?GATE=0,只需要启动TR0或者TR1即可;若是GATE=1,需要INT0或者INT1为高电平(高电平无效)+TR0=1或者TR1=1才可以启动。
2.工作方式1(M1M0=01)
16位定时器/计数器,计数溢出时,TF0=1或者TF1=1.工作原理与启动方式与工作方式0相同。
3.工作方式2(M1M0=10)
8位定时器/计数器,解决了重新装在初值的问题。以定时器0为例,TL0与TH0均为8位寄存器,计数开始时,TL0进行计数,当计数溢出时(最大值256),TCON的标志位TF0=1,同时将TH0保存的数值传递给TL0.
1.png 2.jpg 3.jpg

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则