第章单片微机的定时器计数器原理及应用ppt课件_第1页
第章单片微机的定时器计数器原理及应用ppt课件_第2页
第章单片微机的定时器计数器原理及应用ppt课件_第3页
第章单片微机的定时器计数器原理及应用ppt课件_第4页
第章单片微机的定时器计数器原理及应用ppt课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、51单片机单片机IO端口操作的一个有趣景象:我想实现端口操作的一个有趣景象:我想实现P1.1端端口跟随口跟随P1.4端口同步输出,都是驱动端口同步输出,都是驱动LED,P1.4端口运端口运用定时器定时翻转,主循环程序随时判别用定时器定时翻转,主循环程序随时判别P1.4形状,同形状,同步驱动步驱动P1.1。程序如下:。程序如下:看来没问题,可是下载到单片机中,看来没问题,可是下载到单片机中,只见只见OUT闪烁,闪烁,LED根本不动,奇根本不动,奇异异? FLAG BIT 00HCPL FLAGMOV C,FLAGMOV OUT,CMOV C,FLAG第六章第六章 单片微机的定时器单片微机的定时器

2、/计数器计数器原理及运用原理及运用6.1 概述概述6.2 定时器定时器/计数器计数器T0、T16.3 定时器定时器/计数器计数器T26.4 监视定时器看门狗监视定时器看门狗T36.5 定时器定时器/计数器的运用编程计数器的运用编程定时或计数方法:定时或计数方法: 1 1硬件法:硬件法:定时功能完全由硬件电路完成,不占定时功能完全由硬件电路完成,不占用用CPUCPU时间。时间。2 2软件法:软件定时是执行一段循环程序来进展时间软件法:软件定时是执行一段循环程序来进展时间延时。延时。3 3可编程定时器计数器:经过软件编程来实现定时可编程定时器计数器:经过软件编程来实现定时时间的改动,经过中断或查询

3、方法来完成定时功能或时间的改动,经过中断或查询方法来完成定时功能或计数功能。计数功能。6-1 概述概述6-1 概述概述定时器资源:定时器资源:80C51包含有两个包含有两个16位的定时器计数器:位的定时器计数器:T0和和T1;80C52包含有三个包含有三个16位的定时器计数器:位的定时器计数器:T0、T1、T2在在80C51系列的部分产品如系列的部分产品如Philips公司的公司的80C552中,还中,还包含有作看门狗的包含有作看门狗的8位定时器位定时器T3。定时器计数器的中心是一个加定时器计数器的中心是一个加1计数器其计数器其根本功能是计数加根本功能是计数加1。计数计数 是对单片微机的是对单

4、片微机的T0、T1 或或T2引脚引脚上输入的一个上输入的一个1到到0的跳变进展计数增的跳变进展计数增l。 定时定时 是对单片微机内部的机器周期进展计是对单片微机内部的机器周期进展计数,从而得到定时。数,从而得到定时。 波特率发生器波特率发生器 80C51的定时器的定时器/计数器还可计数器还可用作串行接口的波特率发生器。用作串行接口的波特率发生器。T0、T1 的内部构造简图:的内部构造简图:6.2 6.2 定时器计数器定时器计数器T0T0、T1T1图图61 61 定时器定时器/ /计数器计数器T0T0、T1T1的内部构造框图的内部构造框图 T0、T1 的方式存放器的方式存放器TMOD6.2.1

5、与定时器计数器与定时器计数器T0、T1有关的特殊功能有关的特殊功能存放器存放器-TMOD、TCON、TH、TL、IE、IPD7 D6 D5 D4 D3 D2 D1 D0GATE C/TM1M0GATE C/TM1M0T1T0 GATE门控位门控位 图图62CT:功能选择位:功能选择位定时时钟脉冲:定时时钟脉冲:1/12fosc最高计数频率:最高计数频率:1/24foscM1、M0:任务方式选择位。:任务方式选择位。M1 M0工作方式工作方式 计数器配置计数器配置 0 0方式方式0 13位计数器位计数器 0 1方式方式1 16位计数器位计数器 1 0方式方式2 自动重装载的自动重装载的8位计数器

