第6章 定时计数器控制

合集下载

单片机原理及应用 第06章定时计数器

单片机原理及应用  第06章定时计数器

20
6.5 定时器/计数器的编程
初始化
1 根据要求给方式寄存器TMOD送一个方式控制 字,以设定定时器的工作方式; 2 根据需要给TH和TL选送初值,以确定需要的 定时时间或计数的初值; 3 根据需要给中断允许寄存器IE送中断控制字, 以开放相应的中断和设定中断优先级;
也可用查询方式来响应定时器。
JBC TF1,RP1 SJMP DEL2
30
6.6.4 长定时时间的产生
例 假设系统时钟为6MHz,编写定时器T0产生 1秒定时的程序。 (1)T0工作方式的确定 定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出: 方式0最长可定时16.384ms;
方式1最长可定时131.072ms; 方式2最长可定时512μs。 选方式1,每隔100ms中断一次,中断10次为1s。
8
6.3 定时/计数器的4种工作方式 方式0、方式1(13位、16位定时计数方式)
T1工作于方式0的等效框图(M1M0=00、01)
GATE=0、A=1、TR1=1 GATE=1、INT1=1、TR1=1。注意定时器初值与定时时间的不同
9
6.3.1 方式0、方式1的说明 定时/计数器T1工作在方式0时,为13位的计数器,由TL1 的低5位和TH1的8位所构成。TL1低5位溢出向TH1进 位,TH1计数溢出置位TCON中的溢出标志位TF1。 GATE位的状态决定定时/计数器运行控制取决于TR1 一个条件还是TR1和INT1引脚这两个条件。 当GATE=0时,A点电位恒为1,则只要TR1被置为1,B 点电位即为1,定时/计数器被控制为允许计数(定时/计 数器的计数控制仅由TR1的状态确定,TR1=1计数, TR1=0停止计数)。 当GATE=1时,B点电位由INT1输入的电平和TR1的状 态确定,当TR1=1,且INT1=1时,B点电平才为1,才 允许定时器/计数器计数(计数控制由TR1和INT1二个条 件控制)。 方式1时,TL1的8位都参与计数,因而属于16位 定时/计数器。其控制方式,等效电路与方式0完全相 10 同。

单片机第六章定时器

单片机第六章定时器
计数溢出时,TFx置位。如果中断允许,CPU响应中 断并转入中断服务程序,由内部硬件清TFx。TFx也可以 由程序查询和清零。
这种方式下,计数寄存器由13位组成,即THx高八位(作计数器)
和TLx的低5位构成。TLx的高3位未用。
计数时,TLx的低5位溢出后向THx进位,THx溢出后 将TFx置位,并向CPU申请中断。
用软件控制,置 l时,启动 T1;清0时,停止 T1。
TF0(TCON.5)——T0的溢出标志。
TR0(TCON.4)——T0的运行控制位。
用软件控制,置1时,启动T0;清 0时,停止 T0。
• IE1(TCON.3)——外部中断1中断请求标志位。
• IE0(TCON.1)——外部中断0中断请求标志位。
器之外,还可用作串行接口的波特率发生器。
6.2
定时器/计数器T0、T1
T0、T1 的内部结构简图示于图6-1中。从图中 可以看出,T0、T1由以下几部分组成:
• 计数器TH0、TL0和TH1、TL1;


特殊功能寄存器TMOD、TCON;
时钟分频器;

输入引脚T0、T1。
6.2.1 与定时器/计数器T0、T1有关的 特殊功能寄存器
⑵定时器/计数器T1
T0方式3时,T1可以工作在方式0、1、2三种方式 T1的结构如图6–6所示。 由于T0占用了原来T1的启动位TR1和溢出标志TF1, 所以此时T1溢出时不能置位溢出标志,不能申请中断, 其溢出信号送给串行口,此时T1作为波特率发生器。
T1的启停由写入方式字控制,当写入方式0/1/2 时,T1立即启动,写入方式3 时,立即停止工作。
分析:设置T0工作在方式2,计数功能,每记满100个外 部脉冲,从P1.0输出一个低电平脉冲信号(简化的打包 操作)。

第6章AT89C51定时器计数器

