第六章-定时器计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TR1
ቤተ መጻሕፍቲ ባይዱTH0
TF1 中断
6
(五)、定时器工作举例
• 定时器编程流程:
1、确定工作模式,确定工作方式控制字(TMOD) 。 2、确定计数或定时值,计算计数初值(TL和TH
值)。 3、确定中断优先级和中断控制字。 4、用MOV指令将有关控制字和参数写入相关的寄存
器中。 用以启停T/C的运行。
7
计数初值的计算
计数器以增一的方式计数,溢出时申请中断。
1、根据定时值计算出所需要的计数时钟周期数N。
t=Tc*N
N=t /Tc
Tc——计数时钟周期=振荡周期X12
2、根据选择的工作方式,计算计数器溢出所需的计数初值X
方式0:(13位)X= 21—3 N
方式1:(16位)X=
216
—N
方式2:(8位) X= 2 8 — N
9
1)计算定时器初值X。 定时器计数脉冲周期是时钟的12倍。计时
1ms需要计数1000/2=500个脉冲。即 N=500。 若用方式0,13位计数器,则有:
X= 213 — 500 = 8192—500 = 7692
换算成16进制数为1E0CH 用高八位和低五位表示(TH0、TL0):
F00CH
10
C/T=0 C/T=1
GATE /INT1脚
+
A
(8位) TL1
控制器
B
TH1
TF1 中断
5
•模式3(M1M0=1 1)仅限于T0
TL0和TH0为两个独立的8位计数器。
振荡器
12
T0脚(P3.4) TR0
C/T=0 C/T=1
(8位)
TL0 控制器 B
中断 TF0
GATE
/INT0
A
+
振荡器 12
• 方式选择
M1 M0
0
0
0
1
10
1
1
功能说明 方式0,为13位定时/计数器,TH8位,TL低5位。 方式1,为16位定时/计数器。 方式2,为常数自动重新装入的8位定时/计数器。 方式3,仅适用于T0,分为两个8位计数器,对T1停
止计数。
2
(三)、定时器/计数器控制寄存器TCON
• 字节地址为88H(TCON)
第六章
(一)、结构
单片机内部定时器/
P3.5(T1)
P3.4(T0)
CPU
TH1(8D) TL1(8B) TH0(8C) TL0(8A)
TCON(88)
TMOD(89)
1
(二)、定时器工作方式控制寄存器TMOD
• 方式字(TMOD) D7 D6 D5 D4 D3 D2 D1 D0
GATE1 C/T1 M1 M0 GATE0 C/T0 M1 M0
定时时间=振荡周期*12*( 2 n — X) X= 2 n— t/(Tc*12)= 2 n — t * f /12
3、将X化为16进制数装入TH和TL中
8
例题一:使用T0定时,使得由P0.7输出周 期为2ms的方波。设单片机时钟为6MHz。 使用方式0和方式1分别实现。请编制程 序。
分析:2ms的方波,即1ms高电位,1ms低 电位。可以这样实现:定时1ms中断一次, 在中断中使得P0.7状态反相。
2)编制初始化程序:
T0工作在方式0,方式控制字为00H, TH0=F0H,TL0=0CH
编程:
ORG 0200H
MOV TMOD,#00H
MOV TH0,#0F0H
MOV TL0,#0CH
MOV IE,#82H
SETB TR0
WAIT:SJMP WAIT
11
3)编制中断程序:
ORG 000BH LJMP TINT ORG 0300H TINT: CPL P0.7 MOV TH0,#0F0H MOV TL0,#0CH MOV IE,#82H RETI
12
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1,TF0——定时器的溢出标志位。最高位产生溢出时置1,并请求中断。
用于标志T0和T1计数器是否产生了溢出中断请求。 TR1,TR0——定时器的运行控制位1允许计数,0停止计数。 IE1——外部中断1请求标志(/INT1,P3.3)(测到低电平或高低脉冲,则
12
T1脚(P3.5) TR1
C/T=0 C/T=1
GATE /INT1脚
+A
(5位) (8位)
TL1 TH1 控制器 B
TF1 中断
4
•模式1 (M1 M0=0 1) 16位计数器方式
结构图同模式0,TL1和 TH1都是8位
• 模式2(M1 M0=1 0)自动恢复初值的8位计数 器
振荡器
12
T1脚(P3.5) TR1
认为中断请求有效。 IT1——外部中断1触发控制位。0为电平触发,低有效。1为边沿触发,下
降沿有效。 IE0,IT0——外部中断0请求标志(/INT0,P3.2)和触发控制位。
3
注意:计数器为增1计数器。
(四)、定时器/计数器的工作模式(T1)
• 模式0:(M1 M0=0 0) 13位计数器方式
振荡器
ቤተ መጻሕፍቲ ባይዱTH0
TF1 中断
6
(五)、定时器工作举例
• 定时器编程流程:
1、确定工作模式,确定工作方式控制字(TMOD) 。 2、确定计数或定时值,计算计数初值(TL和TH
值)。 3、确定中断优先级和中断控制字。 4、用MOV指令将有关控制字和参数写入相关的寄存
器中。 用以启停T/C的运行。
7
计数初值的计算
计数器以增一的方式计数,溢出时申请中断。
1、根据定时值计算出所需要的计数时钟周期数N。
t=Tc*N
N=t /Tc
Tc——计数时钟周期=振荡周期X12
2、根据选择的工作方式,计算计数器溢出所需的计数初值X
方式0:(13位)X= 21—3 N
方式1:(16位)X=
216
—N
方式2:(8位) X= 2 8 — N
9
1)计算定时器初值X。 定时器计数脉冲周期是时钟的12倍。计时
1ms需要计数1000/2=500个脉冲。即 N=500。 若用方式0,13位计数器,则有:
X= 213 — 500 = 8192—500 = 7692
换算成16进制数为1E0CH 用高八位和低五位表示(TH0、TL0):
F00CH
10
C/T=0 C/T=1
GATE /INT1脚
+
A
(8位) TL1
控制器
B
TH1
TF1 中断
5
•模式3(M1M0=1 1)仅限于T0
TL0和TH0为两个独立的8位计数器。
振荡器
12
T0脚(P3.4) TR0
C/T=0 C/T=1
(8位)
TL0 控制器 B
中断 TF0
GATE
/INT0
A
+
振荡器 12
• 方式选择
M1 M0
0
0
0
1
10
1
1
功能说明 方式0,为13位定时/计数器,TH8位,TL低5位。 方式1,为16位定时/计数器。 方式2,为常数自动重新装入的8位定时/计数器。 方式3,仅适用于T0,分为两个8位计数器,对T1停
止计数。
2
(三)、定时器/计数器控制寄存器TCON
• 字节地址为88H(TCON)
第六章
(一)、结构
单片机内部定时器/
P3.5(T1)
P3.4(T0)
CPU
TH1(8D) TL1(8B) TH0(8C) TL0(8A)
TCON(88)
TMOD(89)
1
(二)、定时器工作方式控制寄存器TMOD
• 方式字(TMOD) D7 D6 D5 D4 D3 D2 D1 D0
GATE1 C/T1 M1 M0 GATE0 C/T0 M1 M0
定时时间=振荡周期*12*( 2 n — X) X= 2 n— t/(Tc*12)= 2 n — t * f /12
3、将X化为16进制数装入TH和TL中
8
例题一:使用T0定时,使得由P0.7输出周 期为2ms的方波。设单片机时钟为6MHz。 使用方式0和方式1分别实现。请编制程 序。
分析:2ms的方波,即1ms高电位,1ms低 电位。可以这样实现:定时1ms中断一次, 在中断中使得P0.7状态反相。
2)编制初始化程序:
T0工作在方式0,方式控制字为00H, TH0=F0H,TL0=0CH
编程:
ORG 0200H
MOV TMOD,#00H
MOV TH0,#0F0H
MOV TL0,#0CH
MOV IE,#82H
SETB TR0
WAIT:SJMP WAIT
11
3)编制中断程序:
ORG 000BH LJMP TINT ORG 0300H TINT: CPL P0.7 MOV TH0,#0F0H MOV TL0,#0CH MOV IE,#82H RETI
12
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1,TF0——定时器的溢出标志位。最高位产生溢出时置1,并请求中断。
用于标志T0和T1计数器是否产生了溢出中断请求。 TR1,TR0——定时器的运行控制位1允许计数,0停止计数。 IE1——外部中断1请求标志(/INT1,P3.3)(测到低电平或高低脉冲,则
12
T1脚(P3.5) TR1
C/T=0 C/T=1
GATE /INT1脚
+A
(5位) (8位)
TL1 TH1 控制器 B
TF1 中断
4
•模式1 (M1 M0=0 1) 16位计数器方式
结构图同模式0,TL1和 TH1都是8位
• 模式2(M1 M0=1 0)自动恢复初值的8位计数 器
振荡器
12
T1脚(P3.5) TR1
认为中断请求有效。 IT1——外部中断1触发控制位。0为电平触发,低有效。1为边沿触发,下
降沿有效。 IE0,IT0——外部中断0请求标志(/INT0,P3.2)和触发控制位。
3
注意:计数器为增1计数器。
(四)、定时器/计数器的工作模式(T1)
• 模式0:(M1 M0=0 0) 13位计数器方式
振荡器