第5章2单片机的定时器计数器

合集下载

单片机 第五章2 单片机的定时器计数器

单片机 第五章2 单片机的定时器计数器

若晶振频率为6MHz,1个机器周期为1/6 x 10-6 x12=2μs 则最小定时时间为:[213 –(213 -1)]x2μs=2μs 最大定时时间为:[213 –0] x2μs=16384μs =16.384ms
2、 方式1 (T1,T0) 当M1M0两位为 01时,定时 /计数器被选为工作方式 1,16位计数器,其逻辑结构 如图 所示。
8FH TCON TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0
TF1(TCON.7, 8FH位)----定时器T1中断请求溢出标志位。 TF0(TCON.5, 8DH位)----定时器T0中断请求溢出标志位。 TR1(TCON.6, 8EH位)----T1运行控制位。 0:关闭T1;1:启动T1运行。只由软件置位或清零。 TR0(TCON.4, 8CH位)----T0运行控制位。 0:关闭T0;1:启动T0运行。只由软件置位或清零。
1、 方式0 (T1,T0)
当 M1M0两位为 00时,定时 /计数器被选为工作方式 0, 13位计数器,其逻辑结 构如图所示。
振荡器 ÷12 C/ T = 0 TL0 低5位 C/ T = 1 控制 T0 端 TR0 GATE INT0 端 TH0 高8 位 TF0 中断
+
在方式0下,计数工作方式时,计数值的范围是: 1~8192(213 ) 定时工作方式时,定时时间的计算公式为: (213一计数初值)×晶振周期×12 或(213一计数初值)×机器周期
例4:用定时器l 以工作方式2计数,每计100次进行累计器加1操作.
(1)计算计数初值. 28—100=156D=9CH TH1=9CH,TL1=9CH TMOD寄存器初始化:MlM0=10,C/T=1,GATE=0 因此 TMOD=60H (2)程序设计序设计

单片机定时器与计数器

单片机定时器与计数器

定时器计数器原理及应用一、知识点1、定时器/计数器的结构2、定时器和计数器两种工作模式3、工作方式控制寄存器TMOD4、定时器/计数器控制寄存器TCON5、定时器/计数器的4种工作方式方式0:13位计数器方式1:16位计数器方式2:8位可自动重装初值方式方式3只适用于T0,T1不能工作在方式36、定时器/计数器的初始化及编程实现(1)设置TMOD寄存器(2)计算定时器T0的计数初值X(3)设置IE寄存器(4)启动和停止定时器7、定时器的单次最大定时时间:2M*12/晶振频率9、定时器应用(方式1、2;编程:中断方式、查询方式)10、计数器应用(方式1、2;编程:中断方式、查询方式)二、复习题(一)判断题1、在MCS-51单片机内部结构中,TMOD为模式控制寄存器,主要用来控制定时器的启动与停止。

(F)2、在MCS-51单片机内部结构中,TCON为控制寄存器,主要用来控制定时器的启动与停止。

(T)3、MCS-51单片机的两个定时器的均有两种工作方式,即定时和计数工作方式。

(T)4、MCS-51单片机的TMOD模式控制寄存器不能进行位寻址,只能用字节传送指令设置定时器的工作方式及操作模式。

(T)5、定时器/计数器T1于定时模式,工作于方式2,则工作方式字为20H。

(T)6、定时器/计数器T1于计数模式,工作于方式1,则工作方式字为50H。

(T)7、单片机8051的定时/计数器是否工作可以,通过外部中断进行控制。

(T)8、定时/计数器工作于定时方式时,是通过8051片内振荡器输出经12分频后的脉冲进行计数,直至溢出为止。

(T)9、定时/计数器工作于计数方式时,是通过8051的P3.4和P3.5对外部脉冲进行计数,当遇到脉冲下降沿时计数一次。

(T)10、定时/计数器在工作时需要消耗CPU的时间。

(F)11、定时/计数器在使用前和溢出后,必须对其赋初值才能正常工作。

(F)12、特殊功能寄存器SCON,与定时器/计数器的控制无关。

