




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、片机定时器课件片机定时器课件 片机定时器课件 8051定时器的结构定时器的结构有两个有两个16位的定时器位的定时器/计数器,即定时器计数器,即定时器0(T0)和定时器)和定时器1(T1)。它们实际上都是)。它们实际上都是16位加位加1计数器。计数器。T0由两个由两个8位特殊功能寄存器位特殊功能寄存器TH0和和TL0构成;构成;T1由由TH1和和TL1构成。构成。片机定时器课件一、定时一、定时/计数器的结构计数器的结构K1K2可预置初值计数器可预置初值计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟脉冲内部时钟脉冲(定时)(定时)外部输入脉外部输入脉冲冲(计数)(计数)溢出信号溢出
2、信号计数脉冲计数脉冲计数初值计数初值核心是一个可预置初值的计数器,其计数脉冲有两核心是一个可预置初值的计数器,其计数脉冲有两个来源:一是系统的时钟振荡器;另一个是外部脉个来源:一是系统的时钟振荡器;另一个是外部脉冲。当输入脉冲为系统振荡器时脉冲时间间隔相等,冲。当输入脉冲为系统振荡器时脉冲时间间隔相等,每个脉冲唯一时间基准,脉冲数乘以时间基准就是每个脉冲唯一时间基准,脉冲数乘以时间基准就是定时时间,这是定时器定时时间,这是定时器;当输入脉冲为外部脉冲时,当输入脉冲为外部脉冲时,其间隔不一定相等,这是就是计数器其间隔不一定相等,这是就是计数器片机定时器课件每输入一个脉冲,计数器加一,当计每输入一
3、个脉冲,计数器加一,当计数器计满时(全数器计满时(全1),再来一个脉冲,),再来一个脉冲,计数器回计数器回0,同时从最高位溢出一个,同时从最高位溢出一个脉冲使脉冲使SRF的的TCON的某一位的某一位TF0或或TF1置置1,作为定时,作为定时/计数器溢出中断,计数器溢出中断,定时器状态表示定时时间到;计数器定时器状态表示定时时间到;计数器状态保表示计满回状态保表示计满回0片机定时器课件二、定时二、定时/计数器的工作原理计数器的工作原理定时定时/计数器的核心是一个加计数器的核心是一个加1计数器计数器结构图中有两个开关结构图中有两个开关K1K1、K2K2,K1K1决定工作状决定工作状态:接内部振荡器
4、为定时,接外部脉冲源为计态:接内部振荡器为定时,接外部脉冲源为计数。数。K2K2受控制信号控制,决定脉冲能否加到计受控制信号控制,决定脉冲能否加到计数器上,实际上决定计数器的开启与停止。数器上,实际上决定计数器的开启与停止。这两个开关是由这两个开关是由SRFSRF的的TCONTCON和和TMODTMOD两个寄存两个寄存器相应位控制的。通过对这两个寄存器写入控器相应位控制的。通过对这两个寄存器写入控制字,即可选择工作状态和控制启动时间,可制字,即可选择工作状态和控制启动时间,可见见MCS-51MCS-51的定时的定时/ /计数器是可程控的。计数器是可程控的。片机定时器课件加加1计数器由两个计数器
5、由两个8位特殊功能寄存器位特殊功能寄存器TH X和和TL X(X=0或或1)组成,它们可以被组成,它们可以被程控程控形成定时形成定时/计数器的四种工作方式计数器的四种工作方式。加加1计数器计数工作的启动和停止由计数器计数工作的启动和停止由相应的电路控制,方式寄存器相应的电路控制,方式寄存器TMOD的的GATE、寄存器寄存器TCON的的TR X(X=0或或1) 片机定时器课件通过方式寄存器通过方式寄存器TMOD的的C/T位来位来选择加选择加1计数器计数脉冲的来源:计数器计数脉冲的来源: 作为计数器用时,外部输入脉冲加作为计数器用时,外部输入脉冲加在定时在定时/计数器的外部输入端计数器的外部输入端
6、T0(P3.4)或或T1(P3.5),每出现一次从每出现一次从1到到0的跳的跳变,加变,加1计数器便加计数器便加1。片机定时器课件1 1定时器定时器 用于实时控制,定时采样、定时启用于实时控制,定时采样、定时启动等。当定时时间与设定值相等,执动等。当定时时间与设定值相等,执行规定操作。行规定操作。 K1K1接内部时钟时,脉冲源是振荡频接内部时钟时,脉冲源是振荡频率的率的1212分之一,即对机器周期计数,分之一,即对机器周期计数,为定时方式,所以定时时间为:为定时方式,所以定时时间为: T = T = 计数值计数值* *机器周期机器周期片机定时器课件2 2计数器计数器生产线上产品计数生产线上产品
7、计数。每个产品通过得。每个产品通过得到一个脉冲信号,计数器记录脉冲个到一个脉冲信号,计数器记录脉冲个数,当计数值与设定值相等,启动包数,当计数值与设定值相等,启动包装机器。装机器。检测转速检测转速。电机转动一圈发出一个脉。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,冲,计数器记录一秒时间内脉冲个数,显示转速。显示转速。片机定时器课件K1K1接外部脉冲时,工作在计数状态,接外部脉冲时,工作在计数状态,当当T0T0或或T1T1有一个有一个1 1到到0 0的跳变时,计数的跳变时,计数器加一。计数操作中,每个机器周期器加一。计数操作中,每个机器周期的的S5P2S5P2期间采样外部输入信号,
8、当一期间采样外部输入信号,当一个机器周期采样值为高电平,另一个个机器周期采样值为高电平,另一个机器周期采样值为低电平时,计数器机器周期采样值为低电平时,计数器加一。所以识别一个跳变要占两个机加一。所以识别一个跳变要占两个机器周期。因此外部计数脉冲高低电平器周期。因此外部计数脉冲高低电平宽度每个至少要保持一个机器周期。宽度每个至少要保持一个机器周期。片机定时器课件两个16位可编程定时/计数器: 定时 计数 波特率发生器四种工作模式:13位定时/计数器 16位定时/计数器 8位定时/计数器(自动装入常数) 8位定时/计数器 (两个独立8位,仅定时/计数器0有)片机定时器课件 片机定时器课件 MCS
9、-51的定时的定时/计数器主要由几个专用寄存器组成:计数器主要由几个专用寄存器组成:TL0:定时定时/计数器计数器0低八位计数值低八位计数值TH0:定时定时/计数器计数器0高八位计数值高八位计数值TL1:定时定时/计数器计数器1低八位计数值低八位计数值TH1:定时定时/计数器计数器1高八位计数值高八位计数值TMOD:控制寄存器,控制定时控制寄存器,控制定时/计数器方式计数器方式 的工作方式的工作方式TCON:控制寄存器,控制定时控制寄存器,控制定时/计数器的起停计数器的起停 指示溢出中断标志指示溢出中断标志片机定时器课件GATEC/TM1M0GATEC/TM1M0T1T0一、定时器方式寄存器一
10、、定时器方式寄存器TMOD(8989H H)TMODTMOD的地址为的地址为8989H H,不可按位寻址,不可按位寻址,只能用字节指令设置定时器工作方式。只能用字节指令设置定时器工作方式。低半字节定义定时器低半字节定义定时器T T0 0,高半字节定高半字节定义定时器义定时器T T1 1。复位时,复位时,TMODTMOD所有位均所有位均为零为零。 片机定时器课件M1 M0工作方式功能说明0 0方式013位计数器0 1方式116位计数器1 0方式2自动再装入8位计数器1 1方式3定时器0:分成两个8位计数器1 1)功能选择位)功能选择位 C/TC/T:=0=0,定时功能,计数内部机器周期脉冲;定时
11、功能,计数内部机器周期脉冲;=1=1,计数功能,计数引脚,计数功能,计数引脚T0(T1)T0(T1)输入的输入的负脉冲。负脉冲。 2 2)方式选择位)方式选择位M1M1、M0M0:4 4种工作方式:种工作方式:片机定时器课件3 3)门控方式选择位)门控方式选择位GATEGATE : =0=0,非门控方式非门控方式( (内部启动内部启动) ):TRx=1TRx=1,启动定时器工作;启动定时器工作;TRx=0TRx=0,停止定时器工作。停止定时器工作。=1=1,门控方式,门控方式( (外部启动外部启动) ):TRx=1TRx=1且引脚且引脚INTx=1INTx=1才启动。才启动。片机定时器课件确定
12、定时器工作方式指令:确定定时器工作方式指令:MOV TMOD,#方式字方式字例例:设:设T0T0用方式用方式2 2非门控定时,非门控定时,T1T1用用方式方式1 1门控计数。门控计数。MOVTMOD,#0D2HTMOD各位定义及具体意义各位定义及具体意义片机定时器课件TCON的位地址位88H,可按位寻址。复位时,TCON所有位均为零。 1 1)启动控制位)启动控制位TR0TR0、TR1TR1=0=0,停止定时器工作停止定时器工作=1=1,启动定时器工作,启动定时器工作例:启动例:启动T0T0:SETBSETBTR0TR0二、二、定时器控制定时器控制/ /状态寄存器状态寄存器TCON(8888H
13、 H)位位8FH8EH8DH 8CH 8BH 8AH89H88H意义意义TF1TR1TF0TR0IE1IT1IE0IT0片机定时器课件2 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1定时器溢出使定时器溢出使TFx=1TFx=1,引起中断请求,引起中断请求,CPUCPU响应响应TxTx中断后,自动清中断后,自动清0 0 TFxTFx。可用软件检测可用软件检测TFxTFx,必须软件清必须软件清0 0。WAITWAIT:JBC TF0JBC TF0,NEXTNEXT;检测检测T0T0是否溢出是否溢出 SJMPSJMP WAITWAIT ;未溢出,继续检测未溢出,继续检测NEXTNEX
14、T: ;溢出,溢出,TF0TF0清清0 0,处理,处理溢出溢出TCON各位定义及具体的意义各位定义及具体的意义片机定时器课件三、可预置初值的三、可预置初值的1616位加位加1 1计数器计数器TH0TH0、TL0TL0、 TH1 TH1、TL1TL1预置预置T0T0初值指令:初值指令:MOVTH0,#XHMOVTL0,#XL片机定时器课件 片机定时器课件由方式选择位由方式选择位M1M1、M0M0设定设定一、一、 方式方式0 0 13 13位定时位定时/ /计数器。计数器。 THx 8THx 8位和位和TLxTLx低低5 5位组成位组成1313位加位加1 1 计数器,此种计数器,此种方式与方式与M
15、CSMCS4848系列兼容,如果不是为系列兼容,如果不是为了兼容的目的,一般不用方式了兼容的目的,一般不用方式0.0. 方式方式0 0的全部功能,方式的全部功能,方式1 1都可以都可以代替。代替。片机定时器课件1、方式、方式0介绍介绍当M1M0两位为00时,为工作方式0(13位)C/T=0时,作为定时器方式工作,T0对机器周期计数,其定时时间为: (213- T0初值初值)时钟周期时钟周期12 片机定时器课件非门控方式:当非门控方式:当GATE0, 控制权由控制权由 TRx 决定决定 TRx1 计数开始计数开始 TRx 0 计数停止计数停止门控方式:当门控方式:当GATE1、TRx1 控制权由
16、控制权由 INTx 决定决定 INTx1 计数开始计数开始 INTx 0 计数停止计数停止最大计数脉冲个数:18192 (213),最长定时时间(晶振12MHz T=1s):1s8192T= 8.192 ms启动计数方式:启动计数方式:定时器0模式0结构片机定时器课件2 2、应用举例、应用举例使用定时使用定时/ /计数器进行定时或计数之前,首先计数器进行定时或计数之前,首先要通过软件对它进行初始化。要通过软件对它进行初始化。初始化包括下述初始化包括下述步骤:步骤:1.确定工作方式:对确定工作方式:对TMODTMOD寄存器赋值;寄存器赋值;2.置定时置定时/ /计数器初值:对计数器初值:对TH0
17、、TL0或或TH1、TL1寄存器赋值;寄存器赋值; 初值初值X X的计算方法如下:的计算方法如下: 计数方式时:计数方式时:X=N-M X=N-M 定时方式时:定时方式时:X=N-t/TX=N-t/T片机定时器课件在上两式中,在上两式中,M M为计数模值,即从计为计数模值,即从计数器启动到溢出时所需计数值;数器启动到溢出时所需计数值;t t为为定时值;定时值;T T为为机器机器周期。周期。3.根据需要,开放定时器中断:对根据需要,开放定时器中断:对IEIE寄存器赋值;寄存器赋值;4.4.启动定时启动定时/ /计数器:使计数器:使TCONTCON寄存器寄存器的的TRTR0 0或或TRTR1 1置
18、位,或由加到引脚置位,或由加到引脚INTINTX X上的外部信号电平启动。上的外部信号电平启动。片机定时器课件例例: :利用利用T0方式方式0 0产生宽度为产生宽度为2 2ss,周期为周期为2 2msms的定的定时负脉冲,由时负脉冲,由P1.7P1.7送出,系统采用送出,系统采用1212MHzMHz的晶振。的晶振。 解解 由于晶振为由于晶振为1212MHzMHz,机器周期为机器周期为1 1s,s,这样利用这样利用T0方式方式0 0产生周期为产生周期为2 2msms定时的初值定时的初值X X为:为: X =N-t/T =213-210-3/(110-6) =8192-2000 =6192 =18
19、30H =10000B 则则TH0=B=0C1H=B=0C1H,TL0=000=0001000010000B=10HB=10H片机定时器课件由于由于CLR bitCLR bit和和NOPNOP指令的执行时间为指令的执行时间为1 1个个机器周期,当晶振为机器周期,当晶振为1212MHzMHz时,这两条指令时,这两条指令的执行时间都为的执行时间都为1 1ss。这样,每当定时时这样,每当定时时间到时,利用间到时,利用T0产生中断,在中断服务程产生中断,在中断服务程序中,先执行序中,先执行CLR P1.7CLR P1.7和和NOPNOP两条指令,然两条指令,然后执行后执行SETB P1.7,SETB
20、P1.7,最后重装最后重装TH0和和TL0的初的初值,就可以产生题目所要求的定时脉冲。值,就可以产生题目所要求的定时脉冲。置置T0为定时方式为定时方式0 0,GATE=GATE=0,C/T=C/T=0, , M1M0=00H,=00H, T1不用,可任意,一般取不用,可任意,一般取0,故,故TMOD=00H,TMOD=00H,并由并由TRTR0 0启停启停T0。片机定时器课件初始化程序初始化程序:MOV TMOD , #00H MOV TH0 , #0C1H MOV TL0 , #10H ;初始化初始化T0 MOV IE , #82H;开开T0中断中断 SETB TR0;启动启动T0 T T0
21、 0溢出中断服务程序溢出中断服务程序: :T0INT:CLR P1.7 NOP SETBP1.7 MOVTH0,#0C1H;T0重置初值重置初值 MOVTL0,#10H RETI片机定时器课件例例6-3:利用:利用T0的工作模式的工作模式0产生产生1ms定定时,在时,在P1.0引脚输出周期为引脚输出周期为2ms的方波。的方波。设单片机晶振频率设单片机晶振频率fosc=12MHz。编程。编程实现其功能。实现其功能。解:解:要在要在P1.0引脚输出周期为引脚输出周期为2ms的方的方波,只要使波,只要使P1.0每隔每隔1ms取反一次即可。取反一次即可。 (1)选择工作模式)选择工作模式 T0的模式字
22、为的模式字为TMOD=00H,即即 M1M0=00,C/T=0,GATE=0,其余位为其余位为0片机定时器课件(2)计算)计算1ms定时时定时时T0的初值的初值 (213X)1/12 10-612=110-3 s X=7193D=11100000 11000B T0的低的低5位:位:11000B=18H即即 (TL0)=18H T0的高的高8位:位:11100000B=E0H即即 (TH0)=E0H片机定时器课件(3)采用查询方式的程序)采用查询方式的程序程序清单:程序清单: MOV TMOD,#00H ;设置;设置T0为模式为模式0 MOV TL0,#18H ;送初值;送初值 MOV TH0
23、,#0E0H SETB TR0 ;启动定时;启动定时 LOOP:JBC TF0,NEXT ;查询定时时间到否;查询定时时间到否 SJMP LOOP NEXT:MOV TL0,#18H ;重装计数初值;重装计数初值 MOV TH0,#0E0H CPL P1.0 ;取反;取反 SJMP LOOP ;重复循环;重复循环片机定时器课件(4)采用定时器溢出中断方式的程序)采用定时器溢出中断方式的程序程序清单:程序清单: 主程序主程序 ORG 0000H RESET: AJMP MAIN ; 跳过中断服务程序区跳过中断服务程序区 ORG 0030H MAIN: MOV TMOD,#00H ;设置;设置T0
24、为模式为模式0 MOV TL0,#18H ;送初值;送初值 MOV TH0,#0E0H SETB EA ;CPU开中断开中断 SETB ET0 ;T0中断允许中断允许 SETB TR0 ;启动定时;启动定时 HERE:SJMP HERE ;等待中断,虚拟主程序;等待中断,虚拟主程序片机定时器课件中断服务程序中断服务程序 ORG 000BH AJMP CTC0 ORG 0120H CTC0: MOV TL0,#18H ;重新装如初值;重新装如初值 MOV TH0,#0E0H CPL P1.0 ;P1.0取反取反 RETI片机定时器课件1 1、方式、方式1 1介绍介绍 当当M1M0两位为两位为01
25、时,为工作方式时,为工作方式1。 其定时时间为:其定时时间为: (2 (21616- - T0初值初值) )时钟周期时钟周期1212作为计数器方式工作时,作为计数器方式工作时,T0对外部事对外部事件计数。件计数。计数长度最大为:计数长度最大为: 216=65536(个外部脉冲)(个外部脉冲)二、二、 方式方式1 1片机定时器课件最大计数脉冲个数:165536 (216),最长定时时间(晶振12MHz T=1s):1s 65536T= 65.54ms启动计数方式:启动计数方式:非门控方式:当非门控方式:当GATE0, 控制权由控制权由 TRx 决定决定 TRx1 计数开始计数开始 TRx 0 计
26、数停止计数停止门控方式:当门控方式:当GATE1、TRx1 控制权由控制权由 INTx 决定决定 INTx1 计数开始计数开始 INTx 0 计数停止计数停止定时器0模式1结构片机定时器课件2 2、应用举例、应用举例 例例:利用利用T0方式方式1 1产生一个产生一个5050HzHz的方波,由的方波,由P1.7P1.7送出。系统采用送出。系统采用1212MHzMHz的晶振,并假定的晶振,并假定CPUCPU不作其不作其它工作。它工作。解解 由于周期为由于周期为1/501/50Hz=20msHz=20ms,则这种方波的正负脉冲宽则这种方波的正负脉冲宽度都为度都为1010msms。由于晶振为由于晶振为
27、1212MHzMHz,机器周期为机器周期为1 1s,s,这样利用这样利用T0方式方式1 1产产生生1010msms定时的初值定时的初值X X为:为: X =N-t/T =216-1010-3/(110-6) =65536-10000 =55536 =D8F0H =B 则则TH0=B=0D8H=B=0D8H,TL0=B=0F0H=B=0F0H 片机定时器课件置置T0为定时方式为定时方式1 1,GATE=0GATE=0,C/T=0,C/T=0, M M1 1M M0 0=01H,=01H, T1不用,可不用,可任意,一般取任意,一般取0 0,故,故TMOD=01H,TMOD=01H,并由并由TRT
28、R0 0启停启停T0。由于由于 CPUCPU不不作其它工作,则可采用查询方式进行控制。作其它工作,则可采用查询方式进行控制。 程序清单:程序清单: MOVMOVTMOD,#01HTMOD,#01H MOVMOVTHTH0,#0D8H,#0D8H MOVMOVTLTL0,#0F0H,#0F0H;初始化初始化T T0SETBSETBTRTR0;启动启动T0 LOOP:JBC :JBC TFTF0 0,AGN,AGN;查询定时时间到否?查询定时时间到否?AJMP LOOPAJMP LOOP;定时时间未到,则继定时时间未到,则继续查询等待续查询等待AGN:AGN:MOVMOVTHTH0,#0D8H,#
29、0D8H;定时时间到,定时时间到,T T0重重置初值置初值MOVMOVTLTL0,#0F0H,#0F0H CPLCPLP1.7P1.7;输出取反输出取反NOPNOPAJMP LOOPAJMP LOOP;重复循环重复循环片机定时器课件1 1、方式、方式2 2介绍介绍当当M1M0两位为两位为10时,为工作方式时,为工作方式2 TLTL0作为作为8位计数器,位计数器,THTH0用作保存计用作保存计数初值。数初值。特别适合用作较精确的脉冲信号发特别适合用作较精确的脉冲信号发生器,脉冲信号的周期计算如下:生器,脉冲信号的周期计算如下: (2 (28 8- - TH0初值初值) )时钟周期时钟周期1212
30、 三、三、 方式方式2 2片机定时器课件 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。定时器0模式2结构片机定时器课件)(256123221THfoscSMOD2 2、应用举例、应用举例 方式方式2 2可省去用户软件重装初值的操作,可获得相当精确的定时时间,可省去用户软件重装初值的操作,可获得相当精确的定时时间,常用作串行口波特率发生器。常用作串行口波特率发生器。例例: 采用采用11.05911.059MHzMHz晶振晶振, ,将将T1用作串行
31、口波特率发生器,按用作串行口波特率发生器,按方式方式2 2产生产生12001200的波特率的波特率. .解解 参参9.19.1节可以知道,波特率的计算如下:节可以知道,波特率的计算如下: 波特率波特率= = 若若SMOD=0SMOD=0,则可以算得重装载值:则可以算得重装载值:( (THTH1 1)=256- 232=E8H)=256- 232=E8H置置T1为定时方式为定时方式2 2,GATE=0GATE=0,C/T=0,C/T=0, M1M0=02H,=02H, T0不用,可任意,不用,可任意,一般取一般取0 0,故,故TMOD=20H,TMOD=20H,并由并由TRTR1 1启停启停T1
32、。 程序清单:程序清单:MOVMOVTMOD,#20HTMOD,#20HMOVMOVTHTH1,#0E8H,#0E8HMOVMOVTLTL1,#0E8H,#0E8H;初始化初始化T T1SETBSETBTRTR1;启动启动T1片机定时器课件例:当例:当P3.4引脚上的电平发生负跳变引脚上的电平发生负跳变时,时, 从从P1.0输出输出一个一个500s的同步脉的同步脉冲。请编冲。请编程序实现该功能。查询方式,程序实现该功能。查询方式,fosc=6MHz。片机定时器课件解:解:(1)模式选择)模式选择 选选T0为模式为模式2,外部事件计数方式。,外部事件计数方式。 当当P3.4引脚上的电平发生负跳变
33、时,引脚上的电平发生负跳变时,T0计数器加计数器加1,溢,溢出标志出标志TF0置置1;然后改变;然后改变T0为为500s定时工作方式,并定时工作方式,并使使P1.0输出由输出由1变为变为0。T0定时到产生溢出,使定时到产生溢出,使P1.0输出输出恢复高电平,恢复高电平,T0又恢复外部事件计数方式。又恢复外部事件计数方式。 如如 图图6-9 所示。所示。片机定时器课件(2)计算初值)计算初值 T0工作在外部事件计数方式工作在外部事件计数方式,当计数到,当计数到28时,时,再加再加1计数器就会溢出。设计数初值为计数器就会溢出。设计数初值为X,当再,当再出现一次外部事件时,计数器溢出。出现一次外部事
34、件时,计数器溢出。 则则: X+1=28 X= 28 1=11111111B=0FFH T0工作在定时工作方式工作在定时工作方式,设晶振频率为,设晶振频率为6MHz,500s相当于相当于250个机器周期。因此,初值个机器周期。因此,初值X为为 (28X)2s=500s X=6=06H片机定时器课件3)程序清单)程序清单START: MOV TMOD,#06H ;设置;设置T0为模式为模式2,外外部计数方式部计数方式 MOV TL0,#0FFH ;T0计数器初值计数器初值 MOV TH0,#0FFH SETB TR0 ;启动;启动T0计数计数 LOOP1:JBC TF0,PTFO1 ;查询;查询
35、T0溢出标志,溢出标志, ;TF0=1时转,且清时转,且清TF0=0 SJMP LOOP1 ; 片机定时器课件PTFO1:CLR TR0 ;停止计数;停止计数 MOV TMOD,#02H ;设置;设置T0为模式为模式2,定时方式,定时方式 MOV TL0,#06H ;送初值,定时;送初值,定时500s MOV TH0,#06H CLR P1.0 ; P1.0清清0 SETB TR0 ;启动定时;启动定时500s LOOP2 : JBC TF0,PTFO2 ;查询;查询T0溢出标志,溢出标志, ;TF0=1时转,且清时转,且清TF0=0 ; (第一个(第一个500s到否?)到否?) SJMP L
36、OOP2 ;等待中断,虚拟主程序;等待中断,虚拟主程序 PTFO2 : SETB P1.0 ; P1.0置置1 CLR TR0 ;停止计数;停止计数 SJMP START片机定时器课件l例例:利用定时器利用定时器T1的模式的模式2对外对外部信号计数。要求没计满部信号计数。要求没计满100次,次,将将 P1.0端取反端取反。片机定时器课件解:解:(1)选择模式)选择模式 外部信号由外部信号由T1(P3.5)引脚输入,每发生一)引脚输入,每发生一次负跳变计数器加次负跳变计数器加1,每输入,每输入100个脉冲,计数个脉冲,计数器发生溢出中断,中断服务程序将器发生溢出中断,中断服务程序将P1.0取反一
37、取反一次。次。 T1计数工作方式模式计数工作方式模式2的模式字为的模式字为(TMOD)=60H。 T0不用时,不用时,TMOD的低的低4位可任取,但不能位可任取,但不能进入模式进入模式3,一般取,一般取0。片机定时器课件(2)计算)计算T1的计数初值的计数初值 X= 28 100=156=9CH 因此因此:TL1的初值为的初值为9CH, 重装初值寄存器重装初值寄存器TH1=9CH。片机定时器课件(3)程序清单)程序清单 MAIN: MOV TMOD,#60H ;设置;设置T1为模式为模式2,外外部计数方式部计数方式 MOV TL1,#9CH ;T1计数器初值计数器初值 MOV TH1,#9CH
38、 MOV IE,#88H ; 定时器开中断定时器开中断 SETB TR1 ;启动;启动T1计数计数 HERE:SJMP HERE ;等待中断;等待中断 ORG 001BH ;中断服务程序入口;中断服务程序入口 CPL P1.0 RETI片机定时器课件1 1、方式、方式3 3介绍介绍当当M1M0两位为两位为11时,为工作方式时,为工作方式3。 在方式在方式3 3下,定时器下,定时器T1将停止计数,只是保持其计数将停止计数,只是保持其计数值,与置值,与置TR1为为0 0等效。等效。 定时器定时器T0在方式在方式3 3下分成两个独立的计数器下分成两个独立的计数器TL0和和TH0。其中,其中,TL0可
39、用作定时或计数器,并占用定时器可用作定时或计数器,并占用定时器T0的所的所有控制位:有控制位:GATE,C/T,TRGATE,C/T,TR0 0,INT,INT0 0和和TFTF0 0;而而TH0固定作为固定作为定时器用,并借用定时器定时器用,并借用定时器T1的的TRTR1 1和和TFTF1 1,THTH0 0控制着定控制着定时器的时器的T T1 1中断。中断。当定时器当定时器T0在方式在方式3 3时,定时器时,定时器T1仍可按方式仍可按方式0 0、1 1、2 2工作,只是不能使用其溢出标志工作,只是不能使用其溢出标志TFTF1 1和请求中断而已和请求中断而已。四、四、方式方式3 3T0模式模
40、式3结构结构 T0模式模式3时时T1结构结构片机定时器课件T0T0分成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器。定时器。TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0TH0占用占用T1T1控制位:控制位:TR1TR1。T1T1不能使用方式不能使用方式3 3工作工作片机定时器课件2 2、应用举例、应用举例( (略)略)当按方式当按方式2 2将定时器将定时器T1用作串行口波特率时,为增用作串行口波特率时,为增加一个额外的定时器,可将定时器加一个额外的定时器,可将定时器T0设置成方式设置成方
41、式3 3工工作。作。 例例: :假设某用户系统中,采用假设某用户系统中,采用1212MHzMHz晶振晶振, ,已将已将T1按按方式方式2 2工作,工作,用作串行口波特率发生器用作串行口波特率发生器,并且已使用,并且已使用了了2 2个外部中断。现要求再增加一个外部中断源,并个外部中断。现要求再增加一个外部中断源,并由由P1.7P1.7口输出一个口输出一个5 5KHzKHz的方波。的方波。 解解为了不增加其它硬件的开销,可把定时器为了不增加其它硬件的开销,可把定时器T0置置于计数工作方式于计数工作方式3 3,利用,利用T0端作为附加的外部中断输端作为附加的外部中断输入端,把入端,把TL0预置为预置
42、为0 0FFHFFH,这样当这样当T0输入端出现由输入端出现由1 1至至0 0的负跳变时,的负跳变时,TL0立即溢出,申请中断,相当于立即溢出,申请中断,相当于边沿触发边沿触发片机定时器课件的外部中断源。在方式的外部中断源。在方式3 3下,下,TH0总是作为总是作为8 8位定时位定时器用,可以用它来控制器用,可以用它来控制P1.7P1.7口输出的方波频率。口输出的方波频率。 由由P1.7P1.7输出输出5 5KHzKHz的方波,即每隔的方波,即每隔100100ss使使P1.7P1.7口口的电平变化一次,的电平变化一次,TH0初值初值X X为:为:X=N-t/T=2X=N-t/T=28 8-10
43、0-1001010-6-6/(1/(11010-6-6)=256-)=256-100=156=9CH100=156=9CH 置置T1为定时方式为定时方式2 2,GATE=0GATE=0,C/T=0,C/T=0, M1M0=02H,=02H, T0为计数方式为计数方式3 3,GATE=0GATE=0,C/T=1,C/T=1, M1M0=03H,=03H,,故故TMOD=27H,TMOD=27H,并由并由TRTR0 0启停启停T0。采用中断方式来判断采用中断方式来判断TH0的的定时时间到否,每次时间到时,在定时器定时时间到否,每次时间到时,在定时器T0中断服务程序中将中断服务程序中将P1.7P1.
44、7口取反一次。口取反一次。片机定时器课件初始化程序:初始化程序:MOV TMOD,#27HMOV TH0,#9CHMOV TL0,#0FFH;初始化初始化T T0MOV TCON,#55H ;置外部中断边沿触发方式,并启置外部中断边沿触发方式,并启 动动T0和和T1MOV IE,#9FH;开放全部中断开放全部中断TLTL0溢出中断服务程序溢出中断服务程序: :TL0INT:MOV TL0,#0FFH( (相关中断处理相关中断处理) ) RETITHTH0溢出中断服务程序溢出中断服务程序: :TH0INT:MOV TH0,#9CH CPL P1.7 RETI 片机定时器课件五、应用编程定时器初始
45、化编程:使用定时器工作之前,先写入控制定时器初始化编程:使用定时器工作之前,先写入控制寄存器,确定好定时器工作方式寄存器,确定好定时器工作方式, ,初始化编程格式:初始化编程格式:MOV TMOD,# 方式字;选择方式方式字;选择方式MOV THx,#XH;装入装入Tx时间常数时间常数MOV TLx,#XL(SETB EA) ;开开Tx中断中断(SETB ETx) SETB TRx ;启动启动TxTx定时器定时器1. 按实际需要选择定时按实际需要选择定时/ /计数功能计数功能2. 按时间或计数长度选择方式按时间或计数长度选择方式3. 计算时间常数计算时间常数片机定时器课件计数功能:计数功能:X
46、= 2X= 2n n - -计数值计数值 n n:8/13/16 8/13/16 定时功能:定时功能:X= 2X= 2n n - t/T - t/T t t:定时时间(定时时间(s s) T T:机器周期机器周期12/12/晶振频率晶振频率如:晶振为如:晶振为1212MHzMHz时,时, T T12/12 MHz12/12 MHz1212(12121010-6-6)()(秒)秒) 1 11010-6-61 1usus若若t=30ms,t=30ms,则则X= 2X= 2n n - t/T =65536-30000=35536 - t/T =65536-30000=35536 (方式方式1 1)应
47、转为应转为1616进制数:进制数:X=8AD0H TH=8AH TL=D0HX=8AD0H TH=8AH TL=D0H若若t=3ms,t=3ms,则则X= 2X= 2n n - t/T =8192-3000=5192 - t/T =8192-3000=5192 (方式方式0 0)应转为应转为1616进制数:进制数:X=1448H= 01000B X=1448H= 01000B TH=A2H TL=08HTH=A2H TL=08H片机定时器课件溢出处理编程格式:溢出处理编程格式: 1 1)查询方式:先查询定时器溢出标志,再进)查询方式:先查询定时器溢出标志,再进行溢出处理。行溢出处理。 ;定时器
48、初始化;定时器初始化WAIT:JBC TFx,PT ;检测溢出标志检测溢出标志 SJMP WAITPT: MOV THx,#XH ;重装时间常数重装时间常数 MOV TLx,#XL ;溢出处理溢出处理 SJMP WAIT片机定时器课件2 2)中断方式:初始化后执行其他任务,中断)中断方式:初始化后执行其他任务,中断服务程序处理溢出。服务程序处理溢出。ORGRG 0000H0000HLJMPLJMP MAINMAINORGRG 000BH(001BH)000BH(001BH);TxTx中断入口中断入口LJMPLJMP PTSPTSMAINMAIN:;初始化后执行其他程序初始化后执行其他程序PTS
49、PTS:;溢出中断服务程序溢出中断服务程序M MOV V THxTHx,#X#XH H;重装时间常数重装时间常数M MOV V TLxTLx,#X#XL LRETIRETI片机定时器课件例例1 1:由:由P1.0P1.0输出方波信号,周期输出方波信号,周期为为2 2msms,设设f foscosc=12MHz=12MHz。2ms解:每隔解:每隔1 1msms改变一次改变一次P1.0P1.0的输出状态。用的输出状态。用T0T0非门控方非门控方 式式1 1定时。定时。 机器周期机器周期T=12/12MHz=1usT=12/12MHz=1us 计算时间常数:计算时间常数:X = 2X = 216 1
50、6 - t/T - t/T = 2 = 216 16 -1000/1-1000/1 = FC18H = FC18HTMOD:00000001B 01HTMOD:00000001B 01H片机定时器课件(1 1)查询方式:)查询方式: START:MOV TMOD,#01HMOV TL0,#18HMOV TH0,#0FCHSETBTR0 LOOP:JBC TF0,PTF0SJMPLOOP PTF0: CPL P1.0MOV TL0,# 18HMOV TH0,# 0FCHSJMPLOOP片机定时器课件(2 2)中断方式)中断方式ORG0000HAJMPMAINORG000BHAJMPPT0INTO
51、RG0100HMAIN:MOVSP,#60HMOVTMOD,#01HMOVTL0,#18H片机定时器课件 MOVTH0,# 0FCHSETBEASETBET0SETBTR0 HERE:SJMPHERE PT0INT:CPL P1.0MOVTL0,#18HMOVTH0,# 0FCHRETI片机定时器课件例例2 2 P1.7P1.7驱动驱动LEDLED亮亮1 1秒灭秒灭1 1秒地闪烁,设时钟频率为秒地闪烁,设时钟频率为6 6MHzMHz。长定时方法:增加一个软件计数器或一个硬件计数器。长定时方法:增加一个软件计数器或一个硬件计数器。硬件方式:硬件方式: T0T0定时定时100100msms,T1T
52、1计数计数T0T0的定时跳变信号的定时跳变信号P1.0P1.0的负的负跳变次数跳变次数(200(200msms一次一次) ),计满计满5 5个跳变为个跳变为1 1秒。秒。TMOD:01100001B 61H定时器初值:定时器初值: X0=65536-100000/2=15536 =3CB0H计数器初值:计数器初值: X1=256-5=251 =FBH片机定时器课件START:MOV TMOD,#61H MOV TL1,#0FBH MOV TH1,#0FBH CLR P1.0 SETB TR1LOOP1:CPL P1.7LOOP2 : MOV TL0,#3CH MOV TH0,#0B0H SET
53、B TR0LOOP3:JBCTF0,LOOP4SJMP LOOP3LOOP4:CPLP1.0JBCTF1,LOOP1SJMP LOOP2查询方式查询方式:片机定时器课件ORG 0000HAJMP STARTORG 000BHAJMP T0INTORG 001BHAJMP T1INTSTART:MOV SP,#60HMOV TMOD,#61H MOV TL1,#0FBH MOV TH1,#0FBH CLR P1.0中断方式中断方式片机定时器课件SETB TR1MOV TL0,#3CH MOV TH0,#0B0H SETB TR0LOOP1:SJMP LOOP1T0INT: CPLP1.0 MOV TL0,#3CH MOV TH0,#0B0H RETIT1INT:CPL P1.7RETIEND片机定时器课件例例3 3:门控方式测量正脉冲宽度:门控方式测量正脉冲宽度解:解: INT1INT1引脚输入被检测信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外贸英语写作课件百度云
- 探秘电流世界
- 硕士追求指南
- 四川省成都市第第十八中学2025届初三下学业水平考试生物试题试卷含解析
- 天津美术学院《现代推销学实验》2023-2024学年第一学期期末试卷
- 山西省左玉县市级名校2024-2025学年初三下学期期末教学质量检查数学试题含解析
- 南宁二中、柳州高中2024-2025学年高三下学期第9周周考物理试题含解析
- 山西传媒学院《现代生物制药工程原理》2023-2024学年第二学期期末试卷
- 上海外国语大学《文化与翻译(1)》2023-2024学年第一学期期末试卷
- 山东省乐陵市第一中学重点名校2025年初三下学期物理试题周练二不含附加题含解析
- 锂离子电池失效分析及后果PFMEA-电子表格版
- 律师事务所法律咨询委托书
- 中华人民共和国保守国家秘密法实施条例
- 人美版八年级美术下册《1. 绘画的多元化》说课稿
- DB34T4829-2024公路工程泡沫轻质土设计与施工技术规程
- 【新课标核心素养目标】6.2.1二氧化碳的性质和用途教案(表格式)初中化学人教版(2024)九年级上册
- 预防性侵害安全教育
- 人教版高中物理必修1第三章《弹力》
- 人工血管动静脉内瘘术后护理
- 2025年四川成都锦江区初三第二次中考模拟语文试题含解析
- 十字相乘法解一元二次方程练习100题及答案
评论
0/150
提交评论