定时器计数器
定时器 计数器的工作原理

定时器计数器的工作原理
定时器计数器是一种用来计量时间间隔的设备,它的工作原理是通过内部的振荡器或外部的时钟源来提供时间基准。
在每个时间单位(如毫秒、微秒等)经过时,计数器会自动加1。
当
计数器的值达到设定的阈值时,会触发一个中断信号或者产生一个输出信号,用于控制其他设备或执行特定的操作。
计数器通常由一个或多个寄存器组成。
其中一个寄存器用于存储当前的计数值,而其他的寄存器用于存储计数器的控制信息,如计数模式、计数方向、计数起始值等。
计数器可以根据需要进行初始化,即将计数值设定为初始值。
然后,在开始计数后,计数器会按照设定的模式和方向进行自动计数。
定时器计数器可以应用于各种领域,如计时、测量、脉冲生成等。
例如,在微处理器中,定时器计数器可以用来控制程序的执行速度,生成定时中断请求。
在工业控制系统中,定时器计数器可以用于监测过程的时间延迟,控制机器的工作周期。
在电子钟表或计时器中,定时器计数器用于显示时间,并触发相应的操作。
总而言之,定时器计数器能够通过内部振荡器或外部时钟源提供的时间基准,实现精确计量时间间隔的功能。
通过定义计数的起始值、模式和方向等参数,可以灵活地应用于不同的场景中,实现定时、测量和控制等功能。
第九讲 定时器&计数器

计数寄存器
单片机内部有两个16位的定时/计数器T0和T1。 每个定时/计数器占用两个特殊功能寄存器:
T0由TH0和TL0两个8位计数器组成,字节地址分别是
8CH和8AH。
T1由TH1和TL1两个8位计数器组成,字节地址分别是 8DH和8BH。 用于存放定时或计数的初值。当计数器工作时,其值 随计数脉冲做加1变化。
微机原理与接口技术
Microcontrollers
李光 王酉
教 授 PhD, DIC, MIET 博士 PhD, MIET
杭州 • 浙江大学 • 2009
第六章 定时器/计数器
§6-1 §6-2 §6-3
定时器/计数器概述 定时器/计数器 定时器/计数器的应用
§6-1
定时器/计数器概述
T0(P3.4)、T1(P3.5)的脉冲
每输入一个脉冲,计数器“+1 实际工作时,CPU在每个机器周期的S5P2采样外部输
入引脚T0(T1),若一个机器周期的采样值为高电平, 而下一个机器周期的采样值为低电平(即检测到一个下 降沿),则计数器“+1”,完成一次计数操作。
>TM
>TM
6-2-2 定时器/计数器工作原理
§6-2 定时器/计数器
6-2-1 6-2-2 6-2-3 6-2-4
组成结构 工作原理 控制寄存器 工作方式
6-2-1 定时器/计数器组成结构
MCS51单片机内有2个独立的16位的可编 程定时器/计数器T0和T1 定时器/计数器T0、T1由以下几部分组成
计数器TH0、TL0和TH1、TL1 特殊功能寄存器TMOD、TCON 时钟分频器 内部总线 输入引脚T0、T1
单片机定时器与计数器

定时器计数器原理及应用一、知识点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,与定时器/计数器的控制无关。
定时器和计数器指

