单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器

上传人:E**** 文档编号:89493541 上传时间:2019-05-25 格式:PPT 页数:47 大小:854KB
返回 下载 相关 举报
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器_第1页
第1页 / 共47页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器_第2页
第2页 / 共47页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器_第3页
第3页 / 共47页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器_第4页
第4页 / 共47页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器》由会员分享,可在线阅读,更多相关《单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第6章 定时器计数器(47页珍藏版)》请在金锄头文库上搜索。

1、1,第6章 AT89S51单片机的 定时器/计数器,2,定时器/计数器结构如下图所示,定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。,6.1 定时器/计数器的结构,3,具有定时器和计数器2种工作模式,4种工作方式(方式0、方式1、方式2和方式3)。 TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。 TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。 T0、T1不论是工作在定时器模式还是计数器模式,都是对脉冲信号进行计数,只是计数信号的来源不同。,4,计数器模式是对加在T0(P3.4)和T1(P3.

2、5)两个引脚上的外部脉冲进行计数。 定时器工作模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。由于时钟频率是定值,所以可根据计数值可计算出定时时间。,5,用于选择定时器/计数器的工作模式和工作方式,字节地址为89H,不能位寻址,格式如下图所示。,6.1.1 工作方式控制寄存器TMOD,(1)GATE门控位。 为0:仅由运行控制位TRx(x = 0,1)来控制定时器/计数器运行。 为1:用外中断引脚上的电平与运行控制位TRx共同来控制定时器/计数器运行。 (2)C/ 计数器模式和定时器模式选择位 为0:为定时器工作模式。为1:为计数器工作模式。,6,(3)M1、M0工作方式选择

3、位 M1、M0共有4种编码,对应于4种工作方式的选择,如下表所示。,7,字节地址为88H,可位寻址,位地址为88H8FH。格式如下图所示。,6.1.2 定时器/计数器控制寄存器TCON,(1)TF1、TF0计数溢出标志位。 当计数器计数溢出时,该位置“1”。 (2)TR1、TR0计数运行控制位。 TR1位(或TR0位)= 1,启动定时器/计数器工作的必要条件。 TR1位(或TR0位) = 0,停止定时器/计数器工作。,8,6.2.1 工作方式0 M1、M0=00时,被设置为工作方式0,等效逻辑结构框图如下图所示。,6.2 定时器/计数器的4种工作方式,9,C/ 位控制的电子开关决定了定时器/计

4、数器的两种工作模式。 (1)C/ =0,电子开关打在上面位置,T1(或T0)为定时器工作模式,把时钟振荡器12分频后的脉冲作为计数信号。 (2)C/ =1,电子开关打在下面位置,T1(或T0)为计数器工作模式,计数脉冲为P3.4(或P3.5)引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1。 GATE位状态决定定时器/计数器的运行控制取决TRx一个条件还是TRx和 x(x = 0,1)引脚状态两个条件。,10,(1) GATE = 0,A点电位恒为1,B点电位仅取决于TRx状态。TRx = 1,允许T1(或T0)对脉冲计数。TRx = 0,禁止T1(或T0)计数。 (2) GATE =

5、1,B点电位由 (x = 0,1)的输入电平和TRx的状态这两个条件来确定。当TRx = 1,且 =1时,允许T1(或T0)计数。,11,当C/=1时,定时器/计数器工作在计数状态,13位加法器对Tx引脚上的外部脉冲计数。计数值由下式确定: 当C/=0时,定时器/计数器工作在定时状态,加法计数器对机器周期脉冲进行计数,每个机器周期TLx加1。定时时间由下式确定:,12,当M1、M0=01时,定时器/计数器工作于方式1,这时定时器/计数器的等效电路逻辑结构如下图所示。,6.2.2 工作方式1,13,在工作方式1下,计数器的计数值由下式确定: 定时器的定时时间由下式确定:,14,当M1、M0为10

