6.3 定时器计数器的四种模式及应用
定时器的四种工作模式
工作方式1
当M1=0,M0=1时,T0或T1工作在方式1 方式1的特点:T0或T1工作在方式1时是16位
的计数器。 16位计数器的组成:由THX作为高8位,由
TLX作为低8位。 当TLX溢出后,对THX进位,THX溢出后,
定时器/计数器的4种工作方式
方式0 (120页)
当M0=0,M1=0时,工作在方式0 方式0的特点:为13位的计数器 13位计数器的组成:由TLX的低5位和THX的
高8位组成。 计数器的进位及溢出:当TLX的低5位溢出时,
则向THX进位。当THX溢出时,则由硬件置 一TFX,从而发出中断请求。
C/T位控制T0和T1的工作模式
参考119页 TMOD寄存器和121页框图 以定时器/计数器T1举例说明: (1)TMOD寄存器高四位中的C/T=0时,T1
工作在定时器模式,计数信号来源于单片机 系统内部,即:系统时钟的12分频。 (2)TMOD寄存器高四位中的C/T=1时,T1 工作在计数器模式,计数信号来源于T1引脚, 即:P3.5引脚。
GATE位对T0和T1的控制
以T0做范例讲解 (1)当TMOD寄存器低四位中的GATE=0时,
则T0的启动与停止由TCON寄存器中的TR0 控制。 当TR0=0时,启动T0; 当TR0=1时,停止T0.
(2)当TMOD寄存器低四位中的GATE=1时, 则T0的启动就需要两个条件: 条件1:TR0=1; 条件2:外部中断0引脚上存在高电平。
第六章 MCS-51单片机内部定时器
6.3.1 模式0及应用
在这种模式下,16位寄存器只用了13位。 其中,TL0的高3位未用,TH0占8位。当 TL0的低5位溢出时,向TH0进位。当TH0 溢出时,向中断标志位TF0进位,并申请中 断。 因此,可通过查询TF0 是否置位或考 察中断是否发生来判断定时器/计数器0的 操作完成与否。
(2)计算1ms定时T0的初值:
机器周期为(1/fOSC)×12=[1/(12×106)]×12=1μs, 设T0的 计数初值为X,则 (213-X)×1×10-6=1×10-3ms
X=213-1×10-3/(1×10) -6 =8192-1000=7192D=1110000011000
高8位: E0H 低5位: 18H
fosc=12MHz, 采用查询方式。
解:方波周期 T=1/100Hz=0.01s=10ms 用T1定时5ms 计数初值 X为: X=216-12×5×103/12=60536=EC78H 程序如下:
MOV TMOD, #10H ;T1模式1,定时方式
SETB TR1 LOOP:MOV TH1,#0ECH
例:晶振为12MHZ ,则计数周期为
T=12/(12*106)Hz =1微秒
最短的定时 周期
计数器工作方式:
当定时器/计数器为计数工作方式时,通过
引脚T0和T1对外部信号计数,外部脉冲的下降
沿触发计数
在每个机器周期的
采样过程:
S5P2期间采样引脚
当输入脉冲信号从1到0的负跳变时,计数器就 自动加1。 由于检测一个由1到0的跳变需要两 个机器周期,所以 计数的最高频率为振荡频 率的1/24。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)
《定时计数器》课件
定时计数器的使用步骤
开启定时计数器
在设置好所需参数后,用户可 以启动定时计数器开始计时。
实时监控
在计时过程中,用户可以通过 显示界面实时查看当前计数值 和计时状态。
停止计时
当达到设定时间或需要停止计 时时,用户可以按下停止按钮 ,计时器将停止工作。
重置
若需重新计时,用户可以将计 数值重置为初始状态,并重新
信号。
触发器
触发器是定时计数器的 重要组成部分,用于控 制计数器的开始和停止
。
计数器
计数器用于记录输入信 号的个数,可以是二进
制或十进制。
输出信号
定时计数器的输出信号 可以是控制信号、状态
信号或脉冲信号。
定时计数器的工作流程
01
02
03
04
启动
当输入信号满足一定条件时, 触发器被触发,计数器开始计
定时计数器的基本原理是利用触发器的翻转时刻来记录时间间隔的起始和结束时刻 。
当输入信号的上升沿或下降沿到来时,触发器翻转,记录下当前时刻,从而计算出 时间间隔。
定时计数器的精度取决于触发器的翻转时刻的准确性,因此需要采用高精度的触发 器。
02
定时计数器的分类
机械式定时计数器
机械式定时计数器是最早的定时计数 器类型,它利用机械原理来实现计时 和计数功能。
现不必要的时间误差。
05
定时计数器的维护与 保养
定时计数器的清洁保养
清洁外壳表面
使用干燥的软布擦拭计数器的外 壳表面,以去除灰尘和污垢。
清洁内部组件
定期打开计数器外壳,使用吸尘器 或干燥的软布清洁内部电路板和元 件。
清洁触点
定期检查并清洁计数器的触点,以 确保良好的接触性能。
定时器的四种工作模式
节能管理
通过定时器对设备进行定时开关控制, 可以有效节约能源,提高设备的使用 寿命。
定时器的基本概念
定时时间
定时器设定的时间值,到达该时 间值后会触发相应的事件。
定时器精度
定时器的精度决定了其计时的准 确性,高精度的定时器可以提供 更准确的计时服务。
计数方式
定时器可以采用向上计数或向下 计数的方式,不同的计数方式适 用于不同的应用场景。
中断处理
当定时器到达设定时间时,会触 发中断事件,此时可以执行相应 的中断处理函数。
Part
02
定时器的四种工作模式
模式一:单次触发模式
工作原理
在单次触发模式下,定时器只会 在接收到启动信号后开始计时, 并在达到预设时间后输出信号。
应用场景
适用于需要单次计时或延迟控制 的场景,如单次延时启动、单次 脉冲发生等。
应用场景
适用于需要与其他信号同步或受外部条件控制的场景,如电机控制、事件计数 等。
模式四:外部触发模式
工作原理
在外部触发模式下,定时器的计时开始和结束受外部触发信号控制。当接收到外 部触发信号时,定时器开始计时;当再次接收到外部触发信号时,定时器停止计 时。
应用场景
适用于需要与其他设备或系统协同工作的场景,如远程控制、自动化生产线等。
模式二:连续触发模式
工作原理
在连续触发模式下,定时器会不断循 环计时,每次达到预设时间后都会输 出信号,直到接收到停止信号。
应用场景
适用于需要连续计时或循环控制的场 景,如周期性信号发生、PWM波形生 成等。
模式三:门控触发模式
工作原理
在门控触发模式下,定时器的计时开始和结束受门控信号控制。当门控信号为 高电平时,定时器开始计时;当门控信号为低电平时,定时器停止计时。
第六章定时器及应用
定时时间为: t=计数值×机器周期 =(216-T0初值)×振荡周期×12
(二)模式 1 工作特点
当C/ T =1时,T0对外部输入计数。计数长度为: L=(216-T0初值)(个外部脉冲)
T 1初 值 2 16
T 1初 值 2
16
20ms
t
振 荡 周 期 12
10m s 1 12 6 6 10
T 1初值 60536 EC78H
∴(TH1)=ECH,(TL1)=78H
解:2)确定工作模式寄存器TMOD的值 ∵ 定时器T1工作于模式1的定时器工作方式, ∴ 高四位: GATE=0,C/T=0,M1M0=01 ,低四位:取0。 ∴ (TMOD)=0001 0000 B = 10H
因此:(TL0)=0B0H
(TH0)=3CH
源程序清单(使发光二极管闪烁,每1S闪烁1次) #include<at89x51.h> unsigned char temp=5; main() void timer_0( )interrupt 1 { { TMOD=0x01; TH0=0X3C; TL0=0XB0; TH0=0X3C; temp--; TL0=0XB0; if(temp==0) ET0=1; { EA=1; temp=5; TR0=1; P1_0=~P1_0; P1_0=1; } while(1); } }
3)编程(定时器溢出中断方式) #include <at89x51.h> 思考:设定时器T0用于定 void main() { 时10ms,晶振为6MHz。 TMOD=0x10; 编程实现:P1.0输出周期 TH1=0xec; TL1=0x78; 为40ms,高电平宽为10ms, ET1=1; EA=1; TR1=1; 低电平宽为30ms的矩形波。 P1_1=1; 如何编程? while(1); } void timer_1() interrupt 3 { TH1=0xec; TL1=0x78; P1_1=~P1_1; }
最新定时计数器的四种工作方式
定时计数器的四种工作方式在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。
顺便说一下,T MOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。
从图1中我们能看出,TMOD被分成两部份,每部份4位。
分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。
从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。
而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。
原来TF1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。
希望大家常来本站学习单片机相关知识计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。
因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。
<单片机定时器/计数器结构>定时/计数器的四种工作方式工作方式0定时器/计数器的工作方式0称之为13位定时/计数方式。
它由TL(1/0)的低5位和TH(0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。
我们用这个图来讨论几个问题:M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。
C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们��编程者。
如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。
顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多开始学习者却会有此困惑。
定时器/计数器及应用分析课件
定时器和计数器的工作原理和应用场 景各不相同,需要根据实际需求进行 选择和使用。
定时器和计数器在嵌入式系统的设计 中扮演着重要的角色,对于实现系统 的精确控制和可靠运行具有重要意义。
展望
随着嵌入式系统的发展和应用领域的不断扩展, 定时器和计数器的功能和性能也在不断提升。
计数器可以用来实现计数值的累加, 例如记录用户点击按钮的次数或设备 的使用次数。
定时器和计数器器可以组合起来实 现更复杂的功能,例如通过定时 器控制计数器的计数值,或者使 用计数器的计数值来控制定时器
的触发时间间隔。
组合应用实例
例如,可以使用定时器来控制计 数器的计数值,每隔1秒更新一 次计数器的计数值,然后使用计 数器的计数值来控制一个设备的
代码实现
使用Arduino编程,通过定时器与计数器结合,实时计算 电机的转速,同时控制电机的运动状态
应用场景
适用于需要实时监测与控制电机转速的领域,如自动化生 产线、机器人等
定时器和计数器的综合应用——实现智能小车巡线
• 硬件准备:Arduino板、电机驱动模块、两个直流电机、红外线传感器、巡线轨道 • 原理说明:通过定时器控制电机的运动状态,实现小车的运动;通过计数器统计红外线传感器检测到的黑色线路的脉冲数,
定时器工作原理
定时器通过计数时钟周期来实现时间间隔的测量,当达到设定的时 间间隔后就会触发中断。
使用计数器实现计数值的累加
计数器概述
计数器工作原理
计数器是一种能够记录事件发生次数 的硬件或软件组件。
每当事件发生时,计数器就会自动加1 ,当达到设定的上限值后就会触发中 断或重置为0。
第6章 计数器和定时
+1计数器
溢出
中断
控制 开关
计数原理——定时器 单片机内部脉冲每输入一个脉冲,计数器加1,当 加到计数器各位都为1时,再输入一个脉冲,计数 器各位全变为0,溢出,中断标志置1(SFR中 TCON的TF0、TF1),从而向CPU申请中断。 由预置计数值就可以算出从加1计数器启动到计满 溢出所需的时间,即定时时间。 8位28 = 256;13位213 = 8192;16位 216 = 65536
可编程定时/计数器。
6.1 定时/计数技术概述
在单片微机应用系统中,常常会需要定时或计数,通常采用以 下三种方法来实现: 1.硬件法 硬件定时功能完全由硬件电路完成,不占用 CPU 时间。但 当要求改变定时时间时,只能通过改变电路中的元件参数来实 现,很不灵活。 2.软件法 软件定时是执行一段循环程序来进行时间延时,优点是无 额外的硬件开销,时间比较精确。但牺牲了CPU的时间,所以软 件延时时间不宜长,而在实时控制等对响应时间敏感的场合也 不能使用。
8E
TF0
8D
TR0
8C
IE1
8B
IT1
8A
IE0
89
IT0
88
• 8位寄存器,可位寻址 • 低4位用于外部中断INT0、INT1控制 • 高4位用于T0、T1控制
3、定时/计数器控制寄存器TCON
TCON
位地址
TF1
8F
TR1
8E
TF0
8D
TR0
8C
IE1
8BIT18A NhomakorabeaIE0
89
IT0
88
• TR0(TCON.4):T0的运行控制位 当GATE=0时,TR0=0则T0停止运行;TR0=1时 T0允许运行 • TF0(TCON.5):T0溢出兼中断申请标志
定时计数器及其应用
80C51定时/计数初值计算公式:
其中: N与工作方式有关: 方式0时,N=13; 方式1时,N=16; 方式2、3时,N=8。
机周时间与主振频率有关:机周时间=12/fosc fosc=12MHZ时,1机周=1S; fosc=6MHZ 时,1机周=2S。
【例】 已知晶振6MHz,要求定时0.5ms,试分别 求出T0工作于方式0、方式1、方式2、方式3时的 定时初值。
M1M0=10, C/T =0, GATE=0 所以: TMOD=10H
(3)程序清单: ORG 0000H AJMP MAIN ORG 001BH AJMP TIMER1 ORG 1000H
MAIN: MOV TMOD,#10H MOV TH1,#0FFH MOV TL1, #A1H SETB EA
因此, 定时器/计数器是一种可编程部件。
编程:在定时器/计数器开始工作之前,CPU必须将一些命令 (称为控制字)写入定时器/计数器,决定T0、T1的工作方 式。
将控制字写入定时器/计数器的过程叫定时器/计数 器的初始化。
初始化内容: 规定T0、T1的工作方式; 将工作方式控制字写入方式寄存器 规定T0、T1的工作状态; 将工作状态控制字写入控制寄存器 赋定时/计数初值。
M——计数器的模值; T0——定时器需要预置的初值。 若设初值T0=0,则定时器定时时间为最大。若设单片机系 统主频为12MHz,则各种工作方式定时器的最大定时时间为: 工作方式0: Tmax=213×1s=8.192ms 工作方式1: Tmax=216×1s=65.536ms 工作方式2和3:Tmax=28×1s=0.256ms
定时器计数器的功能:定时和计数。 1.计数功能
计数:对外部事件进行计数。 外部事件的发生以输入脉冲表示,因此计数功能的实质 就是对外来脉冲进行计数。 计数输入端:T0(P3.4)和T1(P3.5)。 外部输入的脉冲在负跳变时有效,进行计数器加1(加法 计数)。
定时计数器-PPT精品
★用于定时工作方式时,定时时间为: t=(216一T0初值) ×时钟周期×12
★用于计数工作方式时,计数长度为216= 65536(个外部脉冲)
3.模式2
感谢您的关注
1. 工作模式寄存器TMOD(89H)
TMOD用于控制T0和T1的操作模式。其各 位的定义格式如下:
TMOD
定时器T1
D7 D6 D5 D4
定时器T0
D3 D2 D1 D0
(89H) GATE C/T M1 M0 GATE C/T M1 M0
1.1 M1 M0 工作模式选择位
共有四种工作模式
M1 M0 工作方式 功能描述
程序如下:
MOV MOV MOV JB SETB JNB JB CLR
TMOD,#90H TH1, #00H TL1, #00H P3.3, $ TR1 P3.3, $
P3.3, $ TR1
;定时器T1模式1、定时 ;设定初值
; ;等待INT1变低 ;启动T1 ; 等待INT1变高 ;开始计数,等待变低 ; 停止计数
1.模式0
★模式0是选择定时器(T0或T1)高8位加低5 位的—个13位定时器/计数器。
★在这种模式下,16寄存器(TH0和TL0)只 用13位,其中TL0的高3位末用,其余位 占整个13位的低5位,TH0占高8位。
★当TL0的低5位溢出时向TH0进位而TH0 溢出时向中断标志位TF0进位(硬件置位 TF0),并申请中断。
2. 控制寄存器TCON(88H)
TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
6-03 定时器计数器的四种工作方式
定时器/计数器的 四种工作方式
1
定时器/计数器的4种工作方式
- 4种工作方式一览
M1 M0 00 01 10 11
工作方式说明 方式0,为13位定时器/计数器 方式1,为16位定时器/计数器 方式2,常数自动重新装载的8位定时器/计数器 方式3,仅适用于T0,此时T0分成两个8位计数器,T1停止计数
2
定时器/计数器的4种工作方式
- 方式0
方式0等效逻辑结构框图(以T1)为例
TL1 (5位)
TH1 (8位)
TF1 (标志)
有缘学习更多+谓ygd3076或关注桃报:奉献教育(店铺) 3
定时器/计数器的4种工作方式
- 方式1
方式1等效逻辑结构框图(以T1为例)
TL1 (8位)
TH1 (8位)
TF1 (标志)
4
定时器/计数器的4种工作方式
- 方式2
方式2等效逻辑结构框图
方式0、方式1存在用指令反复装入计数初值的问题。这不 仅影响定时精度,也给程序设计带来麻烦。 方式2很好的解决了上述问题。计数溢出后会自动重载。
5
定时器/计数器的4种工作方式
- 方式2
该方式简化定时编程,简化定时初值 的计算方法,可相当精确地确定定时 时间。
方式2工作过程
有缘学习更多+谓ygd3076或关注桃报:奉献教育(店铺) 6
定时器/计数器的4种工作方式
- 方式3概述
方式3下,T0分为两个独立的8位计数器TL0和TH0 AT89S51资源有限,方式3为增加一个8位定时器/计数器而设 方式3只适用于T0,T1不能工作在方式3 一般情况下,当T1用作串行口的波特率Байду номын сангаас生器时,T0才工作在方式3
定时器的4中工作方式
51单片机内部有两个16位可编程的定时器/计数器,即定时器0和定时器1。他们既有定时功能又有计数功能,通过设置与他们相关的特殊功能寄存器(TMOD、TCON)可以选择启动定时器功能或计数器功能。
定时器/计数器实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
定时器
TMOD是定时器/计数器的工作方式寄存器,用来确定工作方式和功能
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1 = P1^0;
sbit led2 = P1^1;
uint num1,num2;
void main()
{
TMOD = 0x03;//设置定时器0为工作方式3
num++;
}
方式
/*=========================================
实验名称:定时器方式2应用
程序说明:定时器0方式2的具体用法
实验平台:AT89C52单片机protues仿真
日期:2013-08-09
-------------------------------------------
while(1)//等待中断发生
{
if(num ==200)//计数200次,1s时间到
{
num = 0;//num清零,重新计时
led1 = ~led1;//控制LED亮灭
}
}
}
void timer0() interrupt 1
{
TH0 = (8192 - 4607)/32;//重置初值
《定时计数器及应用》课件
物联网与智能化
随着物联网和智能化技术的发展,定时计数器将更加智能化,能 够与其他设备进行更紧密的集成和协同工作。
定制化与专业化
未来定时计数器将更加定制化和专业化,针对不同领域和应用场景 ,会有更多具有特定功能的定时计数器出现。
节能环保
随着环保意识的提高,未来定时计数器将更加注重节能和环保设计 ,以降低能耗和减少对环境的影响。
专用芯片实现
使用专用的定时计数器芯片,通 过编程配置其工作模式和参数, 实现定时计数功能。
微控制器实现
利用微控制器的定时器/计数器模 块,编写相应的程序,实现定时 计数功能。
基于软件的实现方式
多线程实现
利用操作系统的多线程机制,创建定 时任务线程,通过线程调度实现定时 计数。
延时函数实现
利用编程语言提供的延时函数,如 sleep()或delay()函数,实现简单的定 时计数。
硬件与软件的结合实现方式
嵌入式系统实现
结合微控制器和软件编程,利用微控制器的硬件定时器与软 件程序协同工作,实现更为精确和灵活的定时计数。
结合硬件定时器和软件调度
利用硬件定时器触发中断,在中断服务程序中进行计数,同 时结合操作系统的软件调度,实现高精度、高可靠性的定时 计数。
04 定时计数器的优缺点
05 定时计数器的发展趋势
定时计数器的发展历程
早期阶段
定时计数器最初是为了满 足工业控制和测量需求而 设计的,主要用于简单的 计时和计数功能。
技术发展
随着电子技术和微处理器 技术的进步,定时计数器 的功能逐渐增强,精度和 可靠性得到提高。
智能化
现代定时计数器已经具备 了智能化特点,能够与其 他设备进行通信和控制, 实现更复杂的任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)计算初值 ) T0工作在外部事件计数方式,当计数到 8时,再加 工作在外部事件计数方式, 工作在外部事件计数方式 当计数到2 1计数器就会溢出。设计数初值为 ,当再出现一次 计数器就会溢出。 计数器就会溢出 设计数初值为X, 外部事件时,计数器溢出。 外部事件时,计数器溢出。 则: X+1=28 X= 28 -1=11111111B=0FFH T0工作在定时工作方式,设晶振频率为 工作在定时工作方式, 工作在定时工作方式 设晶振频率为6MHz, , 500µs相当于 相当于250个机器周期。因此,初值 为 个机器周期。 相当于 个机器周期 因此,初值X为 (28-X)×2µs=500µs × X=6=06H
的工作模式0在 例2:利用 的工作模式 在P1.0引脚输出周期为 :利用T0的工作模式 引脚输出周期为 2ms的方波。设单片机晶振频率 的方波。 的方波 设单片机晶振频率fosc=12MHz。 。 分析:要在P1.0引脚输出周期为 引脚输出周期为2ms的方波,只要使 的方波, 分析:要在 引脚输出周期为 的方波 P1.0每隔 每隔1ms取反一次即可。 取反一次即可。 每隔 取反一次即可 (1)选择工作模式 ) T0的模式字为 的模式字为TMOD=00H,即 的模式字为 , M1M0=00,C/T=0,GATE=0,其余位为 。 , , ,其余位为0。 (2)计算1ms定时时 的初值 )计算 定时时T0的初值 定时时 (213-X)×1/12 × 10-6×12=1×10-3 s × × X=7192D=11100000 11000B T0的低 位:11000B=18H即 (TL0)=18H 的低5位 的低 即 T0的高 位:11100000B=E0H即 (TH0)=E0H 的高8位 的高 即
三、模式 3的应用举例 的应用举例 例1:设某用户系统已使用了两个外部中断源,并 :设某用户系统已使用了两个外部中断源, 置定时器T1工作在模式 工作在模式2, 置定时器 工作在模式 ,作串行口波特率发生器 现要求再增加一个外部中断源,并由P1.0引脚 用。现要求再增加一个外部中断源,并由 引脚 输出一个5kHz的方波。fosc=12MHz. 的方波。 输出一个 的方波
CTC0: MOV TL0,#18H MOV TH0,#0E0H CPL P1.0 RETI
6.3.2 模式 及其应用 模式1及其应用 一、模式 1 的逻辑电路结构
二、模式 1 的逻辑电路结构 方式1的计数位数是 的计数位数是16位 作为低8位 方式 的计数位数是 位,由TL0作为低 位、TH0 作为低 作为高8位 组成了16位加 位加1计数器 作为高 位,组成了 位加 计数器 。 初值)× 定时时间: 初值 振荡周期× 定时时间:t=(216-T0初值 ×振荡周期×12 计数范围: ~ 计数范围:1~65536(216) ( 三、模式 1 的应用举例 产生一个50Hz的方波,由 P1.1输 的方波, 例1:用定时器 产生一个 :用定时器T1产生一个 的方波 输 使用程序查询方式, 出,使用程序查询方式,fosc=6MHz。 。 方波周期T=1/50=0.02s =20ms ∵方波周期 定时10ms ∴用T1定时 定时 计数初值X为 计数初值 为:X=216-12×10×1000/12 × × =65536-10000=55536=D8F0H -
MOV TMOD,#10H SETB TR1 LOOP: MOV TL1,#0D8H : MOV TH1,#0F0H JNB TF1,$ , CLR TF1 CPL P1.1 SJMP LOOP
为模式1 ;设置T1为模式 设置 为模式 ;启动定时 ;送初值 ;查询定时时间到否 产生溢出, ;产生溢出,清标志位 ;取反 ;重复循环
三、模式 2 的应用举例 引脚上的电平发生负跳变时, 例1:当P3.4引脚上的电平发生负跳变时, 从P1.0输 : 引脚上的电平发生负跳变时 输 出一个500µs的同步脉冲。请编程序实现该功能。查 的同步脉冲。 出一个 的同步脉冲 请编程序实现该功能。 询方式,fosc=6MHz。 询方式, 。 :(1) 解:( )模式选择 选T0为模式 ,外部事件计数方式。 为模式2,外部事件计数方式。 为模式 引脚上的电平发生负跳变时, 计数器加 计数器加1, 当P3.4引脚上的电平发生负跳变时,T0计数器加 , 引脚上的电平发生负跳变时 溢出标志TF0置1;然后改变 为500µs定时工作方式, 定时工作方式, 溢出标志 置 ;然后改变T0为 定时工作方式 并使P1.0输出由 变为 。T0定时到产生溢出,使P1.0 输出由1变为 定时到产生溢出, 并使 输出由 变为0。 定时到产生溢出 输出恢复高电平, 又恢复外部事件计数方式 又恢复外部事件计数方式。 输出恢复高电平,T0又恢复外部事件计数方式。
6.3.4 模式 及其应用 模式3及其应用 一、模式 3 的逻辑电路结构
二、模式 3 的逻辑电路结构 T0设置为模式 ,TL0和TH0被分成两个相互独立的 设置为模式3, 设置为模式 和 被分成两个相互独立的 8位计数器。TL0用原 的各控制位、引脚和中断 位计数器。 用原T0的各控制位 位计数器 用原 的各控制位、 源,即C/T,GATE,TR0,TF0,T0(P3.4)引脚, , , , , ( )引脚, INT0(P3.2)引脚。T0可构成 个定时器或1个计数 ( )引脚。 可构成2个定时器或 个计数 可构成 个定时器或 器和1个定时器 个定时器。 器和 个定时器。 方式3只适用于定时器 计数器T0,定时器T1方式 只适用于定时器/计数器 方式3 方式3只适用于定时器/计数器T0,定时器T1方式3 时相当于TR1=0,停止计数。 时相当于 ,停止计数。 T0工作在模式 时,T1仍可设置为方式 ~2 。由于 工作在模式3时 仍可设置为方式0 工作在模式 仍可设置为方式 TR1和TF1被定时器 占用,当计数器溢出时,只 被定时器T0占用 和 被定时器 占用,当计数器溢出时, 能将输出送入串行口或用于不需要中断的场合。 能将输出送入串行口或用于不需要中断的场合。一 般作波特率发生器。 般作波特率发生器。
(1)工作模式 ) 可设置T0工作在模式 计数器方式, 工作在模式3计数器方式 可设置 工作在模式 计数器方式,把T0的引脚 的引脚 作附加的外部中断输入端, 的计数初值为FFH, 作附加的外部中断输入端,TL0的计数初值为 的计数初值为 , 当检测到T0引脚电平出现由 引脚电平出现由1至 的负跳变时 的负跳变时, 当检测到 引脚电平出现由 至0的负跳变时,TL0产 产 生溢出,申请中断。T0模式 下,TL0作计数用,而 生溢出,申请中断。 模式3下 作计数用, 模式 作计数用 TH0用作 位的定时器,定时控制 用作8位的定时器 引脚输出5kHz 用作 位的定时器,定时控制P1.0引脚输出 引脚输出 的方波信号。 的方波信号。 (2)计算初值 ) TL0的计数初值为 的计数初值为FFH。 的计数初值为 。 P1.0方波周期 方波周期T=1/(5kHz)=0.2ms=200µs 方波周期 作定时100µs时, 用TH0作定时 作定时 时 X=256-100 ×12/12=156
为模式2, ;设置T0为模式 计数方式 设置 为模式 ;T0计数器初值 计数器初值 ;启动T0计数 启动 计数 查询T0溢出标志 溢出标志, ;查询 溢出标志, ;停止计数 为模式2, ;T0为模式 ,定时方式 为模式 送初值,定时500µs ;送初值,定时 ; P1.0清0 清 启动定时500µs ;启动定时 查询T0溢出标志 溢出标志, ;查询 溢出标志, 等待中断, ;等待中断,虚拟主程序 ; P1.0置1 置 ;停止计数
二、模式 0 的逻辑电路结构 方式0为 位计数 位计数, 的低5位 位未用) 方式 为13位计数,由TL0的低 位(高3位未用)和 的低 位未用 TH0的8位组成。TL0的低 位溢出时向 位组成。 的低5位溢出时向 进位, 的 位组成 的低 位溢出时向TH0进位, 进位 TH0溢出时,置位 溢出时, 中的TF0标志,向CPU发 标志, 溢出时 置位TCON中的 中的 标志 发 出中断请求。 出中断请求。 计数初值)×振荡周期× 定时时间: 定时时间:t=(213-计数初值 ×振荡周期×12 计数范围: ~ 计数范围:1~8192(213) ( 控制与门的开启, 当GATE=0时,仅由 时 仅由TR0控制与门的开启,与门输出 控制与门的开启 1时,控制开关接通,计数开始;当GATE=1时,控 时 控制开关接通,计数开始; 时 制与门的开启由外中断引脚信号和TR0共同控制。当 共同控制。 制与门的开启由外中断引脚信号和 共同控制 TR0=1时,外中断引脚信号引脚的高电平启动计数, 时 外中断引脚信号引脚的高电平启动计数, 外中断引脚信号引脚的低电平停止计数。 外中断引脚信号引脚的低电平停止计数。这种方式常 用来测量外中断引脚上正脉冲的宽度。 用来测量外中断引脚上正脉冲的宽度。
6. 3 定时器计数器的四种模式及其应用
6.3.1 模式 及其应用 模式0及其应用 一、模式 0 的逻辑电路结构
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 TH0 8位 TL0 5位 &
≥1
TMOD T0引脚 1 1 0 0 0 M0 M1 C/T 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
6.3.3 模式 及其应用 模式2及其应用 一、模式 2 的逻辑电路结构
二、模式 2 的逻辑电路结构 方式2为自动重装初值的 位计数方式 方式 为自动重装初值的8位计数方式。TL0计数溢 为自动重装初值的 位计数方式。 计数溢 出时,不仅使溢出中断标志位TF0置1,而且还自动 出时,不仅使溢出中断标志位 置 , 中的内容重新装载到TL0中。TL0用作 位计 用作8位计 把TH0中的内容重新装载到 中的内容重新装载到 中 用作 数器,TH0用以保存初值。 数器, 用以保存初值。 用以保存初值 定时时间:t=(28-TH0初值 ×振荡周期×12 初值)× 定时时间: 初值 振荡周期× 计数范围: ~ 计数范围:1~256(28) ( 该模式可省去软件中重装常数的语句, 该模式可省去软件中重装常数的语句,并可产生相 当精确的定时时间,适合于作串行口波特率发生器。 当精确的定时时间,适合于作串行口波特率发生器。