一文详解80C51系列单片机的定时/计数器

控制/MCU

1883人已加入

描述

在单片机的实际应用系统中,经常会使用到精确延时,定时扫描,统计事件的发生次数和长生一定频率的声音等功能。

这些功能都需要在时序电路中实现定时和计数的功能。

80C51系列单片机内部集成了两个可编程的16位定时/计数器,简称T0和T1。每个定时器可以独立工作,可以设置成定时和计数两种模式,有4种工作方式可供选择。

定时/计数器的结构

80C51

80C51单片机内部的定时计数器的核心由两个16位加1计数寄存器T0和T1组成,每个计数寄存器都分为高8位THx和低8位TLx分别访问。

时钟源可以选择内部时钟源,也可以选择外部时钟源,当选择内部时钟源时,时钟脉冲序列由单片机内部产生;当选择外部时钟源时,由引脚P3.4、P3.5输入外部时钟脉冲序列。

定时/计数器的功能

作定时器时,常选用内部时钟源,由单片机内部提供时钟信号,频率固定;

作计数器时,常用外部时钟源,信号由相应的引脚输入,统计外部事件发生的次数。

1)计数功能

时钟信号的下降沿有效,单片机在每个机器周期的S5P2期间会采样外部输入时钟信号的电平状态,当连续两次采样得到的信号先后为1和0时,单片机认为外部输入了一个下降沿,此时在下一个机器周期的S3P1期间计数器的计数值加1。

由于采样一个下降沿需要两个机器周期,即需要24个振荡周期,因此外部输入的计数脉冲的最高频率为单片机振荡频率的1/24。

2)定时功能

选用内部时钟源,频率是单片机主时钟的12分频。根据定时时间的长度和单片机的主时钟频率,要计算出定时/计数器的初值,然后启动定时器开始计时。

当定时时间到,产生中断或者软件查询等待时间结束。

定时与计数在本质是一致的,都是通过计数时钟信号的下降沿个数实现。

定时/计数器的方式寄存器和控制寄存器

1)工作方式寄存器TMOD

TMOD用来设置定时/计数器的启动方式,选择的时钟源,设置工作方式。不可按位寻址,只能对整个寄存器进行编程。

高4位控制定时/计数器1,低4位控制定时/计数器0。

80C51

GATE:计数器门控制位,用来决定启动是否受外部中断输入引脚的输入电平控制。

为0时,引脚INTx电平不产生影响,只要启动控制位TRx,就开始工作;为1时,则需要INTx为1,且TRx也为1时,计数器才开始工作,这种设置常用来测量INTx引脚高电平的脉冲宽度。

C/T:时钟选择控制位;

M1M0:工作方式选择位。

80C51

2)控制寄存器TCON

80C51

高4位用作控制定时/计数器的启动,停止和中断请求标志位;低4位用作外部中断的中断请求标志位和触发方式控制位。

TF1:定时/计数器1中断请求标志位;

TR1:定时/计数器1启动控制位;

TF0:定时/计数器0中断请求标志位;

TR0:定时/计数器0启动控制位;

定时/计数器的4种工作方式

1)方式1:16位定时/计数器

80C51

2)方式0:13位定时/计数器

13位定时器由THx的8位再加上TLx的低5位,构成的定时/计数器。当TLx的低5位计满溢出时,直接向THx进位。

80C51

3)方式2:自动重装的8位定时/计数器

16位计数器分成独立的两个部分,其中THx作为计数初值寄存器,由于存放和保持初值,初值由软件设置,而TLx用作8位计数器。

80C51

4)方式3

对于T1,设置为方式3时,相当于使TR1=0,使其停止计数,没有什么实际意义。因此只有定时/计数器0可以工作在方式3。

80C51

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分