第6章单片微机的定时器计数器原理及应用讲义

上传人:今*** 文档编号:108186396 上传时间:2019-10-22 格式:PPT 页数:38 大小:2.61MB
返回 下载 相关 举报
第6章单片微机的定时器计数器原理及应用讲义_第1页
第1页 / 共38页
第6章单片微机的定时器计数器原理及应用讲义_第2页
第2页 / 共38页
第6章单片微机的定时器计数器原理及应用讲义_第3页
第3页 / 共38页
第6章单片微机的定时器计数器原理及应用讲义_第4页
第4页 / 共38页
第6章单片微机的定时器计数器原理及应用讲义_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第6章单片微机的定时器计数器原理及应用讲义》由会员分享,可在线阅读,更多相关《第6章单片微机的定时器计数器原理及应用讲义(38页珍藏版)》请在金锄头文库上搜索。

1、第六章 单片微机的定时器/计数器原理及应用,南京邮电大学 电气工程系,本章简介,2,6.1 概述 6.2 定时器/计数器T0、T1 6.3 监视定时器(看门狗)T3 6.4 定时器/计数器的应用编程,3,6.1 概述,定时或计数(数据定时采样、外部事件技术) 1硬件法 定时功能完全由硬件电路完成,不占用CPU时间 2软件法 软件定时是执行一段循环程序来进行时间延时。牺牲了CPU的时间,4,3可编程定时器计数器 通过软件编程来实现定时时间的改变 通过中断或查询方法来完成定时功能或计数功能 80C51:16位的T0和T1 80C51系列的部分产品(如Philips公司的80C552)中:作看门狗的

2、8位定时器T3,5,定时器计数器的核心:加1计数器 基本功能:计数加1 计数是对T0、T1 引脚上输入的负跳变进行计数增l 定时是对单片微机内部的机器周期进行计数,从而得到定时 波特率发生器80C51的定时器/计数器还可用作串行接口的波特率发生器,6,6.2 定时器计数器T0、T1,定时器/计数器T0、T1的内部结构框图,7,6.2.1 与T0、T1有关的特殊功能寄存器,1. T0、T1 的方式寄存器TMOD,D7 D6 D5 D4 D3 D2 D1 D0,T1,T0, GATE:门控位 GATE=1:(INT0=1)(TR0=1)共同启动T0 (INT1=1)(TR1=1)共同启动T1 GA

3、TE=0:仅由TR0和TR1置位来启动T0和T1,8, CT:功能选择位 C/T=0:定时器 计数输入信号:内部时钟脉冲 每个机器周期使计数器的值增1 计数速率:振荡频率的112, C/T=1:计数器 计数输入信号:通过引脚T0和T1的外部信号 在S5P2期间,CPU采样,若遇负跳变,则计数增1,9, M1、M0:工作方式选择位,10,2. T0、T1 的控制寄存器TCON(跟中断控制?),TF0:T0的溢出标志,TR0:T0的运行控制位,TR1:T1的运行控制位,TF1:T1的溢出标志,复位后,TCON的所有位均清0,11,3. T0、T1 的数据寄存器 由TH1、TL1和TH0、TL0寄存

4、器所组成 复位后,这4个寄存器全部清零,4. 定时器/计数器中断 中断允许寄存器IE 中断矢量 中断优先级寄存器IP,12,6.2.2 T0、T1 的工作方式,1. 方式0 13位定时器/计数器,方式0时,T0、T1的逻辑结构图,TLx低五位溢出,向THx进位,计数溢出时,TFx置位,13,2. 方式1 16位定时器/计数器,方式1时,T0、T1的逻辑结构图,14,3. 方式2 定时常数自动重装载的8位定时器/计数器,方式2时,T0、T1的逻辑结构图,计数寄存器,计数常数寄存器,溢出时,TFx置位、重装载,15,注: 重新装入不影响THx的内容 可实现每隔预定时间发出控制信号 方式2适合于作为

5、串行口波特率发生器使用,16,4. 方式3,一个8位定时器计数器TL0,一个 8位定时器TH0,T0,T1:停止计数,17,方式3时,T0的逻辑结构图,TL0占用了T0的GATE、INT0、TR0、T0引脚 以及TF0和T0的中断矢量等,TH0占用了T1的TR1、TF1和T1的中断矢量,18,方式3时,T1的逻辑结构图,T0方式3时,T1仅能作为波特率发生器或不用中断的地方,19,6.3 监视定时器(看门狗)T3,可强迫单片机进入复位状态,从硬件或软件故障中解脱出来,20,8位定时器T3每隔时间t加1: t=122048/fosc 当晶振为12MHz时,t为2.048ms T3的控制:EWPC

6、ON PCON的格式:,WLE :看门狗定时器允许重装标志,置位时,定时器T3 被软件重装,EW :看门狗定时器允许,低电平有效。,21,在T3溢出时,复位8XC552,并产生复位脉冲输出至复位引脚RST 为防止系统复位,必须在定时器T3溢出前,通过软件对其进行重装 首先要确定系统能在不正常状态下维持多久,这段时间就设定为监视定时器的最大间隔时间。 T3中装入0:监视时间间隔最长 装入值为FFH:监视时间间隔最短 如果发生软件或硬件故障,将使软件对定时器T3重装失败,从而T3溢出导致复位信号的产生,22,例:watchdog使用的一段程序如下: T3 EQU 0FFH ;定时器T3的地址 PC

