第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

第6章MCS-51的定时器

第6章MCS-51的定时器

• 28×12×1/12MHz=28us=256us=0.256ms
工作方式2_补充说明
8位计数器 TL0作计数器,TH0作预置寄存器使用,计数溢出时 ,TH0中的计数初值自动装入TL0,即TL0是一个自动 恢复初值的8位计数器。 在使用时,要把计数初值同时装入TL0和TH0中。 优点是提高定时精度,减少了程序的复杂程度。
工作方式1_应用分析
定时和计数的应用 计数范围:1~216 计数计算公式:计数值=216-计数初值 机器周期(MC):=12/Fosc=12/时钟频率 定时范围:1机器周期~216机器周期 定时计算公式:定时时间=(216-定时初值)×
机器周期 如果晶振频率为6MHz ,则最大定时时间为: 216×12×1/6MHz=217us=131072us=131.072ms 如果晶振频率为12MHz ,则最大定时时间为: 216×12×1/12MHz=216us=65536us=65.536ms 工作方式1的定时计数功能切换模式,与工作方式
0完全一样;而启动定时计数器的模式,也与工作方式 0完全一样。计数量方式1更大,可完全取代方式0。
6.2.3 方式2
方式2为自动重装初值的8位计数方式。
TCON
TF1 D7
申请 中断
TR1
溢出8位计数器
1
TF0
TL0
TR0
0 &
TH1重TH装0 单元 ≥1 8位
D0
T0引脚
机器周期 1
INT0引脚
6.1.1 工作方式控制寄存器TMOD TMOD(工作方式寄存器):选择定时器/计数器T0、T1的工作 模式和工作方式,字节地址为89H,不能位寻址。
8位分为两组,高4位控制T1,低4位控制T0。 (1)GATE——门控位

第6章 555定时器

第6章 555定时器

T T1 q= 1 = T T1 + T2 0.7 R1C = 0.7 R1C + 0.7 R2 C = R1 R1 + R2
vI1 vC
C
3 6 555 2 1 5 0.01µF C1
vO
v I2
二. 石英晶体多谐振荡器
问题: 上面介绍的多谐振荡器中,由于其工作频率取决于电容C充 问题 上面介绍的多谐振荡器中,由于其工作频率取决于电容 充、放电过 程中,电压到达转换值的时间,因此稳定度不够高。 程中,电压到达转换值的时间,因此稳定度不够高。一般在对振荡器频率稳 定度要求很高的场合,都需要采取稳频措施,其中最常用的一种方法, 定度要求很高的场合,都需要采取稳频措施,其中最常用的一种方法,就是 利用石英谐振器—简称石英晶体或晶体 构成石英晶体多谐振荡器。 简称石英晶体或晶体, 利用石英谐振器 简称石英晶体或晶体,构成石英晶体多谐振荡器。 1.石英晶体的选频特性 石英晶体的选频特性
+ C - 1
5 kΩ Ω
R
vo
G
R2 (2)
+
5 kΩ Ω
S
C2
&
&
1
(7)
T
C
(1)
(三) 振荡频率的估算 三
用三要素法计算) (1)电容充电时间 1:(用三要素法计算) )电容充电时间T
vc (t ) = vc (∞) − [vc (∞) − vc (0)]e
vC (∞) − vC (0 + ) VCC − VCC T1 = τ 1 ln 3 vC (∞) − vC (T1 ) = τ 1 ln 2
G 1
(3)
vO
vI2 vO
,

第六章 STM32 定时器的使用 《基于ARM的单片机应用及实践--STM32案例式教学》课件

第六章 STM32 定时器的使用 《基于ARM的单片机应用及实践--STM32案例式教学》课件

