第5章定时器与其应用

合集下载

第五章 定时-计数器

第五章 定时-计数器

t:设定的定时时间—uS 设定的定时时间— P:分频器的分频比--2~256 分频器的分频比--2 取值为2 16、32、64、128、256。 取值为2、4、8、16、32、64、128、256。 X:TMR0的计数初值--0~255 TMR0的计数初值 0 的计数初值-T:指令周期—uS 指令周期—
#include <pic.h> void init(); //I/O口初始化函数 //I/O口初始化函数 void tmint(); //定时器初始化函数 //定时器初始化函数 void main() { init(); tmint(); while(1) { if(T0IF) { T0IF=0; TMR0=100; RC0=!RC0; } } }
(5)当使用内部触发信号,即指令周期作为时钟信号 当使用内部触发信号, 源时,模块TMR0工作于定时方式, TMR0工作于定时方式 源时,模块TMR0工作于定时方式,触发方式为固 定上升沿触发有效。在计数器溢出时, 定上升沿触发有效。在计数器溢出时,相应的溢 出中断标志T0IF自动置位,并可产生溢出中断。 T0IF自动置位 出中断标志T0IF自动置位,并可产生溢出中断。 (6)当外部时钟信号源时,模块TMR0工作于计数方 当外部时钟信号源时,模块TMR0工作于计数方 TMR0 式,触发方式可由程序设置位上升沿触发或下降 沿触发有效。在计数器溢出时, 沿触发有效。在计数器溢出时,也可产生溢出中 断。
2.与定时器/计数器TMR0模块相关的寄存器 与定时器/计数器TMR0模块相关的寄存器 TMR0
(1)选项寄存器 OPTION_REG (1)是作为定时器还是作为计数器 (1)是作为定时器还是作为计数器 (2)决定分频器的分频系数 (2)决定分频器的分频系数 (3)时钟是上升沿 时钟是上升沿/ (3)时钟是上升沿/下降沿触发 (2)中断控制寄存器 INTCON (1)中断总控制--允许 中断总控制--允许/ (1)中断总控制--允许/禁止 (2)各类中断的控制 (2)各类中断的控制 (3)各类中断的标志 (3)各类中断的标志 RA口方向寄存器 (3)RA口方向寄存器 TRISA TMR0工作于计数器时,RA4必须设为输入 工作于计数器时,RA4必须设为输入, 当TMR0工作于计数器时,RA4必须设为输入,以便从该脚输 入时钟脉冲信号。 入时钟脉冲信号。 定时器/ (4)定时器/计数器 TMR0 8位累加计数寄存器

第5章 定时与中断1

第5章  定时与中断1

第5章定时/计数器与中断系统⏹5.1 定时/计数器结构特点及控制⏹5.2 中断系统结构及管理⏹5.3 定时/计数器及中断系统综合应5.1 定时/计数器结构特点及控制⏹5.1.1 定时/计数器结构⏹5.1.2 定时/计数器工作方式⏹5.1.3 定时/计数器控制寄存器⏹5.1.4 定时/计数器常数的计算5.1.1 定时/计数器结构⏹定时/计数器简称定时器,8031单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。

它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。

⏹T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。

