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

下载本文档

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

文档简介

1、第六章第六章 单片微机的定时器单片微机的定时器/计数器计数器原理及应用原理及应用6.1 概述概述6.2 定时器定时器/计数器计数器T0、T16.3 定时器定时器/计数器计数器T26.4 监视定时器(看门狗)监视定时器(看门狗)T36.5 定时器定时器/计数器的应用编程计数器的应用编程定时或计数方法:定时或计数方法: 1硬件法:硬件法: 定时功能完全由硬件电路完成,不占用定时功能完全由硬件电路完成,不占用CPU时间。时间。2软件法:软件法:软件定时是执行一段循环程序来进行时间延时。软件定时是执行一段循环程序来进行时间延时。3可编程定时器计数器:可编程定时器计数器:通过软件编程来实现定时时间的改通

2、过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功能或计数功能。变,通过中断或查询方法来完成定时功能或计数功能。6-1 概述概述6-1 概述概述定时器资源:定时器资源:80C51包含有包含有两个两个16位的定时器计数器:位的定时器计数器:T0和和T1;80C52包含有包含有三个三个16位的定时器计数器:位的定时器计数器:T0、T1、T2在在80C51系列的部分产品(如系列的部分产品(如Philips公司的公司的80C552)中,还)中,还包含有作看门狗的包含有作看门狗的8位位定时器定时器T3。定时器计数器的定时器计数器的核心核心是一个加是一个加1计数器其计数器其基本功能是计数加基本

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

4、存器的方式寄存器TMOD6.2.1 与定时器计数器与定时器计数器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 自

5、动重装载的自动重装载的8位计数器位计数器 1 1方式方式3 T0分为两个分为两个8位计数器,位计数器,T1停止计数停止计数 定时器计数器定时器计数器T0、T1 的控制寄存器的控制寄存器TCON 位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H位名称位名称TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0功能功能 T1T1 中断中断标志标志启动启动T1T0T0中断中断标志标志启动启动T2中断中断标志标志触发触发方式方式中断中断标志标志 触发触发方式方式 T0、T1 的数据寄存器的数据寄存器T

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

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

8、方式3中断矢量中断矢量000BH中断矢量中断矢量001BHT0T0方式方式3 3下的下的T0T0 在方式在方式3 3情况下情况下, ,T0T0被拆成二个独立的被拆成二个独立的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,中

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

10、存器T2CON, 模式寄存器模式寄存器T2MOD,捕获寄存器捕获寄存器RCAP2L(低字节)和(低字节)和RCAP2H(高字节)。(高字节)。计数脉冲源计数脉冲源:两个:两个-内部机器周期及内部机器周期及 T2(P10)端输入的外部计数脉冲。)端输入的外部计数脉冲。工作方式工作方式: 3种种-自动重装载、捕获和波特率发生器方式自动重装载、捕获和波特率发生器方式引脚引脚T2是外部计数脉冲输入端是外部计数脉冲输入端引脚引脚T2EX是外部控制信号输入端。是外部控制信号输入端。6.3 6.3 定时器计数器定时器计数器T2T2 控制寄存器控制寄存器 T2CON位地址位地址 CFHCEHCDHCCHCBH

11、CAHC9HC8H位功能位功能 TF2EXF2RCLKTCLK EXEN2TR2C/T2CP/RL26.3.1 T26.3.1 T2中的特殊功能寄存器中的特殊功能寄存器TF2T2 T2 溢出标志,溢出标志, T2T2溢出时置位并申请中断,软件清除。溢出时置位并申请中断,软件清除。在波特率发生器方式下,即在波特率发生器方式下,即RCLK1或或TCLK1时,定时器溢时,定时器溢出不对出不对TF2TF2置位。置位。EXF2T2外部标志,外部标志,EXF2要靠软件来清除要靠软件来清除当当EXEN21,且,且T2EX引脚上出现负跳变而造成捕获或重装载引脚上出现负跳变而造成捕获或重装载时时EXF2置位,申

12、请中断。若已允许置位,申请中断。若已允许T2中断,中断,CPU将响应中断,将响应中断,转向中断服务程序。转向中断服务程序。 RCLK:接收时钟标志,软件置位或清除:接收时钟标志,软件置位或清除用以选择用以选择T2或或T1作串行口接收波特率发生器。作串行口接收波特率发生器。RCLK1时,用时,用T2溢出脉冲作为串行口的接收时钟;溢出脉冲作为串行口的接收时钟;RCLK0时,用时,用T1的溢出脉冲作接收时钟。的溢出脉冲作接收时钟。 TCLK:发送时钟标志,软件置位或清除发送时钟标志,软件置位或清除用以选择用以选择T2或或T1作串行口发送波特率发生器。作串行口发送波特率发生器。TCLKl时,用时,用T