第6章AT89C51定时器计数器
用12MHz频率的晶体 ,则可输入500KHz的外部脉冲。 输入信号的高 、低电平至少要保持一个机器周期 。如图6- 12
所示 , 图中Tcy为机器周期。
图6- 12
6.4 定时器/计数器的编程和应用 4种工作方式中 ,方式0与方式1基本相同 , 由于方式0是为兼容
MCS-48而设 ,初值计算复杂 ,在实际应用中 ,一般不用方式 0 ,而采用方式1。 6.4. 1 方式1应用 例6- 1 假设系统时钟频率采用6MHz ,要在P1.0上输出一个周期 为2ms 的方波 ,如图6- 13所示。
M1 、M0=01 , 16位的计数器。
图6-5 6.2.3 方式2 计数满后自动装入计数初值。
M1 、M0= 10 ,等效框图如下:
图6-6
TLX作为常数缓冲器 , 当TLX计数溢出时 ,在置“ 1 ”溢出标志 TFX的同时 ,还自动的将THX中的初值送至TLX ,使TLX从初 值开始重新计数。
定时器/计数器的方式2工作过程如图6-7 (X=0, 1) 。
图6-7 省去用户软件中重装初值的程序 ,来精确定时。
6.2.4 方式3 增加一个附加的8位定时器/计数器 , 从而具有3个定时器/计数
器。
只适用于定时器/计数器T0 。T1不能工作在方式3 。 T1方式3时相当于TR1=0 ,停止计数(此时T1可用来作串行口
图6-8( a)
图6-8(b)
2. T0工作在方式3下T1的各种工作方式 当T1用作串行口的波特率发生器时 , T0才工作在方式3 。 T0为方式3时 , T1可定为方式0 、方式1和方式2 ,用来作为串
行口的波特率发生器 , 或不需要中断的场合。 ( 1)T1工作在方式0
图6-9
(2) T1工作在方式1

第06章 MCS-51单片机定时计数器

第06章 MCS-51单片机定时计数器

10
2 8位计数初值自动重装,TL(7 ~ 0)
TH(7 ~ 0)
11
3 T0运行,而T1停止工作,8位定时/计数。
▪ 2.定时/计数器控制寄存器(TCON)

D7 D6 D5 D4 D3 D2 D1 D0
位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TR0:定时 / 计数器0运行控制位。软件置位,软件复位。与GATE有关, 分两种情况:
GATE = 0 时:若TR0 = 1,开启T0计数工作;若TR0 = 0,停止T0计 数。
GATE = 1 时:若TR0 = 1 且/INT0 = 1时,开启T0计数; 若TR0 = 1 但 /INT0 = 0,则不能开启T0计数。 若TR0 = 0, 停止T0计数。
TR1:定时 / 计数器1运行控制位。用法与TR0类似。
▪ (1)计算计数初值。欲产生周期为1000μs的等宽方波脉冲, 只需在P1.7端交替输出500μs的高低电平即可,因此定时 时间应为500μs。设计数初值为X,则有:
▪ (216-X)×1×10-6=500×10-6
▪ X=65536-500=65036=FE0CH
▪ 将X的低8位0CH写入TL1,将X的高8位FEH写入TH1。
;清TCON,定时器中断标志清

MOV TMOD,#10H
;工作方式1设定

MOV TH1,#0FEH
;计数1初值设定

MOV TL1,#0CH

MOV IE,#00H
;关中断

SETB TR1
;启动计数器1
▪ LOOP0:JBC TF1,LOOP1 ;查询是否溢出

单片机原理及其接口技术--第6章 MCS-51单片机定时器计数器

单片机原理及其接口技术--第6章 MCS-51单片机定时器计数器

单片机原理及其接口技术
T/C方式2的逻辑结构图
1
TH1/TH0
T8
T7
T6
T5
T4
T3
T2
T1
寄存器 计数器

TL1/TL0
T8
T7
T6
T5
T4
T3
T2
T1
主目录
上一页
下一页

单片机原理及其接口技术
4、方式3 M1M0=11 T0和T1有不同的工作方式
C/T0:
TH0和TL0被拆成2个独立的8位计数器。
28),向CPU申请中断,标志位TF1自动置位,若中
断是开放的,则CPU响应定时器中断。当CPU响应
中断转向中断服务程序时,由硬件自动将该位清0。
&
加1计数器 & 1
主目录
上一页
下一页