作计数器时,通过引脚T 0(P 3.4)和T 1(P 3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。

计数的最高频率一般为振荡频率的1/24。

5.1.2 定时/计数器工作方式⏹每个定时/计数器还有4种工作模式,也就是每个定时器可构成4种电路结构模式。

⏹在模式0、1和2,T0和T1的工作模式相同,在模式3,两个定时器的模式不同。

下面以T1为例,分述各种工作模式的特点和用法。

图5-1 定时/计数器T1(T0)工作模式0图5-2 定时/计数器T1(T0)工作模式1图5-3 定时/计数器T1(T0)工作模式2图5-4 定时/计数器T1(T0)工作模式35.1.3 定时/计数器控制寄存器定时器共有2个控制寄存器TMOD和TCON,由软件写入TMOD和TCON两个8位寄存器,设置各个定时器的操作模式和控制功能。

1.工作模式控制寄存器—TMOD (89H )GATE C/T M 10M GATE C/T1M 0M 控 制 T 1控 制 T 089H和T 类同01M 0M 00011011方 式方式0方式1方式2方式301定时器模式计数器模式01与INT 无关00与INT 有关图5-5 定时器工作模式寄存器TMOD2.定时器控制寄存器—TCON(88H)TCON 位地址DD1D2D3D4D5D6D7IT0IE0IT11IETR0TF0TR1TF188898A8B8C8D8E8F见下一节{00:停T 计数1:启T 计数0:无T 中断(硬件复位){1:有T 溢出中断0:无T 中断(硬件复位)10:停T 计数{1:有T 溢出中断1:启T 计数{111图5-6 定时器工作模式寄存器TCON返回本节5.1.4 定时/计数器常数的计算⏹1.计数器初值的计算⏹把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式:TC=M-C⏹式中,M为计数器模值,该值和计数器工作方式有关。

定时器的原理和应用场景

定时器的原理和应用场景

定时器的原理和应用场景1. 定时器的原理定时器是一种可以精确测量时间间隔的设备或模块,常见于电子设备和计算机系统中。

它的主要原理是利用计时器或计数器来记录时间的流逝。

定时器可以以固定的时间间隔生成中断信号,从而触发某些特定的操作或任务。

定时器的计时原理可以分为两类:1.1 硬件定时器硬件定时器是指在计算机系统或嵌入式系统的硬件电路中实现的定时功能。

它通常由一个晶振或其他精确时钟源提供时钟信号,通过计数器或递增器记录时间的流逝。

硬件定时器具有高精度和可靠性,适用于需要精确计时的应用场景。

硬件定时器常见的应用包括:•时钟控制:用于生成系统的时钟信号,保证各个模块的同步运行。

•脉冲宽度调制(PWM):用于控制电机驱动、LED亮度调节等需要周期性高精度控制的场合。

•外部设备控制:用于与外部设备进行通信和数据采集,如串口通信、闪光灯控制等。

1.2 软件定时器软件定时器是指在软件程序中通过编程实现的定时功能。

它通常利用系统提供的定时中断机制,通过调用系统的定时服务或编写定时任务来实现定时功能。

软件定时器的精度和稳定性相对较低,但应用范围广泛,适合于一些对时间要求不高的场景。

软件定时器常见的应用包括:•定时任务执行:如定时检测传感器数据、定时更新缓存等。

•软件延时:用于控制程序执行的时间间隔或等待一定时间后再执行某些操作。

•定时触发事件:如定时发送邮件、定时备份数据等。

2. 定时器的应用场景定时器在各个领域和行业中都有广泛的应用,下面列举了一些常见的应用场景:2.1 嵌入式系统在嵌入式系统中,定时器广泛应用于各种控制和通信任务。

嵌入式系统中的硬件定时器可以用于处理实时任务、设备控制、数据采集等。

软件定时器可以用于轮询任务、时序控制、通信协议等。

2.2 物联网在物联网应用中,定时器被广泛用于传感器数据采集、数据传输、设备控制等。

通过定时器可以实现模块化的时间调度和控制,提高系统的稳定性和可靠性。

2.3 通信系统通信系统中的定时器用于处理数据传输和通信协议。

《定时器及应用举例》课件

《定时器及应用举例》课件
根据应用需求选择定时器的时 间单位,如秒、分钟、小时等

设置触发条件
根据应用需求设置定时器的触 发条件,如时间到达、外部信 号触发等。
设置时间间隔
根据应用需求设置定时器的时 间间隔,如每隔一定时间触发 一次。
保存设置
完成设置后保存相关参数,确 保定时器能够按照预设参数进
行工作。
04
定时器的应用举例
软件编程
01
02
03
04
选择编程语言
根据定时器的厂商提供的编程 语言进行编程。
编写程序
根据应用需求编写程序,设置 定时器的触发条件、时间间隔
等参数。
调试程序
通过模拟或实际测试,对程序 进行调试,确保定时器能够按
照预期工作。
下载程序
将编写好的程序下载到定时器 中进行测试或实际应用
用于控制室内温度,实现 自动开关机,节省能源。
冰箱
用于控制冷藏和冷冻室的 温度,保持食物的新鲜度 。
洗衣机
用于控制洗涤和漂洗的时 间,实现自动化洗衣。
工业控制领域应用举例
自动化生产线
仪器仪表
用于控制生产线的启动和停止,保证 生产过程的稳定性和效率。
用于控制和监测各种工业设备的运行 状态和参数。
不要将电源直接连接到定时器的输出端,以防设 备损坏和火灾风险。
使用注意事项
设置时间
在设置定时器时间时,确保时间设置正确,避免误操作导致设备 无法正常工作。
安装位置
确保定时器安装在通风良好、干燥、无尘的地方,以防设备过热或 受潮。
定期校准
定期检查和校准定时器,以确保其准确性和可靠性。
维护与保养
清洁外壳
03
定时器的使用方法

第5章AT89S52定时器计数器

第5章AT89S52定时器计数器
8
图5-2 TMOD格式
8位分为两组,高4位控制T1,低4位控制T0。 TMOD各位的功能。 (1)GATE———门控位。
0:仅由运行控制位TRx(x = 0,1)来控制定时器/计数器运 行。
1:用外中断引脚( INT0*或 INT1*)上的电平与运行控制 位TRx共同来控制定时器/计数器运行。
9
5
5.1 定时器/计数器的结构 定时器/计数器T1、T0结构如图5-1所示,T0由特殊功能
寄存器TH0、TL0构成,T1由特殊功能寄存器TH1、TL1构成。
图5-1 定时器/计数器T0、T1结构框图
6
具有定时器和计数器2种工作模式,4种工作方式(方式0、 方式1、方式2和方式3)。属于增1计数器。
定时器/计数器T0分为两个独立的8位计数器TL0和TH0, TL0使用T0的状态控制位C/T*、GATE、TR0、TF0 ,而TH0
23
被固定为一个8位定时器(不能作为外部计数模式),并使用 定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断 请求源TF1。 2.T0工作在方式3时T1的各种工作方式
P1.0输出;T2OE=0,禁止定时时钟从P1.0输出。 DCEN(D0):计数方式选择。DCEN=1,T2的计数方式
由P1.1引脚状态决定。P1.1=1,T2减计数,P1.1=0,T2加 计数;DCEN=0,计数方式与P1.1无关,同T1和T0一样,采 用增1计数。
31
2. 特殊功能寄存器T2CON T2的功能选择由特殊功能控制寄存器T2CON来设定,
(2)M1、M0——工作方式选择位 M1、M0共有4种编码,对应于4种工作方式的选择,如
表6-1所示。
10
(3)C/T*—计数器模式和定时器模式选择位 0:为定时器工作模式,对单片机的晶体振荡器12分频后的

第5章定时器(上课)

第5章定时器(上课)

二. 方式1的应用 例3:用定时器T1产生一个50Hz的方波,由P1.0输出。用 查询方式,设fosc=12MHz。 三. 方式2的应用 方式 2 是定时器自动重装载的操作方式, 在这种方式下, 定时器0和1的工作是相同的, 它的工作过程与方式0、方式
1 基本相同, 只不过在溢出的同时, 将 8 位二进制初值自动重
2. 假设系统时钟为6MHz,编写定时器T0产生1秒定时的
程序。用中断方式。 3. 利用T0工作方式0,产生1ms的定时,在P1.0引脚上输出 周期为2ms的方波,设系统时钟频率为12MHz,采用查询 方式和中断方式两种方法实现。 4.若单片机时钟频率为12MHZ,要求从P1.1引脚输出周 期为4ms的方波。
5. 设系统时钟频率为12MHZ,用定时/计数器T0编程实现从P1.0 输出周期为500μs的方波。 分析:从P1.0输出周期为500μs的方波,只须P1.0每250μs取反一次则可。 当系统时钟为12MHZ,定时/计数器T0工作于方式2时,最大的定时时间 为256μs,满足250μs的定时要求,方式控制字应设定为00000010B (02H)。系统时钟为12MHZ,定时250μs,计数值N为250,初值 X=256-250=6,则TH0=TL0=06H。 6.设系统时钟频率为12MHZ,编程实现从P1.1输出周期为1s的方 波。 分析:应产生500ms的周期性的定时,定时到则对P1.1取反就可实现。由于 定时时间较长,一个定时/计数器不能直接实现,可用定时/计数器T0产生周 期性为10ms的定时,然后用一个寄存器R2对10ms计数50次或用定时/计数器 T1对10ms计数50次实现。系统时钟为12MHZ,定时/计数器T0定时10ms,计 数值N为10000,只能选方式1,方式控制字为00000001B(01H),初值X: X=65536-10000=55536=1101100011110000B 则TH0=11011000B=D8H,TL0=11110000B=F0H。

第5章定时计数器 (2)

第5章定时计数器 (2)

5.4 8XX51定时/计数器的应用程序设计
5.4.3 应用编程举例 例1 如图所示,
P1中接有八个发光二极管, 编程使八个管轮流点亮,每 个管亮100ms,设晶振为 6MHz。 分析利用T1完成100ms的定时、 当P1口线输出“1”时,发光二 极管亮,每隔100ms”1”左移一 次,采用定时方式1,先计算计 数初值: MC=2μs 100ms/2μs =50000=C350H C =10000H-C350H=3CB0H
★若将T0设置为模式3,TL0和TH0被分成为两个互相独立的8位计数器
TH0和 TL0 。
★TL0可工作为定时方式或计数方式。占用原T0的各控制位、引脚和 中断源。即C/T、GATE、TR0、TF0和T0 (P3.4)引脚、INT0 (P3.2) 引脚。 TH0只可用作定时功能,占用定时器T1的控制位TR1和T1的中断标 志位TF1,其启动和关闭仅受TRl的控制。
ORG 0000H
AJMP
AJMP
MAIN
;T0中断服务程序入口 ;主程序开始 ;T0定时100ms IP0
ORG 000BH ORG 0030H MAIN:CLR P1.7
MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H
SETB
SETB
ET0
EA
5.4 8XX51定时/计数器的应用程序设计
本章介绍的主要内容
★ ★

定时计数器结构和工作原理 定时计数器的控制寄存器
定时计数器的应用编程
5· 1 8XX51定时/计数器结构和工作原理
★51系列单片机片内有两个十六位定时/计数器:定时器0(T0) 和定时器1(T1)。 ★两个定时器都有定时或事件计数的功能,可用于定时控制、 延时、对外部事件计数和检测等场合。 ★定时/计数器实际上是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由2个8位持殊功能寄存器TH1和TL1构成。 ★每个定时器都可由软件设置为定时工作方式或 计数工作方式。

第五章 定时计数器与中断系统

第五章  定时计数器与中断系统
SJMP $
SJMP END$
中断允许 IE(A8H) EA
ES ET1 EX1 ET0 EX0
寄存器
位地址 AFH
ACH ABH AAH A9H A8H
中断优先级 IP(B8H)
PS PT1 PX1 PT0 PX0
寄存器
位地址
BCH BBH BAH B9H B8H
4123...中外中中断部断断标中允优志断许先位触控级发:制控方T位制F式:1位选、E:A择T、FP位S0E、:SPI、IETT1E0、T、1PII、EXT101E、、XPR1T、I0、ETPX0I0、EX0 2登=级1记:开优各负中先中边断级断沿;:源触==1请发0为关求中高中信断优断号请先。:求级=;,1,==有00:为中低低断电优请平先求触级;发。=中0断,请无求中。断请求。 CPU同例响一:应优允中先许断级CP后别U响,按应该内I中部NT断查0的标询中志顺断自序请动排求清列零优。先T级I,:RI标志必须软件清零。
2.方式1
16位定时/计数器。 THx 8位和TLx低8位组成16位加1计数器 t=(216-T1初值)× 振荡周期 × 12 计数外部脉冲个数:1~65536(216) 工作结构如图。
3. 方式2
自动恢复初值8位定时/计数器。TLx为8位加1计数器, THx为8位初值暂存器。
用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(T=1s): 256s 工作结构如图。
2.非屏蔽中断
NMI 微型机
不可程控“关中断”。有中断请求信
号,CPU必须响应。
二.中断优先权
日常事务 中断服务 中断服务 程序 程序1 程序2
1.当同时有多个中断请求信号,
先响应优先级别高的中断请求。

《单片机原理及应用》第5章 定时器及应用

《单片机原理及应用》第5章 定时器及应用

计数工作方式
通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时定时器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最高计 数频率为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持 时间至少是一个完整的机器周期。 对输入脉冲信号的基本要求如图5-2所示。
外部事件
计数电路 时间单位脉冲 单片机 计数完成信号
5.2 89C51定时器概述
• 89C51有两个16位的定时器/计数器,即定时器0(T0)和 定时器1(T1)。它们实际上都是16位加1计数器。 • T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1 和TL1构成。
• 每个定时器都可由软件设置为定时工作方式或计数工作方
• 例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个 500μs的同步脉冲。请编程序实现该功能。查询方式, fosc=6MHz。
解:(1)模式选择 选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生 负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为 500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生 溢出,使P1.0输出恢复高电平,T0又恢复外部事件计数方式。
T0的低5位:01100B=0CH即(TL0)=0CH T0的高8位:11110000B=F0H即(TH0)=F0H
(2)计算最大定时时间T
T0的最大定时时间对应于初值为0. 则:T=213×1/6 × 10-6×12=16.384ms
例2:利用T0的工作模式0产生1ms定时,在P1.0引脚输出 周期为2ms的方波。设单片机晶振频率fosc=12MHz。编 程实现其功能。 解:要在P1.0引脚输出周期为2ms的方波,只要使P1.0每隔 1ms取反一次即可。 (1)选择工作模式 T0的模式字为TMOD=00H,即 M1M0=00,C/T=0,GATE=0,其余位为0。 (2)计算1ms定时时T0的初值

第五章 定时器计数器8253

第五章  定时器计数器8253

1方式----低电平输出(GATE信号上升沿重新计数) 可重复触发的单稳态触发器 1方式为可编程的单稳态工作方式。(平时gate无效) 情况一: (1)写入计数初值后,计数器并不立即开始工作; (2)门控信号GATE有效,才开始工作,使输出OUT变成低电平; (3)直到计数器值减到零后,输出才变高电平。见图6.5中①。 情况二: 21组16 在计数器工作期间,当GATE又出现一个上升沿时,计数器 重新装入原计数初值并重新开始计数,见图见图6.5中②。 21组17 如果工作期间对计数器写入新的计数初值,则要等到当前的 计数值计满回零且门控信号再次出现上升沿后,才按新写入的 计数初值开始工作,见图6.5所示③。21组1 2.
CLK WR
n=6
5 4 3 2 1 0

OUT
② ห้องสมุดไป่ตู้ATE
OUT
5
4
4
4
4
3
2
1
0
图6.8:8253的4方式时序波形
6. 5方式------单次负脉冲输出(硬件触发)
加1,计数脉冲是频率恒定的时钟脉冲
一次计数过程是指计数器从初值开始计数到0。
一段定时是指计数器从初值开始计数到0所经
历的时间段。
定时举例:
①计算机及电子系统中需要定时信号,如系统 的日历时钟,一天24小时的计时。动态存储器 的刷新,应用系统的定时中断、定时查询与检 测等称为日时钟。
②在监测系统中,对被测点的定时取样。 ③在读键盘时,为去抖,一般延迟10ms再读。
个字节),采用二进制计数。其初始化程序段为

MOV DX,43H
;命令口 ;2号计数器的初始化命令字 ;写入命令寄存器 ;2号计数器数据口

《单片机原理及应用》教学课件 第5章 定时器/计数器及应用

《单片机原理及应用》教学课件 第5章  定时器/计数器及应用


当M1M0=01时,T0采用方式1工作,如图5-3所示,此时T0是
TL0和TH0构成16位的定时/计数器,最大计数值为216=65536,其
他特性和方式0相似。
图5-3 定时/计数器T0工作方式1的原理图
• 【例5-2】利用定时器0产生10Hz的方波,由口输出,设晶振频 率为12MHz。

分析如下:
序,通过口输出高、低电平均为1s的方波〔假
设单片机采用12MHz的晶振〕。
• 分析如下:

12MHz的晶振,机器周期为1us,各种工
作方式直接定时的最大定时时间分别为:
• 方式0:213=
• 方式1:216=65536us=
• 方式2、3:28=256us

编程思路:
• 任何一种方式都无法直接实现1s的定时,
• 工作在定时器模式时,是对内部机器周期脉冲进 行计数,定时时间为机器周期脉冲的时间乘以机器周 期数;工作在计数器模式时,是对引脚T0〔〕或T1〔 〕上输入的外部脉冲计数,当检测到引脚上的信号由 高电平跳变到低电平时,计数器加1。
• 无论处在定时模式或者计数模式,其本质只是一 个加1计数器,每输入一个脉冲,计数器加1。当计数 器全部为1后,假设还有脉冲输入,此时计数器将产生 溢出〔计数器中的值为0〕,向CPU发出中断请求〔内 部中断〕。
• 5.1.1 定时器/计数器结构

8051单片机包含两个16位的定时/计数器
,分别为定时/计数器0〔T0〕,定时/计数器1
〔T1〕,其结构如图5-1所示。
图5-1 定时/计数器结构图
• 5.1.2 定时器/计数器的工作原理
• 在图5-1中我们看到,定时/计数器有两个输入脉冲 ,一个是内部机器周期脉冲,一个是T0或T1引脚输入 的外部脉冲。

第5章 定时器计数器

第5章 定时器计数器
时软件清0 ) ✓ 使用中断方式时,此位作为中断请求标志位,进入中断服务程序
后由硬件自动清0
(2)TR1、TR0——计数运行控制位
✓ TR1(或TR0)=1,启动定时器/计数器工作 ✓ TR1(或TR0)=0,停止定时器/计数器工作。 ✓ 该位可由软件置1或清0(位操作)
7
定时器/计数器T1、T0工作方式
22
✓ 当T2MOD的DCEN=0时,T2为增1型重新装载方式
EXEN2=0时,T2计满回0溢出,TF2置1;陷阱寄存器RCAP2L、 RCAP2H中预置的16位计数初值重新再装入TL2、TH2中,自动进 行下一轮计数。
EXEN2=1时,T2操作方式照旧,但当T2EX(P1.1)产生负跳变时 触发三态门将RCAP2L、RCAP2H陷阱寄存器中的计数初值自动装 载到TL2和TH2中重新开始计数,EXF2置1并发出中断请求。
9
✓ 方式2(M1 M0=10B) 方式2为自动恢复初值(初值自动装入)的8位定时器/计数器。
TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,TFx置1且
自动将THx中的初值送至TLx,开始重新计数。
【注】方式2可省去用户软件中重装初值的指令执行时间,可以
相当精确地确定定时时间。
10
✓ 方式3(M1 M0=11B) 相当于增加了一个8位定时器/计数器。
(2)T1工作在方式1( M1 M0 =01B )
12
(3)T1工作在方式2( M1 M0 =10B )
(4)T1设置在方式3( M1 M0 =11B )
当T0设置在方式3,再把T1也设成方式3,此时T1停止计数。
13
定时/计数器初始化步骤
(1)方式控制字送TMOD MOV TMOD,#——

第5章 定时器计数器2(1)

第5章 定时器计数器2(1)

2、模式1模式1(M1M0=01)除了使用了THn和TLn全部16位外,其它与模式0相同。

(1)计数工作方式由于定时器/计数器以加1方式计数,假定计数值为X,则应装入定时器/计数器的初值为:初值=216-计数值【216=初值+计数值】所以方式1的计数值围是:1~65536(216=65536),最大值为:65536(2)定时工作方式定时时间t的计算公式为:【t的时间单位为微秒(µs)】计数值=216-初值定时时间t=计数值×机器周期=(216-初值)×(1/晶体振荡频率)×12在模式1下的情况下,如果fosc=12MHz,最大定时时间为:t=(65536-初值)×(1/12)×12=65536-0=65.536ms在模式1下的情况下,如果fosc=6MHz,最大定时时间为:t=(65536-初值)×(1/6)×12=(65536-0)×2=131.072 ms。

【例如】:若晶体振荡为12MHz,要定时2.5ms,计算初值。

要定时2.5ms,也可以用模式1。

2500=(216-初值)×(1/12)×12初值=65536-2500=63036=32768+16384+8192+4096+1024+512+32+16+8+4=1111 0110 0011 1100――> THn =0xF6 和 TLn=0x3C在fosc=12MHz时,如果定时时间大于65.536ms,这时用一个定时/计数器直接处理不能实现,这时可用:1、2个定时/计数器共同处理;2、1个定时/计数器配合软件计数方式处理。

3、模式2方式0和方式1的最大特点是计数溢出后,计数器为全0。

因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。

这不仅影响定时精度,也给程序设计带来麻烦。

方式2就是针对此问题而设置的。

该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。

第5章 定时计数器

第5章 定时计数器
当TL0的低5位溢出时,向TH0产生进位;TH0溢出时,将 定时器中断请求标志位TF0置1,可申请中断,也可对TF0进 行查询。
图4-11 定时/计数器T0方式0的逻辑结构示意图
2. 方式1 当M1M0=01时,定时/计数器工作于方式1。方式1的计 数位数是16位,由TL0作为低8位,TH0作为高8位共同构 成。其余操作同方式0。
2.定时/计数器控制寄存器TCON TCON的低4位用于控制外部中断,高4位用于控 制定时/计数器的启动和中断申请。 TF0(或TF1)
当计数溢出时,TF0(或TF1)会自动由0变1, 告诉我们计数已满,我们可以通过查询TF0(或TF1) 位的状态来判断计时时间是否已到;
如果采用定时中断方式,则 由0变1时,能自动引发中断。 TF0(或TF1)
16位定时/计数器的计数容量是65536
假设计满一小时需要100,000,000 滴,这称为水钟的计数容量
(2)定时 单片机内部的计数器用作定时器时,是对标准的 时钟进行了计数,每来一个时钟脉冲,计数器加1, 计数器如何能作为定时 只要保证计数脉冲的间隔相等,则计数值就代表了 器使用呢? 时间的流逝。 单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数, 定时器:是对单片机内部的标准时钟脉冲进行 计数。
TR0(或TR1) 由图4-11 可知,只有 当TR0(或TR1)为1时,开 关1才能闭合,计数脉冲才 能进入计数器,故TR0(或 TR1)称为运行控制位,可 用指令“SETB TR0(或 TR1)”来置位以启动定时/ 计数器运行;或用指令 “CLR TR0(或TR1)”来关 闭定时/计数器的工作,一 切全靠编程人员控制。
2.初始化程序:
MOV MOV MOV MOV TMOD,#06H TH0,#0F4H TL0,#0F4H IE ,#00H ;T0作计数器,工作于方式2 ;装入时间常数初值 ;自动重装时间常数 ;用查询方式确定计满12盒? ;自动申请中断

第5章 定时器TIM PPT

第5章  定时器TIM PPT
使用一个定时器作为另一个定时器的预分频器。例如可以配置一个定时器 Timer1而作为另一个定时器Timer2的预分频器。
-8-
高级和通用定时器TIMx-- TIMx时 钟源
可以使用库函数来完成时钟源的选择,例如:
【示例5- 2】 选择时钟源 /* 选择TIM1为内部时钟源 */ void TIM_InternalClockConfig(TIM1);
原型如下:
【结构体5- 1】 TIM_TimeBaseInitTypeDef typedef struct {
/* 预分频系数,即PSC寄存器,计数范围0-0xffff */ uint16_t TIM_Prescaler; /* 计数模式选择 */ uint16_t TIM_CounterMode; /* 自动装载的计数值,即ARR寄存器,计数范围0-0xffff */ uint16_t TIM_Period; /* 时钟分割,用于数字滤波器等,计数模式中无作用 */ uint16_t TIM_ClockDivision; /* 重复次数,即RCR寄存器,取值范围0-0xff */ uint8_t TIM_RepetitionCounter; } TIM_TimeBaseInitTypeDef;
/* 计数器使能,开始工作 */ TIM_Cmd(TIM1, ENABLE); }
- 18 -
计数模式 --库函数TIM_TimeBaseInit( )
TIM_TimeBaseInitStructure为TIM_TimeBaseInitTypeDef
类型的指针(定义于文件“stm32f10x_tim.h”),其结构
计数器
计数器CNT是一个16位的寄存器,计数范围1-65535。可以向上计数、向下 计数或者向上向下双向计数。

5 定时计数器

5 定时计数器

主程序
定时器T1溢 出中断服 务子程序
单片微机 原理与应用 编程实现在P1.0引脚上输出周期为2ms的方波。
例5-3 利用T0的工作模式0产生1ms的定时,
设单片机的晶振频率ƒosc=12MHz。 解: 方法:定时1ms,对P1.0取反,然后继续定时 (1)设置模式字 2ms TMOD= **** 0000B =00000000B=00H 1ms (2)计算初值
单片微机 原理与应用
5. 3. 3 模式2及其应用
一、模式2时的结构和工作原理
与以前模式区别在于: 可连续计数 计数器为8位自动重装初值计数器,在循环定时 或计数时,不必反复预置计数初值。
单片微机 原理与应用
二、特短, 计数值N和定时时间t的计算 : N= 28- 初值X t=(28- 初值X) *机器周期Tcy 最大计数值为: 28 =256 说明:通常使用定时期T1工作在模式2作为串口 的波特率发生器。
单片微机 原理与应用
单片微机 三、应用举例 原理与应用 例5-1 使用定时器T0定时时间为1ms,选择工 作模式0,ƒosc=6MHz。试确定T0初值,计算最大 定时时间T。
解: (1)求T0的初值X 由公式:t=(213-T0初值)*机器周期Tcy t=1ms=1000μs 机器周期Tcy=12/ƒosc=12/6000000s=2μs 得 1000=( 213 -X)*2 所以初值 X=8192-500=7692=1111000001100B (一定要写全13位) TL0: 00001100B=0CH TL0的低5位和TH0的8位 TH0:11110000B=F0H
因Tcy=1μs,得 10000= (216-X)*1, 10000=65536-X X=55536=D8F0H
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wyx
定时/计数器的控制
5.1.4 工作方式控制寄存器TMOD
问题 1. 定时/计数方式如何设定?

2、定时/计数器如何启动?

3、定时/计数的初值如何计算?
5 MCS-51 /
定 用于选定定时/计数器的工作方式、启动方式等。其中低四
时 计
位用于定义定时器T0,高四位用于定义定时器T1。


D7
D6 D5 D4 D3 D2 D1 D0
5.2 定时/计数器的控制与工作方式
单片机原理与应用
第 5 章 定时/计数器及其应 用
第5章 定时/计数器及其应用 主要内容:
定时/计数器的结构与工作原理 定时/计数器的工作方式 定时/计数器的编程应用 定时/计数器T2的结构与原理 定时/计数器T2应用举例
wyx
5 MCS-51 /
第5章 MCS-51定时/计数器及其应用
将计算机应用于测控系统时,常常需要有实时时钟以实 第 现定时或延时采样和控制,有时需要对外部事件进行计
5 MCS-51 /
5.2 定时/计数器的工作方式
1.方式0(T0/T1)
(1)加1计数器为13位TL0=5位,TH0=8位
第 (2)(GATE+INT0)•TR0为真,启动定时器
章 (3)C/T=1为计数工作方式,计数脉冲由T1引脚输入。计数个数 N=( 213—初 值)
(4)C/T=0为定时工作方式

1.当设置为定时工作方式时,对机器周期TM计数。这是计数器的计数脉冲 由振荡器的12分频信号产生,即每经过一个机器周期,计数值加1,直至
计满溢出。在机器周期固定的情况下,定时时间的长短与计数器事先装入
定 的初值有关,装入的初值越大,定时越短。

计 数 器
2.当设置为计数工作方式时, 通过引脚T0(P3.4)和T1(P3.5)
时钟频率 fosc/12。N=t/Tcy
定 时

数 定时时间t=(213—初值)*机器周期
器 及
(5)计数器溢出,TF1置1。由硬件申请中断。——能否被CPU响应?

应 由于在应用方式0时计数初值的写入要注意“低5高8”,初
用 学者容易出错,一般情况下很少用方式0,而选用方式1。
wyx
例:若系统晶振频率为fosc=12MHz,要求定时器0工 作自方式0下实现2ms的定时,试问送入TH0和TL0的值 分别为多少?
t=(216-计数初值)×机器周期


计 用于计数器工作方式时
数 器
最大计数值为
及 其
216=65536。
应 用
wyx
5.2 定时/计数器的控制与工作方式
5 MCS-51 /
3. 方式2(T0/T1)
定时/计数器工作
第 于方式2时,将两
章 个 8 位 计 数 器 THx 、
TLx 分 成 独 立 的 两
wyx
5.1 定时/计数器的结构与工作原理
5.1.1 定时/计数器的逻辑结构
MCS-51子系列单片机内的两个定时器/计数器T0和T1逻辑结构如图所示:
第 章
5 MCS-51 /
定 时







16位的定时器/计数器分别由两个8位专用寄存器TH0、TL0(或
THl和TL1)构成。其内部还有2个8位的专用寄存器TMOD和TCON。
wyx
5 MCS-51 /
5.2 定时/计数器的控制与工作方式
2.方式1(T0/T1)
定时/计数器工作于方式1时为一个16位的计数器。其逻辑
第 结构、操作及运行控制几乎与方式0完全—样,差别仅在于计 章 数器的位数不同。在方式1中TL0和TH0均为8位,TL0和
TH0一起构成了l6位计数据。工作方式1时,定时时间为:
及 对外部脉冲信号计数。当T0或
其 应 用
T1脚上输人的脉冲信号出现由 1到0的负跳变时,计数器值加
1。外部输入的计数脉冲的最
高频率为系统频率的1/24。
wyx
定时/计数器的控制
5.1.3 控制寄存器TCON
5 MCS-51 /


(1) TF1 定时器1溢出标志
(2) TR1 定时器1运行控制位
(3)GATE:启动控制方式选择
GATE=0:允许软件位TR0或TR1启动;
定 时
GATE=1:允许外部引脚信号

INT0/INT1启动。


及 其
M1
M0 工作方式
方式说明

0
0
0
13位定时/计数器

0
1
1
16位定时/计数器
1
0
2
8位自动重置定时/计数器
ห้องสมุดไป่ตู้
1
1
3
两个8位定时/计数器(只有T0有)
wyx

数等。虽然定时的实现可由CPU利用软件编程来完成,
但这样就会降低CPU的效率,这时可使用硬件定时计数
定 器。
时 计
MCS-51子系列单片机内有两个可编程的定时/计数器
数 T0和T1;MCS-52子系列中除这两个定时器外,还有一

及 个定时/计数器T2。

应 用
可编程:可由用户程序选择其工作方式
设定其工作参数和条件。

其 应
TMOD GATE C/T
M1 M0 GATE C/T M1 M0 字节地址:89H

控 制 T1
控 制 T0
wyx
定时/计数器的控制
5 MCS-51 /
(1)M1 M0:用于设置定时/计数器的
第 章
工作方式0~3 ; (2) C/T:选择定时/计数——;
C/T=0---定时,C/T=1---
定 (3) TF0 定时器0溢出标志
例:启动T0工作,用指令
时 (4) TR0 定时器0运行控制位
SETB TR0
计 数
(5) IE1
外部中断1请求标志
器 及 其
(6) IT1 (7) IE0
外中断1触发方式选择位 外部中断0请求标志
应 用
(8) IT0
外部断0触发方式选择位
注意: 复位后TMOD、TCON各位均清零
其中TMOD是定时器的工作方式寄存器,TCON是控制寄存器,主要
用于定时/计数器管理与控制。
wyx
5 MCS-51 /
5.1 定时/计数器的结构与工作原理
5.1.2 定时/计数器的工作原理
它的核心部件是加1计数器,其输入的计数脉冲有两个来源。当加到计 数器为全“1”时,再输入一个脉冲,就使计数器回零,同时产生溢出脉 第 冲使TCON中溢出中断标志TF0或TF1置1,并可向CPU申请中断。
部分,组成一个可
定 自动重装载的8位
时 定时/计数器。

数 器
方式2的控制运行与方式0、方式1相同。
及 其
定时工作方式时,定时时间t=(28—计数初值X)×机器周期
应 用
计数工作方式时,最大计数值(初值=0时)是28。
方式2特别适合于用作较精确的定时和脉冲信号发生器,
常用作串行口波特率发生器 。
wyx
相关文档
最新文档