MCS51单片机的定时器计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8051单片机的定时器/计数器结构如下图所示。
T1
T0
TH1 微
处 内部总线
理
器 TCON
TL1Hale Waihona Puke Baidu
工作 方式
TH0 TMOD
TL0
工作 方式
8051单片机定时器/计数器结构示意图
加1计数器(高8位、低8位) TMOD,工作方式设置; TCON,启动、停止及设置溢出标志。
➢ 定时功能----计数输入信号是内部时钟脉冲,其计数 脉冲来源于晶振时钟输出信号的12分频,即每个机 器周期使寄存器的值加1。定时器可看做是对机器
❖ 方式2和方式0、1最大的差别就是计数器的初值是 由硬件控制自动装入的。
❖ 方式0、1一旦计数溢出,就表示计数器已回0,如 果要按照原先的初值重新计数,就需要通过软件重 装计数器初值。
方式2适合于用作较精确的脉冲信号发生器。
4. 方式3—2个8位方式
❖ 仅T0可以工作在方式3,T1处于方式3时停止计数。 此时,T0分成2个独立的计数器—TL0和TH0,前者 用原来T0的控制信号(TR0、TF0),后者用原来 T1的控制信号(TR1、TF1)。
二.定时器/计数器的控制寄存器
❖ 与定时器/计数器有关的控制寄存器有:
1. 定时器控制寄存器TCON
❖ TF1:定时器/计数器1(T1)的溢出中断标志位。 ❖ TF0:定时器/计数器0(T0)的溢出中断标志位。 ❖ TR1:定时器/计数器1的运行控制位。通过置1或清
0来启动或停止T1的计数。 ❖ TR0:定时器/计数器0的运行控制位。
其定时时间为: (213-初值)×机器周期
2. 方式1—16位方式
❖ 16位计数,由TL0作为低8位、TH0作为高8位 ; ❖ 16位计数,由TL1作为低8位、TH1作为高8位。
其定时时间为: (216-初值)×机器周期
3. 方式2—8位自动装入时间常数方式
❖ TL0作为8位内部计数器,TH0作为重装初值寄存 器,在TL0计数溢出置位TF0标志的同时,由硬件 控制直接将重装初值装入TL0,开始新一轮的计数, 如此不断循环。
(4) 给定时器控制寄存器TCON送命令字,以启动或禁 止定时器/计数器的运行。
2. 计数器初值的计算
定时器/计数器可用软件随时随地启动和关闭, 启动时它就自动加1计数,一直计到满,即全为1, 若不停止,计数值从全1变为全0,同时将计数溢出 位置1并向CPU发出定时器溢出中断申请。对于各 种不同的工作模式,最大的定时时间和计数数值不 同。这里在使用中就会出现两个问题:
❖ 单片机复位后,TCON寄存器的所有位均为0.
2. 工作方式控制寄存器TMOD ❖ 高4位用于定时器1,低4位用于定时器0
① M1,M0:工作模式选择位。 定时器/计数器四种工作模式选择如表6-1所示。
M1 M0 00 01 10 11
方式
表 6-1 工作方式选择表
说
明
0
13 位定时器/计数器
第六章 MCS-51单片机的定时器/计数器
❖ 实现定时常用的三种方法:
➢ 软件定时:占用CPU时间,效率低。 ➢ 用555电路:不可编程。 ➢ 可编程芯片:功能强,需要另外扩展。
单片机内部有2个16位的定时/计数器:使用 灵活,编程方便。--优先选用
6.1 定时器/计数器结构
一.定时器/计数器的结构及工作原理
❖ 定时模式,对内部机器周期计数
定时时间 t =计数值N x Tcy ❖ 计数模式,对外部事件脉冲计数
计数脉冲周期要大于2 Tcy ❖ T0和T1计数器都只能递增计数,当16位计数器的
计数值增加到0FFFFH时,再输入1个脉冲就会使计 数器的值回零,并发生溢出信号,置相应的标志位 (TCON中TF0或TF1置1), 向CPU发出中断请求。 ❖ 设定计数次数:计数器的计数量程-计数初值。
周期的计数器。所以,定时计数频率是振荡频率的 1/12。 ➢ 计数功能----计数脉冲来自相应的外部输入引脚, T0为P3.4,T1为P3.5。只要T0或T1的引脚上有一 个1到0的负跳变,相应的计数器就加1. ➢ 在TMOD中,各有一个控制位(C/T),分别用 于控制定时/计数器T0和T1工作在定时器方式还是 计数器方式。
✓ 当GATE=1时,不但要TR0或TR1为1,且单片机的 INT0或INT1引脚的输入要为高电平,才能启动定时 器/计数器。
三.定时器/计数器0或1的工作方式
1. 方式0—13位方式。由TL0的低5位和TH0的8位组成。 TL0的5位计数溢出后,TH0的计数加1,直到全部 的13位计数值为全1后,下一个计数脉冲的到达将 使TF0置位为1,向CPU发出中断请求,同时把计数 器变为全“0”。
MCS-51单片机内部有两个16位可编程的定时器 /计数器,即定时器T0和定时器T1。每个定时器/计 数器的基本部件是两个8位的计数器(其中TH1、 TL1是T1的计数器,TH0、TL0是T0的计数器)拼装 而成。它们是采用加“1”方式工作的。
两个特殊功能寄存器(TMOD和TCON)用来对 定时器/计数器的工作方式进行选择和控制。
1
16 位定时器/计数器
2
自动装入时间常数的 8 位定时器/计数器
3
对 T0 分为两个 8 位独立计数器;对 T1 置方式 3 时停止工作
② C/T:定时器方式或计数器方式选择位
C/T=0时,为定时器方式
C/T=1时,为计数器方式
③ GATE:门控位
✓ 当GATE=0时,TCON寄存器中的TR0或TR1为1, 则可立即启动定时器/计数器;
❖ (1)TH0由TR1启动/停止,溢出TF1 ❖ (2)TL0由TR0启动/停止,溢出TF0 ❖ (3)TH0只能定时,TL0可以定时/计数,且都是8位。
6.2 定时器/计数器的初始化
1.初始化步骤
MCS-51内部定时器/计数器是可编程的,其工 作方式和工作过程均可由MCS-51通过程序对它进 行设定和控制。因此,MCS-51在定时器/计数器工 作前必须先对它进行初始化。初始化步骤为:
(1) 根据题目要求先给定时器方式寄存器TMOD送一 个方式控制字,以设定定时器/计数器的相应工作方 式。
(2) 根据实际需要给定时器/计数器选送定时器初值或 计数器初值,以确定需要定时的时间和需要计数的 初值。
(3) 根据需要给中断允许寄存器IE选送中断控制字和 给中断优先级寄存器IP选送中断优先级字,以开放 相应中断和设定中断优先级。(若采用中断方式)
T1
T0
TH1 微
处 内部总线
理
器 TCON
TL1Hale Waihona Puke Baidu
工作 方式
TH0 TMOD
TL0
工作 方式
8051单片机定时器/计数器结构示意图
加1计数器(高8位、低8位) TMOD,工作方式设置; TCON,启动、停止及设置溢出标志。
➢ 定时功能----计数输入信号是内部时钟脉冲,其计数 脉冲来源于晶振时钟输出信号的12分频,即每个机 器周期使寄存器的值加1。定时器可看做是对机器
❖ 方式2和方式0、1最大的差别就是计数器的初值是 由硬件控制自动装入的。
❖ 方式0、1一旦计数溢出,就表示计数器已回0,如 果要按照原先的初值重新计数,就需要通过软件重 装计数器初值。
方式2适合于用作较精确的脉冲信号发生器。
4. 方式3—2个8位方式
❖ 仅T0可以工作在方式3,T1处于方式3时停止计数。 此时,T0分成2个独立的计数器—TL0和TH0,前者 用原来T0的控制信号(TR0、TF0),后者用原来 T1的控制信号(TR1、TF1)。
二.定时器/计数器的控制寄存器
❖ 与定时器/计数器有关的控制寄存器有:
1. 定时器控制寄存器TCON
❖ TF1:定时器/计数器1(T1)的溢出中断标志位。 ❖ TF0:定时器/计数器0(T0)的溢出中断标志位。 ❖ TR1:定时器/计数器1的运行控制位。通过置1或清
0来启动或停止T1的计数。 ❖ TR0:定时器/计数器0的运行控制位。
其定时时间为: (213-初值)×机器周期
2. 方式1—16位方式
❖ 16位计数,由TL0作为低8位、TH0作为高8位 ; ❖ 16位计数,由TL1作为低8位、TH1作为高8位。
其定时时间为: (216-初值)×机器周期
3. 方式2—8位自动装入时间常数方式
❖ TL0作为8位内部计数器,TH0作为重装初值寄存 器,在TL0计数溢出置位TF0标志的同时,由硬件 控制直接将重装初值装入TL0,开始新一轮的计数, 如此不断循环。
(4) 给定时器控制寄存器TCON送命令字,以启动或禁 止定时器/计数器的运行。
2. 计数器初值的计算
定时器/计数器可用软件随时随地启动和关闭, 启动时它就自动加1计数,一直计到满,即全为1, 若不停止,计数值从全1变为全0,同时将计数溢出 位置1并向CPU发出定时器溢出中断申请。对于各 种不同的工作模式,最大的定时时间和计数数值不 同。这里在使用中就会出现两个问题:
❖ 单片机复位后,TCON寄存器的所有位均为0.
2. 工作方式控制寄存器TMOD ❖ 高4位用于定时器1,低4位用于定时器0
① M1,M0:工作模式选择位。 定时器/计数器四种工作模式选择如表6-1所示。
M1 M0 00 01 10 11
方式
表 6-1 工作方式选择表
说
明
0
13 位定时器/计数器
第六章 MCS-51单片机的定时器/计数器
❖ 实现定时常用的三种方法:
➢ 软件定时:占用CPU时间,效率低。 ➢ 用555电路:不可编程。 ➢ 可编程芯片:功能强,需要另外扩展。
单片机内部有2个16位的定时/计数器:使用 灵活,编程方便。--优先选用
6.1 定时器/计数器结构
一.定时器/计数器的结构及工作原理
❖ 定时模式,对内部机器周期计数
定时时间 t =计数值N x Tcy ❖ 计数模式,对外部事件脉冲计数
计数脉冲周期要大于2 Tcy ❖ T0和T1计数器都只能递增计数,当16位计数器的
计数值增加到0FFFFH时,再输入1个脉冲就会使计 数器的值回零,并发生溢出信号,置相应的标志位 (TCON中TF0或TF1置1), 向CPU发出中断请求。 ❖ 设定计数次数:计数器的计数量程-计数初值。
周期的计数器。所以,定时计数频率是振荡频率的 1/12。 ➢ 计数功能----计数脉冲来自相应的外部输入引脚, T0为P3.4,T1为P3.5。只要T0或T1的引脚上有一 个1到0的负跳变,相应的计数器就加1. ➢ 在TMOD中,各有一个控制位(C/T),分别用 于控制定时/计数器T0和T1工作在定时器方式还是 计数器方式。
✓ 当GATE=1时,不但要TR0或TR1为1,且单片机的 INT0或INT1引脚的输入要为高电平,才能启动定时 器/计数器。
三.定时器/计数器0或1的工作方式
1. 方式0—13位方式。由TL0的低5位和TH0的8位组成。 TL0的5位计数溢出后,TH0的计数加1,直到全部 的13位计数值为全1后,下一个计数脉冲的到达将 使TF0置位为1,向CPU发出中断请求,同时把计数 器变为全“0”。
MCS-51单片机内部有两个16位可编程的定时器 /计数器,即定时器T0和定时器T1。每个定时器/计 数器的基本部件是两个8位的计数器(其中TH1、 TL1是T1的计数器,TH0、TL0是T0的计数器)拼装 而成。它们是采用加“1”方式工作的。
两个特殊功能寄存器(TMOD和TCON)用来对 定时器/计数器的工作方式进行选择和控制。
1
16 位定时器/计数器
2
自动装入时间常数的 8 位定时器/计数器
3
对 T0 分为两个 8 位独立计数器;对 T1 置方式 3 时停止工作
② C/T:定时器方式或计数器方式选择位
C/T=0时,为定时器方式
C/T=1时,为计数器方式
③ GATE:门控位
✓ 当GATE=0时,TCON寄存器中的TR0或TR1为1, 则可立即启动定时器/计数器;
❖ (1)TH0由TR1启动/停止,溢出TF1 ❖ (2)TL0由TR0启动/停止,溢出TF0 ❖ (3)TH0只能定时,TL0可以定时/计数,且都是8位。
6.2 定时器/计数器的初始化
1.初始化步骤
MCS-51内部定时器/计数器是可编程的,其工 作方式和工作过程均可由MCS-51通过程序对它进 行设定和控制。因此,MCS-51在定时器/计数器工 作前必须先对它进行初始化。初始化步骤为:
(1) 根据题目要求先给定时器方式寄存器TMOD送一 个方式控制字,以设定定时器/计数器的相应工作方 式。
(2) 根据实际需要给定时器/计数器选送定时器初值或 计数器初值,以确定需要定时的时间和需要计数的 初值。
(3) 根据需要给中断允许寄存器IE选送中断控制字和 给中断优先级寄存器IP选送中断优先级字,以开放 相应中断和设定中断优先级。(若采用中断方式)