六章定时器及应用

上传人:公**** 文档编号:592773303 上传时间:2024-09-22 格式:PPT 页数:42 大小:866.04KB
返回 下载 相关 举报
六章定时器及应用_第1页
第1页 / 共42页
六章定时器及应用_第2页
第2页 / 共42页
六章定时器及应用_第3页
第3页 / 共42页
六章定时器及应用_第4页
第4页 / 共42页
六章定时器及应用_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《六章定时器及应用》由会员分享,可在线阅读,更多相关《六章定时器及应用(42页珍藏版)》请在金锄头文库上搜索。

1、第六章定时器及应用n 6- 定时器定时器/计数器计数器6- 综合应用举例综合应用举例6- 定时器定时器/计数器的扩展计数器的扩展9/22/20241 6- 定时器定时器/计数器计数器一、定时方法:一、定时方法:1 1、硬件定时:、硬件定时:较长时间;不够灵活、方便;较长时间;不够灵活、方便;2 2、软件定时:、软件定时:编循环程序,时间精确;占用编循环程序,时间精确;占用CPUCPU;3 3、可编程定时器定时:可编程定时器定时:对系统时钟脉冲记数,对系统时钟脉冲记数, 灵活、方便。灵活、方便。9/22/20242二、定时器二、定时器/ /计数器的工作原理:计数器的工作原理: 定定时时器器/ /

2、计计数数器器中中的的核核心心部部件件为为可可预预置置初初值值计计数数器器。预预置置初初值值后后开开始始计计数数,直直至至计计数数值值回回0 0或或产产生生溢溢出出,可可申申请中断请中断( (或供查询或供查询) )。 计数器有计数器有加加1 1计数或减计数或减1 1计数计数两种形式。两种形式。K1K2可预置初值计数器可预置初值计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟脉冲内部时钟脉冲(定时)(定时)外部输入脉冲外部输入脉冲(计数)(计数)溢出信号溢出信号计数脉冲计数脉冲计数初值计数初值TF0/TF1TF0/TF1TR0/TR1TR0/TR1C/TC/TTMODTMOD控制字控

3、制字9/22/20243 作为定时器用时的计时速度:作为定时器用时的计时速度:一个机器周期计数一个机器周期计数器加器加1,直至计满溢出。,直至计满溢出。 如晶振为如晶振为12MHz的单片机,一个机器周期为的单片机,一个机器周期为1S,其其计数频率为振荡频率的计数频率为振荡频率的1/12 。 作为计数器用时的计数速度:作为计数器用时的计数速度:每两个机器周期计每两个机器周期计数器加数器加1,计数频率最高为振荡频率的,计数频率最高为振荡频率的1/24。 在在S5P2对计数输入引脚对计数输入引脚T0、T1进行采样,进行采样,下降下降沿计数沿计数。说明:说明: 定时器定时器/计数器在工计数器在工作期间

4、不占用作期间不占用CPU的时间。的时间。9/22/20244三三 MCS-51MCS-51定时器定时器/ /计数器计数器定时器初始化编程包括:定时器初始化编程包括:1.1.功能选择(定时功能选择(定时/ /计数);计数);2.2.位数选择(位数选择(8/13/168/13/16位);位);3.3.启动方式选择(内部启动启动方式选择(内部启动/ /外部启动);外部启动);4.4.启动控制(启动启动控制(启动/ /停止);停止);5.5.恢复初值方式(自动重装恢复初值方式(自动重装/ /软件重装)。软件重装)。2 2个可独立控制的个可独立控制的1616位定时器位定时器/ /计数器:计数器: 加法加

5、法计数器计数器T T0 0、T T1 19/22/202451 1、TMOD定时器方式寄存器(定时器方式寄存器(89H89H):):1 1)功能选择位功能选择位C/TC/T: =0=0:定时功能,计数内部机器周期脉冲;定时功能,计数内部机器周期脉冲; =1=1:计数功能,计数引脚:计数功能,计数引脚T0(T1)T0(T1)输入的负脉冲。输入的负脉冲。2 2)方式选择位)方式选择位M1M1、M0M0:4 4种工作方式:种工作方式:13/16/813/16/8位位四、定时器控制、状态寄存器四、定时器控制、状态寄存器T1T09/22/202463 3)门控方式选择位)门控方式选择位GATEGATE