6、时,定时器/计数器处于工作方式2,这时定时器/计数器的等效逻辑结构如下图所示。,6.2.3 工作方式2,定时器/计数器的方式2为自动恢复初值(初值自动装入)的8位定时器/计数器。,15,该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。工作过程如下:,16,在工作方式2下,计数器的计数值由下式确定: 定时器的定时时间由下式确定:,17,是为增加一个8位定时器/计数器而设,使AT89S51单片机具有3个定时器/计数器。 方式3只适用于T0,T1不能工作在方式3。T1处于方式3时相当于TR1= 0,停止计数,可做串行口波特率产生器使用。 1工作方式3

7、下的T0 定时器/计数器T0分为两个独立的8位计数器TL0和TH0,TL0既可作计数器用,又可作定时器用,定时器/计数器T0的各控制位和引脚信号全归它使用。而TH0只能作简单的定时器使用 。,6.2.4 工作方式3,18,工作在工作方式3下的定时器/计数器T0的等效电路逻辑结构如图6-7所示。,19,2T0工作在方式3时T1的各种工作方式 一般情况下,当T1用作串行口的波特率发生器时,T0才工作在方式3。T0处于工作方式3时,T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的场合。,20,(1)T1工作在方式0 定时器/计数器T1工作在工作方式0下时, T1的控制字

8、中M1、M0 = 00,T1工作在方式0,工作示意图如下图所示。,21,(2)T1工作在方式1 定时器/计数器T1工作在工作方式1下时,T1的控制字中M1、M0 = 01,T1工作在方式1,工作示意图如下图所示。,22,(3)T1工作在方式2 定时器/计数器T1工作在工作方式2下时,T1的控制字中M1、M0 = 10时,T1的工作方式为方式2,工作示意图如下图所示。,23,(4)T1设置在方式3 由于定时器/计数器T1不能工作在工作方式3,当强行把定时器/计数器T1设置为工作方式3时,定时器/计数器T1就会停止工作。,24,计数器在每个机器周期的S5P2期间,都对外部输入引脚T0或T1上的信号

9、进行采样。若前一个机器周期的采样值为1,下一个机器周期的采样值为0,则计数器加1。所以,检测一个从1到0的跳变需要两个机器周期,因此,外部输入信号的周期应大于或等于两个机器周期,也就是说外部输入信号的频率必须小于晶体振荡频率的1/24,若频率超过晶体振荡频率的1/24,则无法准确计数脉冲个数。,6.3 对外部输入的计数信号的要求,25,例6-1:若系统振荡器频率选用12MHz的频率,则可输入的脉冲信号的最高频率为多少? 解:输入脉冲信号的频率 因此,可输入的脉冲信号的最高频率为500kHz。,26,6.4.1 工作方式1的应用 例6-2:已知单片机晶体振荡频率为12MHz,要求定时器T0工作在

10、工作方式1,在P1.0引脚上输出一个周期为250s的等宽度方波脉冲,如下图所示。,6.4 定时器/计数器的编程和应用,27,参考程序如下: ORG 0000H ;程序入口 RESET:AJMP MAIN ;转主程序 ORG 000BH ;T0中断入口 AJMP IT0P ;转T0中断处理程序IT0P ORG 0100H ;主程序入口 MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#01H ;设置T0为方式1定时 ACALL PT0M0 ;调用初始化子程序PT0M0 HERE: AJMP HERE ;原地循环,等待中断 PT0M0:MOV TL0,#83H ;T0初始化,装

11、初值的低8位,28,MOV TH0,#0FFH ;装初值的高8位 SETB ET0 ;允许T0中断 SETB EA ;总中断允许 SETB TR0 ;启动T0 RET IT0P: MOV TL0,#83H ;中断子程序,T0重装初值 MOV TH0,#0FFH CPL P1.0 ;P1.0的状态取反 RETI,29,查询方式参考程序如下: MOV TMOD,#01H ;设置T0为方式1 LOOP:MOV TH0,#0FFH ;T0置初值 MOV TL0,# 83H SETB TR0 ;接通T0 LOOP1:JNB TF0,LOOP1 ;查TF0,TF0 =1,T0溢出 CLR TR0 ;T0溢