7、ON EQU 87H ;电源控制寄存器PCON的地址 WATCH_INTV EQU 156 ;看门狗的时间间隔(2.048100ms) 插在用户程序中对看门狗需要重新装入的地方: LCALL WATCHDOG;调用看门狗服务子程序 WATCHDOG:ORL PCON,10H ;允许定时器T3重装 MOV T3,WATCHINTV ;装载定时器T3 RET,23,6.4 定时器/计数器的应用编程, 定时器计数器溢出率的计算 定时器计数器运行前,在数据寄存器中预先置入的常数,称为定时常数或计数常数TC 其中: t:定时时间; Tc:机器周期 fosc:晶体振荡器频率; L:计数器的长度。,6.4.

8、1 定时器的应用,24,T0及T1: 方式0 L=13 2138 192 方式1 L16 21665 536 方式2 L8 28256 TC:定时器计数器初值,即定时常数或计数常数。 定时时间的倒数即为溢出率,即:,25,根据要求的定时时间t、设定的定时器工作方式(确定L) 及晶体振荡频率fosc,可计算出TC值(十进制数),再将其转换成二进制数TCB,然后再分别送入THi、TLi。,26,对于T0、T1: 方式0时:TCB=TCHTCL,TCH:高8位,TCL:低5位 MOV THi,TCH ;送高8位 MOV TLi,TCL ;送低5位(高3位为0) 方式1时:TCB=TCHTCL,TCH

9、 : 高8位,TCL: 低8位 MOV THi,TCH ;送高8位 MOV TLi,TCL ;送低8位。 方式2时:TCB 8位重装载 MOV THi,TCB ;送高8位 MOV TLi,TCB;送低8位。,27,例 要求在 P1.0引脚上产生周期为2 ms的方波输出,已知晶体振荡器的频率为fosc=6MHz。可使用T0作定时器,设为方式0,设定1ms的定时,每隔1ms使P1.0引脚上的电平变反 (1) 解:定时常数计算 振荡器的频率fosc6MHz,机器周期为2s,方式0计数器长度L13(2138 192),定时时间 t1ms0.001s 定时常数:,28,TC为76921E0CH, 二进制

10、数TCB0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 B,取低13位,其中高8位TCHF0H,低5位为TCL0CH.计数长度为1E0CH=7692,定时为(81927692)2s=0.001S TMOD的设定,29,( 2) 编 程 ORG 0000H AJMP MAIN ORG 000BH ;T0中断矢量 AJMP INQP ORG 0030H MAIN: MOV TMOD,00H ;设T0为定时器方式0 MOV TH0,0F0H ;写定时常数(定时1ms) MOV TL0,0CH,30,SETB TR0 ;启动 T0 SETB ET0 ;允许T0中断 SETB EA ;开

11、放CPU中断 AJMP $ ;定时中断等待 ORG 2000 H ;T0中断服务程序 INQP:MOV TH0,0F0H ;重写定时常数 MOV TL0,0CH CPL P10 ;P10变反输出 RETI ;中断返回,31,6.4.2 计数器的应用,当TMOD寄存器中C/T位设置为“1”时,作为计数器使用,可对来自单片微机引脚T0或T1上的负跳变脉冲进行计数,计数溢出时可申请中断,也可查询溢出标志位TFx。 例假如一个用户系统已使用了两个外部中断源,即INT0和INT1,用户系统要求从P1.0引脚上输出一个5kHz的方波,并要求采用定时器/计数器作为串行口的波特率发生器,另外还需要再增加一个外

12、部中断源。,32,把T0设置为方式3, 把T0作为外部中断源,TL0设置为计数器,计数器的定时常数设为FFH,相当于一个边沿触发的外部中断源。 而在T0方式3下,TH0只能做8位定时器,用来产生5KHz方波的定时。 当T0设置为方式3之后,T1就作为串行口的波特率发生器,设为方式2。 由P1.0引脚上输出5kHz频率的方波,而方波周期为200s,则要求定时时间为100s,若采用12MHz的晶体振荡器,则机器周期为1s。,33,计算时间常数: (28TC)1s100s TC256100156 编程: ORG 0000H SJMP MAIN ORG 000BH AJMP TL0INT ;TL0中断

13、入口 ORG 001BH AJMP TH0INT ;TH0中断入口,34,ORG 0030H MAIN: MOV TMOD,#27H ;设T0为方式3,TL0为计数 ;器方式,TH0为定时器方式, ; T1作波特率发生器,方式2 MOV TH0,#156 ;TH0定时常数 MOV TL0, #0FFH ;TL0计数常数 MOV TL1,#BAUD ;BAUD根据波特率算出 MOV TH1,#BAUD MOV TCON,#55H ;置TR0和TR1为“1”,启 ;动TL0和TH0,35,SETB ET0 ;允许TL0中断 SETB ET1 ;允许TH0中断 SETB EA ;允许CPU中断 SJ

14、MP $ ;中断等待 ORG 0100H TL0INT: MOV TL0,#0FFH ;重置计数长度 (中断处理) RETI TH0INT: MOV TH0,#156 ;重置定时常数 CPL P1.0 ;P1.0引脚输出方波 RETI,36,6.4.3 门控位GATE的应用,定时器实际记录的时间就是相应INTx引脚上高电平的持续时间 通过反相器可以测低电平的持续时间,若GATE=1且TRx=1,当INTx=1时,定时器才工作,6.4.4 运行中读定时器/计数器,37,80C51可以随时读写计数寄存器TLx和THx (x为0或1) ,用于实时显示计数值等。 办法是:先读THx,后读TLx,再重读THx,若两次读得的THx值是一样的,则可以确定读入的数据是正确的;若两次读得的THx值不一致,则必须重读。,38,习题5,

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

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

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