6、: =0=0,非门控方式非门控方式( (内部启动内部启动) ): TRxTRx=1=1,启动定时器工作;启动定时器工作; TRxTRx=0=0,停止定时器工作。停止定时器工作。 =1=1,门控方式,门控方式( (外部启动外部启动) ): TRxTRx=1=1且引脚且引脚INTxINTx=1=1才启动。才启动。确定定时器工作方式指令:确定定时器工作方式指令: MOV TMODMOV TMOD,# #方式字方式字例:例:设设T T0 0用方式用方式2 2非门控定时,非门控定时, T T1 1用方式用方式1 1门控计数。门控计数。 MOV TMODMOV TMOD,# #?9/22/202472 2

7、、TCONTCON定时器控制定时器控制/ /状态寄存器:状态寄存器:1 1)启动控制位)启动控制位TR0TR0、TR1TR1: =0=0,停止定时器工作;停止定时器工作; =1=1,启动定时器工作。,启动定时器工作。例:例:启动启动T T0 0:SETB TR0SETB TR02 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1: 定时器溢出使定时器溢出使TFx=1TFx=1,引起中断请求,引起中断请求,CPUCPU响应响应TxTx中断中断 后,系统自动将后,系统自动将TFxTFx清清0 0。当然,也可用软件检测当然,也可用软件检测TFxTFx,这时必须软件清,这时必须软件清0 0

8、。WAITWAIT: JBCJBCTF0TF0,NEXTNEXT ;检测;检测T0T0是否溢出是否溢出 SJMPSJMPWAITWAIT ;未溢出,继续检测未溢出,继续检测NEXTNEXT: ;溢出,溢出,TF0TF0清清0 0,处理溢出,处理溢出9/22/20248TCON的地址及格式如下,的地址及格式如下,可按位寻址可按位寻址。 各位的意义如下:各位的意义如下:TF1(TCON.7, 8FH位)位)-T1溢出标志位。溢出标志位。TF0(TCON.5, 8DH位)位)-T0溢出标志位。溢出标志位。TR1(TCON.6, 8EH位)位)-T1运行控制位。运行控制位。 0:关闭:关闭T1;1:启

9、动启动T1运行。运行。TR0(TCON.4, 8CH位)位)-T0运行控制位。运行控制位。 0:关闭:关闭T0;1:启动启动T0运行。运行。9/22/20249TCON各位的意义如下图所示:各位的意义如下图所示:9/22/2024103 3、可预置初值的、可预置初值的1616位位加加1 1计数器计数器TH0TH0、TL0TL0、TH1TH1、TL1TL1: 如:预置如:预置T T0 0初值指令:初值指令: MOVMOVTH0TH0,#X#XH H MOVMOVTL0TL0,#X#XL L9/22/202411五、五、 定时器工作方式定时器工作方式由方式选择位由方式选择位M1M1、M0M0设定。

10、设定。1 1 1 1、方式、方式、方式、方式0 0 0 0(M1M0=00M1M0=00M1M0=00M1M0=00):):):):13131313位定时位定时位定时位定时/ / / /计数器。计数器。计数器。计数器。THx8THx8THx8THx8位和位和位和位和TLxTLxTLxTLx低低低低5 5 5 5位组成加位组成加位组成加位组成加1 1 1 1计数器。计数器。计数器。计数器。计数外部脉冲个数:计数外部脉冲个数:1 181928192(2(21313) )定时时间定时时间( (若若T=1T=1 s)s):1 1 s s8.19ms8.19msfoscfoscT=12/foscT=12