第六章 STM32 定时器的使用
AHB预分频 /1,2,…,512
APB1预分频 /1,2,4,8,16
最大36MHz
PCLK1 至APB1外设
20个外设时钟使能位
TIM2,3,4,5,6,7 如果APB1预分频=1, 则乘1输出,否则乘2输出
6个外设时钟使能位
TIMXCLK 至TIM2~7
APB2预分频 /1,2,4,8,16
第六章 STM32 定时器的使用
PWM模式 脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器 确定频率、由TIMx_CCRx寄存器确定占空比的信号。 在TIMx_CCMRx寄存器中的OCxM位写入‘110’(PWM 模式1)或‘111’(PWM模式2),能够独立地设置每个 OCx输出通道产生一路PWM。必须设置TIMx_CCMRx 寄存器OCxPE位以使能相应的预装载寄存器, 最后要设置TIMx_CR1寄存器的ARPE位,(在向上计数 或中心对称模式中)使能自动重装载的预装载寄存器。
这个倍频器的作用:当APB1的预分频系数为1时,倍 频器不起作用,定时器的时钟频率等于APB1的频率; 当APB1的预分频系数为其它数值(即预分频系数为2、4 、8或16)时,这个倍频器起作用,定时器的时钟频率 等于APB1的频率两倍。
第六章 STM32 定时器的使用 下面举一个例子说明。假定AHB=36MHz,因为APB1 允许的最大频率为36MHz,所以APB1的预分频系数可 以取任意数值;当预分频系数=1时,APB1=36MHz, TIM2~7的时钟频率=36MHz(倍频器不起作用);
第六章 STM32 定时器的使用
3)设置TIM3_DIER允许更新中断 因为我们要使用TIM3的更新中断,所以设置DIER 的UIE位,并使能触发中断。

第六章-STM32-定时器的使用-《基于ARM的单片机应用及实践--STM32案例式教学》课件

第六章-STM32-定时器的使用-《基于ARM的单片机应用及实践--STM32案例式教学》课件

第六章 STM32 定时器的使用 通用定时器配置步骤
1)TIM3时钟使能 这里我们通过APB1ENR的第1位来设置TIM3的时钟,因为 Stm32_Clock_Init函数里面把APB1的分频设置为2了, 所以我们的TIM3时钟就是APB1时钟的2倍,等于系统时 钟(72M)。 2)设置TIM3_ARR和TIM3_PSC的值 通过这两个寄存器,设置自动重装的值及分频系数。这 两个参数加上时钟频率就决定了定时器的溢出时间。
计数器寄存器:TIMx_CNT 预分频器寄存器:TIMx_PSC 自动装载寄存器:TIMx_ARR
第六章 STM32 定时器的使用 通用寄存器时基单元 1)计数器寄存器:TIMx_CNT
16位的计数器,设定值从1~65535
第六章 STM32 定时器的使用 计数器模式 向上计数模式:计数器从0计数到设定的数值,然后 重新从0开始计数并且产生一个计数器溢出事件。
在定时器配置完了之后,因为要产生中断,必不可少的 要设置NVIC相关寄存器,以使能TIM3中断。
6)编写中断服务函数 编写定时器中断服务函数,通过该函数处理定时器 产生的相关中断。中断产生后,通过状态寄存器的 值来判断此次产生的中断属于什么类型。然后执行 相关的操作。
第六章 STM32 定时器的使用 通用寄存器时基单元
第六章 STM32 定时器的使用
2)预分频器寄存器:TIMx_PSC 预分频器可以讲计数器的时钟频率按1到65536之间的任 意值分频,它是一个16位寄存器。 这个寄存器带有缓冲区,它能够在工作时被改变。新的 预分频器参数在下一次更新事件到来时被采。
第六章 STM32 定时器的使用 预分频器寄存器在事件更新时采用
定时器的工作频率计算公式为 CK_CNT=定时器时钟/(TIMx_PSC+1) 其中CK_CNT表示定时器工作频率 TIMx_PSC表示分频系数