6、位计数器 1 1方式方式3 T0分为两个分为两个8位计数器,位计数器,T1停止计数停止计数 定时器计数器定时器计数器T0、T1 的控制存放器的控制存放器TCON 位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H位名称位名称TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0功能功能 T1T1 中断中断标志标志启动启动T1T0T0中断中断标志标志启动启动T2中断中断标志标志触发触发方式方式中断中断标志标志 触发触发方式方式 T0、T1 的数据存放器的数据存放器TH1、TL1,TH0、TL0 定

7、时器定时器/计数器中断计数器中断 中断允许存放器中断允许存放器IE 中断矢量中断矢量 中断优先级存放器中断优先级存放器IPT0:有:有4种任务方式可选方式种任务方式可选方式0,1,2,3T1:有:有3种任务方式可选方式种任务方式可选方式0,1,2 方式方式0-13位定时器位定时器/计数器计数器(M10、M00) 最大计数值最大计数值213 = 8192,当,当fosc=12MHZ时,时,Tmax=8192S6.2.2 6.2.2 定时器计数器定时器计数器T0T0、T1 T1 的任务方式的任务方式B=TRx(GATE+INTx) 方式方式1-16位定时器位定时器/计数器计数器(M10、M01)

8、最大计数值最大计数值216 = 65535,当,当fosc=12MHZ时,时,Tmax=65535S 方式方式2- 8位定时器位定时器/计数器自动重装载计数器自动重装载(M11、M00) 优点:定时初值可自动恢复优点:定时初值可自动恢复,TH中存放初值中存放初值;缺陷:计数范围小,最大计数值为缺陷:计数范围小,最大计数值为28= 256适用于需求反复定时,而定时范围不大的运用场所,适用于需求反复定时,而定时范围不大的运用场所,比如:作为串行口波特率发生器运用比如:作为串行口波特率发生器运用 方式方式3-仅仅T0有此方式,有此方式,T1无方式无方式3中断矢量中断矢量000BH中断矢量中断矢量00

9、1BHT0T0方式方式3 3下的下的T0T0 在方式在方式3 3情况下情况下,T0,T0被拆成二个独立的被拆成二个独立的8 8位计位计数器数器TH0TH0、TL0TL0。 TL0 TL0:8 8位定时位定时/ /计数器,运用计数器,运用T0T0原有的原有的控制存放器资源控制存放器资源:TF0,TR0,GATE,C/T,INT0:TF0,TR0,GATE,C/T,INT0,中断矢量等;中断矢量等; TH0 TH0:8 8位定时器,占用位定时器,占用T1T1的中断溢出标的中断溢出标志志TF1,TF1,运转控制开关运转控制开关TR1,TR1,中断矢量中断矢量001BH001BH,只,只能对片内机器周

10、期脉冲计数能对片内机器周期脉冲计数 T0 T0方式方式3 3情况下的情况下的T1T1 T1 T1由于其由于其TF1TF1、TR1TR1被被T0T0的的TH0TH0占用,计占用,计数器溢出时,只能将输出信号送至串行口,数器溢出时,只能将输出信号送至串行口,即用作串行口波特率发生器。即用作串行口波特率发生器。定时器定时器/ /计数器计数器T0T0方式方式3 3时,时,T1T1的逻辑构造图的逻辑构造图80C52中的中的T2: 16位位功能:自动重装载和捕获才干功能:自动重装载和捕获才干相关存放器:相关存放器:8位计数器位计数器TL2、TH2, 控制存放器控制存放器T2CON, 方式存放器方式存放器T

11、2MOD,捕获存放器捕获存放器RCAP2L低字节和低字节和RCAP2H高字节。高字节。计数脉冲源:两个计数脉冲源:两个-内部机器周期及内部机器周期及 T2P10端输入的外部计数脉冲。端输入的外部计数脉冲。任务方式:任务方式: 3种种-自动重装载、捕获和波特率发生器方式自动重装载、捕获和波特率发生器方式引脚引脚T2是外部计数脉冲输入端是外部计数脉冲输入端引脚引脚T2EX是外部控制信号输入端。是外部控制信号输入端。6.3 6.3 定时器计数器定时器计数器T2T2 控制存放器控制存放器 T2CON位地址位地址 CFHCEHCDHCCHCBHCAHC9HC8H位功能位功能 TF2EXF2RCLKTCL