11、/fosc9/22/202412(一一) 模式模式0工作时的构成工作时的构成: (1)运行)运行控制部分控制部分;(;(2)定时)定时/计数计数信号源信号源; (3)13位位计数器计数器;(;(4)溢出标志溢出标志。(二二) 特点特点 1、可定时(、可定时(C/T=0)、)、可计数(可计数(C/T=1) ; 2、13位方式(位方式(TL0、1的低的低5位和位和TH0、1的的8位);位); 3、INT0、INT1是定时器是定时器/计数器计数器0、1的外部门,的外部门, GATE=1允许使用外部门(允许使用外部门(TR0、1应置应置1), 此时用外部此时用外部门控制运行门控制运行 GATE=0禁止

12、外部门,此时用禁止外部门,此时用TR0、1控制运行;控制运行; 4、计数值、计数值N和定时时间和定时时间t的计算的计算 : N= 213- 初值初值X t=(213-初值初值X)*振荡周期振荡周期*12 =(213-初值初值X)*机器周期机器周期Tcy最大计数值为:最大计数值为: 213 = 81929/22/202413(三三) 应用举例应用举例 例例6-1 设定时器设定时器T0选择工作模式选择工作模式0,定时时间为,定时时间为1ms, osc=6MHz。试确定试确定T0初值,计算最大定时时间初值,计算最大定时时间T。 解:解: (1)求)求T0的初值的初值X由公式:由公式:t=(213-T

13、0初值初值)*机器周期机器周期Tcy t=1ms=1000s 机器周期机器周期Tcy=12/ osc=12/6000000s=2s得得 1000=( 213 -X)*2所以初值所以初值 X=8192-500=7692=1111000001100BT0的低的低5位:位:01100B=0CHT0的高的高8位:位:11110000B=F0H(2)最大定时时间最大定时时间T 当当T0的初值的初值=0时为最大定时时间时为最大定时时间 T=(213 -0)*2=8192*2s =16384 s =16.384ms7692 32商为高商为高8位,位,余数为低余数为低5位位9/22/202414 例例6-2

14、设设T1以模式以模式0定时,定时时间为定时,定时时间为1ms, osc=6MHz,编程实现其定时功能。编程实现其定时功能。解解: (1)计算初值(同上,略)计算初值(同上,略) F0HTH0,0CHTL0(2)程序清单程序清单 ORG 0000HAJMP MAIN ORG 000BH AJMP IT0P;主程序主程序 ORG 0100HMAIN: MOV SP,#5FHMOV TMOD ,#00HMOV TL0,#0CHMOV TH0,#0F0HSETB TR0SETB ET0SETB EASJMP $9/22/202415;中断服务程序;中断服务程序 ORG 0120HIT0P:MOV TL

15、0,#0CH MOV TH0,#0F0H CPL P1.0 RETI9/22/202416 例例6-3 利用利用T0的工作模式的工作模式0产生产生1ms的定时,编的定时,编程实现在程实现在P1.0引脚上输出周期为引脚上输出周期为2ms的方波。设单的方波。设单片机的晶振频率片机的晶振频率 osc=12MHz。解解: 方法:方法:定时定时1ms,对,对P1.0取反,然后继续定时取反,然后继续定时(1)设置模式字)设置模式字 TMOD= * 0000B =00000000B=00H (2)计算初值计算初值由公式:由公式:t=(213-T0初值初值)*机器周期机器周期 t=1ms=1000s,机器周期

16、机器周期Tcy=12/ osc=12/12000000s=1s得得 1000=( 213 -X)*1=(8192-X)*1所以初值所以初值 X=7192=1110000011000BT0的低的低5位:位:11000B=18HT0的高的高8位:位:11100000B=E0H1ms2ms7192 32商为高商为高8位,位,余数为低余数为低5位位9/22/202417(3)程序清单程序清单方法一:中断方式方法一:中断方式 ORG 0000HRESET:LJMP MAIN ORG 000BH LJMP CTC0;主程序主程序 ORG 0030HMAIN: MOV SP,#5FH MOV TMOD,#0

17、 MOV TL0,#18H MOV TH0,#0E0H SETB EA SETB ET0 SETB TR0 SJMP $;中断服务程序中断服务程序 ORG 0100HCTC0:MOV TL0,#18H MOV TH0,#0E0H CPL P1.0 RETI9/22/202418方法二:查询方式方法二:查询方式 ORG 0000HSTART:MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB TR0LOOP: JBC TF0,NEXT SJMP LOOPNEXT: MOV TL0,#18H MOV TH0,#0E0H CPL P1.0

18、SJMP LOOP可可替换为替换为:LOOP:JNB TF0,$ CLR TF0 MOV TL0,#18H :9/22/2024191616位定时位定时/ /计数器。计数器。 THx8THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1计数器。计数器。计数外部脉冲个数:计数外部脉冲个数:1 16553665536(2(21616) )定时时间定时时间( (若若T=1T=1 s)s):1 1 s s(65536T=65.54ms)(65536T=65.54ms)2 2 2 2、方式、方式、方式、方式1 1 1 1(M1M0=01M1M0=01M1M0=01M1M0=01):):):

19、):T=12/foscT=12/fosc9/22/2024203 3 3 3、方式、方式、方式、方式2 2 2 2(M1M0=10M1M0=10M1M0=10M1M0=10):):):): 自动恢复初值自动恢复初值8 8位定时位定时/ /计数器。计数器。TLxTLx为为8 8位加位加1 1计数器,计数器, THxTHx为为8 8位初值暂存器位初值暂存器。用于需要重复定时和计数的场合。用于需要重复定时和计数的场合。最大计数值:最大计数值:256 (2256 (28 8) )最大定时时间最大定时时间( (若若T=1T=1 s)s): 256256 s sT=12/foscT=12/fosc9/22