第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章定时计数器 (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构成。 ★每个定时器都可由软件设置为定时工作方式或 计数工作方式。

《单片机原理及应用》第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的初值

单片机定时器与计数器的工作原理及应用

单片机定时器与计数器的工作原理及应用

单片机定时器与计数器的工作原理及应用摘要:单片机作为现代电子设备中广泛采用的一种集成电路,其内部包含了丰富的功能模块,其中定时器和计数器被广泛应用于各种领域。

本文将介绍单片机定时器和计数器的工作原理及应用,包括定时器的基本原理、工作模式和参数配置,以及计数器的工作原理和常见应用场景。

希望通过本文的阐述,读者能够深入了解单片机定时器和计数器的基本原理和应用,为电子系统设计提供参考。

引言:单片机作为嵌入式系统中的核心部件,承担着控制和处理各种信号的重要任务。

定时器和计数器作为单片机的重要功能模块,为实现各种实时控制任务提供了有效的工具。

定时器可以生成一定时间间隔的定时信号,而计数器则可以对外部事件的频率进行计数,实现时间测量和计数控制等功能。

一、定时器的工作原理单片机中的定时器通常为计数器加上一定逻辑控制电路构成。

定时器的基本工作原理是通过控制计数器的计数速度和计数值来实现不同时间间隔的输出信号。

当定时器触发时,计数器开始计数,当计数值达到预设值时,定时器产生一个输出信号,然后重新开始计数。

定时器通常由以下几个部分组成:1.计数器:定时器的核心部件是计数器,计数器可以通过内部振荡器或外部输入信号进行计数。

通常情况下,计数器是一个二进制计数器,它可以按照1、2、4、8等倍数进行计数。

2.预设值:定时器的预设值决定了定时器的时间间隔。

当计数器达到预设值时,定时器会产生一个输出脉冲。

3.控制逻辑电路:控制逻辑电路用于控制计数器的启动、停止和重置等操作。

通常情况下,控制逻辑电路由一系列的触发器和逻辑门组成。

二、定时器的工作模式定时器可以根据实际需求在不同的工作模式下运行,常见的工作模式有以下几种:1.定时工作模式:在定时工作模式下,定时器按照设定的时间间隔进行计数,并在计数值达到预设值时产生一个输出脉冲。

这种模式常用于周期性任务的触发和时间测量。

2.计数工作模式:在计数工作模式下,定时器通过外部输入信号进行计数,可以测量外部事件的频率。

单片机原理第5章定时、计数器

单片机原理第5章定时、计数器

5.2.2 控制寄存器 控制寄存器TCON
5,控制寄存器TCON初始化设置 ,控制寄存器 初始化设置
0
0 1
0
1 0 1
0
0
0
0
复位时, 的所有位被清0. 复位时,TCON的所有位被清 的所有位被清 要启动,关闭 , 要启动,关闭TI, T0,需对 ,需对TR1,TR0用 , 用 软件设置: 软件设置: SETB TRx;启动 ; CRL TRx;关闭 ; 也可以用传送指令 MOV TCON,#50H , 同时启动T0, 同时 同时启动 ,T1同时 使用电平触发方式. 使用电平触发方式.
时钟 振荡 ÷12
2,脉冲计数 , 每来1个脉冲,计 每来 个脉冲, 个脉冲 数器加1. 数器加 .
C P U
T0 TL0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
溢 出 启动 TH0 工作 方式
TCON
TMOD
中断
5.1 定时器的结构及工作原理
1,计数脉冲来源 ,
(P3.4)
INT0(INTI)=1 指令 SETB TR0(TR1) 启动定时/计数器 启动定时 计数器T0(T1) 计数器
1
5.2.2 控制寄存器 控制寄存器TCON
1,溢出标志位 TFx
0 1
TFl(TCON.7):T1溢出标志位.当T1溢出时由硬 : 溢出标志位 溢出标志位. 溢出时由硬 件自动使中断触发器TFl置1,并向 申请中断. 件自动使中断触发器 置 ,并向CPU申请中断. 申请中断 响应进入中断服务程序后, 当CPU响应进入中断服务程序后,TFl又被硬件 响应进入中断服务程序后 又被硬件 自动清0. TFl也可以用软件清 . 自动清 . 也可以用软件清0. 也可以用软件清 TF0(TCON.5):T0溢出标志位.其功能和操作同 : 溢出标志位 其功能和操作同TFl 溢出标志位.

单片机实验五-定时计数器查询方式应用

单片机实验五-定时计数器查询方式应用

实验五定时/计数器查询方式应用一、定时器工作方式0、1、2的应用(工程文件名:05定时器方式012.DSN)已知单片机晶体振荡器频率为12MHz,使用定时器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将定时器工作方式分别设置为方式0、方式1和方式2,实现上述功能。

1.1定时器工作方式0(文件名:05定时器方式0.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV TMOD,# 00 H ; 定时器0,工作方式0(13位计数值)MOV TH0,#00H ; 计数初值MOV TL0,#01HSETB TR0; 启动T0,从1开始增1计数,计满溢出LP1: JBC TF0, LP2;查询定时器0是否计满溢出,溢出转LP2处理SJMP LP1LP2: CPL P1_0 ;溢出P1.0取反,灯明暗变化MOV TH0,#00H ; 重装定时器计数初值MOV TL0,#01HSJMP LP1END1.2定时器工作方式1(文件名:05定时器方式1.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV TMOD,# 01 H ; 定时器0,工作方式1(16位)MOV TH0,#00H ; 计数初值MOV TL0,#010HSETB TR0 ; 启动T0,从16开始增1计数,计满2^16=65536溢出LP1: JBC TF0, LP2 ;查询定时器0是否计满溢出,若溢出转LP2处理SJMP LP1LP2:CPL P1_0 ; P1.0取反,灯明暗变化MOV TH0,#00H; 重新赋计数初值MOV TL0,#010HSJMP LP1END1.3定时器工作方式2(文件名:05定时器方式2.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV R1,#250MOV TMOD,# 02 H ; 定时器0,工作方式2(8位重装初值)MOV TH0,#01H ; 计数初值MOV TL0,#01HSETB TR0; 启动T0,定时器0从1开始增1计数,满2^8=256溢出LP1: JBC TF0, LP2;查询定时器值是否计满溢出,若溢出转JP2处理SJMP LP1LP2: DJNZ R1,LP1;有无溢出250次,若没有,继续查询是否溢出;若有执行下一句,改变灯的明暗CPL P1_0; 溢出250次P1.0取反,灯明暗变化SJMP LP1END二、计数器工作方式0、1、2的应用(文件名:计数器方式012.DSN)已知单片机晶体振荡器频率为12MHz,使用计数器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将计数器工作方式分别设置为方式0、方式1和方式2,实现上述功能。

单片机定时器计数器工作原理

单片机定时器计数器工作原理

单片机定时器计数器工作原理一、引言单片机作为嵌入式系统的核心部件,在工业控制、智能家居、汽车电子等领域中发挥着重要作用。

在单片机中,定时器和计数器是常用的功能模块,它们可以实现精确的定时控制和计数功能。

本文将详细介绍单片机定时器计数器的工作原理,以及其在实际应用中的作用。

二、单片机定时器和计数器概述单片机定时器和计数器是单片机内部的特殊功能模块,用于生成精确的时间延时和进行事件计数。

在单片机的内部结构中,定时器和计数器通常由定时/计数器模块和控制逻辑组成,通过寄存器配置和控制信号来实现各种定时和计数功能。

定时器和计数器通常包括以下几个重要的功能部分:1. 控制寄存器:用于配置定时器/计数器工作模式、计数模式、计数方向等参数。

2. 定时/计数寄存器:用于存储定时器/计数器的计数值,根据计数模式进行累加或递减。

3. 比较寄存器:用于存储比较值,用于与定时/计数器的计数值进行比较,从而触发相应的中断或输出信号。

定时器通常用于产生精确的时间延时,常用于生成精确的脉冲信号、PWM信号等。

而计数器则用于进行精确的事件计数,通常用于测量脉冲个数、计时等应用。

三、定时器和计数器的工作原理1. 定时器的工作原理定时器的工作原理主要分为定时/计数模式的选择、定时器计数器的递增和中断触发等几个方面。

在配置定时器工作模式时,可以选择不同的计数模式,包括定时器/计数器模式、分频器模式等。

通过配置控制寄存器和定时/计数寄存器,可以设置定时器的计数值和计数方向。

在定时器计数器的递增过程中,定时器会根据设定的计数模式和计数值进行递增,当达到比较寄存器中的比较值时,会触发相应的中断或输出信号。

这样就实现了定时器的定时操作。

2. 计数器的工作原理计数器的工作原理与定时器类似,同样涉及到计数模式的选择、计数器的递增和中断触发等几个方面。

在配置计数器工作模式时,同样可以选择不同的计数模式,通过配置控制寄存器和计数寄存器来设置计数器的计数值和计数方向。

单片机定时器计数器应用

单片机定时器计数器应用

为了获得1秒时间,T0中断需要发生200次。程序包含主函
数,T0的初始化函数和T0中断服务函数,显示语句放在中
断服务函数内,程序如下:
/******************************************************************/ #include<reg51.h> code unsigned char seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char cp,i; //声明全局变量 void timer0_isr(void) interrupt 1 // timer0中断服务函数 { TR0 = 0; //停止计数 TL0 = 0x78; // TL0重新预置 TH0 = 0xec; // TH0重新预置 TR0 = 0; //开始计数 cp++; // timer0中断1次,变量cp加1 if(cp == 200) //中断200次,时间刚好为1秒 { cp = 0; i ++; }
项目5 单片机定时器/计数器应用
5.1任务说明
任务:利用单片机内部定时器/计数器中断实现一个数码管 的秒记数,重点学习定时器/计数器的工作方式以及
其控制寄存器TMOD、TCON的功能,在程序实现
过程中掌握定时器/计数器中断的一般步骤。
5.2 单片机的定时/计数器结构
51单片机内部含有两个定时器/计数器,分别是T0和 T1,在增强型51系列单片机中,如STC89C51RC,内部出了 含有T0和T1外,还有T2定时器/计数器。定时器/计数器主 要由于精确的定时,也可用于对外部脉冲进行计数以及为

第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章 MCS-51单片单片机内部 定时器计数器

第5章  MCS-51单片单片机内部 定时器计数器

LOOP:
例:由P1.0输出方波信号,周 期为2ms,设fosc=12MHz。 (中断方式)
2ms
解:每隔1ms改变一次P1.0的输出状态,即形成方波, 用T0非门控方式1定时。 计算时间常数:X = 216 - t/T = 216 –(1/1000)/10-6 = 65536-1000 = 64536 = FC18H
3 工作模式2 • 模式2把TL0(或TL1)设置成一个可以自动重 装载的8位定时器/计数器 。 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计 数器,THx为8位初值暂存器。
复位时,TMOD所有位均置0。 确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B
定时器控制寄存器TCON除可字节寻址外,各 位还可以位寻址。
位地址 位符号 8FH TF1 8EH 8DH 8CH TR1 TF0 TR0 8BH IE1 8AH 89H 88H IT1 IE0 IT0
解得:T0初值=7096=11011101 11000B,其中将高8位 11011101 B=DDH 赋给 TH0 ,低 5 位 11000B=18H 赋 给 TL0。

方法一:
采用查询工作方式,编程如下:
ORG AJMP 0000H MAIN
LOOP:JNB TF0,$;$为当前指令指 针地址 CLR SETB CLR MOV MOV TF0 P1.0 P1.0 TH0 , #0DDH ;重装载 ;产生2µ s正脉冲
ORG AJMP ORG AJMP ORG MAIN:MOV MOV MOV SETB SETB SETB HERE:SJMP PT0INT:MOV MOV CPL RETI

第05章单片机定时计数器习题解答.

第05章单片机定时计数器习题解答.

第05章 单片机定时计数器 习题解答一、 填空题1.1. MCS-51单片机中有单片机中有 2 2 个 16 16 位的定时器位的定时器//计数器。

器。

2.2. 定时器定时器//计数器T0可以工作于方式可以工作于方式 0、1、2、3 3 。

3.3. 方式0为 13 位定时器位定时器//计数器。

计数器。

4.4. 若系统晶振频率为12MHz ,则T0工作于定时方式1时最多可以定时 65536 65536 µs。

µs。

5.5. 欲对300个外部事件计数,可以选用定时器个外部事件计数,可以选用定时器//计数器T1的模式的模式 0 0 或模或模式 1 。

6.6. TMOD 中的M1M0= 11时,定时器工作于方式时,定时器工作于方式 3 3。

7.7. 若系统晶振频率为6MHz 6MHz,则定时器可以实现的最小定时时间为,则定时器可以实现的最小定时时间为,则定时器可以实现的最小定时时间为 2 2 µs。

8.8. MCS-51单片机工作于定时状态时,计数脉冲来自单片机内部的机器周期 。

9.9. MCS-51单片机工作于计数状态时,计数脉冲来自单片机工作于计数状态时,计数脉冲来自 单片机外部事件单片机外部事件单片机外部事件 。

10.10. 当GATE=0时,时, 则当软件控制位则当软件控制位TR0TR0==1时 启动T0开始工作。

开始工作。

二、 简答题1.1.定时器定时器定时器//计数器T0和T1各有几种工作方式?简述每种工作方式的特点。

如何控制定时器/计数器的工作方式?计数器的工作方式?答:答:T0T0可以工作于方式0,1,2,3;T1可以工作于方式0,1,2方式0:是13位定时位定时//计数器,由TLX 的低5位(位(TLX TLX 的高3位未用)和THX 高8位组成。

成。

方式1:TLX 和THX 组成16位定时位定时//计数器。

计数器。

方式2:方式2为自动重装初值的8位定时位定时//计数器。

单片机中的定时器和计数器

单片机中的定时器和计数器

单片机中的定时器和计数器单片机作为一种嵌入式系统的核心部件,在各个领域都发挥着重要的作用。

其中,定时器和计数器作为单片机中常用的功能模块,被广泛应用于各种实际场景中。

本文将介绍单片机中的定时器和计数器的原理、使用方法以及在实际应用中的一些典型案例。

一、定时器的原理和使用方法定时器是单片机中常见的一个功能模块,它可以用来产生一定时间间隔的中断信号,以实现对时间的计量和控制。

定时器一般由一个计数器和一组控制寄存器组成。

具体来说,定时器根据计数器的累加值来判断时间是否到达设定的阈值,并在时间到达时产生中断信号。

在单片机中,定时器的使用方法如下:1. 设置定时器的工作模式:包括工作在定时模式还是计数模式,以及选择时钟源等。

2. 设置定时器的阈值:即需要计时的时间间隔。

3. 启动定时器:通过控制寄存器来启动定时器的运行。

4. 等待定时器中断:当定时器计数器的累加值达到设定的阈值时,会产生中断信号,可以通过中断服务函数来进行相应的处理。

二、计数器的原理和使用方法计数器是单片机中另一个常见的功能模块,它主要用于记录一个事件的发生次数。

计数器一般由一个计数寄存器和一组控制寄存器组成。

计数器可以通过外部信号的输入来触发计数,并且可以根据需要进行计数器的清零、暂停和启动操作。

在单片机中,计数器的使用方法如下:1. 设置计数器的工作模式:包括工作在计数上升沿触发模式还是计数下降沿触发模式,以及选择计数方向等。

2. 设置计数器的初始值:即计数器开始计数的初始值。

3. 启动计数器:通过控制寄存器来启动计数器的运行。

4. 根据需要进行清零、暂停和启动操作:可以通过控制寄存器来实现计数器的清零、暂停和启动操作。

三、定时器和计数器的应用案例1. 蜂鸣器定时器控制:通过定时器模块产生一定频率的方波信号,控制蜂鸣器的鸣叫时间和静默时间,实现声音的产生和控制。

2. LED呼吸灯控制:通过定时器模块和计数器模块配合使用,控制LED的亮度实现呼吸灯效果。

PIC单片机定时器

PIC单片机定时器

TMR1 L TMR1 H
0EH
16位TMR1计数寄存器低字节寄存器
0FH
16位TMR1计数寄存器高字节寄存器
T1CO N
10H
——
——
T1CKPS1
T1CKPS 0
T1OSCE N
T1 SY NC
TM R1 CS
TMR 1ON
第五章定时/计数器
5.2 定时和计数器硬件结构
5.2.2定时器/计数器TMR1的硬件结构 3 定时器/计数器TMR1模块的电路结构和原理
0:表示禁止TMR1振荡器起振, 使“非”门的输出端呈高阻状态 ; 1:表示使能TMR1发振荡器起振 。 0:表示TMR1外部输入时钟与系 统时钟保持同步; 1:表示TMR1外部输入时钟与系 统时钟不保持同步。
第五章定时/计数器
5.2 定时和计数器硬件结构
TMR1有两种工作方式:定时器方式和计数器方式,其中计数 器方式又分为同步计数器工作方式和异步计数器工作方式。 TMR1的时钟信号或触发信号共有4种获取方式: (1) 由内部系统时钟4分频后获取,即取自指令周期; (2) 从RC0/T1OSO/T1CKI引脚获取; (3) 从RC1/T1OSI/CCP2引脚获取; (4) 自带振荡器产生。
第五章定时/计数器
5.2 定时和计数器硬件结构
5.2.2定时器/计数器TMR1的硬件结构 1.定时器/计数器TMR1模块具有的特点 (4) 累加计数的信号源可选择内部系统时钟、外部触发 信号或自带时基振荡器信号; (5) 既可工作于定时器模式,又可工作于计数器模式, 还可用作实时时钟RTC; (6) 在计数器溢出时,相应的溢出中断标志自动置位, 并可产生溢出中断。
第五章定时/计数器
5.2 定时和计数器硬件结构
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CPL P1.1
MOV A,#00
SJMP LOOP
18
5.4.3 定时工作方式2
P113
M1=1 M0=0 自动装载初值8位定时/计数器。TLx为8位加1计数器,THx为8 位初值暂存器。 用于需要重复定时和计数的场合,最大计数值:256 (28) 最大定时时间(12MHZ T=1s): 256s 定时时间=( 28 -Tx初值)x 振荡周期 x 12
3
•(2)计数 •对外部脉冲信号计数(T0—P3.4/T1—P3.5)。 •下降沿出现时,计数器值加1. •在每个机器周期的S5P2拍节时对外部计数脉冲进行采样; •如果前一个机器周期采样为高电平,后一个机器周期采样 为低电平,即为一个有效的计数脉冲。 •下一个周期的S3P1期间,新的计数值装入计数器。 •最高计数频率=fosc/24,即2个机器周期。
断。 • TR0/TR1:定时器运行控制位。置1启动工作,置0停止工作。 • IE0/IE1:外部中断0(INT0)/1(INT1)请求标志。 • IT0/IT1:外部中断0/1触发方式选择位。
位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
TCON TF1 TR1 TF0 TR0 IE1 I 为把T1设定为方式0,则M1M0 = 00; • 为实现定时功能,应使C/T= 0; • 为实现T1的运行控制,则GATE = 0。 • T0不用,有关位设定为0。 • 因此TMOD寄存器应初始化为00H。 3.由TCON中的TR1位控制定时的启动和停止 • TR1 = 1启动 • TR1= 0停止。
1
5.2、 定时器/计数器的结构和功能
•以8051系列为例:2个16位可编程定时器/计数器:T0和T1.
•T0:TL0/TH0;T1:TL1/TH1
•TMOD/TCON:工作方式寄存器/控制寄存器
•1.结构
T1
T0
TH1 微
处 内部总线

器 TCON
TL1
工作 方式
TH0 TMOD
TL0
工作 方式
( 216 -计数初值)× 晶振周期×12 或( 216 -计数初值)× 机器周期 • 其时间单位与晶振周期或机器周期相同(μs)。
14
• 以中断方式完成[例6.1] 。单片机晶振频率为 6MHz,使用定时器1以工作方式1产生周期为 500μs的等宽正方波连续脉冲,并由P1.0输出。
1.计算计数初值 • TH1 = 0FFH TL1 = 83H 2.TMOD寄存器初始化 • TMOD = 10H 3.程序设计
TH0=06H,TL0=06H
T1: X=28-1 X=255D=0FFH
TH1=0FFH, TL1=0FFH
T0用于定时C/T=0 ,方式2 M1 M0=10 ,GATE=0
T1用于计数C/T=1 ,方式2 M1 M0=10 ,GATE=0
TMOD寄存器初始化: TMOD=62H
26
P3.5 P1.0
0000H MAIN 000BH T1INT
# 02H
# 0CEH
;设T0为工作方式2 ;保存计数初值
# 0CEH
;设置计数初值 ;开中断 ;定时器0允许中断 ;定时开始 ;等待中断
T1INT: CPL
P1.0
RETI
;输出方波 ;中断返回
22
• 例5.4:用定时器1以工作方式2实现计数,每计 100次进行累加器加1操作。
2
2.功能 16位的定时器/计数器的实质:加法计数器。 •(1)定时
•对机器周期进行计数,即计数脉冲来自单片机的内 部。即每个机器周期产生一个计数脉冲使得计数器 加1,直至计满溢出 。 •计数频率=fosc/12,即1个机器周期; •“定时”时间:开始计数到溢出; •预置计数法:初值越大,定时越短。
AJMP LOOP
END
12
5.4.2 工作方式1
P113
M1=0 M0=1
与方式0一样,唯一差别是16位定时/计数器,由 THx8位和TLx8位组成16位加1计数器计数。
13
• 2.定时和计数 • 当为计数工作方式时,计数值的范围是
1~65536(216) • 当为定时工作方式时,定时时间的计算公式为
5
• 2.方式寄存器 • GATE—门控位
– GATE =0 以运行控制位TR启动定时器 – GATE = l 以外中断请求信号或启动定时器
• C/T—定时方式或计数方式选择位
– C/T = 0 定时工作方式 – C/T = 1 计数工作方式
D7
D6
D5
GATE
C/T
M1
定时器T1
D4
D3
D2
D1
• 1.计算计数初值 256-100=156D=9CH 则TH1=TL1=9CH
• 2.TMOD初始化 M1M0=10,C/T=1,GATE=0 因此TMOD=60H
23
例5.4
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV IE,#00H
MOV TMOD,#60H
MOV TH1,#9CH
7
5.4 定时器/计数器的工作方式
• 5.4.1 工作方式0 • 1.电路逻辑结构
•C/T=0:定时器工作方式: •C/T=1:计数器工作方式: •下降沿有效。
•GATE=0:或门输出为1,与INTX无关; •TRx=1,接通计数器,否则断开停止计数。 •GATE=1:TRx=1,或门、与门输出仅受 INTX控制。
LOOP: JBC TF0,LOOP1 AJMP LOOP
LOOP1:CPL P1.0 AJMP LOOP END
21
(中断方式)
MAIN:
MOV MOV
LOOP: HERE:
MOV SETB SETB SETB SJMP
ORG LJMP ORG LJMP TMOD , TH0 ,
TL0 , EA ET0 TR0 $
8
• 2.定时和计数应用 • 在方式0下,当为计数工作方式时,计数值的范围是:
1~8192(213) • 当为定时工作方式时,定时时间的计算公式为:
( 213 -计数初值)× 晶振周期×12 或( 213 -计数初值)× 机器周期 其时间单位与晶振周期或机器周期相同(μs)。 • 如晶振频率为6 MHz,则最小定时时间为 [213 -(213 -1)] ×2us = 2(μs) • 最大定时时间为 ( 213 - 0 )×2 us= 16 384(μs)
19
• 例5.3 使用定时器0以工作方式2产生100μs定时,在 P1.0输出周期为200μs的连续正方波脉冲。已知晶 振频率fosc = 6MHz。
• 1.计算计数初值 • 6MHz晶振下,一个机器周期为2us,以TH0作重装
载的预置寄存器,TL0作8位计数器,假设计数初值 为X,则
(256-X )×2= 100us • 求解得
X = 206D = 11001110B = 0CEH • 把0CEH分别装入TH0和TL0中:
TH0 = 0CEH ,TL0 = 0CEH
20
例5.3 (查询方式) ORG 0000H LJMP MAIN ORG 0030H
MAIN: MOV IE,#00H MOV TMOD,#02H MOV TH0,#0CEH MOV TL0,#0CEH SETB TR0
11
例5.1
ORG 0030H
;查询方式 P112
MAIN: MOV TMOD,#00H
MOV TH1,#0FCH
MOV TL1,#03H
MOV IE,#00H
SETB TR1
LOOP: JBC TF1,LOOP1
AJMP LOOP
LOOP1:MOV TH1,#0FCH
MOV TL1,#03H
CPL P1.0
17
START: MOV A,#00 ;A赋计数初值0
MOV TMOD,#10H ;T1为方式1
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1 ;启动T1
LOOP:
JBC TF1,NEXT
SJMP LOOP
NEXT:
MOV TH1,#3CH
MOV TL1,#0B0H
INC A
CJNE A,#20,LOOP
15
MIAN:
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP TOINT
MOV
TMOD, #10H
MOV
TH1, #0FFH
MOV
TL1, #83H
SETB
EA
SETB
ET1
SETB
TR1
HERE:
SJMP
HERE
TOINT: MOV
TH1, #0FFH
MOV
TL1, #83H
CPL
P1.0
RETI
16
例5.2:利用定时器T1方式1进行定时,使P1.1端每隔1s取反一次,设 晶振频率为12MHz。 解:方式1下最大定时时间:Tmax=216×1us=65536us=65.536ms 当定时时间大于Tmax时,可设置软件计数器。 设T1定时时间为50ms,则计满20次就可。 ( 216-X)×1us=50000usX=15536=3CB0H 所以TH1=3CH,TL1=B0H 程序如下:
P3.5
P1.0
500μs
1ms
1ms
P1.1
25
P3.5 P1.0
500μs
P1.1
1ms
1ms
计算计数初值:定时器T0定时500us,使用方式2,T1用于
计数1个脉冲(每一次负跳变发生一次变化,考虑如何检测
相关文档
最新文档