概述
九层妖塔 起于垒土
蓝桥杯AP15F2K61S2定时器
- 定时器
- 1、简介
- 2、寄存器
- ①TCON (Timer Control-控制寄存器)
- ②TMOD(Timer Mode-工作模式寄存器)
- ③AUXR(Auxiliary Register-辅助寄存器)
- ④INT_CLKO(AUXR2)(外部中断允许和时钟输出寄存器)
- ⑤IE(Interrupt Enable-中断允许寄存器)
- ⑥IP(Interrupt Priority-中断优先级控制寄存器)
- ⑦IE2(Interrupt Enable-中断允许寄存器2)
- 3、定时器0的工作模式0
- ①隐含寄存器RL_TH0,RL_TL0
- ②系统时钟 f s y s f_{sys} fsys
- ③定时初值计算
- ④定时器初始化函数流程
- ⑤计数器计数初值计算
- 4、定时器2
- ①T2控制寄存器-AUXR
- ②T2的中断允许控制位ET2
- ③定时器2的初始化流程图
- 5、定时器的使用问题
- ①利用定时器的计数输入端口改造成外部中断源输入端口
- ②定时器/计数器的实时性
- ③动态读取运行中的计数值
- 6、可编程时钟输出
定时器
1、简介
●定时器的核心部件是一个加法计数器其本质是对脉冲进行计数。计数脉冲来系统时钟或者单片机外部引脚。
●STC15F系列单片机只有3个定时器。
●四种工作模式:
○定时器0:
模式0(16位自动重装载模式)
模式1(16位不可重装载模式)
模式2(8位自动重装载模式)
模式3(不可屏蔽中断的16位自动重装载模式)
○ 定时器1:模式0,模式1,模式2
○ 定时器2:固定为模式0;还可以当串口的波特率发生器和可编程时钟输出。
2、寄存器
①TCON (Timer Control-控制寄存器)
●TCON:控制定时器T0/T1的启动于停止,包含定时器T0/T1的溢出标志位。88H
可位寻址
●TF1:(Timer Flow)定时器1溢出标志位。计满溢出时由硬件置"1"分为查询法与中断法响应溢出。
○ 中断法:在中断允许时,向CPU发出中断请求,中断响应后,由硬件自动清除TF1标志。
○ 查询法:通过软件查询TF1标志,来判断计满溢出时刻,查询结束后,用软件手动清除TF1标志。
●TR1:(Timer Run)T1的运行控制位
②TMOD(Timer Mode-工作模式寄存器)
●TMOD设置定时器T0/T1的工作模式(四种工作模式)和功能(定时or计数)。
●TMOD不可位寻址,只能用字节指令设置。
●M1,M0:工作模式选择位。默认为16位自动重装载模式。
●
C
/
T
‾
C/overline{T}
C/T:功能选择位。
T
‾
overline{T}
T:T低电平有效即定时器模式。
●GATE:门控位。测量脉冲宽度。
③AUXR(Auxiliary Register-辅助寄存器)
●T0x12:定时器0速度控制位。
(T0x12)=0:定时计数脉冲完全与传统8051单片机的计数脉冲一样,计数脉冲周期为系统时钟周期的12倍,即12分频;当(T0x12)=1时,计数脉冲为系统时钟脉冲,计数脉冲周期等于系统时钟周期,即无分频。
●T2R:定时器2的运行控制位。
●T2_
C
/
T
‾
C/overline{T}
C/T:T2的功能选择位。
●T2x12:定时器2速度控制位。
④INT_CLKO(AUXR2)(外部中断允许和时钟输出寄存器)
⑤IE(Interrupt Enable-中断允许寄存器)
●EA:总中断允许控制位。
●ET1:定时器T1中断允许位
●ET0:定时器T0中断允许位
●地址A8H
可位寻址
⑥IP(Interrupt Priority-中断优先级控制寄存器)
⑦IE2(Interrupt Enable-中断允许寄存器2)
●ET2:定时器2的中断允许位。
3、定时器0的工作模式0
①隐含寄存器RL_TH0,RL_TL0
●RL_TH0与TH0共用一个地址;RL_TL0与TL0共用一个地址。
●用于保存16位定时器的重装初值。
●当定时器0工作在模式0(16位自动重装载模式)时,[TL0,TH0]
的溢出置位溢出标志位TF0
,同时会自动将[RL_TL0,RL_TH0]
的内容重新装入[TL0,TH0]
●写数据:
○TR0=0
即关定时器0,对TL0
和TH0
寄存器写入数据时,也会分别同时写入RL_TL0
和RL_TH0
中。
○TR0=1
即开定时器0,对TL0
和TH0
寄存器写入数据时,实际上不是写入当前寄存器,而是只写入隐含寄存器RL_TL0
和RL_TH0
中。这样不会影响T0的正常计数。
●读数据:
对TL0
和TH0
寄存器读取数据时,读取的是TL0
和TH0
的状态值,而不是隐含寄存器的内容。
②系统时钟 f s y s f_{sys} fsys
系统时钟
f
s
y
s
f_{sys}
fsys =主时钟
f
o
s
c
f_{osc}
fosc / N
N为分频系数,可以通过时钟分频寄存器CLK_DIV进行改变,默认为1.
③定时初值计算
●12分频:
t
=
(
2
n
−
a
)
∗
12
f
s
y
s
t=frac{(2^n-a)*12}{f_{sys}}
t=fsys(2n−a)∗12
●不分频:
t
=
(
2
n
−
a
)
∗
1
f
s
y
s
t=frac{(2^n-a)*1}{f_{sys}}
t=fsys(2n−a)∗1
时间t的单位位秒; (举例为50ms)
定时器0为16位的,所以n=16;
a为定时器的初始值;
系统时钟
f
s
y
s
f_{sys}
fsys设是12MHz,即
12
×
1
0
6
12×10^6
12×106Hz
若采用12分频,可算得计数初值十进制数a=15536,换算成二进制数位
a
=
(
11110010110000
)
2
a=(11 1100 1011 0000)_2
a=(11110010110000)2
④定时器初始化函数流程
中断法:共6步。
⑤计数器计数初值计算
●T0对应的计数输入端为P3.4;T1为P3.5;T2为P3.1。
●计数输入端有一个负跳变计数器的状态值加1。
●计数器的计数次数N=计数器的最大空间-计数初值=
2
n
−
a
2^n-a
2n−a
●16位计数器:
计数初值:
a
=
(
2
16
−
N
)
a=(2^{16}-N)
a=(216−N)
4、定时器2
①T2控制寄存器-AUXR
●T2R:T2允许控制位
●
T
2
T2
T2_
C
/
T
‾
C/overline{T}
C/T:功能选择位。
T
‾
overline{T}
T:T低电平有效即定时器模式。
●T2x12:定时器2速度控制位。
②T2的中断允许控制位ET2
●定时器2的中断请求标志位对用户不可见,即无法用查询法。
③定时器2的初始化流程图
5、定时器的使用问题
①利用定时器的计数输入端口改造成外部中断源输入端口
●计数模式
●模式2(8位自动重装)
●计数初值为FFH
●由T1端口输入一个负跳变,计数器即回零溢出
详见例2
②定时器/计数器的实时性
定时器回0溢出请求中断到主机响应中断并作出处理存在时间延迟
③动态读取运行中的计数值
6、可编程时钟输出
最后
以上就是灵巧香菇为你收集整理的蓝桥杯AP15F2K61S2定时器定时器的全部内容,希望文章能够帮你解决蓝桥杯AP15F2K61S2定时器定时器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复