20、/2024214 4 4 4、方式、方式、方式、方式3 3 3 3(M1M0=11M1M0=11M1M0=11M1M0=11):):):):nT0T0分成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器;定时器;nTL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;nTH0TH0占用占用T1T1控制位:控制位:TR1TR1、TF1TF1;nT1T1不能使用方式不能使用方式3 3工作,常作串口的波特率发生器使用。工作,常作串口的波特率发生器使用。foscfosc振荡器振荡器9/22/202422 TMOD各

21、位的意义如下:各位的意义如下:M1和和M0-工作模式控制位。其功能如下表:工作模式控制位。其功能如下表:C/T-定时器定时器/计数器方式选择位。计数器方式选择位。 0:定时器;:定时器;1:计数器。:计数器。GATE-外部门控位。外部门控位。 0:不用外部门;:不用外部门;1:使用外部门。:使用外部门。9/22/202423求求THX、TLX的方法:的方法: T0T0运行于计数器状态,工作于方式运行于计数器状态,工作于方式1 1 (1616位方式),要求外部引脚出现位方式),要求外部引脚出现3 3个个 脉冲后,脉冲后,TH0TH0、TL0TL0全回全回0 0(以便申请(以便申请 中断)。求计数

22、初值中断)。求计数初值C C。解:解:C=(0003H)C=(0003H)求补求补=FFFDH=FFFDH例例1:加加1 1计数计数9/22/202424例例2: T0T0运行于定时器状态,时钟振荡周期为运行于定时器状态,时钟振荡周期为12MH12MHZ Z,要求定,要求定时时100100 s s。求不同。求不同工作方式时的定时初值工作方式时的定时初值C C。解:解:foscfosc=12MHz=12MHz T=1 T=1 s s X=100 X=100 s s/1/1 s s=(100)=(100)D D=64H=64H方式方式0 0(13(13位方式位方式) ):C=(64H)C=(64H

23、)求补求补=0 0000 0110 0100 B+1=0 0000 0110 0100 B+1 =1F9CH =1F9CH方式方式1 1(16(16位方式位方式) ):C=(64H)C=(64H)求补求补=0000 0000 0110 0100 B+1=0000 0000 0110 0100 B+1 =FF9CH =FF9CH方式方式2 2、3 3(8(8位方式位方式) ):C=(64H)C=(64H)求补求补=0110 0100 B+1=0110 0100 B+1 =9CH =9CH注意:注意:工作方式工作方式0 0的初值装入方法:的初值装入方法:1F9CH=0001F9CH=0001 11

24、11 1001 1111 1001 11001 1100 B B 可见,可见,TH0=FCHTH0=FCH,TL0=1CHTL0=1CHTL0TL0的低的低5 5位位TH0TH0的的8 8位位MOVMOVTH0TH0,#0FCH#0FCHMOVMOVTL0TL0,#1CH#1CHT=12/foscT=12/fosc9/22/202425六、六、MCS-51MCS-51定时器的应用定时器的应用1 1计数功能:计数功能:n生产线上产品计数:生产线上产品计数:每个产品通过得到一个脉冲信号,每个产品通过得到一个脉冲信号, 计数器记录脉冲个数,当计数值与计数器记录脉冲个数,当计数值与 设定值相等,启动包

25、装机器。设定值相等,启动包装机器。n检测转速:检测转速:电机转动一圈发出一个脉冲,计数器记录一电机转动一圈发出一个脉冲,计数器记录一 秒时间内脉冲个数,显示转速。秒时间内脉冲个数,显示转速。2 2定时功能:定时功能:n用于实时控制:用于实时控制:定时采样、定时启动等。定时采样、定时启动等。 当定时时间与设定值相等,执行规定操作。当定时时间与设定值相等,执行规定操作。9/22/2024263.3.定时器初始化编程定时器初始化编程 使用定时器工作之前,先写入控制寄存器,使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。确定好定时器工作方式。 初始化编程格式:初始化编程格式:MOV TM

26、OD,# 方式字方式字 ;选择方式;选择方式MOV THx,#XH ;装入装入Tx时间常数时间常数MOV TLx,#XL(SETB EA) ;开;开Tx中断中断(SETB ETx ) SETB TRx ;启动启动Tx定时器定时器需考虑:需考虑:1. 按实际需要选择定时按实际需要选择定时/ /计数功能;计数功能; 2. 按时间或计数长度选择工作方式;按时间或计数长度选择工作方式; 3. 3. 计算时间常数:计算时间常数:计算时间常数:计算时间常数:计算时间常数计算时间常数X(X(计算初值计算初值) ):计数功能:计数功能:X= 2X= 2n n - -计数值计数值 (n n:8/13/168/1

27、3/16) 定时功能:定时功能:X= 2X= 2n n - t/T- t/T (t t:定时时间;定时时间; T T:机器周期)机器周期)9/22/2024274. 溢出处理编程格式溢出处理编程格式1 1)查询方式:)查询方式:先查询定时器溢出标志,再进行溢出处理。先查询定时器溢出标志,再进行溢出处理。 ;定时器初始化;定时器初始化WAITWAIT: JBC JBC TFxTFx,PT PT ;检测溢出标志检测溢出标志SJMP SJMP WAITWAIT PT PT: MOVMOVTHxTHx,#X#XH H ;重装时间常数重装时间常数MOVMOVTLxTLx,#X#XL L ;溢出处理溢出处

28、理SJMPSJMPWAITWAIT2 2)中断方式)中断方式:初始化后执行其它任务,中断服务程序处理溢出。:初始化后执行其它任务,中断服务程序处理溢出。ORGORG0000H0000HLJMPLJMPMAINMAINORGORG000BH(001BH) 000BH(001BH) ;TxTx中断入口中断入口LJMPLJMPPTSPTSMAINMAIN: ;初始化后执行其他程序初始化后执行其他程序 PTSPTS: ;溢出中断服务程序溢出中断服务程序MOVMOVTHxTHx,#X#XH H;重装时间常数重装时间常数MOVMOVTLxTLx,#X#XL LRETIRETI9/22/202428练习:练

29、习:80C5180C51单片机选择单片机选择1616位加位加1 1计数器。计数器。 按要求选择功能和初值。按要求选择功能和初值。1 1、要求检测到、要求检测到100100个脉冲,发中断请求,通知个脉冲,发中断请求,通知CPUCPU。 选计数功能,计数初值为选计数功能,计数初值为156156。2 2、要求定时每隔、要求定时每隔100100 s s时间,发一次中断请求。时间,发一次中断请求。 设内部时钟周期设内部时钟周期1 1 s s 选定时功能,计数初值为选定时功能,计数初值为156156。9/22/202429 80C51单片机内有单片机内有2个个16位的位的T0和和T1,如在应用中,定时器如