12、K EXEN2TR2C/T2CP/RL26.3.1 T26.3.1 T2中的特殊功能存放器中的特殊功能存放器TF2T2 溢出标志,溢出标志, T2溢出时置位并恳求中断,软件去除。溢出时置位并恳求中断,软件去除。在波特率发生器方式下,即在波特率发生器方式下,即RCLK1或或TCLK1时,定时器溢时,定时器溢出不对出不对TF2置位。置位。EXF2T2外部标志,外部标志,EXF2要靠软件来去除要靠软件来去除当当EXEN21,且,且T2EX引脚上出现负跳变而呵斥捕获或重装载引脚上出现负跳变而呵斥捕获或重装载时时EXF2置位,恳求中断。假设已允许置位,恳求中断。假设已允许T2中断,中断,CPU将呼应中断

13、,将呼应中断,转向中断效力程序。转向中断效力程序。 RCLK:接纳时钟标志,软件置位或去除:接纳时钟标志,软件置位或去除用以选择用以选择T2或或T1作串行口接纳波特率发生器。作串行口接纳波特率发生器。RCLK1时,用时,用T2溢出脉冲作为串行口的接纳时钟;溢出脉冲作为串行口的接纳时钟;RCLK0时,用时,用T1的溢出脉冲作接纳时钟。的溢出脉冲作接纳时钟。 TCLK:发送时钟标志,软件置位或去除:发送时钟标志,软件置位或去除用以选择用以选择T2或或T1作串行口发送波特率发生器。作串行口发送波特率发生器。TCLKl时,用时,用T2溢出脉冲作为串行口的发送时钟;溢出脉冲作为串行口的发送时钟;TCLK

14、0时,用时,用T1的溢出脉冲作发送时钟。的溢出脉冲作发送时钟。 EXEN2:T2外部允许标志,软件设置或去除外部允许标志,软件设置或去除允许或制止用外部信号来触发捕获或重装载操作。允许或制止用外部信号来触发捕获或重装载操作。EXEN2l时,假设时,假设T2未用作串行口的波特率发生器,那么未用作串行口的波特率发生器,那么在在T2EX端出现的信号负跳变时,将呵斥端出现的信号负跳变时,将呵斥T2捕获或重装载,并捕获或重装载,并置置EXF2标志为标志为 1,恳求中断。,恳求中断。EXEN20时,时,T2EX端的外部信号不起作用端的外部信号不起作用TR2:T2运转控制位。软件设置或去除运转控制位。软件设

15、置或去除C/T2:T2的定时器方式或计数器方式选择位。的定时器方式或计数器方式选择位。 C/T20时,定时器任务方式。计数脉冲的频率为时,定时器任务方式。计数脉冲的频率为1/12fosc C/T21时,计数器任务方式,下降沿触发。计数脉冲自时,计数器任务方式,下降沿触发。计数脉冲自T2引引脚输入,每当外部脉冲负跳变时,计数器值增脚输入,每当外部脉冲负跳变时,计数器值增1。 CPRL2:捕获重装载标志。:捕获重装载标志。 CPRL2l选择捕获功能,这时假设选择捕获功能,这时假设EXEN21,且,且T2EX端的端的信号负跳变时,发生捕获操作。信号负跳变时,发生捕获操作。 CPRL20,选择重装载功

