最新单片机定时器幻灯片.ppt
《最新单片机定时器幻灯片.ppt》由会员分享,可在线阅读,更多相关《最新单片机定时器幻灯片.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机定时器单片机定时器 1 1定时器定时器 用于实时控制,定时采样、定时启用于实时控制,定时采样、定时启动等。当定时时间与设定值相等,执动等。当定时时间与设定值相等,执行规定操作。行规定操作。 K1K1接内部时钟时,脉冲源是振荡频接内部时钟时,脉冲源是振荡频率的率的1212分之一,即对机器周期计数,分之一,即对机器周期计数,为定时方式,所以定时时间为:为定时方式,所以定时时间为: T = T = 计数值计数值* *机器周期机器周期2 2计数器计数器生产线上产品计数生产线上产品计数。每个产品通过得。每个产品通过得到一个脉冲信号,计数器记录脉冲个到一个脉冲信号,计数器记录脉冲个数,当计数值与设定
2、值相等,启动包数,当计数值与设定值相等,启动包装机器。装机器。检测转速检测转速。电机转动一圈发出一个脉。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,冲,计数器记录一秒时间内脉冲个数,显示转速。显示转速。K1K1接外部脉冲时,工作在计数状态,接外部脉冲时,工作在计数状态,当当T0T0或或T1T1有一个有一个1 1到到0 0的跳变时,计数的跳变时,计数器加一。计数操作中,每个机器周期器加一。计数操作中,每个机器周期的的S5P2S5P2期间采样外部输入信号,当一期间采样外部输入信号,当一个机器周期采样值为高电平,另一个个机器周期采样值为高电平,另一个机器周期采样值为低电平时,计数器机器周
3、期采样值为低电平时,计数器加一。所以识别一个跳变要占两个机加一。所以识别一个跳变要占两个机器周期。因此外部计数脉冲高低电平器周期。因此外部计数脉冲高低电平宽度每个至少要保持一个机器周期。宽度每个至少要保持一个机器周期。两个16位可编程定时/计数器: 定时 计数 波特率发生器四种工作模式:13位定时/计数器 16位定时/计数器 8位定时/计数器(自动装入常数) 8位定时/计数器 (两个独立8位,仅定时/计数器0有) MCS-51的定时的定时/计数器主要由几个专用寄存器组成:计数器主要由几个专用寄存器组成:TL0:定时定时/计数器计数器0低八位计数值低八位计数值TH0:定时定时/计数器计数器0高八
4、位计数值高八位计数值TL1:定时定时/计数器计数器1低八位计数值低八位计数值TH1:定时定时/计数器计数器1高八位计数值高八位计数值TMOD:控制寄存器,控制定时控制寄存器,控制定时/计数器方式计数器方式 的工作方式的工作方式TCON:控制寄存器,控制定时控制寄存器,控制定时/计数器的起停计数器的起停 指示溢出中断标志指示溢出中断标志GATEC/TM1M0GATEC/TM1M0T1T0一、定时器方式寄存器一、定时器方式寄存器TMOD(8989H H)TMODTMOD的地址为的地址为8989H H,不可按位寻址,不可按位寻址,只能用字节指令设置定时器工作方式。只能用字节指令设置定时器工作方式。低
5、半字节定义定时器低半字节定义定时器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,定时功能,计数内部机器周期脉冲;定时功能,计数内部机器周期脉冲;=1=1,计数功能,计数引脚,计数功能,计数引脚T0(T1)T0(T1)输入的输入的负脉冲。负脉冲。 2 2)方式选择位)方式选择位M1M1、M0M0:4 4种工作方式:种工作
6、方式:3 3)门控方式选择位)门控方式选择位GATEGATE : =0=0,非门控方式非门控方式( (内部启动内部启动) ):TRx=1TRx=1,启动定时器工作;启动定时器工作;TRx=0TRx=0,停止定时器工作。停止定时器工作。=1=1,门控方式,门控方式( (外部启动外部启动) ):TRx=1TRx=1且引脚且引脚INTx=1INTx=1才启动。才启动。确定定时器工作方式指令:确定定时器工作方式指令:MOV TMOD,#方式字方式字例例:设:设T0T0用方式用方式2 2非门控定时,非门控定时,T1T1用用方式方式1 1门控计数。门控计数。MOVTMOD,#0D2HTMOD各位定义及具体
7、意义各位定义及具体意义TCON的位地址位88H,可按位寻址。复位时,TCON所有位均为零。 1 1)启动控制位)启动控制位TR0TR0、TR1TR1=0=0,停止定时器工作停止定时器工作=1=1,启动定时器工作,启动定时器工作例:启动例:启动T0T0:SETBSETBTR0TR0二、二、定时器控制定时器控制/ /状态寄存器状态寄存器TCON(8888H H)位位8FH8EH8DH 8CH 8BH 8AH89H88H意义意义TF1TR1TF0TR0IE1IT1IE0IT02 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1定时器溢出使定时器溢出使TFx=1TFx=1,引起中断请求,引
8、起中断请求,CPUCPU响应响应TxTx中断后,自动清中断后,自动清0 0 TFxTFx。可用软件检测可用软件检测TFxTFx,必须软件清必须软件清0 0。WAITWAIT:JBC TF0JBC TF0,NEXTNEXT;检测检测T0T0是否溢出是否溢出 SJMPSJMP WAITWAIT ;未溢出,继续检测未溢出,继续检测NEXTNEXT: ;溢出,溢出,TF0TF0清清0 0,处理,处理溢出溢出TCON各位定义及具体的意义各位定义及具体的意义三、可预置初值的三、可预置初值的1616位加位加1 1计数器计数器TH0TH0、TL0TL0、 TH1 TH1、TL1TL1预置预置T0T0初值指令:
9、初值指令:MOVTH0,#XHMOVTL0,#XL 由方式选择位由方式选择位M1M1、M0M0设定设定一、一、 方式方式0 0 13 13位定时位定时/ /计数器。计数器。 THx 8THx 8位和位和TLxTLx低低5 5位组成位组成1313位加位加1 1 计数器,此种计数器,此种方式与方式与MCSMCS4848系列兼容,如果不是为系列兼容,如果不是为了兼容的目的,一般不用方式了兼容的目的,一般不用方式0.0. 方式方式0 0的全部功能,方式的全部功能,方式1 1都可以都可以代替。代替。1、方式、方式0介绍介绍当M1M0两位为00时,为工作方式0(13位)C/T=0时,作为定时器方式工作,T
10、0对机器周期计数,其定时时间为: (213- T0初值初值)时钟周期时钟周期12 非门控方式:当非门控方式:当GATE0, 控制权由控制权由 TRx 决定决定 TRx1 计数开始计数开始 TRx 0 计数停止计数停止门控方式:当门控方式:当GATE1、TRx1 控制权由控制权由 INTx 决定决定 INTx1 计数开始计数开始 INTx 0 计数停止计数停止最大计数脉冲个数:18192 (213),最长定时时间(晶振12MHz T=1s):1s8192T= 8.192 ms启动计数方式:启动计数方式:定时器0模式0结构2 2、应用举例、应用举例使用定时使用定时/ /计数器进行定时或计数之前,首
11、先计数器进行定时或计数之前,首先要通过软件对它进行初始化。要通过软件对它进行初始化。初始化包括下述初始化包括下述步骤:步骤:1.确定工作方式:对确定工作方式:对TMODTMOD寄存器赋值;寄存器赋值;2.置定时置定时/ /计数器初值:对计数器初值:对TH0、TL0或或TH1、TL1寄存器赋值;寄存器赋值; 初值初值X X的计算方法如下:的计算方法如下: 计数方式时:计数方式时:X=N-M X=N-M 定时方式时:定时方式时:X=N-t/TX=N-t/T在上两式中,在上两式中,M M为计数模值,即从计为计数模值,即从计数器启动到溢出时所需计数值;数器启动到溢出时所需计数值;t t为为定时值;定时
12、值;T T为为机器机器周期。周期。3.根据需要,开放定时器中断:对根据需要,开放定时器中断:对IEIE寄存器赋值;寄存器赋值;4.4.启动定时启动定时/ /计数器:使计数器:使TCONTCON寄存器寄存器的的TRTR0 0或或TRTR1 1置位,或由加到引脚置位,或由加到引脚INTINTX X上的外部信号电平启动。上的外部信号电平启动。例例: :利用利用T0方式方式0 0产生宽度为产生宽度为2 2ss,周期为周期为2 2msms的定的定时负脉冲,由时负脉冲,由P1.7P1.7送出,系统采用送出,系统采用1212MHzMHz的晶振。的晶振。 解解 由于晶振为由于晶振为1212MHzMHz,机器周
13、期为机器周期为1 1s,s,这样利用这样利用T0方式方式0 0产生周期为产生周期为2 2msms定时的初值定时的初值X X为:为: X =N-t/T =213-210-3/(110-6) =8192-2000 =6192 =1830H =1100000110000B 则则TH0= =1100000111000001B=0C1HB=0C1H,TL0=000=0001000010000B=10HB=10H由于由于CLR bitCLR bit和和NOPNOP指令的执行时间为指令的执行时间为1 1个个机器周期,当晶振为机器周期,当晶振为1212MHzMHz时,这两条指令时,这两条指令的执行时间都为的执
14、行时间都为1 1ss。这样,每当定时时这样,每当定时时间到时,利用间到时,利用T0产生中断,在中断服务程产生中断,在中断服务程序中,先执行序中,先执行CLR P1.7CLR P1.7和和NOPNOP两条指令,然两条指令,然后执行后执行SETB P1.7,SETB P1.7,最后重装最后重装TH0和和TL0的初的初值,就可以产生题目所要求的定时脉冲。值,就可以产生题目所要求的定时脉冲。置置T0为定时方式为定时方式0 0,GATE=GATE=0,C/T=C/T=0, , M1M0=00H,=00H, T1不用,可任意,一般取不用,可任意,一般取0,故,故TMOD=00H,TMOD=00H,并由并由
15、TRTR0 0启停启停T0。初始化程序初始化程序:MOV TMOD , #00H MOV TH0 , #0C1H MOV TL0 , #10H ;初始化初始化T0 MOV IE , #82H;开开T0中断中断 SETB TR0;启动启动T0 T T0 0溢出中断服务程序溢出中断服务程序: :T0INT:CLR P1.7 NOP SETBP1.7 MOVTH0,#0C1H;T0重置初值重置初值 MOVTL0,#10H RETI例例6-3:利用:利用T0的工作模式的工作模式0产生产生1ms定定时,在时,在P1.0引脚输出周期为引脚输出周期为2ms的方波。的方波。设单片机晶振频率设单片机晶振频率fo
16、sc=12MHz。编程。编程实现其功能。实现其功能。解:解:要在要在P1.0引脚输出周期为引脚输出周期为2ms的方的方波,只要使波,只要使P1.0每隔每隔1ms取反一次即可。取反一次即可。 (1)选择工作模式)选择工作模式 T0的模式字为的模式字为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
17、即即 (TH0)=E0H(3)采用查询方式的程序)采用查询方式的程序程序清单:程序清单: MOV TMOD,#00H ;设置;设置T0为模式为模式0 MOV TL0,#18H ;送初值;送初值 MOV TH0,#0E0H SETB TR0 ;启动定时;启动定时 LOOP:JBC TF0,NEXT ;查询定时时间到否;查询定时时间到否 SJMP LOOP NEXT:MOV TL0,#18H ;重装计数初值;重装计数初值 MOV TH0,#0E0H CPL P1.0 ;取反;取反 SJMP LOOP ;重复循环;重复循环(4)采用定时器溢出中断方式的程序)采用定时器溢出中断方式的程序程序清单:程序
18、清单: 主程序主程序 ORG 0000H RESET: AJMP MAIN ; 跳过中断服务程序区跳过中断服务程序区 ORG 0030H MAIN: MOV TMOD,#00H ;设置;设置T0为模式为模式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
19、;重新装如初值;重新装如初值 MOV TH0,#0E0H CPL P1.0 ;P1.0取反取反 RETI1 1、方式、方式1 1介绍介绍 当当M1M0两位为两位为01时,为工作方式时,为工作方式1。 其定时时间为:其定时时间为: (2 (21616- - T0初值初值) )时钟周期时钟周期1212作为计数器方式工作时,作为计数器方式工作时,T0对外部事对外部事件计数。件计数。计数长度最大为:计数长度最大为: 216=65536(个外部脉冲)(个外部脉冲)二、二、 方式方式1 1最大计数脉冲个数:165536 (216),最长定时时间(晶振12MHz T=1s):1s 65536T= 65.54
20、ms启动计数方式:启动计数方式:非门控方式:当非门控方式:当GATE0, 控制权由控制权由 TRx 决定决定 TRx1 计数开始计数开始 TRx 0 计数停止计数停止门控方式:当门控方式:当GATE1、TRx1 控制权由控制权由 INTx 决定决定 INTx1 计数开始计数开始 INTx 0 计数停止计数停止定时器0模式1结构2 2、应用举例、应用举例 例例:利用利用T0方式方式1 1产生一个产生一个5050HzHz的方波,由的方波,由P1.7P1.7送出。系统采用送出。系统采用1212MHzMHz的晶振,并假定的晶振,并假定CPUCPU不作其不作其它工作。它工作。解解 由于周期为由于周期为1
21、/501/50Hz=20msHz=20ms,则这种方波的正负脉冲宽则这种方波的正负脉冲宽度都为度都为1010msms。由于晶振为由于晶振为1212MHzMHz,机器周期为机器周期为1 1s,s,这样利用这样利用T0方式方式1 1产产生生1010msms定时的初值定时的初值X X为:为: X =N-t/T =216-1010-3/(110-6) =65536-10000 =55536 =D8F0H =1101100011110000B 则则TH0= =1101100011011000B=0D8HB=0D8H,TL0= =1111000011110000B=0F0HB=0F0H 置置T0为定时方式
22、为定时方式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,并由并由TRTR0 0启停启停T0。由于由于 CPUCPU不不作其它工作,则可采用查询方式进行控制。作其它工作,则可采用查询方式进行控制。 程序清单:程序清单: MOVMOVTMOD,#01HTMOD,#01H MOVMOVTHTH0,#0D8H,#0D8H MOVMOVTLTL0,#0F0H,#0F0H;初始化初始化T T0SETBSETBTRTR0;启动启动T0 LOOP:JBC :
23、JBC TFTF0 0,AGN,AGN;查询定时时间到否?查询定时时间到否?AJMP LOOPAJMP LOOP;定时时间未到,则继定时时间未到,则继续查询等待续查询等待AGN:AGN:MOVMOVTHTH0,#0D8H,#0D8H;定时时间到,定时时间到,T T0重重置初值置初值MOVMOVTLTL0,#0F0H,#0F0H CPLCPLP1.7P1.7;输出取反输出取反NOPNOPAJMP LOOPAJMP LOOP;重复循环重复循环1 1、方式、方式2 2介绍介绍当当M1M0两位为两位为10时,为工作方式时,为工作方式2 TLTL0作为作为8位计数器,位计数器,THTH0用作保存计用作保
24、存计数初值。数初值。特别适合用作较精确的脉冲信号发特别适合用作较精确的脉冲信号发生器,脉冲信号的周期计算如下:生器,脉冲信号的周期计算如下: (2 (28 8- - TH0初值初值) )时钟周期时钟周期1212 三、三、 方式方式2 2 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。定时器0模式2结构)(256123221THfoscSMOD2 2、应用举例、应用举例 方式方式2 2可省去用户软件重装初值的操作,可获得相当精确的定时时间,可省去用
25、户软件重装初值的操作,可获得相当精确的定时时间,常用作串行口波特率发生器。常用作串行口波特率发生器。例例: 采用采用11.05911.059MHzMHz晶振晶振, ,将将T1用作串行口波特率发生器,按用作串行口波特率发生器,按方式方式2 2产生产生12001200的波特率的波特率. .解解 参参9.19.1节可以知道,波特率的计算如下:节可以知道,波特率的计算如下: 波特率波特率= = 若若SMOD=0SMOD=0,则可以算得重装载值:则可以算得重装载值:( (THTH1 1)=256- 232=E8H)=256- 232=E8H置置T1为定时方式为定时方式2 2,GATE=0GATE=0,C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 定时器 幻灯片
限制150内