EA
ET1
单片机原理及其接口技术
2个模拟的位开关,前者决定了T/C的工作状态:当1单片机有2个特殊功能寄存器TCON和TMOD: TCON:用于控制定时器的启动与停止,中断标志。 TMOD:用于设置T/C的工作方式。
主目录
上一页
下一页


单片机原理及其接口技术
1.定时器控制寄存器TCON
88H TCON
位地址
D7
D6
D5
D4
D3
D2
D1
D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 8F 8E 8D 8C 8B 8A 89 88
过实时计算求得对应的转速。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 对于定时/计数器来说,不管是独立的定时器芯片还是单

第六章 MCS-51单片机内部定时器

第六章 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。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)

第6章 定时器及应用

第6章 定时器及应用
振荡器
12
C/T=0 C/T=1 T0 TR0 GATE INT0 1 >1 & 控制
TL0 (8位 )
TF0
中断
重新输入
TH0 (8位 )
定时器0(或定时器1)方式2时的逻辑结构图
四、方式3 (仅T0有)
振荡器 1 f 12 osc C/T=0 C/T=1 T0 控制 TR0 GATE INT0 1 f 12 osc TR1 TH0 (8位) TF1 中断 1 ≥1 & TL0 (8位) TF0 中断 ÷ 12 1 f 12 osc
注意: 当GATE=0时,TR0/TR1置1即可启动CTC。 当GATE=1时,且引脚P3.2/P3.3为高电平时,TR0/TR1置1启 动定时器。
TCON
TF1
ቤተ መጻሕፍቲ ባይዱ
TR1
TF0
TR0
IE1
IT1
IE0
IT0
② 溢出中断标志位TF0、TF1 T0/T1计满数产生溢出时,使TF0/TF1=1,引起T0/T1中断请 求,CPU响应T0/T1中断后,硬件自动将TF0/TF1清0 。 在中断屏蔽时,TF0/TF1可作查询测试用,此时只能由软件 清0。如: WAIT:JB TF0,NEXT ;检测T0是否溢出 SJMP WAIT ;未溢出,继续检测 NEXT:CLR TF0 ;溢出,TF0清0,处理溢出 … TCON中的低4位用于控制外部中断,与定时/计数器无关。 当系统复位时,TCON的所有位均清0。 3. 可预置初值的16位加1计数器TH0、TL0、 TH1、TL1
第6章 定时器及应用
6-1 6-2 6-3 6-4 定时器(CTC)概念 89C51定时器 89C51定时器的工作方式 89C51定时器的应用程序设计

第6章-MCS-51定时计数器

第6章-MCS-51定时计数器
TMOD用于设置其工作方式、选择定时或计数功能; TCON用于控制其启动、中断申请以及作为运行状态的 标志等。
1.定时/计数器工作方式寄存器TMOD TMOD为T0、T1的工作方式寄存器,主要用于控制定
时/计数器T0和T1的工作模式和4种工作方式。低4位用于 控制T0,高4位用于控制T1。
门控 位
在单片机应用中,定时和计数的需求比较多,为了使用 方便并增加单片机的功能,就把定时电路集成到芯片中,称 之为定时/计数器。目前,几乎所有的单片机都集成了可编 程定时/计数器,为单片机提供定时和计数功能。
6.1.1 定时/计数器的结构 MCS-51 单片机内部有两个16位的可编程定时/计数器,称为
定时器0(T0)和定时器1(T1),都具有定时和计数的功能,可 编程选择其作为定时器或作为计数器用。 TMOD:选择定时器/计数器T0、T1的工作模式和工作方式。 TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。
Hale Waihona Puke ⑵ 工作方式1: T0初值 =216-500s/2s=65536–250=65286=FF06H TH0=FFH;TL0=06H。
⑶ 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。
⑷ 工作方式3: T0方式3时,被拆成两个8位定时器,定时初值可分别计
定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数
6.1.2 定时/计数器的工作原理
单片机内部有两个定时/计数器T0和T1,其核心是计数器, 基本功能是加1。
对外部事件脉冲(下降沿)计数,是计数器;对片内机周 脉冲计数,是定时器。
计数器由二个8位计数器组成。