16、能,这时假设,选择重装载功能,这时假设T2溢出或在溢出或在EXEN21条件下条件下 T2EX端信号负跳变,都会呵斥自动重装载操作。端信号负跳变,都会呵斥自动重装载操作。当当RCLKl或或TCLKl时,时,CPRL2控制位不起作用,控制位不起作用,T2 被强被强迫任务于重装载方式。重装载发生于迫任务于重装载方式。重装载发生于T2溢出时,常用来作波特率溢出时,常用来作波特率发生器。发生器。 方式控制存放器方式控制存放器T2MODD7D6D5D4D3D2D1D0-T2OE DCEN T2OE:T2输出允许位。输出允许位。当当T2OE1时,允许时钟输出至时,允许时钟输出至T2引脚。引脚。仅对仅对80C

17、5480C58有定义。有定义。DCEN:向下计数允许位:向下计数允许位DCEN=1, T2向下向下(减减)计数计数 DCEN=0, T2向上向上(加加)计数计数 数据存放器:数据存放器:TH2、TL2 T2有一个有一个16位的数据存放器,是由高位的数据存放器,是由高8位存放器位存放器TH2和低和低8位存放器位存放器TL2所组成。它们都只能字节寻址,所组成。它们都只能字节寻址,相应的字节地址为相应的字节地址为CDH和和CCH。 复位后,这两个存放器全部清零。复位后,这两个存放器全部清零。 捕获存放器:捕获存放器:RCAP2HRCAP2H、RCAP2LRCAP2L T2 T2中的捕获存放器是一个中

18、的捕获存放器是一个1616位的数据存放器,由高位的数据存放器,由高8 8位存位存放器放器RCAP2HRCAP2H和低和低8 8 位存放器位存放器RCAP2LRCAP2L所组成,相应的字节地址为所组成,相应的字节地址为CBHCBH和和CAHCAH。捕获存放器捕获存放器RCAP2HRCAP2H和和RCAP2LRCAP2L,用于捕获计数器,用于捕获计数器TL2TL2、TH2TH2的计数形状,或用来预置计数初值的。的计数形状,或用来预置计数初值的。TH2TH2、TL2TL2和和 RCAP2H RCAP2H、RCAP2LRCAP2L之间接有双向缓冲器三态门。之间接有双向缓冲器三态门。复位后,两个存放器全

19、部清零。复位后,两个存放器全部清零。T3俗称看门狗watchdog,它的作用是强迫单片微机进入复位形状,使之从硬件或软件缺点中解脱出来。6.4 6.4 监视定时器监视定时器( (看门狗看门狗)T3)T3 定时器初值的计算定时器初值的计算 定时时间定时时间=脉冲数脉冲数脉冲周期机器周期脉冲周期机器周期定时时间定时时间t=(2L-初值初值TC) 6.5 6.5 定时器定时器/ /计数器的运用编程计数器的运用编程 6.5.1 6.5.1 定时器的运用定时器的运用机器周期时间定时时间初值LOSCLftTC2122oscf12L与任务方式有与任务方式有关,关,13、16、8定时器溢出率为定时时间的倒数定

20、时器溢出率为定时时间的倒数fosc=12MHZ时,时,1机周机周=1S;fosc=6MHZ 时,时, 1机周机周=2S解:任务方式解:任务方式0 0: 213500 213500S/2S/2S=8192-250=7942S=8192-250=7942 =1F06H =1F06H =1111100000110B =1111100000110B TL0=00110B=06H TL0=00110B=06H TH0=11111000B=F8H TH0=11111000B=F8H【例】【例】 知晶振知晶振6MHz6MHz,要求定时,要求定时0.5ms0.5ms,试分别求,试分别求出出T0T0任务于方式任

21、务于方式0 0、方式、方式1 1、方式、方式2 2时的定时初值。时的定时初值。 任务方式任务方式1 1: T0 T0初值初值 =216- =216-500500s/2s/2s=65536250=65286=FF06Hs=65536250=65286=FF06H TH0=FFH TH0=FFH;TL0=06HTL0=06H。 任务方式任务方式2 2: T0 T0初值初值 =28-500 =28-500s/2s/2s=256-250=6s=256-250=6 TH0=06H TH0=06H;TL0=06HTL0=06H。 从上例中看到,方式从上例中看到,方式0 0计算定时初值比较费事,根据公计算定