30、在应用中,定时器/计数器的数量或功能不计数器的数量或功能不能满足要求,则可在外部扩展。能满足要求,则可在外部扩展。 扩展的芯片主要有扩展的芯片主要有8253( (最高时钟频率为最高时钟频率为2MHz) )和和8254( (最高时钟频率为最高时钟频率为8MHz) )等。等。它们均为它们均为减法计数减法计数。各有。各有3个独立的个独立的16位计数位计数器器T0、T1和和T2,它们既可用于计数,又可用它们既可用于计数,又可用于定时,并可运行在于定时,并可运行在0模式模式5模式共模式共6种不同种不同的工作模式中。的工作模式中。 6- 定时器定时器/计数器的扩展计数器的扩展9/22/2024306- 定

31、时器定时器/计数器与中断计数器与中断综合应用综合应用举例举例例例1 1:由由P1.0P1.0输出方波信号,周期为输出方波信号,周期为2ms2ms, 设设f foscosc=12MHz=12MHz。2ms解:每隔解:每隔1ms1ms改变一次改变一次P1.0P1.0的输出状态。的输出状态。 用用T0T0非门控方式非门控方式1 1定时。定时。 计算时间常数:计算时间常数:X=2X=21616-t/T=2-t/T=21616-1000/1 -1000/1 =FC18H =FC18H(1 1)查询方式:)查询方式: START:MOV TMOD,#01H MOV TL0,#18H MOV TH0,#0F

32、CH SETB TR0 LOOP: JBC TF0,PTF0 SJMP LOOP PTF0: CPL P1.0 MOV TL0,#18H MOV TH0,#0FCH SJMP LOOPT1T0单片机单片机 P1.02ms9/22/202431(2 2)中断方式:)中断方式: ORG0000H AJMPMAIN ORG000BH;T0定时器定时器 AJMPPT0INT ORG0100HMAIN: MOVSP,#60H MOVTMOD,#01H MOVTL0,#18H MOVTH0,#0FCH SETBEA SETBET0 SETBTR0HERE: SJMPHEREPT0INT: CPLP1.0

33、MOVTL0,#18H MOVTH0,#0FCH RETIT1T09/22/202432利用利用C51程序实现:程序实现:#includesbit P1_0=P10;Void main (void) TMOD=0x01;/*定时器定时器0方式方式1*/TR0=1;/*启动启动T/C0*/ for (;)TH0=(65536-1000)/256;/*装载计数初值装载计数初值*/TL0=(65536-1000)%256;do while (! TF0);/*等待查询等待查询TF0置位置位*/P1_0=! P1_0;/*定时时间到定时时间到P1.0反相反相*/TF0=0;/*软件清软件清TF0*/用

34、定时器用定时器0的方式的方式1编程,采用查询方式。编程,采用查询方式。reg51.h文件定义了所有文件定义了所有8051的特殊功能寄存器及中断的特殊功能寄存器及中断9/22/202433#includesbit P1_0=P10;Void timer0 (void)interrupt 1 using 1 /*T/C0中断服务程序入口中断服务程序入口*/ P1_0=! P1_0;/*定时时间到定时时间到P1.0反相反相*/TH0=(65536-1000)/256;/*计数初值重装载计数初值重装载*/TL0=(65536-1000)%256;Void main(void)TMOD=0x01;/*定

35、时器定时器0工作在方式工作在方式1*/P1_0=0;TH0=(65536-1000)/256;/*预置计数初值预置计数初值*/TL0=(65536-1000)%256;EA=1;/*CPU开中断开中断*/ET0=1;/*T/C0开中断开中断*/TR0=1; /*启动启动T/C0开始定时开始定时*/do while(1);用定时器用定时器0的方式的方式1编程,采用中断方式。编程,采用中断方式。9/22/202434例例2 2:长定时方法长定时方法:增加一个软件增加一个软件计数器或一个硬件计数器。计数器或一个硬件计数器。本题采用硬件方式:本题采用硬件方式:T0T0定时,定时定时,定时10ms10m