第六章定时器及应用

第六章定时器及应用
计100个机器周期数所需的时间为多少?(所接晶振为12MHz) 最大可计数多少个机器周期? 如何实现定时? 如何得到所需的定时时间? 利用溢出中断,并给出相应的计数初值
定时时间为: 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; }

第6章 定时器计数器

第6章 定时器计数器
28
期间,计数器加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所示。

第6章 计数器和定时

第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溢出兼中断申请标志

第6章定时器计数器

第6章定时器计数器
方式0
系统 时钟 ÷12 C/ T =0
计数器+1
TH TL5
TL的低5位 TFi 溢出 标志
外部引脚Ti
模式控制C/ T=1 TRi
启动 控制 工作方式选择 M1 M0=00
GATE + 外部引脚INTi
&
方式1
系统 时钟 ÷12 计数器+1
中断
TFi 溢出 标志
TL TH
外部引脚Ti 模式控制C/ T TRi & 启动 控制 工作方式选择 M1 M0=01

TF1
TR1
TF0 TR0
IE1
IT1
IE0
IT0
高4位管理定时器控制器,低4位管理外部中断

TF1:定时器1溢出标志位。当定时器1计满溢出 时,由硬件自动使TF1置1,并申请中断。


TR1:定时器1启停控制位。
GATE=0时,用软件使TR1置1即启动定时器1 ,若用软件使TR1清0则停止定时器1 GATE=1时,用软件使TR1置1的同时外部中断 INT1的引脚输入高电平才能启动定时器1。


GATE=0:用指令使TCON中的TR1置1即可启动 定时器1。 GATE=1:软件和硬件共同启动定时器,即用指 令使TCON中的TR1置1时,只有外部中断INT1引 脚输入高电平时才能启动定时器1。
(2) C/T:功能选择位 C/T=0时,以定时器方式工作。 C/T=1时,以计数器方式工作。 (3) M1、M0:方式选择位
6.2 定时器/计数器的控制
1.工作方式控制寄存器TMOD

定时器方式寄存器TMOD的作用是设置T0、T1 的工作方式。 TMOD字节地址为89H,不能位寻址

定时与应用

定时与应用

第六章 单片机的定时/计数器
例2:编写一段具有两级循环的延时程序程序。
50ms延时,设晶振频率为12MHz,则机器周期为1us。
DEL: DEL1: MOV R7,#200 MOV R6,#123 NOP DJNZ R6,$ ;1us ;1us ;1us ;2us
DJNZ R7,DEL1
RET
;2us
第六章 单片机的定时/计数器
第6章 定时器/计数器及应用
89C51系列单片机内有两个可编程的定时器/计数器T0和T1;
89C51系列中除这两个定时器外,还有一个定时器/计数器T2 一、 计算机定时方法概述 1) 软件定时
原理:软件定时靠执行一个循环程序进行时间延迟。
特点:时间精确,且不需要外加硬件电路。但要占用CPU, 增加CPU开销,
• 方式开关向上拨,输入脉冲信号是对时钟振荡周期再做12分频;
第六章 单片机的定时/计数器
说明:当设置为计数工作方式时 CPU在每个机器周期的S5P2期间采样T0和T1引脚的
输入电平,若前一个机器周期采样值为1,后一个机器周期
采样值为0,计数器的计数值加1。因此,检测一个从1到0的 负跳变需要2个机器周期,即24个振荡周期,故最高计数频 率为晶振频率fOSC的24分频。 为了确保某个给定电平在变化前至少被采样一次,要 求高电平(或低电平)保持时间至少为1个完整的机器周期。
定时器/计数器T0工作方式2的结构图
第六章 单片机的定时/计数器
注:当计数溢出后,不是像前两种工作方式那样通过软件方法,而是 由预置寄存器TH以硬件方法自动给计数器TL重新加载。变软件加载为 硬件加载。
第六章 单片机的定时/计数器
例3: 使用定时器0以工作方式2产生100 s定时,在

微机原理与单片机接口技术(第2版)李精华 第6章微处理器中断及定时计数器应用设计

