第06章定时器-计数器课件

上传人:我*** 文档编号:141077062 上传时间:2020-08-04 格式:PPT 页数:66 大小:283.50KB
返回 下载 相关 举报
第06章定时器-计数器课件_第1页
第1页 / 共66页
第06章定时器-计数器课件_第2页
第2页 / 共66页
第06章定时器-计数器课件_第3页
第3页 / 共66页
第06章定时器-计数器课件_第4页
第4页 / 共66页
第06章定时器-计数器课件_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《第06章定时器-计数器课件》由会员分享,可在线阅读,更多相关《第06章定时器-计数器课件(66页珍藏版)》请在金锄头文库上搜索。

1、,6.1 定时器/计数器概述 6.2 定时器/计数器的控制 6.3 定时器/计数器的四种模式及应用 6.4 思考题与习题,第六章 定时器/计数器,6.1 定时器/计数器概述,6.1.1 89S51定时器/计数器结构 6.1.2 89S51定时器/计数器功能,6.1.1 89S51定时器/计数器结构,89S51定时器/计数器的结构如 图 所示。 有两个16位的定时器/计数器,即定时器0(T0)和定时器1(T1),都是16位加1计数器。 T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。,2020/8/4,89S51定时器/计数器结构图,6.1.2 89S51定时器/计数器

2、功能,每个定时器/计数器都可由软件设置为 定时工作方式或 计数工作方式。由特殊功能寄存器TMOD和TCON所控制。 定时器/计数器有四种工作模式。其中模式0-2对T0和T1是一样的,模式3对两者不同。,2020/8/4,定时工作方式,定时器计数89S51片内振荡器输出经12分频后的脉冲,即每个机器周期使定时器(T0或T1)的数值加1直至计满溢出。计数速率是fosc/12。,例:当89S51采用12MHz晶振时,一个机器周期为1s,计数频率为1MHz。,2020/8/4,计数工作方式,通过引脚T0(P3.4)和T1(P3.5)能对间隔可能不相等的外部脉冲进行统计计数。当达到所要求的计数值时,单片

3、机进行相应的操作。 当输入脉冲信号产生由1至0的下降沿时计数器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最快计数速率是fosc/24。,2020/8/4,89S51定时/计数器的工作原理 (1):何时控制启动计数器? 思考: (2):如何控制是定时还是计数? (3):如何控制定时/计数的长短?,MCS-51单片机定时器/计数器模型,由启动控制开关TR来控制计数器是否计数: 当TR=0时:计数器计数脉冲被断开,所以停止工作; 当TR=1时:计数器的计数脉冲输入端与信号源接通, 计数器开始计数(工作)。 定时、计数方式由C/T控制。 当C/T=0时:多路器选择的是系统时钟(fosc

4、/12), 即定时方式; 当C/T=1时:多路器选择的是外部(T0或T1引脚)输入, 即计数方式。 定时/计数的长短由初值寄存器中的计数初值来设定。,6.2 定时器/计数器的控制,6.2.1 工作模式寄存器 TMOD 6.2.2 控制器寄存器 TCON,2020/8/4,6.2.1 工作模式寄存器 TMOD,TMOD用于控制T0和T1的工作模式。 TMOD不能位寻址,只能用字节设置定时器的工作模式,低半字节设置T0,高半字节设置T1。 89S51系统复位时,TMOD的所有位被清0。 TMOD各位的定义格式如图所示。,2020/8/4,表6-1 M1,M0控制的四种工作模式,2020/8/4,2

5、020/8/4,6.2.2 控制器寄存器 TCON,TCON除可字节寻址外,各位还可位寻址。 89S51系统复位时,TCON的所有位被清0。 TCON各位的定义格式如图所示。,控制寄存器TCON的位定义,2020/8/4,2020/8/4,6.3 定时器/计数器的四种模式及应用,6.3.1 模式 0 及其应用 6.3.2 模式 1 及其应用 6.3.3 模式 2 及其应用 6.3.4 模式 3 及其应用 6.3.5 综合应用举例,6.3.1 模式 0 及其应用,一、模式 0 的逻辑电路结构 (T0模式 0 的逻辑电路结构与T1相同) 二、模式 0 工作特点 三、模式 0 的应用举例,2020/

6、8/4,一、模式 0 的逻辑电路结构,* 模式0时定时器T0同T1,二、模式 0 工作特点,在这种模式下,16位寄存器(TH0和TL0)只用了13位。其中TL0的高3位未用。当TL0的低5位溢出时,向TH0进位;TH0溢出时,向中断标志TF0进位(硬件置位TF0),并申请中断。,定时时间为: t=(213T0初值)振荡周期12 计数工作方式时计数长度为: L=(213T0初值) 个外部脉冲,2020/8/4,三、模式 0 的应用举例,例6-1:设晶振为12MHz,试计算定时器T0工作于模式0时的最大定时时间T。 解:加1计数器为13位,定时时间为: t=(213T0初值)振荡周期12 最大定时

7、时间为“T0初值=0”时。,2020/8/4,例6-2:设定时器T0用于定时10ms,晶振为6MHz。试确定T0初值。并编写定时器T0初始化程序段。 解:1)确定T0初值 定时时间:,所以:,T0初值=3192=C78H =0000 1100 0111 1000 B,即:(TH0)=0110 0011 B=63H(高8位) (TL0)=1 1000 B=18H(低5位),2020/8/4,TMOD的低四位为T0的控制位 模式0:M1M0=00, 定时器方式:C/T=0, 门控位不受INT0的影响:GATE=0, 模式字为 TMOD=0000 0000 B=00H,解:2)确定TMOD的初值,2