第六章 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。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 89C51系统复位时,TMOD的所有位被清0。
• TMOD各位的定义格式如 图6-3 所示。
• TMOD各位定义及具体的意义归纳如 图6-4所示。
15:49
单片机原理及接口技术
图6-3 工作模式寄存器TMOD的位定义
D7 D6 D5 D4 D3 D2 D1 D0 GATE C/ T M1 M0 GATE C/ T M1 M0
T0初值 = 3192 D = C78 H = 01100011 11000 B
T0的低5位:11000 B=18H 即 (TL0)=18H T0的高8位:01100011 B=63H 即 (TH0)=63H
15:49
单片机原理及接口技术
(3)采用查询方式的程序 程序清单: ORG 0000H LJMP MAIN ;初始化引导程序 ORG 0080H MAIN:MOV TMOD,#00H ;设置T0为模式0 MOV TL0,#18H ;送初值 MOV TH0,#63H SETB P1.0 SETB TR0 ;启动定时 LP: JBC TF0,NEXT ;查询定时时间到否 SJMP LP NEXT:MOV TL0,#18H ;重装计数初值 MOV TH0,#63H CPL P1.0 ;取反 SJMP LP ;重复循环 15:49
89C51定时器功能
定时工作方式或
• 每个定时器都可由软件设置为
计数工作方式。由特殊功能寄存器TMOD和TCON所
控制。
• 定时器工作不占用CPU时间,除非定时器/计数器 溢出,才能中断CPU的当前操作。 • 定时器/计数器有四种工作模式。其中模式0-2对 T0和T1是一样的,模式3对两者不同。
15:49
TH0
× × × 8位 5位 TL0
• 定时时间为:
t=(213-T0初值)×振荡周期×12
• 用于计数工作方式时,计数长度为: L=(213-T0初值)(个外部脉冲)
15:49
单片机原理及接口技术
三、模式 0 的应用举例
例6-1:设晶振为12MHz,试计算定时器T0工作于模式0时的最 大定时时间T。
T 0初 值 2 13 10 10 3 6 10 6 12
∴T0初值=3192=C78H =0110001111000 B
即:(TH0)=0110 0011 B=63H(高8位) (TL0)=1 1000 B=18H(低5位)
15:49
单片机原理及接口技术
解:2)确定TMOD的初值 D7 D6 D5 D4 D3 D2 D1 D0 TMOD GATE C/ T M1 M0 GATE C/ T M1 M0 (89H) 定时器T1 定时器T0
TMOD (89H)
定时器T1
定时器T0
15:49
单片机原理及接口技术
① M1和M0—操作模式控制位。 两位可形成四种编码,对应于四种模式。
表6-1 M1,M0控制的四种工作模式
M1 0 0 1 1
M0 0 1 0 1
工作模式 模式 0 模式 1 模式 2 模式 3
功能描述 13 位计数器 16 位计数器 自动再装入 8 位计数器 定时器 0:分成二个 8 位计数器 定时器 1:停止计数
当CPU响应中断进入中断服务程序后,TF1被硬 件自动清0。TF1也可以用软件清0。
15:49
单片机原理及接口技术
③ TR1(TCON.6)—T1运行控制位。
可通过软件置1(TR1=1)或清0(TR1=0)
来启动或 关闭 T1工作。
在程序中用指令“SETB
0,定时器停止工作。
TR1”使TR1位置1,
15:49
单片机原理及接口技术
§6.2
定时器的控制
• §6.2.1 工作模式寄存器 TMOD
• §6.2.2 控制器寄存器 TCON
15:49
单片机原理及接口技术
§6.2.1
工作模式寄存器 TMOD
• TMOD用于控制T0和T1的工作模式。