13、2溢出脉冲作为串行口的发送时钟;溢出脉冲作为串行口的发送时钟;TCLK0时,用时,用T1的溢出脉冲作发送时钟。的溢出脉冲作发送时钟。 EXEN2:T2T2外部允许标志,外部允许标志,软件设置或清除软件设置或清除允许或禁止用外部信号来触发捕获或重装载操作。允许或禁止用外部信号来触发捕获或重装载操作。EXEN2l时,若时,若T2未用作串行口的波特率发生器,则在未用作串行口的波特率发生器,则在T2EX端出现的信号负跳变时,将造成端出现的信号负跳变时,将造成T2捕获或重装载,并捕获或重装载,并置置EXF2标志为标志为 1,请求中断。,请求中断。EXEN20时,时,T2EX端的外部信号不起作用端的外部信

14、号不起作用TR2:T2T2运行控制位。软件设置或清除运行控制位。软件设置或清除C/T2:T2的定时器方式或计数器方式选择位。的定时器方式或计数器方式选择位。 C/T20时,定时器工作方式。计数脉冲的频率为时,定时器工作方式。计数脉冲的频率为1/12fosc C/T21时,计数器工作方式,下降沿触发。计数脉冲自时,计数器工作方式,下降沿触发。计数脉冲自T2引引脚输入,每当外部脉冲负跳变时,计数器值增脚输入,每当外部脉冲负跳变时,计数器值增1。 CPRL2:捕获重装载标志。:捕获重装载标志。 CPRL2l选择捕获功能,这时若选择捕获功能,这时若EXEN21,且,且T2EX端的信端的信号负跳变时,发

15、生捕获操作。号负跳变时,发生捕获操作。 CPRL20,选择重装载功能,这时若,选择重装载功能,这时若T2溢出或在溢出或在EXEN21条件下条件下 T2EX端信号负跳变,都会造成自动重装载操作。端信号负跳变,都会造成自动重装载操作。当当RCLKl或或TCLKl时,时,CPRL2控制位不起作用,控制位不起作用,T2 被强被强制工作于重装载方式。重装载发生于制工作于重装载方式。重装载发生于T2溢出时,常用来作波特率溢出时,常用来作波特率发生器。发生器。 方式控制寄存器方式控制寄存器T2MODD7D6D5D4D3D2D1D0-T2OE DCEN T2OE:T2输出允许位。输出允许位。当当T2OE1时,

16、允许时钟输出至时,允许时钟输出至T2引脚。引脚。仅对仅对80C5480C58有定义。有定义。DCEN:向下计数允许位:向下计数允许位DCEN=1, T2向下向下(减减)计数计数 DCEN=0, T2向上向上(加加)计数计数 数据寄存器数据寄存器:TH2、TL2 T2有一个有一个16位的数据寄存器,是由高位的数据寄存器,是由高8位寄存器位寄存器TH2和低和低8位寄存器位寄存器TL2所组成。它们都只能字节寻址,相应的字节地址所组成。它们都只能字节寻址,相应的字节地址为为CDH和和CCH。 复位后,这两个寄存器全部清零。复位后,这两个寄存器全部清零。 捕获寄存器:捕获寄存器:RCAP2HRCAP2H

17、、RCAP2LRCAP2L T2中的捕获寄存器是一个中的捕获寄存器是一个16位的数据寄存器,由高位的数据寄存器,由高8位寄存位寄存器器RCAP2H和低和低8 位寄存器位寄存器RCAP2L所组成,相应的字节地址为所组成,相应的字节地址为CBH和和CAH。捕获寄存器捕获寄存器RCAP2H和和RCAP2L,用于捕获计数器,用于捕获计数器TL2、TH2的计数状态,或用来预置计数初值的。的计数状态,或用来预置计数初值的。TH2、TL2和和 RCAP2H、RCAP2L之间接有双向缓冲器(三态门)。之间接有双向缓冲器(三态门)。复位后,两个寄存器全部清零。复位后,两个寄存器全部清零。T3俗称看门狗(俗称看门

18、狗(watchdog),它的作用是强迫单片),它的作用是强迫单片微机进入复位状态,使之从硬件或软件故障中解脱出来。微机进入复位状态,使之从硬件或软件故障中解脱出来。6.4 6.4 监视定时器监视定时器( (看门狗看门狗)T3)T3 定时器初值的计算定时器初值的计算 定时时间定时时间=脉冲数脉冲数脉冲周期(机器周期)脉冲周期(机器周期)定时时间定时时间t=(2L-初值初值TC) 6.5 6.5 定时器定时器/ /计数器的应用编程计数器的应用编程 6.5.1 6.5.1 定时器的应用定时器的应用机器周期时间定时时间初值LOSCLftTC2122oscf12L与工作方式有与工作方式有关,关,13、1

