师从江科大
定时器
定时器介绍
51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成的。
定时器作用
1、计时功能,用于计时系统,可以实现软件计时,或者使程序每隔一固定时间完成一项操作
2、延时功能,代替长时间的Delay,提高CPU的运行效率和处理速度
3、中断功能,当定时器计数值达到预设值时,会产生硬件中断请求。CPU响应中断后将执行相应的中断服务程序,这样可以在固定的时间间隔内自动切换执行不同任务,提高了CPU的工作效率,实现了多任务的协同处理。
4、频率测量与计数脉冲,定时器也可以用作计数器,对外部输入的脉冲信号进行计数,从而可以测量外部事件发生的频率或次数。
STC89C52单片机中,定时器/计数器T0和T1都有4种不同的工作模式。以下是这四种工作模式的简要描述:
-
方式0(Mode 0):13位计数器
- 在这种模式下,定时器是一个13位的计数器,由TLx(低8位,对于T0是TL0,对于T1是TL1)和THx(高5位)组成。
- 计数器从0开始递增计数,当计数值达到2^13-1(即8191)时会自动重置并重新开始计数。
- 方式0没有自动重装载功能,不适用于波特率发生器或其他需要周期性中断的应用。
-
方式1(Mode 1):16位计数器(常用)
- 这是一种16位的定时器/计数器模式,使用THx作为高8位,TLx作为低8位。
- 当计数值从0计数到65535(FFFFH)时溢出,并可以触发一个硬件中断(中断号为INT0或INT1,对应于T0和T1)。
- 此模式下支持自动重装载初值的功能,常用于产生精确的定时间隔或者计算外部事件的频率。
-
方式2(Mode 2):8位自动重载模式
- 这是一种自动重载的8位定时器/计数器,但不同于方式1,它主要用于波特率发生器。
- TLx作为一个8位计数器,在计数溢出后,不仅会置1溢出标志(TFx),还会自动装入THx的内容到TLx中继续计数。
- THx则用来存放预设的重载值。
-
方式3(Mode 3):两个8位计数器
- 这种模式通常称为“捕捉/比较”模式,提供两个独立的8位定时器。
- 每个定时器单元(TLx和THx)都可以独立工作,各自有自己的控制寄存器和中断功能。
- 它们既可以用于捕捉外部信号的上升沿或下降沿时刻,也可以用于比较输出,但这种方式相对复杂,不常用在简单的定时任务中。
工作模式1框图:
-
非门(NOT Gate): 非门用于实现逻辑反相操作,它有一个输入和一个输出。当输入为高电平(1)时,输出为低电平(0);(给1变0,给0变1)
-
与门(AND Gate): 与门有至少两个输入和一个输出,只有当所有输入均为高电平时,输出才为高电平。(有0即0)
-
或门(OR Gate): 或门同样具有至少两个输入和一个输出,只要有任何一个输入为高电平,输出就为高电平。(有1即1)
注:图中左下角从左到右第一个位为非门,第二个为
注:左上是定时系统,左下是计数系统,右边是中断系统
定时器时钟
SYSclk:系统时钟,即晶振周期,本开发板上的晶振为12MHZ
中断系统
中断系统流程
STC89C52中断资源
1、中断源个数:8个(外部中断0、定时器0中断、外部中断1、定时器1中断、串口中断、外部中断2、外部中断3)
2、中断优先级个数:4个
3、中断号: