单片机原理及应用胡乾斌第七章课件

上传人:我*** 文档编号:141025559 上传时间:2020-08-03 格式:PPT 页数:39 大小:631KB
返回 下载 相关 举报
单片机原理及应用胡乾斌第七章课件_第1页
第1页 / 共39页
单片机原理及应用胡乾斌第七章课件_第2页
第2页 / 共39页
单片机原理及应用胡乾斌第七章课件_第3页
第3页 / 共39页
单片机原理及应用胡乾斌第七章课件_第4页
第4页 / 共39页
单片机原理及应用胡乾斌第七章课件_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《单片机原理及应用胡乾斌第七章课件》由会员分享,可在线阅读,更多相关《单片机原理及应用胡乾斌第七章课件(39页珍藏版)》请在金锄头文库上搜索。

1、第7章 MCS-51的定时器/计数器 两个可编程的定时器/计数器T1、T0。 两种工作方式: (1)计数器工作方式 (2)定时器工作方式 4种工作模式(模式0-模式3) 。 模式0,13位定时器/计数器 模式1,16位定时器/计数器 模式2,8位常数自动重新装载 模式3,T0分成两个8位定时器/计数器,T1停止计数。,单片机复位时, TMOD和TCON两个寄存器的所有位都被清0。,7.1 定时器/计数器的结构 工作方式寄存器TMOD:选择定时器/计数器T0、T1的工作方式和工作模式; 控制寄存器TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。,/INT0 /INT1 P3

2、.2 P3.3,单片机复位时, TMOD和TCON两个寄存器的所有位都被清0。,7.1 定时器/计数器的结构 工作方式寄存器TMOD:选择定时器/计数器T0、T1的工作方式和工作模式; 控制寄存器TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。,7.1.1 定时器/计数器控制寄存器TCON,T1溢出中断标志: 1,有请求;0,无请求;,T1运行控制位: 1,启动T1;0,关闭T1;,T0溢出中断标志: 1,有请求;0,无请求;,T0运行控制位: 1,启动T0; 0,关闭T0,/INT0触发方式: 1,下降沿引起; 0,低电平引起,/INT0中断请求标志位 1,有请求;0,

3、无请求;,/INT1触发方式: 1,下降沿引起; 0,低电平引起,/INT1中断请求标志位 1,有请求;0,无请求;,低4位与外部中断有关,已介绍。高4位的功能如下: (1) TF0 、 TF1计数溢出标志位 当启动T0计数后,定时器/计数器T0从初值开始加1计数,当最高位产生溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断时,由硬件自动清“0”TF0,TF0也可由软件查询,查询后由软件清0 。(2) TR0 、 TR1计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作 由软件置位/复位,即由软件置“1”或“0”。,7.1.2 工作方式寄存器TMOD,M

4、1 M0 : 工作模式选择位,计数器方式和定时器方式选择位: 0:定时器方式; 1:计数器方式。,门控位:1,打开;0,关闭,0 0 模式0 0 1 模式1 1 0 模式2,M1 M0 : 工作模式选择位,0 0 模式0 0 1 模式1 1 0 模式2 1 1 模式3,计数器方式和定时器方式选择位: 0:定时器方式; 1:计数器方式。,门控位:1,打开;0,关闭,(2)M1 M0工作模式选择位 M1 M0 工 作 模 式 0 0 模式0,13位定时器/计数器 0 1模式1,16位定时器/计数器 1 0 模式2,8位常数自动重新装载 1 1 模式3,仅适用于T0,T0分成两个8位计数器,T1停止

5、计数。,8位分为两组,高4位控制T1,低4位控制T0。 (1)GATE门控位 0:以运行控制位TRX(X=0,1)来启动定时器/计数器运行。 1:用外中断引脚(/INT0或/INT1)上的高电平来启动定时器/计数器运行(TRX=1:X=0,1)。,(3) C/T*计数器方式和定时器方式选择位 0:定时器方式。 1:计数器方式。,7.2 定时器/计数器的4种工作模式 7.2.1 模式0 M1、M0为00 ,定时器/计数器的框图:,为13位的定时器/计数器 ,C/T* 位控制的电子开关决定了定时器/计数器的工作方式。 0:电子开关打在上面,为定时器工作方式,对机器周期计数,计数信号频率fosc/1

