第七章MCS-51系列单片机的定时器 计数器及其应用.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章MCS-51系列单片机的定时器/计数器及其应用
7.1 MCS-51的定时/计数器概述
8031/8051内部带有两个16位的定时/计数器
一、定时/计数器的特点:
(1)是一个二进制的加法计数器,当计数器计满回零时刻自动产生溢出中断请求; (2)既可以用作定时器,也可用作计数器
(3)有四种工作模式:模式0、模式1、模式2和模式3
(4)定时时间和计数值均可通过程序设定,最大值与工作模式和单片机的时钟频率有关 (5)它是硬件延时逻辑电路,与软件延时相比,可以提高CPU 的工作效率。
二、定时/计数器的应用
1.定时——产生一个标准的时间间隔
例如单片机使用这种方式可以产生一个符合某一要求的脉冲方波(如下图)。
2.计数——对外部的事件(脉冲)进行统计 外部事件的发生是随机的,单片机不可能预知外部事件何时发生,但可以进行统计(计数)。当达到所要求的计数值时,单片机进行相应的操作。
7.2 定时/计数器的四种工作模式
1.模式0——13位计数器模式
在某一个初值的基础上加1计数,当计数器计满为全“1”,再来一个计数脉冲时,就产生一个“溢出中断信号”TF1=1。
(1)C/T : 计数器输入脉冲选择开关
(2)寄存器初值:该参数决定着定时或计数的周期。 (3)TR 、GATE 、INT1控制定时/计数器的启动:
GATE=0时, TR1=1开始定时/计数; TR1=0:计数器T1停止计数; GATE=1时(门控方式), TR=1且INT1=1时,开始工作。 此种方式主要用于测量加在INT1脚上一个正脉冲的脉宽.
(4)TF=1 :定时或计数时间到,可以采用查询或中断方式处理
计数值C=213-初值
定时时间T=(213-初值) ×Tosc × 12 2.模式1——16位计数器模式(以T1为例).
定时时间=(216-初值) ×Tosc × 12 3.模式2——8位自动重装初值模式
由TL1做计数器,TH1做初值寄存器, 工作前TL1,TH1分别预置相同的初值。TL1 计数时, 当产生溢出的同时, 将TH1中的初值自动重装TL1。TL1继续计数……此模式主要用于做串行口波特率发生器。
定时时间=(28-TH1初值) ×Tosc × 12 4.模式3——组合扩展模式(仅适用于T0)
在这种模式中,单片机将T0和T1重新进行“拆分、组合”.将T0变为由TH0,TL0组成的两个独立的8位定时/计数器.
总结:
1. 定时/计数器的特点
2. 定时/计数器的四种工作模式
中断
7.3 MCS-51对定时/计数器的控制
MCS51通过两控制寄存器TMOD 和TCON 实现对T0、T1的控制 1.模式控制寄存器TMOD (SFR 的地址:89H )
GA TE 选通门: GA TE=0时,只要TR=1,计数器就开始工作; GATE=1时,只有INT=TR=“1”时,计数器工作 C/T 计数、定时方式选择位: C/T=1时,计数方式。
C/T=0时:定时方式。 M1 模式2:常用于单片机串行通讯时作“波特率”发生器。 模式3:仅T0可以工作于该模式
2.控制寄存器TCON (SFR 地址:88H)
TF0 定时器T0的溢出标志:
计数器溢出时硬件自动置位,即TF0=1。进入中断后硬件自动清除(TF0=0),若是查询方式则可由软件清除; TR0 计数器T0的控制位:
由软件设定: TR0=1计数器开始工作;TR0=0计数器停止计数。 TF1、TR1同上。
IE1,IE0 外部中断INT1,INT0的请求标志:
当单片机检测到INT 引脚上有下降沿时,IE=1申请中断.进入中断服务程序时,硬件自动清除IE 标志.
IT1,IT0 外中断触发类型控制:
IT=1时,外中断信号的下降沿触发IE 标志;
M0
M1 C/T GATE M0 M1 C/T GAT E
定时/计数器1 定时/计数器0
I T 0 I E 0 I T 1 I E 1 T R 0 T F 0 T R 1 T F 1 T0、T1的启动和溢出标志外部中断标志IE 和触发方式选择
IT=0时,外中断信号的低电平触发IE标志。
7.4 定时/计数器的初始化
一、初始化的步骤:
1.根据需要,设定工作方式(C/T位)计数或定时;
2.确定初值TC;
3.若采用中断方式,则要设置相应的中断参数、优先级别;
4.送命令字,启动计数器。
二、计数、定时初值的计算:
1.计数初值计算公式:TC=M-C
例:在模式0或模式1时,每接收100个外部事件,要求产生一个中断,确定计数初值。
(1)模式1:TC=65536-100=65436=FF9CH
(2)模式0:TC=8192-100=8092=1F9CH
2.定时器初值计算公式:TC= M – T / T计数
其中:M 计数模;
T 定时时间;
T计数系统时钟周期的12倍,即12Tosc
设系统时钟为6MHZ,则T计数=2μЅ。
例:请计算定时50ms所需要的定时初值。(设fosc=6MHz)
1.确定模式:选择模式1 ,且C/T=0(定时方式)。
2.计算定时初值:
TC= M – T / T计数
TC=65536 -50ms/2μЅ
=65536-25000
=40536
=9E58H
即THi=9EH;TLi=58H