微机原理与单片机接口技术(第2版)李精华 第6章微处理器中断及定时计数器应用设计
低级中断,一个正在执行的高级中断是不能被低级中断而中断的。 (4)若多个同级中断请求同时发出,则单片机按照一定的原则决定执行的顺序。51系列单片机对中
断的查询顺序是“外部中断0→定时/计数器T0→外部中断1→定时/计数器T1→串行口中断”。 (5)若程序正在执行读/写IE和IP指令,则CPU执行该指令结束后,需要再执行一条其他指令才可
处理中断源的程序称为中断处理程序。 CPU执行有关的中断处理程序称为中断处理 。而返回断点的过程称为中断返回,中断响应 和处理过程如图6-1所示。
图6-1 中断响应和处理过程
4
2.中断的处理过程
①接收中断请求。 ②查看本级中断屏蔽位,若该位为1,则本级中断源参与优先级排队。 ③中断优先级选择。 ④处理机执行完一条指令后或者这条指令已无法执行完,则立即中止现 行程序。接着,中断部件根据中断级去指定相应的主存单元,并把被中 断的指令地址和处理机当前的主要状态信息存放在此单元中。 ⑤中断部件根据中断级又指定另外的主存单元,从这些单元中取出处理 机新的状态信息和该级中断控制程序的起始地址。 ⑥执行中断控制程序和相应的中断服务程序。 ⑦执行完中断服务程序后,利用专用指令使处理机返回被中断的程序或 转向其他程序。
7.中断屏蔽
对各中断级设置相应的屏蔽位。只有屏蔽位为1时,该中断级才能参加 中断优先级排队。中断屏蔽位可由专用指令建立,因而可以灵活地调整中断 优先级。有些机器针对某些中断源也设置屏蔽位,只有当屏蔽位为1时,相 应的中断源才起作用。。
6.2 单片机中断系统概述
51系列不同型号单片机的中断源的数量是不同的(5~11个) ,本节以8051单片机的中断系统为例分析51系列单片机的中断系 统,其它各种51单片机的中断系统与之基本相同,8051单片机的 中断系统结构框图如图6-2所示。8051单片机有5个中断源,2个中 断优先级,可以实现二级中断服务程序嵌套,每个中断源可以编 程为高优先级或低优先级中断,允许或禁止向CPU请求中断。与中 断系统有关的特殊功能寄存器有中断允许控制寄存器IE、中断优 先级控制寄存器IP和中断源寄存器TCON、SCON。

MCS-51_第06章 MCS-51的定时器计数器

MCS-51_第06章 MCS-51的定时器计数器

四、 方式 3 的应用 定时器 T0 工作在方式 3 时是 2 个 8 位定时器 /计数器。 且TH0 借用了定时器 T1 的溢出中断标志TF1和运行控制位 TR1。 例 3 假设有一个用户系统中已使用了两个外部中断源, 并置定时器 T1 于方式 2, 作串行口波特率发生器用, 现要求 再增加一个外部中断源, 并由 P1.0 口输出一个 5kHz的方波 (假设晶振频率为 6 MHz(机器周期为2μs))。
注意:外部输入的计数脉冲的最高频率为振荡频率的1/24。
6.4 定时器/计数器应用举例
一、 方式 0 的应用
例 1 利用定时器输出周期为2ms的方波, 设单片机晶振频 率为 6 MHz。
选用定时器/计数器T0作定时器, 输出为P1.0引脚, 2 ms 的 方波可由间隔1ms的高低电平相间而成, 因而只要每隔1ms对 P1.0 取反一次即可得到这个方波。 定时 1 ms的初值: 因为 机器周期=12÷6 MHz= 2 μs
装入计数器的初值可由下式算得:
(216-X)×10-6=10-2 因而:X=45536=0B1E0H
MOV TMOD,#01H SETB TR0 LOOP: MOV TH0, #0B1H MOV TL0, #0E0H
LOOP1:JNB TF0, LOOP1
CLR CPL TF0 P1.0
SJMP LOOP
0
1 1
1
0 1
1
2 3
16 位定时器/计数器
自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止 工作
2. C/T 定时器方式或计数器方式选择位 若C/T=1时, 为计数器方式; C/T = 0时, 为定时器方式。 3. GATE 定时器/计数器运行门控标志位 当 GATE=1 时 , 只 有 INT0 ( 或 INT1) 引 脚 为 高 电 平 且 TR0(或TR1 )置 1 时, 相应的定时器 /计数器才被选通工作, 这时可用于测量在INTx端出现的正脉冲的宽度。若GATE=0, 则只要 TR0 (或 TR1)置 1, 定时器 /计数器就被选通, 而不管 INT0 (或 INT1)的电平是高还是低。