22、时初值比较费事,根据公式计算出数值后,还要变换一下,容易出错,不如直接用方式计算出数值后,还要变换一下,容易出错,不如直接用方式式1 1,且方式,且方式0 0计数范围比如式计数范围比如式1 1小,方式小,方式0 0完全可以用方式完全可以用方式1 1替代,方式替代,方式0 0与方式与方式1 1相比,无任何优点。相比,无任何优点。解:分析解:分析 采用方式采用方式0定时时间定时时间 t1ms=1000S定时常数:定时常数:TC=213-1000/2=8192-500=7692 = 11110000 01100B用定时器用定时器T0:TMOD=00H,TH0=F0H,TL0=0CH【例】【例】 要求

23、在要求在 P10引脚上产生周期为引脚上产生周期为2 ms的方波输出的方波输出fosc=6MHz 查询方式查询方式ORG 0000HAJMP STORG 0030HST:MOV SP,#60HMOV TMOD,#00H;方式;方式0L1:MOV TH0,#0F0H;初值;初值MOV TL0,#0CHCPL P1.0SETB TR0L2:JBC TF0,L1SJMP L2END中断方式:中断方式:ORG0000HAJMPMAINORG000BH;T0中断矢量中断矢量AJMP INQPORG0030HMAIN: MOV TMOD,00H ;设;设T0为定时器方式为定时器方式0 MOV TH0,0F0

24、H ;写定时常数;写定时常数(定时定时1ms) MOV TL0,0CH SETB TR0 ;启动;启动 T0 SETB ET0 ;允许;允许T0中断中断 SETB EA ;开放;开放CPU中断中断 AJMP $ ;定时中断等待;定时中断等待ORG2000 H ;T0中断效力程序中断效力程序 INQP: MOV TH0,0F0H ;重写定时常数;重写定时常数 MOV TL0,0CHCPL P10 ;P10变反输出变反输出 RETI 采用方式采用方式1 1定时时间定时时间 t1ms=1000S定时常数:定时常数:TC=216-1000/2=65535-500=65035 = 11111110 00

25、001011B=FE0BH用定时器用定时器T0:TMOD=01H,TH0=FEH,TL0=0BH编程与前一样编程与前一样【例】欲用【例】欲用80C51产生两个方波,一个方波周期为产生两个方波,一个方波周期为200s,另,另一个方波周期为一个方波周期为400s,该,该80C51同时运用串行口,用定时器同时运用串行口,用定时器/计数器作为波特率发生器计数器作为波特率发生器,波特率为波特率为2400, fOCS9.216 MHz 。分析:这时分析:这时T0采用方式采用方式3任务,其中,任务,其中,TL0产生产生100s定时,由定时,由 P1.0输出方波输出方波1TH0产生产生200s定时,由定时,由

26、Pl.1输出方波输出方波2 ;T1设置为方式设置为方式2,作波特率发生器用。,作波特率发生器用。计算:计算:TL0初值:初值:HBftTCLOSC3101100112 .1798 .762561210216.91010025612206618TH0初值:初值:HTCH664 .1021210216.910200256066TH1、TL1初值为:初值为:F6H编程:编程:ORG 0000H AJMP MAINORG 000BH ;TL0的中断入口的中断入口AJMP ITL0ORG 00lBH;TH0的中断入口的中断入口AJMP ITH0ORG 0100HMAIN:MOV SP, 60H;设栈指针

27、;设栈指针MOV TMOD, 23H ;设;设T0为方式为方式3,TI为为2 MOV TL0,0B3H ;设;设TL0初值初值(100s定时定时) MOV TH0,66H ;设;设TH0初值初值(200s定时定时) MOV TL1,0F6H ;设;设TL1初值初值(波特率为波特率为2400) MOV TH1, 0F6H ;设;设 TH1初值初值 SETB TR0 ;启动;启动 TL0 SETB TR1 ;启动;启动TH0 SETB ET0 ;允许;允许TL0中断中断 SETB ET1 ;允许;允许TH0中断中断 SETB EA ;CPU中断开放中断开放 AJMP ORG 0200HITL0:M