• TMOD不能位寻址,只能用字节设置定时器的工作模
式,低半字节设置T0,高半字节设置T1。
启动定时器,而不管INT0(或INT1)的 电平是高还是低。
GATE=1,只有INT0(或INT1)引脚为高电平且由
软件使TR0(或TR1)置1时,才能启动 定时器工作。
15:49
单片机原理及接口技术
§6.2.2 控制器寄存器 TCON
• TCON除可字节寻址外,各位还可位寻址。 • 89C51系统复位时,TCON的所有位被清0。
例6-2:设定时器T0用于定时10ms,晶振为6MHz。试确定T0初 值。并编写定时器T0初始化程序段。
解:1)确定T0初值
当T0处于工作模式0时,加1计数器为13位。 定时时间: T ( 2 13 T 0初值) 振荡周期 12 所以:
10ms ( 2 13 T 0初值) 振荡周期 12
单片机原理及接口技术
定时工作方式
定时器计数89C51片内振荡器输出经12分频 后的脉冲,即每个机器周期使定时器(T0或T1) 的数值加1直至计满溢出。
当89C51采用12MHz晶振时,一个机器 周期为1μs,计数频率为1MHz。
15:49
单片机原理及接口技术
计数工作方式
• 通过引脚T0(P3.4)和T1(P3.5)对外部脉冲 信号计数。当输入脉冲信号产生由1至0的下降 沿时计数器的值加1。 • CPU检测一个1至0的跳变需要两个机器周期, 故最高计数频率为振荡频率的1/24。 • 为了确保某个电平在变化之前被采样一次,要 求电平保持时间至少是一个完整的机器周期。 • 对输入脉冲信号的基本要求如 图6-2所示。
15:49
单片机原理及接口技术
例6-3:设定时器T1工作于模式0,晶振为6MHz。编程实现:每 10ms时间P1.0取反的程序。 解:1)确定T1初值
T1处于工作模式0时,定时时间位10ms(同例2)。
定时时间: ( 2 13 T 1初值) 振荡周期 12 T
(TH1)=0110 0011 B=63H(高8位) (TL1)=1 1000 B=18H(低5位)
15:49
单片机原理及接口技术
② C/T—计数器/定时器方式选择位。 C/T=0,设置为定时方式。定时器计数 89C51片内脉冲,即对机器周期计 数。 C/T=1,设置为计数方式。计数器的输入 来自引脚T0(P3.4)或T1(P3.5) 端的外部脉冲 。
15:49
单片机原理及接口技术
③ GATE—门控位。 GATE=0,只要用软件使TR0(或TR1)置1就可以
• TCON各位的定义格式如 图6-5所示。
• TCON各位定义及具体的意义归纳如 图6-6所示。
15:49
单片机原理及接口技术
图6-5 控制寄存器TCON的位定义
TCON (88H)
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TMOD的低四位为T0的控制位 模式0:M1M0=00, 定时器方式:C/T=0, 门控位不受INT0的影响:GATE=0,
其余位:为 0。
∴ 模式字为
TMOD=0000 0000 B=00H
15:49
单片机原理及接口技术
解:3)编写定时器T0的初始化程序段 主程序: ORG 0100H MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#00H ;选择工作模式 MOV TH0,#63H ;送初值 MOV TL0,#18H SETB TR0 ;启动定时 …
15:49
单片机原理及接口技术
§6.3.1
模式 0 及其应用
一、模式 0 的逻辑电路结构
T0在模式 0 的逻辑电路结构如图6-7所示。(T1相同)
二、模式 0 工作特点
三、模式 0 的应用举例
15:49
单片机原理及接口技术
二、模式 0 工作特点
• 在这种模式下,16位寄存器(TH0和TL0)只用了13位。其中TL0的高3 位未用,其余5位为整个13位的低5为,TH0占高8位。当TL0的低5位溢 出时,向TH0进位;TH0溢出时,向中断标志TF0进位(硬件置位TF0), 并申请中断。
2)确定TMOD的初值
TMOD的高四位为T1的控制位 模式0:M1M0=00, 定时器方式:C/T=0, 门控位不受INT0的影响:GATE=0, 其余位:为 0。 ∴ 模式字为 TMOD=0000 0000 B=00H
15:49
单片机原理及接口技术
解:3)编写程序
初始化引导程序: ORG 0000H RESET: AJMP MAIN ; 跳过中断服务程序区 ORG 001BH ;中断服务程序入口 AJMP ITOP 主程序: ORG 0100H MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#00H ;选择工作模式 MOV TH1,#63H ;送初值 MOV TL1,#18H SETB P1.0 ;P1.0置1 SETB TR1 ;启动定时 SETB ET1 ;T1开中断 SETB EA ;CPU开中断 HERE: AJMP HERE ;等待时间到,转 入中断服务程序
解:当T0处于工作模式0时,加1计数器为13位。
因为:定时时间为: t=(213-T0初值)×振荡周期×12
最大定时时间为“T0初值=0”时。 所以:
T 2 13 振荡周期 12
2 13 1 12 6 12 10
6
8192 10 8.192ms
15:49
单片机原理及接口技术
第六章 定时器及应用
§6.1 §6.2 §6.3 定时器概述 定时器的控制 定时器的四种模式及应用
§6.4
思考题与习题
相关文档
最新文档