第6章 定时计数器

第6章  定时计数器

6.4.2 定时计数器的初始化
定时计数器的初始化编程步骤: 1)根据实际要求设置TMOD寄存器的初值; 2)根据定时时间要求或计数要求计算计数器初值,并 往THx和TLx寄存器中载入初值;
3)启动定时/计数器,即将TRX置位。
如果工作于中断方式,还需要置位EA(中断总开关) 及ETX(允许定时/计数器中断)。
ORG 0000H AJMP MAIN ORG 000BH AJMP TIMEL;TL0中断 ORG 001BH AJMP TIMEH;TH0中断
ORG 0030H MAIN:SETB P1.0 SETB P1.1 MOV TMOD,#03H MOV TL0,#9CH
6.1.2 定时/计数器的工作原理
2. 计数工作方式 设置为计数工作方式时:
★ 通过引脚T0(P3.4)、T1(P3.5)对外部脉冲信号计 数。
★ 输入脉冲信号为1至0的下降沿时,定时器加1。 在每个机器周期CPU采样T0和T1的输入电平。若 前一个机器周期采样值为高,下一个机器周期采样 值为低,则计数器加 1。
6.1.2 定时/计数器的工作原理
1. 定时工作方式 设置为定时工作方式时: ★ 计数脉冲由片内振荡器经12分频后产生。 ★ 每经过一个机器周期,定时器(T0或T1)的数 值加1直至计数满产生溢出。 如:当8051采用12MHz晶振时,每个机器周 期为1μs,计5 个机器周期即为5 μs,即定时5 μs 。
6.2.2 控制寄存器TCON(88H)
TF1 TR1 TF0 T0 请求 有/无 TR0 T0 工作 启/停 IE1 INT1 请求 有/无 IT1 IE0 IT0 T1 T1 请求 工作 有/无 启/停 INT1 INT0 INT0 方式 请求 方式 下沿/ 低 有/无 下沿/ 电平 低电平
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② TH0借用T1的中断溢出标志TF1、TR1,只能对机内机器周期脉冲计数,组成一 个8位定时器。
(2)T0方式3情况下的T1。T1由于TF1、TR1被T0的TH0占用,计数器溢出时,只 能将输出送至串行口,即用作串行口波特率发生器,但T1工作方式仍可设置为方式0、 方式1、方式2, 控制位仍可使T1工作在定时/计数器方式,如图6-6所示。
表6-1TMOD的结构和各位名称、功能(字节地址89H)
高 4 位控制 T1
高 4 位控制 T1
门控位 定时/计数方式选择 工作方式选择 门控位 定时/计数方式选择
GATE
C/T
M1
M0
GATE
C/T
工作方式选择 M1 M0
02
(1)GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就:可以启动 定时/计数器工作;GATE=1时,用软件使TR0或TR1为1,同时外部中断 或 也为高电平时,才 能启动定时/计数器工作。即此时定时器的启动条件加上了 或 为高电平这一条件。
03
03
4.工作方式3 当M1M0=11时,定时/计数器工作于方式3,但方式3仅适用于T0,T1无方式3。 (1)T0方式3。在方式3情况下,T0被拆成2个独立的8位计数器TL0、TH0,如图6-5所示。
03
① TL0使用T0原有的控制寄存器资源:TF0、TR0、GATE、 、 ,组成一个8位的定 时/计数器。
03
03
GATE位决定定时器运行口口那个值取决于TR0或TR0和INT0引脚。当门控位GATE=0时,由 于GATE信号封锁了或门,使引脚INT0信号无效,T0运行控制由TR0单独控制。当TR0=1时,接 通模拟开关,定时/计数器工作;当TR0=0,则模拟开关断开,定时/计数器停止工作 。当 GATE=1时,T0运行控制由TR0和INT0两个条件共同控制。如果TR0=1,同时INT 0=1,与门输 出为1,定时/计数器方可工作。
16位计数器,最大计数值为216=65 536。用作定时器时,若fOSC=12 MHz,则方式0
最大定时时间为8 192 μs,方式1最大定时时间为65 536 μs。
03
3.工作方式2 当M1M0=10时,定时/计数器工作于方式2,如图6-4所示。在方式2情况下,定时 /计数器为8位,能自动恢复定时/计数器初值。在方式0、方式l时,定时/计数器的初值 不能自动恢复,计满后若要恢复原来的初值,必须在程序指令中重新给TH0、TL0赋值。 但方式2与方式0、方式1不同。方式2仅用TL0计数,最大计数值为28=256。计满溢出 后,进位TF0,使溢出标志TF0=1,同时原来装在TH0中的初值自动装入TL0(TH0中 的初值允许与TL0不同)。所以,方式2既有优点,又有缺点。优点是定时初值可自动 恢复,缺点是计数范围小。因此,方式2适用于需要重复定时,而定时范围不大的应用 场合,特别适合于用作较精确的脉冲信号发生器。
01
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12 个振荡周期,即计数频率为晶振频率的1/12,12 MHz为1 μs、6 MHz为2 μs)。 计数值乘以机器周期就是定时时间。
设置为计数器模式时,外部事件计数脉冲由T0(P3.4)或T1(P3.5)引脚输入 到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高 电平输入,而下一周期又采样到一低电平输入时,则计数器加1,更新的计数值在下 一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器 周期,因此要求被采样的电平至少要维持一个机器周期,所以最高计数频率为晶振 频率的1/24。当晶振频率为12 MHz时,最高计数频率不超过1/2 MHz,即计数脉 冲的周期要大于2 μs。
CONTNTS
04
实际应用系统中如需有两个以上的外部中断源,而片内定时/计数器未使用时,可利用定时/ 计数器来扩展外部中断源。扩展方法是,将定时/计数器设置为计数器方式,计数初值设定为满 程,将待扩展的外部中断源接到定时/计数器的外部计数引脚。从该引脚输入一个下降沿信号, 计数器加1后便产生定时/计数器溢出中断。因此,可把定时/计数器的外部计数引脚作为扩展中 断源的中断输入端。
从图6-6(c)中看出,T0方式3情况下的T1方式2,因定时初值能自动恢复,用作 波特率发生器更为合适。
03
图6-6 T0方式3情况下的T1工作方式
03
在这种情况下,定时/计数器通常作为串行口的波特率发生器使用,以确定串行通信 的速率,因为已没有TF1被定时/计数器0借用了,只能把计数溢出直接送给串行口。把 定时/计数器1当作波特率发生器使用时,只需设置好工作方式,即可自动运行。如果停 止它的工作,需送入一个把它设置为方式3的方式控制字即可,这是因为定时/计数器本 身就不能工作在方式3,如果硬把它设置为方式3,自然会停止工作。
特别需要注意,TMOD不能进行位寻址,所以只能用字节指令设置定时/计数器的工 作方式。CPU复位时TMOD所有位清0,上电复位后应重新设置。
02
2.控制寄存器TCON
TCON的低4位用于控制外部中断,已在前面介绍。高4位用于控制定时/计数器的 启动与中断申请。TCON的结构、位名称、位地址和功能见表6-3。
TF0是定时/计数器的溢出状态标志,溢出时由硬件置位,TF0溢出中断被CPU响应时,转入 中断时硬件清零,TF0也可由程序查询和清“零”。
工作方式0对定时/计数器高8位和低5位的初值计算很麻烦,易出错。方式0采用13位计数器 是为了与早期的产品兼容,所以在实际应用中常由16位的方式1取代。
03
【例6-1】设定时器T0选择工作方式0,定时时间为1ms,fosc/=6MHz。试确定 T0初值,计算最大定时时间T。
CONTNTS
C/T
02
8051系列单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方 式,TCON用于控制其启动和中断申请。
1. 工作方式寄存器TMOD 工作方式寄存器TMOD用于设置定时/计数器的工作方式,高4位用于T1,低4位用于T0。 TMOD的结构和各位名称、功能见表6-1。
CONTNTS
03
8051系列单片机定时/计数器有4种工作方式,由TMOD中M1M0的状态确定。前3种工作 方式,T0 和T1除所使用的寄存器、有关控制位、标志不同外,其他操作完全相同。T1无方式 3。下面以T0为例进行分析。
1. 工作方式0 当M1M0=00时,定时/计数器工作于方式0,如图6-2所示。在方式0情况下,内部计数器 为13位。由TL0低5位和TH0 8位组成,特别需要注意的是TL0低5位计数满时不向TL0的第6位 进位,而是向TH0进位,13位计满溢出,TF0置1,最大计数值213=8 192(计数器初值为 0)。
(1)TF1:T1溢出中断请求标志。当定时/计数器T1计数溢出后,由CPU内硬件 自动置1,表示向CPU请求中断。CPU响应该中断后,片内硬件自动对其清0。TF1也 可由软件程序查询其状态或由软件置位清0。
02
(2)TF0:T0溢出中断请求标志。其意义和功能与TF1相似。 (3)TR1:定时/计数器T1 运行控制位。TR1=1,T1运行,TR1=0,T1停止。 (4)TR0:定时/计数器T0 运行控制位。TR0=1,T0运行,TR0=0,T0停止。
虽然对输入信号的占空比没有特殊要求,但是为了确保某个电平在变化之前至少被采样一 次,要求电平保持时间至少是一个完整的机器周期,又由于检测一个1至0的下跳变需要两个机 器周期,故最高计数频率为fosc/24,即晶振频率的1/24。
02
(3)M1M0:工作方式设置位。定时/计数器有4种工作方式,由M1M0进行设置。见表6-2。