助记符格式: CP条件(计数脉冲输入端) R条件(计数器复位端) CNT N SV
操作数N为计数器TC号,取值范围为十进制数00~ 47 (CPM1A为000~127)。 操作数SV为计数器的设定值,由4位BCD码组成, 可以是变量(IR、MR、HR、OR、DM等),也可以 是常量(取值范围#0000~9999)。 CNT在程序中有两个输入条件,故在助记符格式 中专门列出。在这里CP为计数脉冲输入端,R为复 位端。
问:若定时时间为1800S又该如何?
练习:
1。当开关接通时,输出灯延时3S自动点亮; 2。当开关接通时输出灯亮,10S后灯自动 熄灭;
练习:一个开关控制3个灯:
1。当开关接通时, 3个灯依次延时5S
点亮;
2。当开关接通时3灯一起亮,依次延时2S 灯自动熄灭;
要求:两个灯交替闪烁,1号灯亮10S,熄灭5S;1号灯 亮时,2号灯灭;2号灯亮时1号灯灭;
例1:
LD TIM
0001 00 #0083 TIM00 0500
LD OUT END(01)
程序要求: 0001的接通时间大于定时器的定时时间
例2:
LD 0000 TIM 00 #0500 LD TIM00 OUT 0500 LD 0000 AND NOT TIM00 OUT 0501 END(01)
其中:操作数N为定时器TC号,取值范围为十进 制数00~47 (CPM1A为000~127) 。 操作数SV为定时器的设定值,由4位BCD码组 成,可以是变量(IR、MR、HR、OR、DM等), 也可以是常量(取值范围#0000~9999)。
第6讲 定时器与计数器

TMOD T0引脚 0 M0 1 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
工作方式2结构
定时器T0工作方式2结构
溢出 申请 中断 申请 中断 TCON TF1 TR1 TF0 TR0 溢出 TH0 8位 T0引脚 1 TL0 8位 &
≥1
四、定时计数器控制寄存器
1、工作方式控制寄存器TMOD
C/T用于选择定时或计数方式,定时计数器4种工作方式 可通过TMOD中的M1、M0进行选择。
MCS-51单片机将门控位GATE、定时计数方式选择位C/T、
工作方式选择位M1、M0组合在工作方式控制寄存器TMOD 中,TMOD是特殊功能寄存器,字节地址为89H。TMOD共8位, 低4位用于T0的工作方式选择,高4位用于T1的工作方式选择。 各位定义如下:
每个计数脉冲使加1计数器加1。(f< fosc/24 ,)
4. 加1计数器
加1计数器由特殊功能寄存器TH0与TL0组成,工作前应
先将TH0与TL0置初值Count。然后由定时或计数脉冲使加1计
数器加1,当加1计数器加到FFFFH后再加1时,发生溢出回零,
硬件自动将中断标志TF0置1,并以此向CPU发中断请求。 溢出回零后硬件要完成以下几项工作: ① 将溢出标志TF0置1。 ② 以TF0=1为标志向CPU发中断请求信号。 ③ 若CPU响应,则在响应过程中由硬件将TF0清零。并转入中断 处理程序执行定时或计数任务。
工作方式
00; 01; M1M0 = 10; 11;
加1计数器位数
13位 16位
加1计数器
TH15~8,TL4~0 TH15~8,TL7~0
方式0 方式1 方式2 方式3
定时器与计数器

第7章定时器/计数器MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1(8052提供3个,这第三个称定时器T2)。
它们既可用作定时器方式,又可用作计数器方式。
7 . 1定时器/计数器结构定时器/计数器的基本部件是两个8位的计数器(其中TH1,TL1是T1的计数器,TH0,TL0是T0的计数器)拼装而成。
在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对计算机机器周期的计数器(因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号)。
故其频率为晶振频率的1/12。
如果晶振频率为12MH Z,则定时器每接收一个输入脉冲的时间为1us。
当它用作对外部事件计数时,接相应的外部输入引脚T0(P3.4)或T1(P3.5)。
在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1(它在每个机器周期的S5P2时采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,则计数器加1)。
加1操作发生在检测到这种跳变后的一个机器周期中的S3P1,因此需要两个机器周期来识别一个从“1”到“0”的跳变,故最高计数频率为晶振频率的1/24。
这就要求输入信号的电平要在跳变后至少应在一个机器周期内保持不变,以保证在给定的电平再次变化前至少被采样一次。
定时器/计数器有四种工作方式,其工作方式的选择及控制都由两个特殊功能寄存器(TMOD和TCON)的内容来决定。
用指令改变TMOD或TCON的内容后,则在下一条指令的第一个机器周期的S1P1时起作用。
1、定时器的方式寄存器TMOD图7-1 TMOD寄存器各位定义特殊功能寄存器TMOD为定时器的方式控制寄存器,寄存器中每位的定义如图7-1所示。
高4位用于定时器1,低4位用于定时器0。
其中M1,M0用来确定所选的工作方式,如表7-1所示。
①M1 M0 定时器/计数器四种工作方式选择,见表7-1所示。
第6章 定时器计数器

期间,计数器加1。由于确认一次负跳变要花 个机器周期, 确认一次负跳变要花2个机器周期 确认一次负跳变要花 因此外部输入的计数脉冲的最高频率为系统振荡器频率的 外部输入的计数脉冲的最高频率为系统振荡器频率的 外部输入的计数脉冲的最高频率 1/24。 例如,选用6MHz频率的晶体,允许输入的脉冲频率最高为 250kHz。如果选用12MHz频率的晶体,则可输入最高频 率为500kHz的外部脉冲。 对于外部输入信号的占空比并没有什么限制,但为了确保某 占空比并没有什么限制 占空比并没有什么限制 一给定电平在变化之前能被采样一次,则这一电平至少要 至少要 保持一个机器周期。 保持一个机器周期
T 、GATE、TR0、
22
TF0 ,而TH0被固定为一个 位定时器 固定为一个8位定时器 固定为一个 位定时器(不能作为外部计数 模式),并使用定时器T1的状态控制位TR1和TF1,同时 占用定时器T1的中断请求源TF1。 2.T0工作在方式 时T1的各种工作方式 . 工作在方式 工作在方式3时 的各种工作方式 一般情况下,当T1用作串行口的波特率发生器时,T0才工 当 用作串行口的波特率发生器时 用作串行口的波特率发生器时, 才工 作在方式3。 作在方式 。T0处于工作方式3时,T1可定为方式0、方式 1和方式2,用来作为串行口的波特率发生器,或不需要中 断的场合。
18
定时器/计数器的方式 为自动恢复初值 方式2为自动恢复初值 方式 为自动恢复初值(初值自动装入)的 8位定时器/计数器 位定时器 计数器 计数器。 TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,在溢出 自动将THx中的初值送至 中的初值送至TLx, 标志TFx置“1”的同时,还自动将 自动将 中的初值送至 使TLx从初值开始重新计数。定时器/计数器的方式2工作 过程如图6-7所示。
单片机原理第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 溢出标志位.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定时器/计数器MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0(由TH0和TL0组成)和定时器T1(由TH1和TL1组成),它们既可用作定时器定时,又可用作计数器记录外部脉冲个数,其工作方式、定时时间、启动、停止等均用指令设定。
定时器/计数器的结构1.定时器/计数器的工作原理定时器/计数器T0和T1的工作方式通过八位寄存器TMOD设定,T0和T1 的启动、停止由八位寄存器TCON控制。
工作前需先装入初值,利用传送指令将初值装入加1计数器TH0和TL0或TH1和TL1,高位数装入TH0或TH1,低位数装入TL0或TL1。
当发出启动命令后,加1计数器开始加1计数,加到满值(各位全1)后,再加1就会产生溢出,系统将初值寄存器清0。
如果需要继续计数或定时,则需要重新赋计数初值。
2.定时器的方式寄存器TMOD特殊功能寄存器TMOD为定时器的方式控制寄存器。
TMOD是用来设定定时器的工作方式,其格式如下:各位功能如下:(1)GATE控制定时器的两种启动方式当GATE=0时,只要TR0或TR1置1,定时器启动。
当GATE=1时,除TR0或TR1置1外,还必须等待外部脉冲输入端(P3.3)或(P3.2)高电平到,定时器才能启动。
若外部输入低电平则定时器关闭,这样可实现由外部控制定时器的启动、停止,故该位被称为门控位。
定时器1类同。
(2)定时/计数方式选择位当该位为0时,T0或T1为定时方式;当该位为1时,T0或T1为计数方式。
(3)方式选择位M1、M0M1、M0两位可组合成4种状态,控制4种工作方式。
每种方式的功能如表5-1。
表5-1 M1、M0控制的工作方式M1 M0 工作方式说明0 00 11 01 1 0123 13位计数器16位计数器可再装入8位计数器T0分为两个8位计数器,T1停止计数3.控制及标志寄存器TCON特殊功能寄存器TCON控制定时器的启动、停止、溢出、中断等。
有些位是控制设置,有些是标志位,各位都有对应地址。
其格式如下:TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0各位功能如下:(1)TFl:定时器1溢出标志,T1溢出时由硬件置1,并申请中断,CPU响应中断后,又由硬件清0。
TF1也可由软件清0。
(2)TF0:定时器0溢出标志,功能与TFl相同。
(3)TRl:定时器1运行控制位,可由软件置1或清0来启动或停止T1。
(4)TR0:定时器0运行控制位,功能与TRl相同。
(5)IE1:外部中断l请求标志。
(6)IE0:外部中断0请求标志。
(7)IT1;外部中断1触发方式选择位。
(8)IT0:外部中断0触发方式选择位。
TCON中各位均是1有效,如利用程序把TR1或TR0置1则启动定时器,否则定时器处于关闭状态。
当T1或T0溢出时,由硬件把TF1或TF0置1,作为溢出标志。
TCON中的低4位IE1、IE0、IT1、IT0用于中断工作方式,这方面内容在讲述中断的章节中再详细讨论。
当整机复位后,TCON中的各位均为0。
工作方式MCS-51片内的定时器/计数器可以通过对TMOD寄存器中的控制位的设置来选择定时或计数方式,通过对M1、M0的设置来选择四种工作方式,下面以T0为例说明。
1. 方式0当M1、M0设置为00时,定时器选定为方式0工作。
T0在工作方式0的逻辑结构如图5-1所示。
在这种工作方式下,16位的计数器(TH0和TL0)只用了13位,构成13位定时器/计数器。
TL0的高3位未用,当TL0的低5位计满时,向TH0进位。
而TH0溢出后对中断标志位TF0置1,并申请中断,同时把计数器清零。
图5-1 T0在工作方式0的逻辑结构当GATE=0时,INT0被封锁,且仅由TR0便可控制T0的开启和关闭,即只要TCON 中的TR0为1,TL0及TH0组成的13位计数器就可以开始计数。
当GATE=1时,T0的开启与关闭取决于和TR0相与的结果,即只有当=1和TR0=1时,T0才开始工作。
这可以用来测量在端出现的脉冲宽度。
2.方式1方式1和方式0的工作方式相同,唯一的差别时TH0和TL0组成一个16位计数器。
如图5-2。
3.方式2T0在工作方式2的逻辑结构图如图5-3所示。
定时器/计数器构成一个能自动重复置初值的8位计数器。
在工作方式0、1,每次计满溢出后,计数值变为0,故还得重新装入初值。
而工作方式2可在计数器计满溢出时自动装入初值,实际是把16位的计数器拆成两个8位,TL0用作8位计数器,TH0用来保存初值。
每当TL0计满溢出时,可自动将TH0的值装入TL0中。
方式2还用作串行口波特率发生器。
4.方式3方式3对定时器T0和T1是不相同的。
若T1设置为方式3,则停止工作(其效果与TR1=0相同)。
所以方式3只适用于T0。
方式3使MCS-51具有三个定时器/计数器(增加了一个附加的8位定时器/计数器)。
当T0设置为方式3时,将使TL0和TH0成为两个相互独立的8位计数器,如图5-4。
其中,TL0使用原T0的各控制位、引脚和中断源;、GATE、TR0、和TF0;而TH0则只能作为定时器使用,但它占用T1的TR1和TFl,即T1的中断标志和运行控制位。
通常,当T1用作串行口波特率发生器时,T0才设置为工作方式3,此时,T1虽仍可定义为工作方式0、工作方式1和工作方式2,但只能用在不需中断控制的场合。
定时器初始化使用定时器时,必须先利用指令对其进行正确设置,这种设置过程称为初始化。
1.初始化主要内容(1)选择工作方式通过对方式寄存器TMOD进行设置,选择工作方式。
例如,欲设置T0为定时方式1,TMOD状态应置为:GATE M1 M0 GATE M1 M0TMOD 0 0 0 0 0 0 0 1其状态字为01H。
利用指令“MOV TMOD,#01H”,则可把TMOD设置成T0方式1状态。
同样,若设置T1为计数方式1,只需=1,M0=1,则用指令MOV TMOD,#50H 可达此目的。
注意:TMOD不能位寻址。
(2)给定时器赋初值赋初值即把初始常数装入TH0、TL0或TH1、TL1。
例 T0初值3CB0H,T1初值00FFH。
利用字节传送指令装入初值:MOV TH0,#3CHMOV TL0,#0B0HMOV TH1,#00HMOV TL1,#0FFH(3)根据需要设置中断控制字对中断允许寄存器IE和优先级寄存器IP设置,详细在中断一节介绍。
(4)启动定时器例 SETB TR0 ;启动T0SETB TR1 ;启动T1设定时器T1为方式1,初值3CB0H,若未用中断,初始化程序如下:MOV TMOD, #10HMOV TH1, #3CHMOV TL1, #0B0HSETB TR12.定时器初值设定方法定时时间和定时器工作方式、初值及时钟周期均有关系,欲设定准确时间,必须会计算定时器初值。
即使同样的时间,工作方式不同,初值则不同;时钟频率不同即使工作方式相同,初值也不同。
一般设定初值分几步考虑。
(1)根据时间长短,选择工作方式因为工作方式不同,溢出一次计数最大值不同。
设用M表示最大计数值,则各种方式计数最大值如下:方式0 M=213=8192方式1 M=216=65536方式2 M=28=256方式3 M=28=256原则上,定时时间长选用16位或13位计数器,即方式0或方式1。
若时间短选8位计数器即方式2和方式3,如果需要自动装入初值,只能选择方式2。
(2)定时初值计算设初值为X,最大计数值为M。
初值X与机器周期TM、定时时间T的关系如下:(M-X)TM=T其中,TM=12个时钟周期=12/ fosc,X=M-T/TM由以上可以看出,计数次数为(M-X),初值越大,达到满值所需计数次数越小,若时钟频率一定,定时越短。
而且时钟频率越大,时钟周期越短,机器周期越小,计数器加1一次时间越短。
因为 TM=12/fosc所以当fosc=6MHZ时, TM=2μs当fosc=12MHZ时, TM=1μs例:设采用定时器T1,方式1,定时50ms,计算定时初值。
已知晶振频率fosc =12MHZ解:fosc=12MHZ TM=1μs定时方式1时 M=216=65536所以 X=M-T/TM=65536-50000/1=15536=3CB0H这样只要把定时器T1装入初值3CB0H,定时器计满溢出一次的时间就是50ms。
若需要继续定时,应再装入初值。
溢出信号使TCON寄存器中的溢出标志位TF1置1,称硬件置位。
应用程序设计例编写用定时器延时50ms的子程序。
MOV TMOD, #01H ;T0为方式1,送方式字MOV TH0, #3CH ;送初值高字节MOV TL0, #0B0H ;送初值低字节SETB TR0 ;启动T0LP: JBC TF0 LP1 ;判断溢出标志TF0是否等于1,是就转LP1SJMP LP ;继续查询50ms到否LP1: MOV TH0, #3CH ;重新赋初值MOV TL0, #0B0HSJMP LP ;返回LP,继续查询下一次。