8、020/8/4,解:3)编写定时器T0的初始化程序段 主程序: ORG 0100H MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#00H ;选择工作模式 MOV TH0,#63H ;送初值 MOV TL0,#18H SETB TR0 ;启动定时 ,2020/8/4,例6-3:设定时器T1工作于模式0,晶振为6MHz。编程实现:每10ms时间P1.0取反的程序(50Hz的方波)。 解:1)确定T1初值(同例2) (TH1)=0110 0011 B=63H(高8位) (TL1)=1 1000 B=18H(低5位),2)确定TMOD的初值 TMOD=0000 0000 B=0

9、0H,2020/8/4,解: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 ;等待时间到,转入中断服务程序,2020/8/4,中断服

10、务程序: ORG 0150H ITOP: MOV TL1,#18H ;重新装入初值 MOV TH1,#63H CPL P1.0 ;P1.0取反 RETI;中断返回,例6-4:利用T0的工作模式0产生定时,在P1.0引脚输出周期为10ms的方波。设晶振频率fosc=12MHz。编程实现其功能(分别采用查询方式和中断方式)。,解:要在P1.0引脚输出周期为10ms的方波,只要使P1.0每隔5ms取反一次即可。,计算5ms定时T0的初值: T = (213T0初值)(1/12)10-612 = 510-3 s T0初值 = 3192 D = C78 H = 01100011 11000 B T0的低

11、5位:11000 B=18H 即 (TL0)=18H T0的高8位:01100011 B=63H 即 (TH0)=63H,2020/8/4,(3)采用查询方式的程序 程序清单: ORG 0000H LJMPMAIN ;初始化引导程序 ORG0080H MAIN:MOV TMOD,#00H ;设置T0为模式0 MOV TL0,#18H ;送初值 MOV TH0,#63H SETBP1.0 SETB TR0 ;启动定时 LP:JBC TF0,NEXT ;查询定时时间到否 SJMP LP NEXT:MOV TL0,#18H ;重装计数初值 MOV TH0,#63H CPL P1.0 ;取反 SJMP

12、 LP ;重复循环,2020/8/4,查询也可用以下指令 LOOP: JNB TF0,LOOP ;查询定时时间到否 CLR TF0 ;产生溢出,清标志位,(4)采用定时器溢出中断方式的程序 ORG 0000H ; 主程序 RESET: AJMP MAIN ; 跳过中断服务程序区 ORG 000BH;定时器T0中断矢量 AJMP CTC0;转入中断服务程序 ORG 0030H MAIN:MOV TMOD,#00H;设置T0为模式0 MOV TL0,#18H ;送初值 MOV TH0,#63H SETB EA ;CPU开中断 SETB ET0 ;T0中断允许 SETB TR0 ;启动定时 HERE

13、:SJMP HERE ;等待中断 ORG 0120H ;中断服务程序 CTC0: MOV TL0,#18H ;重新装入初值 MOV TH0,#63H CPL P1.0 ;P1.0取反 RETI;中断返回,6.3.2 模式 1 及其应用,一、模式 1 的逻辑电路结构: (T0模式 1 的逻辑电路结构与T1相同) 二、模式 1 工作特点 三、模式 1 的应用举例,2020/8/4,GATE=0时,TR1=1开始定时/计数; GATE=1时(门控方式), TR=1且INT1=1时,开始工作.此种方式主要用于测量加在INT1脚上一个正脉冲的脉宽。,一、模式 1 的逻辑电路结构,二、模式 1 工作特点,

14、该模式对应的是一个16位的定时器/计数器。,用于定时工作方式时,定时时间为: t=(216T0初值)振荡周期12 用于计数工作方式时,计数长度为: (216T0初值)(个外部脉冲),2020/8/4,三、模式 1 的应用举例,例6-5: 1、设定时器T0选择工作模式1的计数器工作方式,其计数器初值为FFFFH,问此时定时器T0的实际用途是什么? 解:因其初值为FFFFH,只要随机外来一脉冲即可溢出,向CPU申请中断,故这一内部中断源实质上已作为外部中断源使用。因此此定时器T0并不用于定时或计数。,2020/8/4,2、设晶振为12MHz,试计算定时器T0工作于模式1时的最大定时时间T。 解:定

15、时时间为: t=(216T0初值)振荡周期12 最大定时时间为“T0初值=0”时。 所以:,2020/8/4,例6-6 :脉冲宽度的测量。测量输入到单片机P3.3引脚上的周期性脉冲信号的脉冲宽度。 分析:由前面的介绍可知,当GATE=1时,是一种采用软件和硬件联合控制的方法来实现计数器运行与否的控制。这一功能,可测量引脚P3.3上的周期性脉冲信号的脉冲宽度。,汇编语言源程序如下:,ORG0000H; 复位入口 AJMPMAIN ORG0030H MAIN:MOVSP,#60H; 系统初始化 MOVTMOD,#90H; T1定时,方式1,且GATE=1 MOVTH1, #00H; T1从0开始作加1计数 MOVTL1, #00H CLRTR1 JBP3.3, $; 等待P3.3引脚的第一个下降沿 JNBP3.3, $; 等待P3.3引脚的第一个上升沿 SETBTR1; 启动T1开始定时 JBP3.3, $; P3.3为高电平时,CPU等待 CLR TR1; P3.3变为低电平时停止T1计数 LCALL Display; 调用显示子程序,显示测量结果即脉冲宽度 ,例6-7:脉冲信号的产生。设晶

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号