这一节介绍51单片机的定时器中断。
STC89C5X
含有
3
个定时器:定时器 0、定时器 1、定时器 2(注意:
51
系列单片机一定有基本的
2
个定时器(定时器 0 和定时器 1),但不全有 3 个中断,需要查看芯片手册,通常我们使用的是基本的 2 个定时器:定时器 0/1)。本节要实现的功能是通过定时器
0
中断控制
D1
指示灯间隔
1
秒闪烁。
一、定时器介绍
在介绍定时器之前需要先科普下几个知识:
-
CPU 时序的有关知识
- 振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)。
- 状态周期:2 个振荡周期为 1 个状态周期,用 S 表示。振荡周期又称 S 周期或时钟周期。
- 机器周期:1 个机器周期含 6 个状态周期,12 个振荡周期。
- 指令周期::完成 1 条指令所占用的全部时间,它以机器周期为单位。
例如:外接晶振为
12MHz
时,51
单片机相关周期的具体值为:
振荡周期=1/12us
;
状态周期=1/6us
;
机器周期=1us
;
指令周期=1~4us
; -
学习定时器前需要明白几点
-
51
单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器/计数器。 - 定时器/计数器和单片机的
CPU
是相互独立的。定时器/计数器工作的过程是自动完成的,不需要CPU
的参与。 -
51
单片机中的定时器/计数器是根据机器内部的时钟或者是外部的脉冲信号对寄存器中的数据加 1。
有了定时器/计数器之后,可以增加单片机的效率,一些简单的重复加 1 的工作可以交给定时器/计数器处理。
CPU
转而处理一些复杂的事情。同时可以实现精确定时作用。 -
1. 51 单片机定时器原理
STC89C5X
单片机内有两个可编程的定时/计数器 T0
、T1
和一个特殊功能定时器 T2
。定时/计数器的实质是加 1 计数器(16 位),由高 8 位和低 8 位两个寄存器 THx
和 TLx
组成。它随着计数器的输入脉冲进行自加 1,也就是每来一个脉冲,计数器就自动加 1,当加到计数器为全 1 时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置 1,向 CPU
发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加 1 计数器的计数值。文章来源:https://www.toymoban.com/news/detail-455722.html
2. 51 单片机定时/计数器结构
51
单片机定时器/计数器内部结构如下所示:
上图中的 T0
和 T1
引脚对应的是单片机 P3.4
和 P3.5
管脚的附加功能。51
单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD
是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON
是控制寄存器,控制 T0
、T1
的启动和停止及设置溢出标志。文章来源地址https://www.toymoban.com/news/detail-455722.html
-
工作方式寄存器
TMOD
工作方式寄存器TMOD
用于设置定时/计数器的工作方式,低四位用于T0
,高四位用于T1
。其格式如下:GATE
是门控位,GATE=0
时,用于控制定时器的启动是否受外部中断源信号的影响。只要用软件使TCON
中的TR0
或TR1
为1
,就可以启动定时/计数器工作;GATA=1
时,要用软件使TR0
或TR1
为1
,同时外部中断引脚INT0/1
也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了INT0/1
引脚为高电平这一条件。-
C/T
:定时/计数模式选择位。C/T =0
为定时模式;C/T =1
为计数模式。 -
M1M0
:工作方式设置位。定时/计数器有四种工作方式。
-
-
控制寄存器
TCON
TCON
的低 4 位用于控制外部中断,已在前面介绍。TCON
的高 4 位用于控制定时/计数器的启动和中断申请。其格式如下:-
TF1(TCON.7)
:T1
溢出中断请求标志位。T1
计数溢出时由硬件自动置TF1
为 1。CPU
响应中断后TF1
由硬件自动清 0。T1
工作时,CPU
可随时查询TF1
的状态。所以,TF1
可用作查询测试的标志。TF1
也可以用软件置1
或清0
-
到了这里,关于51单片机 | 定时器中断实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!