19、6、8定时器定时器溢出率溢出率为定时时间的倒数为定时时间的倒数fosc=12MHZ时时,1机周机周=1 S;fosc=6MHZ 时时, 1机周机周=2 S解:解:工作方式工作方式0 0: 2 21313500500 S/2S/2 S=8192-250=7942S=8192-250=7942 =1F06H =1F06H =1111100000110B =1111100000110B TL0= TL0=0011000110B=06HB=06H TH0= TH0=1111100011111000B=F8HB=F8H【例】【例】 已知晶振已知晶振6MHz6MHz,要求定时,要求定时0.5ms0.5ms

20、,试分别求,试分别求出出T0T0工作于方式工作于方式0 0、方式、方式1 1、方式、方式2 2时的定时初值。时的定时初值。 工作方式工作方式1 1: T0T0初值初值 =2=21616-500-500 s s/2/2 s s=65536250=65286=FF06H=65536250=65286=FF06H TH0=FFH TH0=FFH;TL0=06HTL0=06H。 工作方式工作方式2 2: T0T0初值初值 =2=28 8-500-500 s s/2/2 s s=256-250=6=256-250=6 TH0=06H TH0=06H;TL0=06HTL0=06H。 从上例中看到,从上例中

21、看到,方式方式0 0计算定时计算定时初值比较麻烦初值比较麻烦,根据公,根据公式计算出数值后,还要变换一下,容易出错,不如直接用方式计算出数值后,还要变换一下,容易出错,不如直接用方式式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=00

22、H,TH0=F0H,TL0=0CH【例】【例】 要求在要求在 P10引脚上产生周期为引脚上产生周期为2 ms的方波输出的方波输出fosc=6MHz 查询方式查询方式ORG0000HAJMPSTORG0030HST:MOVSP,#60HMOVTMOD,#00H;方式0L1:MOVTH0,#0F0H;初值MOVTL0,#0CHCPLP1.0SETBTR0L2:JBCTF0,L1SJMPL2END中断方式:中断方式: ORG 0000HAJMP MAINORG 000BH;T0中断矢量中断矢量AJMP INQPORG 0030HMAIN:MOV TMOD,00H ;设设T0为定时器方式为定时器方式0

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

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

25、1TH0产生产生200s定时,由定时,由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 0100HM

26、AIN:MOV SP, 60H;设栈指针;设栈指针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中断开放中断开放

27、AJMP ORG 0200HITL0:MOV TL0, 0B3H ;重装定时常数;重装定时常数 CPL P10 ;输出方波;输出方波1(200s) RETIITH0:MOV TH0,66H ;重装定时常数;重装定时常数CPL P11 ;输出方波;输出方波2(400s) RETI不用方式不用方式3 3,能,能否只用否只用T0T0产生产生两个时间?两个时间?【例】【例】假如一个用户系统已使用了两个外部中断源,假如一个用户系统已使用了两个外部中断源,即即INT0和和INT1,用户系统要求从,用户系统要求从P1.0引脚上引脚上输出输出一个一个5kHz的方波的方波,并要求采用定时器,并要求采用定时器/计

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

29、为200s,则定时时间,则定时时间100s,若采用,若采用12MHz的晶体振荡器,则机器周期为的晶体振荡器,则机器周期为1s。 计算时间常数:计算时间常数:TC28100/1156编程:编程:ORG 0000HSJMP MAINORG 000BHAJMP TL0INT;TL0中断入口中断入口 ORG 001BHAJMP TH0INT;TH0中断入口中断入口ORG 0030HMAIN: MOV TMOD,#27H ;T0为方式为方式3,TL0为计数方式为计数方式, TH0为为 ;定时定时;T1作波特率发生器,方式作波特率发生器,方式2MOV TH0,#156 ;TH0定时常数定时常数MOV TL