28、OV TL0, 0B3H ;重装定时常数;重装定时常数 CPL P10 ;输出方波;输出方波1(200s) RETIITH0:MOV TH0,66H ;重装定时常数;重装定时常数CPL P11 ;输出方波;输出方波2(400s) RETI不用方式不用方式3 3,能,能否只用否只用T0T0产生产生两个时间?两个时间?【例】假设一个用户系统已运用了两个外部中断源,即【例】假设一个用户系统已运用了两个外部中断源,即INT0和和INT1,用户系统要求从,用户系统要求从P1.0引脚上输出一个引脚上输出一个5kHz的方波,并的方波,并要求采用定时器要求采用定时器/计数器作为串行口的波特率发生器,另外还需计

29、数器作为串行口的波特率发生器,另外还需求再添加一个外部中断源。求再添加一个外部中断源。6.5.2 6.5.2 计数器的运用计数器的运用分析分析:除两个外中断除两个外中断(INT0、INT1外,还需求两个定时器外,还需求两个定时器5KHZ和波特率发生器和一个计数器扩展外中断和波特率发生器和一个计数器扩展外中断把把T0设置为方式设置为方式3: TL0设置为计数器,设置为计数器, TH0只能做只能做8位定时器位定时器产生产生5KHz方波,方波,T1就作为波特率发生器,设为方式就作为波特率发生器,设为方式2。频率频率5kHz即周期为即周期为200s,那么定时时间,那么定时时间100s,假设采用,假设采

30、用12MHz的晶体振荡器,那么机器周期为的晶体振荡器,那么机器周期为1s。 计算时间常数:计算时间常数:TC28100/1156编程:编程:ORG 0000HSJMP MAINORG 000BHAJMP TL0INT;TL0中断入口中断入口 ORG 001BHAJMP TH0INT;TH0中断入口中断入口ORG0030HMAIN:MOVTMOD,#27H;T0为方式3,TL0为计数方式,TH0为;定时;T1作波特率发生器,方式2MOV TH0,#156;TH0定时常数MOV TL0,#0FFH;TL0计数常数MOV TL1,#BAUD;BAUD根据波特率算出MOV TH1,#BAUDMOV T

31、CON,#55H;TR0和TR1为1,启动TL0和TH0MOVIE,#8AHSJMP $ORG0100HTL0INT:MOV TL0,#0FFH ;重置计数长度(中断处置)RETITH0INT:MOV TH0,#156;重置定时常数CPLP1.0;P1.0引脚输出方波RETITF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0GATE C/T M1 M0 GATE C/T M1 M0GATE C/T M1 M0 GATE C/T M1 M0 门控位门控位GATE可用作对可用作对INTx引脚上的高电平继续时间进展计量。引脚上

32、的高电平继续时间进展计量。经过反相器,那么可测得相应经过反相器,那么可测得相应INTx引脚上低电平的继续时间。引脚上低电平的继续时间。两个时间的和即为两个时间的和即为INTx引脚上输入波形的周期,其倒数即为引脚上输入波形的周期,其倒数即为INTx引脚上输入波形的频率。还可算出占空比等参数。引脚上输入波形的频率。还可算出占空比等参数。6.5.3 6.5.3 门控位门控位GATEGATE的运用的运用 【例】利用定时器计数器测定图示波形的一个周期长度。【例】利用定时器计数器测定图示波形的一个周期长度。分析:假设分析:假设GATE=1,那么那么T1为定时器时,当为定时器时,当TR1=1且且INT1为高

33、电平常,才启动定时器。为高电平常,才启动定时器。 INT1(P3.3)TR1 置置1T1开场计时开场计时TR1清零清零查询法查询法ORG 0000HSTART:MOV TMOD,#90HMOV TL1,#00H;置为最大定时值;置为最大定时值MOV TH1,#00HLP1:JBP3.3,LP1;P3.3为高电平,等待为高电平,等待 SETB TR1;当;当P3.3为低时为低时,置置TR1为为1LP2: JNBP3.3,LP2;当;当P3.3为低电平常,再等待为低电平常,再等待LP3:JBP3.3,LP3;当;当P3.3为高电平常,为高电平常,T1开开; 始定时计数始定时计数CLRTR1;当;当

34、P3.3为低电平常,高电为低电平常,高电;平脉宽定时计数终了;平脉宽定时计数终了SJMP $当当fosc12MHz时,最大被测脉宽为时,最大被测脉宽为65536s。此编程实践只丈量了高电平的宽度,此编程实践只丈量了高电平的宽度,假设被测波形除了接至假设被测波形除了接至P3.3,另外同时,另外同时经过一个反相器接至经过一个反相器接至P3.2 (INT0) ,那,那么经过编程同时可以测得波形的高电么经过编程同时可以测得波形的高电平宽度和低电平宽度。平宽度和低电平宽度。中断法:中断法:【分析】对于脉冲宽度大于【分析】对于脉冲宽度大于65.536ms的脉冲,可以采用对定时溢的脉冲,可以采用对定时溢出次

35、数进展计数的方法。这样,脉宽为出次数进展计数的方法。这样,脉宽为 (定时溢出时间定时溢出时间溢出次溢出次数数)定时时间。测定脉冲周期可用图示方法。定时时间。测定脉冲周期可用图示方法。 T1脚上对下降沿计数二次,即为外部脉冲的一个周期时间。现设脚上对下降沿计数二次,即为外部脉冲的一个周期时间。现设T1为计数器。计数值为为计数器。计数值为2。设设6MHz晶振晶振,T0为方式为方式1,定时溢出时间为,定时溢出时间为 100 ms当计数值为当计数值为1时,启动定时器;当计数值为时,启动定时器;当计数值为2时,中断计数器时,中断计数器T1,并停顿定时器并停顿定时器T0的定时。的定时。T1中断优先级设为高

36、于定时器中断优先级设为高于定时器T0。 计数初值为计数初值为 FFFEH:TH1FFH,TL1FEH。 编程编程: ORG0000HSJMP MAINORG 000BH ;定时器;定时器T0中断入口中断入口 AJMP TIME0 ORG 00IBH ;定时器;定时器 T1中断入口中断入口 AJMP TIME1 ORG 0030HMAIN:MOV R0,0;去除;去除T0定时中断次数计数器定时中断次数计数器MOV TMOD,59H;T0为定时器为定时器,方式方式1, GATE1 ;T1为计数器、方式为计数器、方式1 MOV TH0,3CH ;T0定时器初值定时器初值 MOV TL0,0B0H M

37、OV TH1,0FFH ;T1计数器初值计数器初值 MOV TL1,0FEH SETB TR0;启动;启动T0定时器定时器 SETB TR1;启动;启动T1计数器计数器 MOV IP,08H ;T1中断优先级高于中断优先级高于T0SETB ET1 ;允许;允许T1中断中断 SETB ET0;允许;允许T0中断中断 SETB EA ;CPU开中断开中断SETB 20H ;设;设20H为为T1计数中断标志计数中断标志LOOP:SETB F0;设;设F0为为T0定时中断标志定时中断标志 JB F0,$;T0定时未溢出,等待定时未溢出,等待 JB 20H,LOOP ;判;判T1假设未溢出那么循环假设未

38、溢出那么循环SJMP $ ORG 0100HTIME0:MOV TL0,0B0H;重置;重置T0定时器初值定时器初值MOV TH0, 3CH INCR0;T0定时溢出计数器加定时溢出计数器加 1 CPL F0;T0定时中断标志变反定时中断标志变反RETIORG 0200HTIME1:CLR F0;去除;去除T0定时中断标志定时中断标志 CLR 20H;去除;去除T1计数中断标志计数中断标志 CLR ET0 ;制止;制止T0、T1 中断中断 CLR ET1CLR EA ;关中断;关中断 RETI80C51可以随时读写计数存放器可以随时读写计数存放器TLx和和THx (x为为0或或1) ,用于实时显示计数值等。,用于实时显示计数值等。方法是:先读方法是:先读THx,后读,后读TLx,再重读,再重读THx,假,假设两次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论