第6章 定时器及应用
合集下载
单片机原理及应用 第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输出一个低电平脉冲信号(简化的打包 操作)。
这种方式下,计数寄存器由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定时器计数器
用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
所示 , 图中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的定时器
• 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定时器
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 定时器的使用
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 定时器的使用 通用定时器配置步骤
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单片机内部定时器
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章-555定时器
第二节 集成555定时器
一、555定时器的电路结构
由以下几部分组成: (1)三个阻值为5kΩ的电阻组
成的分压器。 (2)两个电压比较器C1和C2。
电压比较器的功能:
v+> v-,vO=1 v+< v-,vO=0
(3)基本RS触发器、 (4)放电三极管T及缓冲器G。
VC C 电 源
(8 )
RD 复 位
便的调节tW。
(2)恢复时间tre
vI
tre=(3~5)τ2 (3)最高工作频率fmax
4.利用施密特触发器构成多谐振荡器
R
R
VCC
1
vI
vo
8 47
C
6
3
2 555 5
C
1
0.01 F
二.单稳态触发器
特点: 1.有一个稳态和一个暂稳态; 2.在触发脉冲作用下,由稳态翻转到暂稳态; 3.暂稳状态维持一段时间后,自动返回到稳态。
(一)由555定时器构成的单稳态触发器
1. 电路组成及工作原理
7
vO 2
vI1 6
vI
v I2 2 55 5 3
vO1
1
R、VCC2构成另一输出端 vo2,其高电平可以通过 改变VCC2进行调节。
V C C( 8 ) R D( 4 )
( 5) 5kΩ
vI
v IC v I1
+ -C 1
R
&
( 6) 5kΩ
v I2 ( 2)
- +C 2
S
&
vO 5kΩ
( 7)
T
f 1 1.43 T (R12R2)C
(5)输出波形占空比q
qT1 R1R2 T R12R2
8051单片机定时器及应用课件
M1、M0设置为00 ,为13位计数器,以T1为例, 其框图如下:
计数脉 冲输入
加1计数器
19
6.3 定时器的工作方式——方式0
TH1
D12 D11 D10 D9 D8 D7 D6 D6
TL1
× × × D4 D3 D2 D1 D0
在这种方式下,16位寄存器TH1和TL1只用13位, 由TH1的8位和TL1的低6位组成。TL1的高3位不定。
15
16
第6章 定时器/计数器及其应用
➢ 6.3 定时器的工作方式
17
6.3 定时器的工作方式 MCS-51的定时器T0有4种工作方式:
即:方式0,方式1,方式2,方式3。 MCS-51的定时器T1有3种工作方式:
即:方式0,方式1,方式2。
18
6.3 定时器的工作方式——方式0
6.2.1 方式0
其定时时间为: (216-初值)×振荡周期×12
例如:若晶振频率为12MHz,则最长的定时时间为 (216-0)×(1/12)×12us=66.636ms
24
6.3 定时器的工作方式——方式2
6.3.3 方式2
M1、M0=10 ,为自动恢复初值的8位计数器,等效框图如 下: TLx作为8位计数器,THx作为重置初值的缓冲器。
数的是MCS-51内部产生的标准脉冲,通过 计数脉冲个数实现定时。 所以,定时器和计数器本质上是一致的,在 以后的叙述中将定时器/计数器笼统称为定 时器。
2
3
第6章 定时器/计数器及其应用
6.1 定时器的结构及工作原理 6.2 定时器的TMOD和TCON寄存器 6.3 定时器的工作方式
6.3.1 方式0 6.3.2 方式1 6.3.3 方式2 6.3.4 方式3
计数脉 冲输入
加1计数器
19
6.3 定时器的工作方式——方式0
TH1
D12 D11 D10 D9 D8 D7 D6 D6
TL1
× × × D4 D3 D2 D1 D0
在这种方式下,16位寄存器TH1和TL1只用13位, 由TH1的8位和TL1的低6位组成。TL1的高3位不定。
15
16
第6章 定时器/计数器及其应用
➢ 6.3 定时器的工作方式
17
6.3 定时器的工作方式 MCS-51的定时器T0有4种工作方式:
即:方式0,方式1,方式2,方式3。 MCS-51的定时器T1有3种工作方式:
即:方式0,方式1,方式2。
18
6.3 定时器的工作方式——方式0
6.2.1 方式0
其定时时间为: (216-初值)×振荡周期×12
例如:若晶振频率为12MHz,则最长的定时时间为 (216-0)×(1/12)×12us=66.636ms
24
6.3 定时器的工作方式——方式2
6.3.3 方式2
M1、M0=10 ,为自动恢复初值的8位计数器,等效框图如 下: TLx作为8位计数器,THx作为重置初值的缓冲器。
数的是MCS-51内部产生的标准脉冲,通过 计数脉冲个数实现定时。 所以,定时器和计数器本质上是一致的,在 以后的叙述中将定时器/计数器笼统称为定 时器。
2
3
第6章 定时器/计数器及其应用
6.1 定时器的结构及工作原理 6.2 定时器的TMOD和TCON寄存器 6.3 定时器的工作方式
6.3.1 方式0 6.3.2 方式1 6.3.3 方式2 6.3.4 方式3
第6章 定时计数器件组件及其应用(三版)习题及答案
嵌入式系统原理及应用第三版87本章习题选择题1关于定时计数器通常使用的公式61以下说法错误的是b计数值n与定时长度t成正比n越大t越长时的值即此时定时时间就是一个fpclk周期个计数周期时在定时器输出端通常有溢出标志或产生中断信号2以下关于定时计数器的功能说法错误的是a捕获的条件有上升沿触发下降沿触发以及上下边沿触发3关于stm32f10x系列微控制器的定时计数器以下说法错误的是d高级定时器只包括tim1和tim8通用定时器包括tim2tim3tim4和tim5均具有pwm功能所有定时器都是通过apb2总线连接的4关于stm32f10x系列微控制器定时计数器相关寄存器以下说法错误的是a定时器控制寄存器timxcr1可以决定计数器是否允许更新是否使能不能决定向上向下计数普通定时器中断使能寄存器timxdier用于是否允许更新和dma中断定时器状态寄存器timxsr记录哪个中断源有中断定时器重装载寄存器timxarr和预分频器timxpsc决定定时器的定时周期或时间5关于stm32f10x系列微控制器看门狗以下说法错误的是diwdg为独立看门狗wwdg为窗口看门狗iwdg的时钟输入源固定40khzwwdg输入频率可编程无论iwdg还是wwdg均要定期喂狗操作才能让系统正常有序工作iwdg和wwdg的喂狗方式一样都是写入0xaaaa到键寄存器中6关于stm32f10x列微控制器实时钟rtc以下说法错误的是artc的直接提供了年月日和时分秒这些数据rtc组件是接到apb1总线上的rtc的时钟可以是外部32768khz也可以选择内部40khz以及代功耗rclsi时钟rtc闹钟寄存器的值与计数寄存器的值相等时将产生闹钟中断7关于stm32f10x系列微控制器定时器每个定时器有4个pwm输出通道以下说法错误的是a每个pwm输出通道周期不可以单独编程设置每个pwm输出通道的占空比可以单独编程设置每个pwm输出通道可以编程输出正脉冲或负脉冲每个pwm输出通道占空比取决于比较寄存器ccr和自动重装载寄存器arr8关于stm32f10x系列通用定时器用作pwm功能以下说法错误agpio任何一个引脚均可以配置为pwm输出pwm输出具有边沿对齐和中心对齐方式pwm输出周期由自动重装载寄存器timxarr决定rpwm输出占空比取决于捕获比较寄存器timxcrri9为操作系统或其它系统管理软件提供固定10ms或可软件编程定时时间的定时中断该定
第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位计数器组成。
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; }
定时时间为: 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章 定时器计数器
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所示。
期间,计数器加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所示。
第六章STM32 定时器的使用
}
}
步骤五:配置main函数,实现定时器控制跑马灯。
volatile u32 time;
int i=0;
int main(void) { SystemInit(); //配置系统时钟为72控制跑马灯(P190)
1.理解STM32通用定时器的结构和基本工作原理; 2.掌握STM32通用定时器初始化和操作方法; 3.理解中断概念; 4.掌握STM3中断服务程序的写法。
硬件设计 硬件连接图如下,实验板上stm32f103x处理器
通过配置GPIO实现如下功能:D3~D6轮流点亮,点亮时 间持续1秒。
软件设计 步骤一:添加库函数,以及操作函数。 添加相应库函数:
操作函数有:USER/main.c ;stm32f10x_it.c ;led.h; led.c ;timer.h;timer.c;TIM2_IRQHandler()。 步骤二:在timer.h函数中设置宏定义和函数声明:
void TIM2_NVIC_Config(void); void TIM2_Config(void);
TIN_TimBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Period = (10000 - 1); //自动重装的计数值
TIM_TimeBaseStructure.TIM_Prescaler =7200-1 ; // 预分频系数
立即加载计数器(ARPE=0)
更新事件时加载计数器(ARPE=0)
6.2.2 计数器模式 1. 向上计数模式:计数器从0计数到设定的数值,然 后重新从0开始计数并且产生一个计数器溢出事件。
计数器时序图(内部时钟分频因子为1)
第6章定时器及应用李朝青--单片机原理及接口技术北京航空航天大学出版社第3版课件
TH0
TL0
×××
8位
5位
• 定时时间为: t=(213-T0初值)×振荡周期×12 • 用于计数工作方式时,计数长度为: L=(213-T0初值)(个外部脉冲)
04:34
单片机原理及接口技术
三、模式 0 的应用举例
例6-1:设晶振为12MHz,试计算定时器T0工作于模式0时的最 大定时时间T。
解:当T0处于工作模式0时,加1计数器为13位。
04:34
单片机原理及接口技术
图6-5 控制寄存器TCON的位定义
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
TCON (88H)
TF1
TR1
TF0
TR0 IE1
IT1
IE0 IT0
04:34
单片机原理及接口技术
① TF1(TCON.7) —T1溢出标志位。 当T1溢出时,由硬件自动使中断触发器TF1置1, 并向CPU申请中断。
• 每个定时器都可由软件设置为 定时工作方式或
计数工作方式。由特殊功能寄存器TMOD和TCON所
控制。
• 定时器工作不占用CPU时间,除非定时器/计数器 溢出,才能中断CPU的当前操作。
• 定时器/计数器有四种工作模式。其中模式0-2对 T0和T1是一样的,模式3对两者不同。
04:34
单片机原理及接口技术
;启动定时 ;查询定时时间到否
SJMP LP NEXT:MOV TL0,#18H
;重装计数初值
MOV TH0,#63H
CPL P1.0
;取反
SJMP LP
;重复循环
04:34
单片机原理及接口技术
(4)采用定时器溢出中断方式的程序
第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,不能位寻址
系统 时钟 ÷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,不能位寻址
单片机原理及应用教程c语言版第6章mcs51单片机的定时器计数器
方波周期T
定时时间t:
周期为1000µs的方波要求 t =周期/2 = 1000/2 = 500(µs)
定时时间t
对应计数值:N = t/机器周期 = 500/1 = 500
N=500>256,所以选择模式1。
模式字:
TMOD=0000 0001B = 0x01 (3)计算初值X
X = 65536 – N = 65036 = 0xfe0c
6.1.2 MCS-51单片机定时器/计数器的工作原理
• 控制信号TRx=1时,定时器启动。 • 当定时器由全1加到全0时计满溢出,TFx=1,
向CPU申请中断;同时,定时器从0开始继续 计数。
6.2 定时器/计数器T0、T1
主要内容
6.2.1 T0、T1的特殊功能寄存器 6.2.2 T0、T1的工作模式 6.2.3 T0、T1的使用方法
计数信号由片内振荡电路提供,振荡脉冲n分 频送给计数器,每个机器周期计数器值增1。 • C/T =1 ,为计数器
计数信号由Tx引脚、和P1.0)输入,每输入一有 效信号,相应的计数器中的内容进行加1
计数器的最高计数频率为:fosc/24 1)每1个输入脉冲的下降沿使计数器计1个数 2)每1个机器周期对引脚采样1次,当上1个机器 周期采样为高、本机器周期采样为低为1个下降沿。
6.2.2 T0、T1的工作模式
信号源
振荡器 12分频 C/T=0
0
T0(P3.4)
TR0 GATE (P3.2)
C/T=1 1
& +
运行控制
TL0 TH0 (8位) (8位)
计数器
TF0 中断
溢出中断
图6-6 T0模式1原理结构
6.2.2 T0、T1的工作模式
微机原理与单片机接口技术(第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。
断的查询顺序是“外部中断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。
第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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
思考题与习题