6、2。 1:电子开关打在下面,为计数器工作方式,计数脉冲为P3.4、P3.5引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1,计数信号频率不超过fosc/24。 GATE位的状态决定定时器/计数器运行控制取决于TRX一个条件还是TRX和引脚这两个条件。,启动计数方式:,非门控方式: 当GATE0, 控制权由 TRx 决定 TRx1 计数开始 TRx 0 计数停止,门控方式: 当GATE1、TRx1 控制权由 INTx 决定 INTx1 计数开始 INTx 0 计数停止,7.2.2 模式1 M1、M0为01,16位的计数器。THx8位和TLx8位组成16位加1计数器,最大计数脉冲个数:165

7、536(216),最长定时时间(晶振12MHz T=1s):1s 65536T= 65.54ms,启动计数方式:,非门控方式:当GATE0, 控制权由 TRx 决定 TRx1 计数开始 TRx 0 计数停止,门控方式:当GATE1、TRx1 控制权由 /INTx 决定 /INTx1 计数开始 /INTx 0 计数停止,模式2为自动恢复初值的(初值自动装入)8位定时器/计数器,TLX作为常数缓冲器,当TLX计数溢出时,在置“1”溢出标志TFX的同时,还自动的将THX中的初值送至TLX,使TLX从初值开始重新计数。定时器/计数器的模式2工作过程如图所示(X=0,1)。,7.2.3 模式 2 计数满

