教学情景四定时器计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)工作方式寄存器TMOD
T1
T0
GATE C / T M1 M0 GATE C / T M1 M0
M1,M0:工作方式选择位 。
=00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装初值的8位定时器/计数器(常用); =11:T0 分为2个8位定时器/计数器;仅适用于T0。 C/ T:定时方式/计数方式选择位。 = 1:选择计数器工作方式,对T0/T1引脚输入的外部的周 期脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲计数定时。 如下页图所示。
3.3 MCS-51单片机的定时器/计数器
3.3.1 定时器/计数器
1.基本概念
(1)计数:计数是指对外部事件的个数进行计量。其实质就是对外部输入脉冲 的周期数进行计量。
生活中计数的例子:选举中统计选票画“正”的例子;家里用的电表;汽车 上的里程表等。
(2)定时:由单片机内部提供一个非常稳定精确的周期脉冲进行定时的。该脉 冲是由单片机的晶振经过12分频后获得的。若晶振为12MHZ,则一个脉冲周 期为1us.
GATE:门控位,定时器/计数器的启/停可由软件或软、硬件结 合控制两种方式
= 0 :仅由软件控制,只由TCON中的启/停控制位TR0/TR1 控制定时器/计数器的启/停。
= 1 :软、硬件结合控制,由外部中断请求信号 INT0 / INT1 和 TCON中的启/停控制位TR0/TR1组合状态控制定时器/计数器的 启/停。当TR0=1时,外中断引脚信号引脚的高电平启动计数,外中断引脚信号引
生活中定时器的例子:闹钟;风扇、电视机、空调等家用电器的定时开关 。
(3)定时的其它方法
软件定时:利用执行一个循环程序进行时间延迟。其特点是 定时时间精确,不需外加硬件电路,但占用CPU时间。因此 软件定时的时间不宜过长。
硬件定时:利用硬件电路实现定时。其特点是不占用CPU时 间,通过改变电路元器件参数来调节定时,但使用不够灵活 方便。对于时间较长的定时,常用硬件电路来实现。
2.工作方式1 ( M1M0=01 ,16位定时器/计数器)(最常用)
由TH0和TL0构成16位加1计数器,其他特性与工作方式0相同。
3.工作方式2 ( M1M0=10 ,自动重装计数初值的8位定时器/计数 器)(经常用到)
16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初 始化时必须装入相同的定时器/计数器初值。以TL0作计数器,而TH0作为预 置寄存器。当计数满溢出时,TF0置“1”,同时TH0将计数初值以硬件方法自 动装入TL0。这种工作方式很适合于那些重复计数的应用场合(如串行数据通 信的波特率发生器)。
(1)定时器/计数器的结构
组成:16位加法计数器、工作方式寄存器TMOD和控制寄存器TCON。
T0: TL0(低8位)和TH0(高8位) T1: TL1(低8位)和TH1(高8位)
8051单片机内部的定时器/计数器的结构如下图所示。
(2)控制寄存器TCON (88H)
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
可编程定时器:通过专用的定时器/计数器芯片实现。其特点 是通过对系统时钟脉冲进行计数实现定时,定时时间可通过 程序设定的方法改变,使用灵活方便。也可实现对外部脉冲 的计数功能。
2.MCS-51内部定时器/计数器
MCS-51单片机内部有两个16位可编程的定时器/计数器,简称为 T0和T1,均可作定时器用也可计数器,它们均是二进制加法计数器, 当计数器计满回零时能自动产生溢出申请中断,表明定时时间已到 或计数已终止。适用于定时控制、延时、外部计数和检测等。 计数器:对引脚T0(P 3.4 )和T1(P3.5.)输入的外部脉冲信号计 数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数 的最高频率一般为振荡频率的1/24。 定时器:对系统晶振振荡脉冲的12分频输出进行计数。
脚的低电平停止计数。这种方式常用来测量外中断引脚上正脉冲的宽度。
3.3.2 定时器/计数器的工作方式
8051单片机的定时器/计数器共有四种工作模式,现以T0为例加以介绍, T1与T0的工作原理相同,但方式3下T1停止计数。
1.工作方式0( M1M0=00 ,13位定时器/计数器)
由TH0的全部8位和TL0的低5位( TL0的高3位未用)构成13位加1计数 器,当TL0低5位计数满时直接向TH0进位,并当全部13位计数满溢出时,溢 出标志位TF0置“1”。(完全没用,只是为了与48系列单片机兼容)
4.工作方式3 ( M1M0=11 , 2个8位定时器/计数器,仅适用于T0)
TL0:8位定时器/计数器,使用T0原有控制资源TR0Байду номын сангаасTF0,其功 能和操作与方式0或方式1完全相同。
TH0:只能作为8位定时器,借用T1的控制位TR1和TF1,只能对片 内机器周期脉冲计数。
在方式3模式下,定时器/计数器0可以构成两个定时器或者一 个定时器和一个计数器。
(1)在已经开放T0/T1中断允许且已被启动的前提下,T0/T1加1计满溢出 时 TF0/TF1标志位自动置“1” ;
(2)CPU 检测到TCON中TF0/TF1变“1”后,将产生指令:LCALL 000BH/LCALL 001BH 执行中断服务程序;
(3)TF0/TF1标志位由硬件自动清“0”,以备下次中断申请。
(几乎不用)
3.3.3 定时器/计数器的应用
定时器/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负 脉冲进行加法计数。在应用时,其工作方式和工作过程均可通过程序设定 和控制,因此,定时器/计数器在工作前必须先对其进行初始化,计算和 设置初值。
1. 定时器T0/T1 中断申请过程(这是中断方式,还有一种查询方式)
TF0/TF1:T0/1计数器溢出标志位。可用于申请中断或供CPU查询 。在进入中断服务程序时会自动清零;但在查询方式时必须软件清 零。
=1 :计数溢出; =0 :计数未满。 TR0/TR1:T0/1计数器运行控制位。 =1 :启动计数; =0: 停止计数。
IE0/IE1和IT0/IT1:用于管理外部中断(下章介绍)。