36、s; T1T1计数计数T0T0的定时跳变信号的定时跳变信号P1.0P1.0的负跳变次数,计满的负跳变次数,计满5050个个跳变为跳变为1 1秒。秒。(查询方法)(查询方法)START: MOV TMOD,#61H MOV TL1,#0CDH MOV TH1,#0CDH CLR P1.0 SETB TR1LOOP1: CPL P1.7LOOP2: MOV TL0 ,#78H MOV TH0,#0ECH SETB TR0LOOP3: JBC TF0,LOOP4 SJMP LOOP3LOOP4: MOV TL0 ,#78H MOV TH0,#0ECH CPL P1.0 JBC TF1,LOOP1 S

37、JMP LOOP2T=2T=2s s,X=5X=510105 5个个T T,而最大只能而最大只能6553665536个个T T,不能满足要求,必须借助硬件计数器或软件循环。不能满足要求,必须借助硬件计数器或软件循环。 T0T0定时初值:定时初值: (方式(方式1 1)t=10mst=10ms,X=5000D=1388HX=5000D=1388H,C=C=(1388H1388H)补补=EC78H=EC78H T1T1计数初值:计数初值: (方式(方式2 2)X=50DX=50D,C=C=(32H32H)补补=CDH=CDHP P1.71.7驱动驱动LEDLED亮亮1 1秒灭秒灭1 1秒地闪烁,设

38、时钟频率为秒地闪烁,设时钟频率为6MHz6MHz。9/22/202435利用利用C51程序程序实现实现:#includesbit P1_0=P10;sbit P1_7=P17;timer0 interrupt 1 using 1 /*T/C0中断服务程序中断服务程序*/ P1_0=! P1_0;/*10ms定时时间到定时时间到, P1.0反相反相*/TH0=(65536-5000)/256;/*计数初值重装载计数初值重装载*/TL0=(65536-5000)%256;timer1 interrupt 3 using 2 /*T/C1中断服务程序入口中断服务程序入口*/ P1_7=! P1_7;

39、/*1s定时时间到定时时间到, 灯改变状态灯改变状态*/main( ) P1_7=0;/*置灯初始灭置灯初始灭*/P1_0=1;/*保证第一次反相便开始计数保证第一次反相便开始计数*/TMOD=0x61;/*定时器定时器0工作在方式工作在方式1定时,定时器定时,定时器1工作在方式工作在方式2计数计数 */TH0=(65536-5000)/256;/*预置计数初值预置计数初值*/TL0=(65536-5000)%256;TH1=256-50;TL1=256-50;IP=0x08; /*置优先级寄存器置优先级寄存器*/EA=1;/*CPU开中断开中断*/ET0=1;/*开开T/C0中断中断*/ET

40、1=1;/*开开T/C1中断中断*/TR0=1;/*启动启动T/C0*/ TR1=1;/*启动启动T/C1*/for (;)reg51.h文件定义了所有文件定义了所有8051的特殊功能寄存器及中断的特殊功能寄存器及中断9/22/202436例例3:外部负脉冲引起中断请求,选计数方式,时间常数为外部负脉冲引起中断请求,选计数方式,时间常数为FFHFFH。START:MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00HWAIT1:JB P3.3,WAIT1 SETB TR1WAIT2:JNB P3.3,WAIT2 WAIT3:JB P3.3,WAIT3 CLR TR1 M

41、OV R2,TL1 MOV R3,TH1 TR1=1 T1启动启动 TR1=0 T1停止停止INT1例:例:门控方式测量正脉冲宽度门控方式测量正脉冲宽度解:解: INT1INT1引脚输入被检测信号,记录在正脉冲的引脚输入被检测信号,记录在正脉冲的 时间内包含机器脉冲个数。时间内包含机器脉冲个数。 (1)设脉宽小于设脉宽小于65.5ms65.5ms(方式方式1 1):): 等待查询等待查询INT1INT1,正脉冲过后,读出正脉冲过后,读出TH1TL1。定时器外部引脚定时器外部引脚T0(T1)T0(T1)用作外部中断信号输入端用作外部中断信号输入端 ( (单片机振荡频率为单片机振荡频率为 12M)

42、12M)。9/22/202437 ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ORG 001BH ORG 001BH AJMP PRIC AJMP PRIC MAIN: SETBMAIN: SETBTR1TR1SETBSETBET1ET1 ;开;开T1T1中断中断SETBSETBEAEAWAIT2WAIT2:JNBJNBP3.3P3.3,WAIT2 WAIT2 ;等待正脉冲到来;等待正脉冲到来WAIT3WAIT3:JBJBP3.3P3.3,WAIT3 WAIT3 ;等待正脉冲结束;等待正脉冲结束CLRCLRTR1TR1 ;关闭关闭T1T1MOVMOVIEIE,

43、#00H#00H ;关闭中断关闭中断MOVMOVR2R2,TL1TL1 ;读出读出T1T1MOVMOVR3R3,TH1TH1LCALL PPSLCALL PPS ;计算脉宽计算脉宽HEREHERE:SJMPSJMPHEREHERE ;其他任务其他任务PRICPRIC:INCINCR4R4 ;记录溢出次数记录溢出次数RETIRETI PPS PPS: ;计算脉宽子程序;计算脉宽子程序计算脉宽的子程序的计算式如下:计算脉宽的子程序的计算式如下: 脉宽脉宽t=t=(R R4 42216 16 +R+R3 3 R R2 2)T )T (T T为机器周期)为机器周期)(2)设脉宽大于设脉宽大于65.5m

44、s65.5ms: 中断方式中断方式记录记录TH1TL1TH1TL1溢出中断次数。溢出中断次数。9/22/2024381 1、5 5个中断源及其对应入口地址:个中断源及其对应入口地址: 外中断外中断2 2个:个:INT0INT0、INT1INT1 定时中断定时中断2 2个:个:T0T0、T1T1 串行中断串行中断1 1个:个:RI/TIRI/TI 2 2、中断优先原则:分中断优先原则:分2 2个优先级;个优先级; 同级:同级: INT0T0INT1T1RI/TIINT0T0INT1T1RI/TI。3 3、中断响应过程:中断响应过程:4 4、中断系统内部结构:、中断系统内部结构:5 5、中断请求的

45、撤消:、中断请求的撤消:3 3类中断请求撤消的异同点。类中断请求撤消的异同点。6 6、中断源的扩展。、中断源的扩展。7 7、定时器、定时器/ /记数器的工作原理、记数器的工作原理、4 4种工作方式。种工作方式。8 8、定时器、定时器/ /记数器与中断的综合应用。记数器与中断的综合应用。小小 结结9/22/2024399、利用定时器、利用定时器/计数器形成中断源计数器形成中断源 把定时器把定时器/ /计数器计数器T0T0(T1T1)设置成记数状态,并把)设置成记数状态,并把计数器初值设置成只要加计数器初值设置成只要加1 1个外部脉冲后计数器就回个外部脉冲后计数器就回0 0的的数值时,在打开了中断

46、的条件下,外部信号只要出现数值时,在打开了中断的条件下,外部信号只要出现1 1个脉冲周期就可引起中断请求。个脉冲周期就可引起中断请求。当计数器设置成方式当计数器设置成方式0 0时,计数器初值应为时,计数器初值应为FF1FHFF1FH;当计数器设置成方式当计数器设置成方式1 1时,计数器初值应为时,计数器初值应为FFFFHFFFFH;当计数器设置成方式当计数器设置成方式2/32/3时,计数器初值应为时,计数器初值应为FFHFFH。方式方式2 2能自动重装初值;能自动重装初值;方式方式0 0、1 1、3 3不能,必须需重装。不能,必须需重装。9/22/202440例如以定时器/计数器0扩展一个外部中断,其初始化程序段为:nMOV TMOD,#06HnMOV TH0,#0FFHnMOV TL0,#0FFHnSETB EAnSETB ET0nSETB TR09/22/202441P/141 例n设计实时时钟程序9/22/202442

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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