单片机C语言编程(定时器计数器)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2.1 模式0的逻辑结构及应用
C/T=1,计数方式。计数脉冲由P3.4引脚输 入。 C/T=0时,定时方式。
振荡器
12分频
C/T=0 C/T=1
T0(P3.4) TR0
TL0 (5位)
TH0 (8位)
TF0
中断
&
GATE P3.2
+
图6-5 模式0的逻辑结构图
6.2.2 模式1的逻辑结构及应用
12分频
C/T=0 TL 1 (8位) C/T=1 重新装入 TH 1 (8位) 串行口
T1(P3.5)
思考:T0工作在模式3,T1怎么进行方式设置?
6.2.4 模式3的逻辑结构及应用
1、定时器/计数器工作模式的选择方法
(1)首先计算计数值N (2)确定工作模式 原则是尽可能地选择模式2 若 N ≤ 256选择模式2,否则选择模式1 (3)如果需要增加一个定时器/计数器 选择模式3。
振荡器
12分频 C/T=0 TL1 TH1 (5位) (8位) 串行口
T1(P3.5)
C/T=1 (a)T1模式0
振荡器
12分频 C/T=0 TL1 TH1 (8位) (8位) 串行口
T1(P3.5)
C/T=1 (b)T1模式1
振荡器
图6-9 模式3下,T1的逻辑结构图
12分频 C/T=0 TL1
振荡器
主要内容
6.2.1 模式0的逻辑结构及应用 6.2.2 模式1的逻辑结构及应用 6.2.3 模式2的逻辑结构及应用 6.2.4 模式3的逻辑结构及应用
6.2.1 模式0的逻辑结构及应用
M1M0=00,选择模式0。逻辑结构如图6-5 所示。(以T0为例) T0的结构:13位定时器/计数器。 由TH0的8位、TL0的低5位构成(高3位未 用) 工作过程:TL0溢出后向TH0进位,TH0溢 出后将TF0置位,并向CPU申请中断。 定时时间=(213-定时初值)×机器周期 最大定时时间:213×机器周期
6.2.4 模式3的逻辑结构及应用
振荡器
12分频
C/T=0 C/T=1 TL0 (8位) TF0 中断
T0(P3.4) TR0
&
GATE P3.2 振荡器 TR1 12分频
+
TH0 (8位) TF1 中断
图6-8 模Leabharlann 3下T0的逻辑结构图6.2.4 模式3的逻辑结构及应用
2、T0模式3时T1的工作模式
6.2.4 模式3的逻辑结构及应用
1、T0模式3的结构特点
M1 M0 =11,选择模式3。逻辑结构如图 6-8和6-9所示: 结构: TL0、TH0分为两个独立的8位计数器 TL0: 8位定时器/计数器 使用T0所有的资源和控制位 TH0:8位定时器 使用T1所有的资源(中断向量、中断控制 ET1、PT1)和控制位(TR1、TF1)
T1可以模式0~模式2工作。 T1的结构如图6-9所示 由于TF1及中断矢量被TH0占用,所以T1 仅用作波特率发生器或其它不用中断的地方。 T1作波特率发生器,其计数溢出直接送 至串行口。设置好工作方式,串行口波特率 发生器开始自动运行。 TMOD中T1的M1M0=11,T1停止工作。
6.2.4 模式3的逻辑结构及应用
6.1.2 MCS-51单片机定时器/计数器的工作原理
③ C/T =1 ,为计数方式。
计数信号由Tx引脚(P3.4、P3.5和P1.0) 输入,每输入一有效信号,相应的计数 器中的内容进行加1。
④ 控制信号TRx=1时,定时器启动。 ⑤ 当定时器由全1加到全0时计满溢出,从0 开始继续计数,TFx=1 ,向CPU申请中 断。
6.1 MCS-51单片机定时器/计数器的结 构及原理
主要内容
6.1.1 MCS-51单片机定时器的结构 6.1.2 MCS-51单片机定时器的工作原理 6.1.3 定时器/计数器的控制寄存器
6.1.1 MCS-51单片机定时器的结构
MCS-51单片机定时器/计数器逻辑结构图:
T0(P3.4) 定时器 0 TH0 溢 出 控 制 TL 0 模 式 溢 出 定时器 1 TH1 控 制 TL 1 模 式 溢 出 RCAP 2H RCAP 2L T1(P3.5) T2EX(P1.1)
6.1.3 定时器/计数器的方式和控制寄存器
GATE=0,不使用外部门控制计数器 C/T——定时或计数方式选择位 。 C/T=0时,为定时器 C/T=1时,为计数器 采样过程:CPU在每机器周期S5P2期间, 输入信号进行采样。若前一机器周期采样值 为1,下一机器周期采样值为0,则计数器增 1,随后的机器周期S3P1期间,新的计数值 装入计数器。
定时器的初值为:TH0=0FEH,TL0=0CH
6.2.4 模式3的逻辑结构及应用
C语言程序: #include <reg52.h> sbit P1_0=P1^0; void main( ) { TMOD=0x01; TL0=0x0c; TH0=0xfe; ET0=1; EA=1; TR0=1; while(1); }
6.1.1 MCS-51单片机定时器的结构
⑤引脚P3.5、P3.4、P1.0,输入计数脉冲。 ⑥定时器T0、T1和T2是3个中断源,可以向 CPU 发出中断请求。 ⑦定时器/计数器T2增加了两个8位的寄存器: RCAP2H和RCAP2L。 ⑧特殊功能寄存器之间通过内部总线和控制 逻辑电路连接起来。
6.2.3 模式2的逻辑结构及应用
振荡器 T0(P3.4) TR0
12分频
C/T=0 C/T=1
TL0 (8位)
TF0
中断
& GATE P3.2
+
TH0 (8位)
图6-7 模式2的逻辑结构图
6.2.3 模式2的逻辑结构及应用
定时时间=(28 - 初值)×机器周期 最大定时时间=28 ×机器周期 优点:模式2能够进行自动重装载。模式0 和1计数溢出后,计数器为全0。循环定时或 计数时,需要重新设置初值。 说明:在模式2能够满足计数或定时要求时, 尽可能使用模式2。
例6-1 设单片机的振荡频率为12MHz,用 定时器/计数器0的模式1编程,在P1.0引脚产 生一个周期为1000µ s的方波,定时器T0采用 中断的处理方式。 定时器的分析过程。 工作方式选择 需要产生周期信号时,选择定时方式。定 时时间到了对输出端进行周期性的输出即可。 工作模式选择 根据定时时间长短选择工作模式。 首选模式2,可以省略重装初值操作。
6.2.4 模式3的逻辑结构及应用
定时时间计算:周期为1000µ s的方波要 求定时器的定时时间为500µ s,每次溢出时, 将P1.0引脚的输出取反,就可以在P1.0上产 生所需要的方波。 定时初值计算: 振荡频率为12MHz,则机器周期为1µs。 设定时初值为X,
(65536-X)×1µ s=500µ s X=65036=0FE0CH
//包含特殊功能寄存器库 //进行位定义
//T0做定时器,模式1
//设置定时器的初值 //允许T0中断 //允许CPU中断 //启动定时器 //等待中断
6.2.4 模式3的逻辑结构及应用
void time0_int(void) interrupt 1 { //中断服务程序 TL0=0x0c; TH0=0xfe; //定时器重赋初值 P1_0=~P1_0; //P1.0取反,输出方波 } 汇编语言程序: ORG 0000H SJMP MAIN ORG 000BH LJMP TIME0
6.1.3 定时器/计数器的方式和控制寄存器
M1、M0——工作模式选择位。 如下表所示:
表6-1 定时器/计数器的工作模式
M1 M0 工作模式 功 能 0 0 模式0 13位定时器/计数器 0 1 模式1 16位定时器/计数器 1 1 0 1 模式2 模式3 8位自动重置定时器/计数器 定时器0:TL0为8位定时器/计 数器,TH0为8位定时器。 定时器1:无此方式
6.1.3 定时器/计数器的方式和控制寄存器
1、T0、T1 工作模式寄存器TMOD
功能:确定定时器的工作模式。 其格式如图6-3所示:
D6 D5 D4 D3 D2 D1 D0 TMOD D7 (89H) GATE C/T M1 M0 GATE C/T M1 M0
图6-3 定时器方式寄存器TMOD
GATE——外部门控制位。 GATE=1,使用外部控制门。 TRx=1, P3.2(P3.3)=1时,启动定时器。
6.1.2 MCS-51单片机定时器的工作原理
定时器/计数器T0、T1、T2 的内部结构简 图如下图所示。
振荡器
12分频
C/T=0
TLx THx (8位) (8位)
Tx C/T=1 控制 TRx
TFx
中断请求
6.1.2 MCS-51单片机定时器/计数器的工作原理
从上图可以看出: ① 定时器的实质是一个加1计数器。 ② C/T =0 ,为定时器方式。 计数信号由片内振荡电路提供,振 荡脉冲12分频送给计数器,每个机器周期计 数器值增1。 例如:如果晶振频率为12MHz,则最高 计数频率为0.5MHz
T0(P3.4) TR0
&
GATE P3.2
+
工作过程:当TL0计满时,向TH0进1;当 TH0计满时,溢出使TF0=1,向CPU申请中断。 MCS-51单片机之所以设置几乎完全一 样 的方 式0和方式1,是出于与 MCS-48单片机兼容的。
6.2.3 模式2的逻辑结构及应用
M1 M0 =10时,选择模式2。逻辑结构 如图6-7所示。 T0的结构: TL0:8位的定时器/计数器; TH0:8位预置寄存器,用于保存初值。 工作过程:当TL0计满溢出时,TF0置1, 向CPU发出中断请求;同时引起重装操作 (TH0的计数初值送到TL0),进行新一轮 计数。
6.2.4 模式3的逻辑结构及应用
2、定时器/计数器初值X的计算方法
因为 X + N = 28或216 所以 X = 28或216-N (1)对定时器 设定时时间为t N = t/机器周期 所以 X = 28或216- t/机器周期 (2)对计数器 X = 28或216- N
6.2.4 模式3的逻辑结构及应用
6.1.3 定时器/计数器的方式和控制寄存器
TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。 IE1、IE0:外部中断1、0请求标志位 IT1、IT0:外部中断1、0触发方式选择位 注意: GATE=1 ,TRx与P3.2(P3.3) 的配 合。
6.2 定时器T0、T1的工作模式及应用
6.1.3 定时器/计数器的方式和控制寄存器
2、T0、T1的控制寄存器TCON
TCON D7 D6 D5 D4 D3 D2 D1 D0 (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
图6-4 定时器的控制寄存器
TF1、TF0:T1、T0的溢出标志位 计数溢出,TFx=1。 中断方式:自动清零; 查询方式:软件清零。
M1M0=01时,选择模式1。逻辑结构如下 页图所示。 T0的结构:16位定时器/计数器。 TL0:存放计数初值的低8位。 TH0存放计数初值的高8位; 定时时间=(216-定时初值)×机器周期 最大定时时间:216×机器周期
6.2.2 模式1的逻辑结构及应用
振荡器
12分频 C/T=0 C/T=1 TL0 TH0 (8位) (8位) TF0 中断
T2(P1.0) 定时器 2
TH 2 TL2 重装 捕获
CPU
控 制
模 式 T2MOD
中断
中断
TCON
TMOD
T2CON
6.1.1 MCS-51单片机定时器的结构
MCS-51主要由如下构成: ① 三个16位的可编程定时器/计数器:定时 器/计数器0、1和2。 ② 每个定时器有两部分构成:THx和TLx ③ 特殊功能寄存器T2MOD和T2CON ,主 要对T2进行控制。 ④ 特殊功能寄存器TMOD和TCON ,主要 对T0和T1进行控制。
第6章 MCS-51单片机定时器/计 数器
本章制作:刘晓霞
第6章 MCS-51单片机定时器/计数器
目 录
6.1 MCS-51定时器/计数器 的结构及原理 6.2 定时器T0、T1 6.3 定时器T2 6.4 定时器应用举例
第6章 MCS-51单片机的定时器/计数器
本章主要讨论MCS-51单片机定时器/计 数器的逻辑结构和工作原理。内容主要有 MCS-51单片机定时器T0、T1、T2的逻辑结 构,工作方式的选择和应用。 本章为单片机的主要内容,也是第七章 串行口的学习的基础。