T 213 12 16.384ms 6
03
2. 工作方式1 当M1M0=01时,定时/计数器工作于方式1,如图6-3所示。在方式1情况下,内部 计数器为16位。由TL0作低8位,TH0作高8位。16位计满溢出时,TF0置1。
03
方式1与方式0的区别在于方式0是13位计数器,最大计数值213=8 192;方式1是
(3) 采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修 改,此种芯片定时功能强,使用灵活。在单片机的定时/计数器不够用时,可以考虑进行扩展。 典型的可编程定时芯片如Intel 8253。
本章要点: • 定时和计数的基本概念 • 定时/计数器的结构 • 单片机定时/计数器的特点 • 定时/计数器的使用(合理选择定时/计数器工作方式,初始值的计算,初始化程序的设计) 中断服务程序 • 定时/计数器工程中运用
CONTNTS
01
1.定时/计数器的结构 图6-1所示是定时/计数器的结构原理框图。
图6-1 定时/计数器的结构原理框图
定时/计数器的实质是加1计 数器(16位),由高8位和低8 位两个寄存器组成(T0由TH0和 TL0 组 成 , T1 由 TH1 和 TL1 组 成)。TMOD是定时/计数器的 工作方式寄存器,由它确定定时 /计数器的工作方式和功能; TCON 是 定 时 / 计 数 器 的 控 制 寄 存 器 , 用 于 控 制 T0 、 T1 的 启 动 和停止以及设置溢出标志。
01
2.定时/计数器的工作原理 作为定时/计数器的加1计数器,其输入的计数脉冲有两个来源,一个是由系统的
时钟振荡器输出脉冲经12分频后送来,另一个是T0或T1引脚输入的外部脉冲源。每 来一个脉冲,计数器加1,当加到计数器为全1时,再输入一个脉冲,就使计数器回0, 且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断 允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计 数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数 器的计数值。
(2) :定时/计数模式选择位。 =0为定时模式,此时定时器计数的脉冲是由8051单片机 片内晶振器经12分频后产生的,每经过一个机器周期定时器(T0或T1)的数值加1,直至计数 器满产生溢出。例如:当8051采用6MHz晶振时,每个机器周期为2 s,计10个机器周期即为 20 s,即定时20 s。 =1为计数模式,通过引脚T0(P3.4v)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号由1至0的下降沿时,计算器的值加1.在每个机器周期,CPU采样T0和T1的输入 电平。
相关文档
最新文档