第7章 定时器计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AT89S51单片机定时/计数器的工作由两个特殊 功能寄存器控制。TMOD用于设置其工作方式; TCON用于控制其启动和中断申请。 一、工作方式寄存器TMOD 工作方式寄存器TMOD用于设置定时/计数器的 工作方式,低四位用于T0,高四位用于T1。字节地 址为89H,不能位寻址。其格式如下:
单片机原理及接口技术
/*给变量i赋初值*/
/*设置定时器T0为方式1*/
TH0=0xee;
TL0=0x00; P1=0x00; EA=1; ET0=1; TR0=1; while(1) ; }
/*向TH0写入初值的高8位*/
/*向TL0写入初值的低8位*/ /*P1口8只LED点亮*/ /*总中断允许*/ /*定时器T0中断允许*/ /*启动定时器T0*/ /*无穷循环,等待定时中断*/
单片机原理及接口技术
7.2.4 方式3 方式3是为了增加一个附加的8位定时器/计数器而设置的,
从而使AT89S51单片机具有3个定时器/计数器。方式3只适用
于定时器/计数器T0,定时器/计数器T1不能工作在方式3。T1 处于方式3时相当于TR1 = 0,停止计数(此时T1可用来作为串 行口波特率产生器)。
14
单片机原理及接口技术
1.工作方式3下的T0 当TMOD的低2位为11时,T0的工作方式被选为方式3,
各引脚与T0的逻辑关系如图7-8所示。
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的 状态控制位C/T-、GATE、TR0,而TH0被固定为一个8位定 时器(不能作为外部计数模式),并使用T1的状态控制位 TR1和TF1,同时占用T1的中断请求源TF1。
2
单片机原理及接口技术 7.1 定时/计数器的结构
一、定时/计数器的结构 定时/计数器的实质是增1计数器(16位),由高8位和低8位两个 寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作 方式和功能;TCON是控制寄存器,控制两个定时器/计数器T0、 T1的启动和停止及设置溢出标志。
单片机原理及接口技术
数器模式,实质是对脉冲信号进行计数,只是计数信号的来源不
同。计数器模式是对加在T0引脚上的外部脉冲进行计数,定时器 工作模式是对单片机的系统时钟信号片内12分频后的内部脉冲信 号计数。
单片机原理及接口技术
二、定时/计数器的工作原理
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡
器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲
单片机原理及接口技术
二、控制寄存器TCON
TCON可位寻址,其低4位用于控制外部中断,已在前面介绍。TCON的高4 位用于控制定时/计数器的启动和中断申请。其格式如下:
•TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自 动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 以用软件置1或清0,同硬件置1或清0的效果一样。 •TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置 0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/ 计数器的启动与停止。 •TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 •TR0(TCON.4):T0运行控制位,其功能与TR1类同。
源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个 脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1, 向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数 器工作于定时模式,则表示定时时间已到;如果工作于计数模式,
则表示计数值已满。
单片机原理及接口技术
7.1.1 定时/计数器的控制
GATE:门控位。 GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可 以启动定时/计数器工作;√ GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚 或也为高电平时,才能启动定时/计数器工作。即此时定时器 的启动条件,加上了引脚为高电平这一条件。 C/T=1为计 C/T :定时/计数模式选择位。C/T =0为定时模式; 数模式。 M1、M0:工作方式设置位。定时/计数器有四种工作方式,由 M1M0进行设置。
单片机原理及接口技术
7.2 定时器/计数器的4种工作方式
7.2.1 方式0
方式0为13位计数器,由TLx(x=0,1)的低5位(高3位未 用)和THx的高8位组成。TLx的低5位溢出时向THx进位, THx溢出时,置位TCON中的溢出标志位TFx置“1”,向 CPU发出中断请求。
单片机原理及接口技术
采用定时器T0中断,因此需将IE寄存器中的EA、ET0位置1。
(4)启动和停止定时器T0 将定时器控制寄存器TCON中的TR0=1,则启动定时器T0; TR0=0,则停止定时器T0定时。
27
单片机原理及接口技术
参考程序如下:
#include<reg51.h>
char i=100;
void main( ) {TMOD=0x01;
方式1。
初始化程序应完成如下工作:
对TMOD赋值,以确定T0和T1的工作方式。 计算初值,并将其写入TH0、TL0或TH1、TL1。 中断方式时,则对IE赋值,开放中断。 使TR0或TR1置位,启动定时/计数器定时或计数。
单片机原理及接口技术
7.4.1 P1口外接的8只LED每0.5s闪亮一次。 【例7-1】在AT89S51单片机的P1口上接有8只LED(电路见图
X=2 -N
单片机原理及接口技术
7.2.2 方式1
方式1的计数位数是16位,由TLx作为低8位、THx 作为高8位,组成了16位加1计数器 。
计数个数与计数初值的关系为:
X=216 -N
单片机原理及接口技术
7.2.3 方式2 方式2为自动恢复初值的8位计数方式。
计数个数与计数初值的关系为: X=28 -N 工作方式2特别适合于用作较精确的脉冲信号发生器。
图7-11 T0工作在方式3时T1为方式2的工作示意 图
单片机原理及接口技术
7.3 对外部输入的计数信号的要求 当定时器/计数器工作在计数器模式时,计数脉冲来自 外部输入引脚T0或T1。当输入信号产生由1至0的跳变 (即负跳变)时,计数器值增1。每个机器周期的S5P2 期间,都对外部输入引脚T0或T1进行采样。如在第一个 机器周期中采得的值为1,而在下一个机器周期中采得的 值为0,则在紧跟着的再下一个机器周期S3P1期间,计 数器加1。
单片机原理及接口技术
C/T-=0,T1(或T0)为定时器工作模式,计数脉冲来自系统时钟; C/T-=1, T1(或T0)为计数器工作模式,计数脉冲来自外部输入脉 冲。 •设置为定时器模式时,加1计数器是对内部机器周期计数(1个 机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。 定时时间t等于计数值N乘以机器周期Tcy。 •计数模式时,由溢出时计数器的值减去计数初值才是加1计数器 的计数值。 •定时器模式时:t=N*Tcy=N*12/fosc •计数模式时:计数脉冲是T0引脚上的外部脉冲。计数初值计 13 算的公式为:
第 7章
AT89S51单片机的 定时器/计数器
1
单片机原理及接口技术
本章内容
AT89S51单片机片内定时器/计数器的结构与功能 定时器/计数器的C51编程及应用实例
学习要求:
重点掌握: AT89S51单片机片内定时器/计数器的结构与功 能,两种工作模式和4种工作方式及相关的两个特殊功能寄 存器TMOD和TCON各位的定义及其编程 熟练掌握:定时器/计数器的C51编程。
门控位GATE具有特殊的作用。
(1)GATE=0时,A点(见图6-4)电位恒为1,B点电位仅取决于 TRx状态。TRx = 1,B点为高电平,控制端控制电子开关闭合,允 许T1(或T0)对脉冲计数。TRx = 0,B点为低电平,电子开关断 开,禁止T1(或T0)计数。
(2)GATE=1时,B点电位由INTX-(x = 0,1)的输入电平和 TRx的状态两个条件来定。当TRx=1,且INTX-=1时,B点才为1, 控制端控制电子开关闭合,允许T1(或T0)计数。故这种情况下 计数器是否计数是由TRx和INTX-两个条件来共同控制。
X=2 -N
单片机原理及接口技术
(2)计算定时器T0的计数初值
设定时时间5ms(即5000µs),设定时器T0的计数初值为X,假设晶振的频
率为11.0592MHz,则定时时间为:定时时间t=(216−X)12/晶振频率
则5000=(216 −X)12/11.0592
得:X = 60928,转换成16进制后为:0xee00,其中0xee装入TH0, 0x00装入TL0。 (3)设置IE寄存器
15
单片机原理及接口技术
图7-8 定时器/计数器T0方式3的逻辑结构框图
16
单片机原理及接口技术
(1)T1工作在方式0
T1的控制字中M1、M0 = 00时,T1工作在方式0,工作示意图 如图7-9所示。
图7-9 T0工作在方式3时T1为方式0的工作示意图
17
单片机原理及接口技术
(2)T1工作在方式1 当T1的控制字中M1、M0 = 01时,T1工作在方式1,工作示意图
28
单片机百度文库理及接口技术
/*以下为定时器T0的中断服务程序*/ void T0_int(void) interrupt 1
{TH0=0xee;
TL0=0x00; i--; if(i<=0) {P1=~P1;
AT89S51的定时器/计数器结构如上图所示,T0由特殊功能寄存器 TH0、TL0构成,T1由特殊功能寄存器TH1、TL1构成。
T0 和T1都具有定时器和计数器两种工作模式,4种工作方式
(方式0~3)。属于增1计数器。
特殊功能寄存器TMOD用于选择T0、T1的工作模式和工作方式。 特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时 包含了T0、T1的状态。T0、 T1不论是工作在定时器模式还是计
单片机原理及接口技术
由于确认一次负跳变花2个机器周期,即24个振荡周期,因 此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
图7-12 对外部计数输入信号的要求
21
单片机原理及接口技术
例: 选用6MHz频率的晶体,允许输入的脉冲频率最高为? 如果选用12MHz频率的晶体,则可输入最高频率为?
TMOD寄存器应初始化为0x01。
24
单片机原理及接口技术
图7-13 方式1定时中断控制LED闪亮 25
单片机原理及接口技术
•设置为定时器模式时,加1计数器是对内部机器周期计数(1个 机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。 定时时间t等于计数值N乘以机器周期Tcy。 •计数模式时,由溢出时计数器的值减去计数初值才是加1计数器 的计数值。 •定时器模式时:t=N*Tcy=N*12/fosc •计数模式时:计数脉冲是T0引脚上的外部脉冲。计数初值计 13 算的公式为:
如图7-10所示。
图7-10 T0工作在方式3时T1为方式1的工作示意图
18
单片机原理及接口技术
(3)T1工作在方式2 当T1的控制字中M1、M0 = 10时,T1的工作方式为方式2,
工作示意图如图7-11所示。
(4)T1设置在方式3。 当T0设置在方式3时,再把T1也设置成方式3,此时T1停止 计数。 19
7-13)。下面采用定时器T0的方式1的定时中断方式,使P1口外接
的8只LED每0.5s闪亮一次。 (1)设置TMOD寄存器 定时器T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设 置C/T-=0,为定时器工作模式;对T0的运行控制仅由TR0来控制,
应使GATE=0。定时器T1不使用,各相关位均设为0。所以,
提示:外部输入的计数脉冲的最高频率为系统振荡器频率的 1/24
250kHz 的外部脉冲; 500kHz的外部脉冲
22
单片机原理及接口技术
7.4 定时器/计数器的编程和应用
在4种工作方式中,方式0与方式1基本相同,只是计数器的计数 位数不同。方式0为13位计数器,方式1为16位计数器。由于方式0 计数初值计算复杂,所以在实际应用中,一般不用方式0,而采用
单片机原理及接口技术
/*给变量i赋初值*/
/*设置定时器T0为方式1*/
TH0=0xee;
TL0=0x00; P1=0x00; EA=1; ET0=1; TR0=1; while(1) ; }
/*向TH0写入初值的高8位*/
/*向TL0写入初值的低8位*/ /*P1口8只LED点亮*/ /*总中断允许*/ /*定时器T0中断允许*/ /*启动定时器T0*/ /*无穷循环,等待定时中断*/
单片机原理及接口技术
7.2.4 方式3 方式3是为了增加一个附加的8位定时器/计数器而设置的,
从而使AT89S51单片机具有3个定时器/计数器。方式3只适用
于定时器/计数器T0,定时器/计数器T1不能工作在方式3。T1 处于方式3时相当于TR1 = 0,停止计数(此时T1可用来作为串 行口波特率产生器)。
14
单片机原理及接口技术
1.工作方式3下的T0 当TMOD的低2位为11时,T0的工作方式被选为方式3,
各引脚与T0的逻辑关系如图7-8所示。
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的 状态控制位C/T-、GATE、TR0,而TH0被固定为一个8位定 时器(不能作为外部计数模式),并使用T1的状态控制位 TR1和TF1,同时占用T1的中断请求源TF1。
2
单片机原理及接口技术 7.1 定时/计数器的结构
一、定时/计数器的结构 定时/计数器的实质是增1计数器(16位),由高8位和低8位两个 寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作 方式和功能;TCON是控制寄存器,控制两个定时器/计数器T0、 T1的启动和停止及设置溢出标志。
单片机原理及接口技术
数器模式,实质是对脉冲信号进行计数,只是计数信号的来源不
同。计数器模式是对加在T0引脚上的外部脉冲进行计数,定时器 工作模式是对单片机的系统时钟信号片内12分频后的内部脉冲信 号计数。
单片机原理及接口技术
二、定时/计数器的工作原理
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡
器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲
单片机原理及接口技术
二、控制寄存器TCON
TCON可位寻址,其低4位用于控制外部中断,已在前面介绍。TCON的高4 位用于控制定时/计数器的启动和中断申请。其格式如下:
•TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自 动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 以用软件置1或清0,同硬件置1或清0的效果一样。 •TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置 0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/ 计数器的启动与停止。 •TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 •TR0(TCON.4):T0运行控制位,其功能与TR1类同。
源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个 脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1, 向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数 器工作于定时模式,则表示定时时间已到;如果工作于计数模式,
则表示计数值已满。
单片机原理及接口技术
7.1.1 定时/计数器的控制
GATE:门控位。 GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可 以启动定时/计数器工作;√ GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚 或也为高电平时,才能启动定时/计数器工作。即此时定时器 的启动条件,加上了引脚为高电平这一条件。 C/T=1为计 C/T :定时/计数模式选择位。C/T =0为定时模式; 数模式。 M1、M0:工作方式设置位。定时/计数器有四种工作方式,由 M1M0进行设置。
单片机原理及接口技术
7.2 定时器/计数器的4种工作方式
7.2.1 方式0
方式0为13位计数器,由TLx(x=0,1)的低5位(高3位未 用)和THx的高8位组成。TLx的低5位溢出时向THx进位, THx溢出时,置位TCON中的溢出标志位TFx置“1”,向 CPU发出中断请求。
单片机原理及接口技术
采用定时器T0中断,因此需将IE寄存器中的EA、ET0位置1。
(4)启动和停止定时器T0 将定时器控制寄存器TCON中的TR0=1,则启动定时器T0; TR0=0,则停止定时器T0定时。
27
单片机原理及接口技术
参考程序如下:
#include<reg51.h>
char i=100;
void main( ) {TMOD=0x01;
方式1。
初始化程序应完成如下工作:
对TMOD赋值,以确定T0和T1的工作方式。 计算初值,并将其写入TH0、TL0或TH1、TL1。 中断方式时,则对IE赋值,开放中断。 使TR0或TR1置位,启动定时/计数器定时或计数。
单片机原理及接口技术
7.4.1 P1口外接的8只LED每0.5s闪亮一次。 【例7-1】在AT89S51单片机的P1口上接有8只LED(电路见图
X=2 -N
单片机原理及接口技术
7.2.2 方式1
方式1的计数位数是16位,由TLx作为低8位、THx 作为高8位,组成了16位加1计数器 。
计数个数与计数初值的关系为:
X=216 -N
单片机原理及接口技术
7.2.3 方式2 方式2为自动恢复初值的8位计数方式。
计数个数与计数初值的关系为: X=28 -N 工作方式2特别适合于用作较精确的脉冲信号发生器。
图7-11 T0工作在方式3时T1为方式2的工作示意 图
单片机原理及接口技术
7.3 对外部输入的计数信号的要求 当定时器/计数器工作在计数器模式时,计数脉冲来自 外部输入引脚T0或T1。当输入信号产生由1至0的跳变 (即负跳变)时,计数器值增1。每个机器周期的S5P2 期间,都对外部输入引脚T0或T1进行采样。如在第一个 机器周期中采得的值为1,而在下一个机器周期中采得的 值为0,则在紧跟着的再下一个机器周期S3P1期间,计 数器加1。
单片机原理及接口技术
C/T-=0,T1(或T0)为定时器工作模式,计数脉冲来自系统时钟; C/T-=1, T1(或T0)为计数器工作模式,计数脉冲来自外部输入脉 冲。 •设置为定时器模式时,加1计数器是对内部机器周期计数(1个 机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。 定时时间t等于计数值N乘以机器周期Tcy。 •计数模式时,由溢出时计数器的值减去计数初值才是加1计数器 的计数值。 •定时器模式时:t=N*Tcy=N*12/fosc •计数模式时:计数脉冲是T0引脚上的外部脉冲。计数初值计 13 算的公式为:
第 7章
AT89S51单片机的 定时器/计数器
1
单片机原理及接口技术
本章内容
AT89S51单片机片内定时器/计数器的结构与功能 定时器/计数器的C51编程及应用实例
学习要求:
重点掌握: AT89S51单片机片内定时器/计数器的结构与功 能,两种工作模式和4种工作方式及相关的两个特殊功能寄 存器TMOD和TCON各位的定义及其编程 熟练掌握:定时器/计数器的C51编程。
门控位GATE具有特殊的作用。
(1)GATE=0时,A点(见图6-4)电位恒为1,B点电位仅取决于 TRx状态。TRx = 1,B点为高电平,控制端控制电子开关闭合,允 许T1(或T0)对脉冲计数。TRx = 0,B点为低电平,电子开关断 开,禁止T1(或T0)计数。
(2)GATE=1时,B点电位由INTX-(x = 0,1)的输入电平和 TRx的状态两个条件来定。当TRx=1,且INTX-=1时,B点才为1, 控制端控制电子开关闭合,允许T1(或T0)计数。故这种情况下 计数器是否计数是由TRx和INTX-两个条件来共同控制。
X=2 -N
单片机原理及接口技术
(2)计算定时器T0的计数初值
设定时时间5ms(即5000µs),设定时器T0的计数初值为X,假设晶振的频
率为11.0592MHz,则定时时间为:定时时间t=(216−X)12/晶振频率
则5000=(216 −X)12/11.0592
得:X = 60928,转换成16进制后为:0xee00,其中0xee装入TH0, 0x00装入TL0。 (3)设置IE寄存器
15
单片机原理及接口技术
图7-8 定时器/计数器T0方式3的逻辑结构框图
16
单片机原理及接口技术
(1)T1工作在方式0
T1的控制字中M1、M0 = 00时,T1工作在方式0,工作示意图 如图7-9所示。
图7-9 T0工作在方式3时T1为方式0的工作示意图
17
单片机原理及接口技术
(2)T1工作在方式1 当T1的控制字中M1、M0 = 01时,T1工作在方式1,工作示意图
28
单片机百度文库理及接口技术
/*以下为定时器T0的中断服务程序*/ void T0_int(void) interrupt 1
{TH0=0xee;
TL0=0x00; i--; if(i<=0) {P1=~P1;
AT89S51的定时器/计数器结构如上图所示,T0由特殊功能寄存器 TH0、TL0构成,T1由特殊功能寄存器TH1、TL1构成。
T0 和T1都具有定时器和计数器两种工作模式,4种工作方式
(方式0~3)。属于增1计数器。
特殊功能寄存器TMOD用于选择T0、T1的工作模式和工作方式。 特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时 包含了T0、T1的状态。T0、 T1不论是工作在定时器模式还是计
单片机原理及接口技术
由于确认一次负跳变花2个机器周期,即24个振荡周期,因 此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
图7-12 对外部计数输入信号的要求
21
单片机原理及接口技术
例: 选用6MHz频率的晶体,允许输入的脉冲频率最高为? 如果选用12MHz频率的晶体,则可输入最高频率为?
TMOD寄存器应初始化为0x01。
24
单片机原理及接口技术
图7-13 方式1定时中断控制LED闪亮 25
单片机原理及接口技术
•设置为定时器模式时,加1计数器是对内部机器周期计数(1个 机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。 定时时间t等于计数值N乘以机器周期Tcy。 •计数模式时,由溢出时计数器的值减去计数初值才是加1计数器 的计数值。 •定时器模式时:t=N*Tcy=N*12/fosc •计数模式时:计数脉冲是T0引脚上的外部脉冲。计数初值计 13 算的公式为:
如图7-10所示。
图7-10 T0工作在方式3时T1为方式1的工作示意图
18
单片机原理及接口技术
(3)T1工作在方式2 当T1的控制字中M1、M0 = 10时,T1的工作方式为方式2,
工作示意图如图7-11所示。
(4)T1设置在方式3。 当T0设置在方式3时,再把T1也设置成方式3,此时T1停止 计数。 19
7-13)。下面采用定时器T0的方式1的定时中断方式,使P1口外接
的8只LED每0.5s闪亮一次。 (1)设置TMOD寄存器 定时器T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设 置C/T-=0,为定时器工作模式;对T0的运行控制仅由TR0来控制,
应使GATE=0。定时器T1不使用,各相关位均设为0。所以,
提示:外部输入的计数脉冲的最高频率为系统振荡器频率的 1/24
250kHz 的外部脉冲; 500kHz的外部脉冲
22
单片机原理及接口技术
7.4 定时器/计数器的编程和应用
在4种工作方式中,方式0与方式1基本相同,只是计数器的计数 位数不同。方式0为13位计数器,方式1为16位计数器。由于方式0 计数初值计算复杂,所以在实际应用中,一般不用方式0,而采用