30、0, #0FFH ;TL0计数常数计数常数MOV TL1,#BAUD ;BAUD根据波特率算出根据波特率算出MOV TH1,#BAUDMOV TCON,#55H ;TR0和和TR1为为1,启动启动TL0和和TH0MOV IE,#8AH SJMP$ORG 0100HTL0INT:MOV TL0,#0FFH;重置计数长度;重置计数长度(中断处理中断处理)RETITH0INT:MOV TH0,#156;重置定时常数;重置定时常数CPLP1.0;P1.0引脚输出方波引脚输出方波RETI TF1 TF1 TR1 TR1 TF0 TF0 TR0 TR0 IE1 IT1 IE0 IT0IE1 IT1 IE0

31、 IT0GATE C/T M1 M0 GATE C/T M1 M0 GATE C/T M1 M0GATE C/T M1 M0 门控位门控位GATE可用作对可用作对INTx引脚上的高电平持续时间进行计量。引脚上的高电平持续时间进行计量。通过反相器,则可测得相应通过反相器,则可测得相应INTx引脚上低电平的持续时间。两引脚上低电平的持续时间。两个时间的和即为个时间的和即为INTx引脚上输入波形的周期,其倒数即为引脚上输入波形的周期,其倒数即为INTx引脚上输入波形的频率。还可算出占空比等参数。引脚上输入波形的频率。还可算出占空比等参数。6.5.3 6.5.3 门控位门控位GATEGATE的应用的应

32、用 【例】【例】利用定时器计数器测定图示波形的一个周期长度。利用定时器计数器测定图示波形的一个周期长度。分析:分析:若若GATE=1,则则T1为定时器时,当为定时器时,当TR1=1且且INT1为高为高电平时,才启动定时器。电平时,才启动定时器。 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:

33、 JNBP3.3,LP2;当;当P3.3为低电平时,再等待为低电平时,再等待LP3:JBP3.3,LP3;当;当P3.3为高电平时,为高电平时,T1开开; 始定时计数始定时计数CLRTR1;当;当P3.3为低电平时,高电为低电平时,高电;平脉宽定时计数结束;平脉宽定时计数结束SJMP $当当fosc12MHz时,最大被测脉宽为时,最大被测脉宽为65536s。此编程实际只测量了高电平的宽度,此编程实际只测量了高电平的宽度,若被测波形除了接至若被测波形除了接至P3.3,另外同时通,另外同时通过一个反相器接至过一个反相器接至P3.2 (INT0) ,则通,则通过编程同时可以测得波形的高电平宽过编程同

34、时可以测得波形的高电平宽度和低电平宽度。度和低电平宽度。中断法:中断法:【分析】对于脉冲宽度大于对于脉冲宽度大于65.536ms的脉冲,可以采用对定时溢的脉冲,可以采用对定时溢出次数进行计数的方法。这样,脉宽为出次数进行计数的方法。这样,脉宽为 (定时溢出时间定时溢出时间溢出次溢出次数数)定时时间。测定脉冲周期可用图示方法。定时时间。测定脉冲周期可用图示方法。 T1脚上对下降沿计数二次,即为外部脉冲的一个周期时间。现设脚上对下降沿计数二次,即为外部脉冲的一个周期时间。现设T1为计数器。计数值为为计数器。计数值为2。设设6MHz晶振晶振,T0为方式为方式1,定时溢出时间为,定时溢出时间为 100

35、 ms当计数值为当计数值为1时,启动定时器;当计数值为时,启动定时器;当计数值为2时,中断计数器时,中断计数器T1,并停止定时器并停止定时器T0的定时。的定时。T1中断优先级设为高于定时器中断优先级设为高于定时器T0。 计数初值为计数初值为 FFFEH:(:(TH1)FFH,(,(TL1)FEH。 编程编程: ORG0000HSJMP MAINORG 000BH ;定时器;定时器T0中断入口中断入口 AJMP TIME0 ORG 00IBH ;定时器;定时器 T1中断入口中断入口 AJMP TIME1 ORG 0030HMAIN:MOV R0,0;清除;清除T0定时中断次数计数器定时中断次数计

36、数器MOV TMOD,59H;T0为定时器为定时器,方式方式1, GATE1 ;T1为计数器、方式为计数器、方式1 MOV TH0,3CH ;T0定时器初值定时器初值 MOV TL0,0B0H MOV 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计数中断标志

37、计数中断标志LOOP:SETB F0;设;设F0为为T0定时中断标志定时中断标志 JB F0,$;T0定时未溢出,等待定时未溢出,等待 JB 20H,LOOP ;判;判T1若未溢出则循环若未溢出则循环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,再重读,再

温馨提示

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

评论

0/150

提交评论