12、出, 关断T0 CPL P1.0 ;P1.0的状态求反 SJMP LOOP,30,工作方式2是一个可以自动重新装载初值的8位计数器/定时器。可省去重装初值指令。 例6-4:AT89S51单片机的硬件连接图如下图所示,要求用定时器T0为工作方式2对外部脉冲进行计数。每计满20个脉冲,就使P1.0引脚外接的发光二极管的状态发生变化,由亮变暗,或反之。,6.4.2 工作方式2的应用,31,参考程序如下: ORG 0000H ;程序入口 LJMP MAIN ORG 000BH ;T0的中断入口 LJMP IT0P ;转T0中断服务程序 ORG 0100H ;主程序入口 MAIN: MOV TMOD,#

13、06H ;T0方式2,计数模式 MOV TL0,#0ECH ;T0置初值 MOV TH0,#0ECH SETB ET0 ;允许T0中断 SETB EA ;总中断允许 SETB TR0 ;启动T0,32,HERE: SJMP HERE ORG 0200H ;T0中断服务程序 IT0P: CPL P1.0 ; P1.0位取反 RETI END,33,方式3下的T0和T1大不相同。T0工作在方式3,TL0和TH0被分成两个独立的8位定时器/计数器。其中,TL0可作为8位的定时器/计数器,而TH0只能作为8位的定时器。此时T1只能工作在方式0、1或2。 一般情况下,当T1用作串行口波特率发生器时,T0

14、才设置为方式3。此时,常把定时器T1设置为方式2,用作波特率发生器。,6.4.3 方式3的应用,34,例6-7:AT89S51单片机的晶体振荡频率为6MHz,假设单片机应用系统的两个外部中断源已被占用,设置定时器/计数器T1工作在方式2,用作波特率发生器。现要求增加一个外部中断源,并控制P1.0引脚输出一个周期为400s的方波。,35,参考程序如下: ORG 0000H LJMP MAIN ORG 000BH ;TL0中断入口,TL0使用T0的中断 LJMP TL0INT;跳向TL0中断服务程序,TL0占用T0中断 ORG 001BH ;TH0中断入口,T0为方式3时,TH0 ;使用了T1的中

15、断 LJMP TH0INT ;跳向TH0中断服务程序 ORG 0100H ;主程序入口 MAIN: MOV TMOD,#27H ;T0方式3,T1方式2定时作 ;串行口波特率发生器 MOV TL0,#0FFH ;置TL0初值 MOV TH0,#9CH ;置TH0初值,36,MOV TL1,#datal ;TL1装入串口波特率常数 MOV TH1,#datah ;TH1装入串口波特率常数 MOV TCON,#15H ;允许T0中断 MOV IE,#9FH ;设置中断允许,总中断允许, ;TH0、TL0中断允许 HERE: AJMP HERE ;循环等待 TL0INT:MOV TL0,#0FFH ;TL0中断服务处理 ;子程序,TL0重新装入初值 SETB TR1 ;开始启动TH0定时 RETI TH0INT:MOV TH0,#9CH ;TH0中断服务程序, CPL P1.0 ;P1.0位取反输出 RETI,37,工作方式控制寄存器TMOD中的门控制位GATE使定时器/计数器Tx(x=0、1)受 (x=0、1)的控制,当GATE=1,TRx=1(x=0、1)时,只有 (x=0、1)引脚输入为高电平时,Tx(x=0、1)才允许计数,因此,可以利用GATE的这个功能,测量 (x=0、1)引脚上正脉冲的宽度。下面具体介绍门控制位GATE的应用,即测量 (x=0、1)引脚

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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