【蓝桥杯—单片机学习笔记(九)】定时/计数器基本原理

本文介绍了MCS-51单片机中定时/计数器T0和T1的结构原理,包括“加1”计数寄存器、TMOD和TCON寄存器的功能。详细阐述了定时器在定时模式和计数模式下的工作方式,以及定时/计数器控制字设置和四种工作模式,如方式0的13位定时/计数器,方式1的16位定时/计数器,以及方式2的8位自动重装载定时/计数器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定时/计数器的结构原理

MCS-51单片机中有2个可编程的16位定时/计数器T0和T1,他们内部都是由“加1”计数寄存器、工作方式寄存器TMOD和控制寄存器TCON三个部分组成。

其中,

(1)“加1”计数器分为高8位和低8位;

(2)TMOD寄存器主要用于控制定时或者计数功能选择、工作方式设置以及启动方式的控制等;

(3)TCON寄存器主要用于控制T0或T1的启动/暂停、溢出标志的设置等。

定时/计数器工作时,每来一个脉冲(即过1个机器周期),“加1”计数寄存器会加1,当其为全1的时候,在输入一个脉冲,这时计数寄存器产生溢出。与此同时,计数寄存器值会被清零,同时TCON寄存器的溢出标志位被置为1,并向单片机CPU发出定时中断信号。

若此时工作在定时模式,则代表设定的时间到;若工作于计数模式,则表示计数值已满。

1.工作于定时模式

定时/计数器工作于定时模式时,“加1”计数寄存器是对单片机内部产生的机器周期进行计数,其频率为系统晶振频率的1/12,此时定时时间T = Tp * N(Tp是每个机器周期的时间,N为累计的机器周期脉冲个数)

2.工作于计数模式

定时/计数器工作于计数模式时,它用于对外部事件的计数,其值由单片机T0或T1引脚输入,脉冲的下降沿计数。输入值从一个高电平到低电平,至少需要2个机器周期,(1个机器周期 = 12晶振周期),因此计数频率最大为系统晶振频率的1/24。

二、定时/计数器方式控制字设置

1.定时/计数器控制寄存器TCON(可以进行位寻址)

TCON为定时/计数器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源。

2.定时/计数器工作模式寄存器TMOD(不能进行位寻址)

定时和计数功能由特殊功能寄存器TMOD的控制位C/T'进行选择。2个定时/计数器有4种操作模式,通过TMOD的M0和M1选择。

 三、定时/计数器的工作方式

1.方式0:13位定时/计数器 

13位定时/计数器 ,由TH0的高8位和TL0的低5位(高3位未用)构成,TL0溢出时向TH0进位;TH0溢出时,溢出标志位TF置1。

定时时间T = Tp*N(Tp为每个机器周期的时间,N为累计的机器周期脉冲的个数),Tp = 12Tosc = 12/fosc。

(1)做定时器使用时,定时初值X = 2^{13} - N = 2^{13} - T/Tp = 2^{13} - T*fosc/12

(2)做计数器使用时,计数初值Y = 2^{13} - M(M为T0或T1引脚输入的计数脉冲个数)。

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

16位定时/计数器,由TH0作为高8位、TL0作为低8位构成。

(1)做定时器使用时,定时初值X = 2^{16} - N = 2^{16} - T/Tp = 2^{16} - T*fosc/12

 (2)做计数器使用时,计数初值Y = 2^{16} - M(M为T0或T1引脚输入的计数脉冲个数)。

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

8位自动重装载定时/计数器,TL0作为计数寄存器,当TL0溢出后,TL0初值自动重装入TH0的值。

(1)做定时器使用时,定时初值X = 2^{8} - N = 2^{8} - T/Tp = 2^{8} - T*fosc/12

(2)做计数器使用时,计数初值Y = 2^{8} - M(M为T0或T1引脚输入的计数脉冲个数)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机学习之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值