8、后自动装入计数初值。M1、M0=10,等效框图如下:,省去用户软件中重装初值的程序。精确的确定定时时间。,7.2.4 模式3 只适用于定时器/计数器T0 ,T1不能工作在模式3。T1为模式3时相当于TR1=0,停止计数(此时T1可用来作串行口波特率产生器)。 工作模式3下的T0: T0分为两个独立的8位定时/计数器:TL0和TH0。TL0使用T0的状态控制位C/T*、GATE、TR0,而TH0被固定为一个8位定时器(不能作外部计数方式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断请求源TF1。 各引脚与T0的逻辑关系如图所示。,* T0工作在模式3下T1的各种工作模式

9、 T0处于模式3时, T1可定为模式0、模式1和模式2,用来作为串行口的波特率发生器,或不需要中断的场合。 最常用的是模式2 ,用来作为串行口的波特率发生器。 设置T1为模式0、模式1和模式2就自动运行。 设置T1为模式3就停止工。 例:T1工作在模式2。,*运行中读定时器/计数器 在读取运行中的定时器/计数器时,需要特别加以注意,若恰好出现TLX溢出向THX进位的情况,则读得的(TLX)值就完全不对了。同样,先读(THX)再读(TLX)也可能出错。 方法:先读(THX),后读(TLX),再读(THX)。若两次读得(THX)相同,则读得的内容正确。若前后两次读得的(THX)有变化,则再重复上述

10、过程,这次重复读得的内容就应是正确的。下面是有关的程序,读得的(TH0)和(TL0)放置在R1和R0内。,ORG 300H RDTIME:MOV A,TH0;读(TH0) MOV R0,TL0;读(TL0) CJNE A,TH0,RDTIME ;比较2次读得的(TH0),不相等则重复 MOV R1,A;(TH0)送入R1中 RET,7.3 定时器/计数器应用中的两个问题,* 定时器/计数器对输入信号的要求 外部输入的计数脉冲的最高频率为系统振荡器频率的1/24,例如选用12MHz频率的晶体,则可输入500KHz的外部脉冲。 为了确保某一给定的电平在变化之前能被采样一次,则这一电平至少要保持一个

11、机器周期。当一个机器周期采样为高电平,另一个机器周期采样为低电平,计时器加1.故对外部输入信号的基本要求如图所示,图中Tcy为机器周期。,0:禁止中断;1:允许中断。,中断允许寄存器IE,# 中断控制,中断优先级寄存器IP,1:高优先级中断;0:低优先级中断。,# 定时器/计数器控制寄存器TCON,T1溢出中断标志: 1,有请求;0,无请求;,T1运行控制位: 1,启动T1;0,关闭T1;,T0溢出中断标志: 1,有请求;0,无请求;,T0运行控制位: 1,启动T0; 0,关闭T0,/INT0触发方式: 1,下降引起; 0,低电平引起,/INT0中断请求标志位 1,有请求;0,无请求;,/IN

12、T1触发方式: 1,下降引起; 0,低电平引起,/INT1中断请求标志位 1,有请求;0,无请求;,# 工作方式寄存器TMOD,M1 M0 : 工作模式选择位,计数器方式和定时器方式选择位: 0:定时器方式; 1:计数器方式。,门控位:1,打开;0,关闭,0 0 模式0 0 1 模式1 1 0 模式2,M1 M0 : 工作模式选择位,0 0 模式0 0 1 模式1 1 0 模式2 1 1 模式3,计数器方式和定时器方式选择位: 0:定时器方式; 1:计数器方式。,门控位:1,打开;0,关闭,7.4 定时器/计数器的应用,6.4.1 计算时间常数X(计数初值),使用定时器/计数器工作之前,先确定

13、工作方式和工作模式,正确设置IP, IE, TCON, TMOD, 对定时器/计数器初始化,并将初值送入定时器/计数器。,计数功能:X= 2n -计数值 , X=模-计数值 定时功能: ( 2n-X ) 12 / fosc = T , ( 模-X) TM = T X= 2n - T fosc /12 , X= 模 - T fosc /12 X:计数初值; TM:机器周期; T:定时时间(s); 晶振频率: fosc(HZ);n:8,13,16 模式0: 2n = 213=8192 X= 1FF16 - T fosc /12 模式1: 2n = 216=65536 X= FFF16 - T fo

14、sc /12 模式2: 2n = 28=256 X= F16 - T fosc /12 模式3: 2n = 28=256,例: 单片机晶振fosc=6MHZ,要求由P1.0端输出一个周期为500us的方波信号,方波周期由定时器T1确定,采用查询方法。(参考),ORG 100H MOV TMOD,#00H ;设置T1的定时模式0 MOV TH1,#0FCH ;设置计数初值 MOV TL1,#03H MOV IE,#00H ;禁止中断 SETB TR1 ;启动定时器 LOOP: JBC TF1,LOOP1 ;查询计数溢出位TF1后清0 AJMP LOOP LOOP1: MOV TH1,#0FCH

15、;重新置计数初值 MOV TL1,#03H CLR TF1 ;计数溢出标志位清零(可省) CPL P1.0 ;输出值取反 AJMP LOOP END,解:周期为500us的方波,其脉宽为250us,故定时值T=250us。 采用模式0:晶振频率:fosc=6MHZ;X=模- T fosc /12 T fosc /12 =25010-6 6 106 /12 =125D=7DH X= 1FF16-7DH=1F83H=1111110000011B TH1=FCH TL1=00000011B=03H,例: 单片机晶振fosc=6MHZ,用定时器T1的定时模式1,以中断方式由P1.0端输出一个周期为500us的方波信号。,ORG 2000H MAIN: MOV TMOD,#10H ;设置定时器T1的定时模式1 MOV TH1,#0FFH ; 设置计数初值 MOV TL1,#83H SETB EA ;开中断 SETB ET1 ;允许定时器T1 中断 LOOP: SETB TR1 ;定时器T1 开始计数 HERE: SJMP $ ;等待中断 中断服务程序: ORG 001BH

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

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

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