(精品)第6章定时器及应用.ppt
《(精品)第6章定时器及应用.ppt》由会员分享,可在线阅读,更多相关《(精品)第6章定时器及应用.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章 定时定时/计数器及应用计数器及应用 教学目标教学目标介绍定时介绍定时/计数器的结构和原理计数器的结构和原理介绍定时介绍定时/计数器的四种工作方式的应用计数器的四种工作方式的应用介绍定时介绍定时/计数器时应注意的几个问题计数器时应注意的几个问题 学习要求学习要求了解定时了解定时/计数器的结构计数器的结构 熟悉定时熟悉定时/计数器的工作原理计数器的工作原理 掌握定时掌握定时/计数器的初始化及应用程序设计计数器的初始化及应用程序设计 掌握定时掌握定时/计数器精确定时要采取的相应措施计数器精确定时要采取的相应措施 在在测测控控技技术术中中,往往往往需需要要定定时时检检测测某某个个物物理理参
2、参数数,或或按按一一定定的的时时间间间间隔隔来来进进行行某某种种控控制制。这这种种定定时时的的获获得得,可可用用软软件件来来实实现现,即即编编制制一一段段延延时时程程序序,但但会会降降低低CPUCPU的的工工作作效效率率。为为此此,在在微微机机测测控控系系统统中中,常常采采用用硬硬件件来来实实现现定定时时,即即使使用用定定时时/计计数数器器,它它还还可可以以对对某某种种事事件件进进行行计计数数,然然后后根根据据计数结果来进行控制。计数结果来进行控制。在在89C5189C51单单片片机机内内部部含含有有两两个个1616位位定定时时/计计数数器器:T T0 0和和T T1 1,它它们们既既可可以以
3、用用于于定定时时,也也可可用用于于对对外外部部计计数数脉脉冲冲的的计计数数,还还可可作作为为串串行行接接口口的的波波特特率率发生器,这些功能都可通过软件来设定与修改。发生器,这些功能都可通过软件来设定与修改。第第6 6章章 定时器定时器/计数器计数器 n两个可编程的定时器两个可编程的定时器/计数器计数器T1T1、T0(16T0(16位加位加1 1计数器计数器)。n2 2种种工作模式工作模式:(1 1)计数器工作模式)计数器工作模式(2 2)定时器工作模式)定时器工作模式n4 4种种工作方式工作方式(方式方式0-0-方式方式3)3)。M1 M0工作方式工作方式功能说明功能说明0 0方式方式013
4、位计数器位计数器0 1方式方式116位计数器位计数器1 0方式方式2自动再装入自动再装入8位计数器位计数器1 1方式方式3定时器定时器0:分成两个:分成两个8位计数器位计数器6.1 6.1 定时器定时器/计数器的结构计数器的结构TMODTMOD:选择定时器选择定时器/计数器计数器T0T0、T1T1的工作模式和工作的工作模式和工作 方式。方式。TCONTCON:控制控制T0T0、T1T1的启动和停止计数,同时包含了的启动和停止计数,同时包含了 T0T0、T1T1的状态。的状态。定时工作方式定时工作方式u定时器计数8051片内振荡器输出经12分频后的脉冲,即每个机器周期使定时器(T0或T1)的数值
5、加1直至计满溢出。u当8051采用12MHz晶振时,一个机器周期为1s,计数频率为1MHz。计数工作方式计数工作方式通过引脚通过引脚T0T0(P3.4P3.4)和)和T1T1(P3.5P3.5)对外部脉冲对外部脉冲信号计数。当输入脉冲信号产生由信号计数。当输入脉冲信号产生由1 1至至0 0的下降的下降定时器的值加定时器的值加1 1。CPUCPU检测一个检测一个1 1至至0 0的跳变需要两个机器周期,的跳变需要两个机器周期,故最高计数频率为振荡频率的故最高计数频率为振荡频率的1/241/24。为了确保某个电平在变化之前被采样一次,要求为了确保某个电平在变化之前被采样一次,要求电平保持时间至少是一
6、个完整的机器周期。电平保持时间至少是一个完整的机器周期。单片机复位时,两个寄存器的所有位都被清单片机复位时,两个寄存器的所有位都被清0 0。6.1.1 6.1.1 工作方式控制寄存器工作方式控制寄存器TMODTMOD 8 8位分为两组,高位分为两组,高4 4位控制位控制T1T1,低低4 4位控制位控制T0T0。(1 1)GATEGATE门控位门控位 0 0:以以TRXTRX(X=0,1X=0,1)来启动定时器来启动定时器/计数器运行。计数器运行。1 1:用用外外中中断断引引脚脚(INT0INT0*或或INT1INT1*)上上的的高高电电平平和和TRXTRX来来启启动动定定时器时器/计数器运行。
7、计数器运行。(2 2)M1M1、M0M0工作方式选择位工作方式选择位 M1 M0 M1 M0 工工 作作 方方 式式 0 0 0 0 方式方式0 0,1313位定时器位定时器/计数器。计数器。0 1 0 1 方式方式1 1,1616位定时器位定时器/计数器。计数器。1 0 1 0 方式方式2 2,8 8位常数自动重新装载位常数自动重新装载 1 1 1 1 方式方式3 3,仅适用于,仅适用于T0T0,T0T0分成两个分成两个8 8 位计数器,位计数器,T1T1停止计数。停止计数。(3)(3)C/TC/T计数器模式和定时器模式选择位计数器模式和定时器模式选择位0:定时器模式。定时器模式。1:计数器
8、模式。计数器模式。6.1.2 6.1.2 定时器定时器/计数器控制寄存器计数器控制寄存器TCONTCON 低低4 4位与外部中断有关,已介绍。高位与外部中断有关,已介绍。高4 4位的功能位的功能如下:如下:(1)TF1(1)TF1、TF0TF0计数溢出标志位计数溢出标志位 (2)TR1(2)TR1、TR0TR0计数运行控制计数运行控制位位 1 1:启动定时器启动定时器/计数器工作计数器工作 0 0:停止定时器停止定时器/计数器工作计数器工作 6.2 6.2 定时器定时器/计数器的计数器的4 4种工作方式种工作方式 6.2.1 6.2.1 方式方式0 0:1313位定时器位定时器/计数器计数器M
9、1M1、M0M0为为00 00,定时器,定时器/计数器的框图:计数器的框图:C/TC/T*位决定工作模式:位决定工作模式:0 0:开关打在上面,为定时器工作模式;开关打在上面,为定时器工作模式;1 1:开关打在下面,为计数器工作模式,计数脉冲开关打在下面,为计数器工作模式,计数脉冲为为P3.4P3.4、P3.5P3.5引脚上的外部输入脉冲,当引脚上发引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加生负跳变时,计数器加1 1。GATEGATE位:决定定时器位:决定定时器/计数器的计数器的运行取决于运行取决于TRxTRx一个条一个条件还是件还是TRxTRx和和INTxINTx*引脚两个条件引脚
10、两个条件。(1 1)0 0:A A点点(见见图图6-26-2)是是否否计计数数,仅仅取取决决于于TRxTRx的的状状态。态。(2 2)1 1:B B点点电电位位由由INTXINTX*的的输输入入电电平平和和TRXTRX的的状状态态这这两两个个条条件件来来确确定定。是是否否计计数数是是由由TRxTRx和和INTxINTx*二二个个条条件件来控制的。来控制的。6.2.2 6.2.2 方式方式1 1 M1 M1、M0M0=0101:1616位位的计数器。的计数器。TLXTLX作作为为常常数数缓缓冲冲器器,当当TLXTLX计计数数溢溢出出时时,在在置置“1”“1”溢溢出出标标志志TFXTFX的的同同时
11、时,还还自自动动的的将将THXTHX中中的的初初值值送送至至TLXTLX,使使TLXTLX从从初初值值开开始始重重新新计计数数。定定时时器器/计计数数器的方式器的方式2 2工作过程如图工作过程如图6-5(6-5(X=0,1)X=0,1)。6.2.3 6.2.3 方式方式2 2 :自动再装入自动再装入8 8位计数器位计数器计数满后自动装入计数初值计数满后自动装入计数初值。M1M1、M0=M0=1010省去用户软件中重装初值的程序,精确的定时。省去用户软件中重装初值的程序,精确的定时。只适用于定时器只适用于定时器/计数器计数器T0T0。T1T1不能工作在方式不能工作在方式3 3,T1T1方式方式3
12、 3时相当于时相当于TR1=0TR1=0,停止计数(此时停止计数(此时T1T1可用来可用来作串行口波特率产生器)。作串行口波特率产生器)。1 1工作方式工作方式3 3下的下的T0T0T0T0分为两个独立的分为两个独立的8 8位计数器位计数器:TL0TL0和和TH0TH0 。TL0TL0使用使用T0T0的状态控制位的状态控制位C/TC/T*、GATEGATE、TR0TR0、,、,而而TH0TH0被固定被固定为一个为一个8 8位定时器(不能作外部计数模式),并使位定时器(不能作外部计数模式),并使用定时器用定时器T1T1的状态控制位的状态控制位TR1TR1和和TF1TF1,同时占用定同时占用定时器
13、时器T1T1的中断请求源的中断请求源TF1TF1。各引脚与各引脚与T0T0的逻辑关系如图所示:的逻辑关系如图所示:6.2.4 方式方式3:定时器定时器0:2个个8位计数器,定时位计数器,定时器器1:停止计数,:停止计数,从而具有从而具有3个定时器个定时器/计数器。计数器。2T0工作在方式工作在方式3下下T1的各种工作方式的各种工作方式 当当T1T1用作串行口的波特率发生器时,用作串行口的波特率发生器时,T0T0才工作在方才工作在方式式3 3。T0T0处于方式处于方式3 3时,时,T1T1可定为方式可定为方式0 0、方式、方式1 1和方式和方式2 2,用来作为串行口的波特率发生器,或不需要中断的
14、用来作为串行口的波特率发生器,或不需要中断的场合。场合。(1 1)T1T1工作在方式工作在方式0 0 (2 2)T1T1工作在方式工作在方式1 1(3 3)T1T1工作在方式工作在方式2 2 6.3 6.3 定时器定时器/计数器对输入信号的要求计数器对输入信号的要求 外部计数脉冲的最高频率为系统振荡器频率的外部计数脉冲的最高频率为系统振荡器频率的1/241/24。例如选用例如选用1212MHzMHz频率的晶体,则可输入频率的晶体,则可输入500500KHzKHz的外部脉的外部脉冲。冲。输入信号的高、低电平至少要保持一个机器周期。输入信号的高、低电平至少要保持一个机器周期。如图如图6-106-1
15、0所示,图中所示,图中Tcy为机器周期。为机器周期。6.4 6.4 定时器定时器/计数器的编程和应用计数器的编程和应用 4 4种工作方式中,方式种工作方式中,方式0 0与方式与方式1 1基本相同,由于方式基本相同,由于方式0 0是为兼容是为兼容MCS-48MCS-48而设,初值计算复杂,在实际应用而设,初值计算复杂,在实际应用中,一般不用方式中,一般不用方式0 0,而采用方式,而采用方式1 1。6.4.1 6.4.1 方式方式1 1应用应用 定时时间为:定时时间为:t=(216-T0初值初值)时钟周期时钟周期12计数长度计数长度=216=65536(个脉冲)(个脉冲)例例6-16-1 假设系统
16、时钟频率采用假设系统时钟频率采用6 6MHzMHz,要在要在P1.0P1.0上输出一个周期为上输出一个周期为2 2msms的方波,如图所示。的方波,如图所示。方波的周期用方波的周期用T0T0来确定,让来确定,让T0T0每隔每隔1 1msms计数溢出计数溢出1 1次次(每每1 1msms产生一次中断产生一次中断),CPUCPU响应中断后,在中断响应中断后,在中断服务程序中对服务程序中对P1.0P1.0取反。取反。(1)计算初值计算初值X 设初值为设初值为X,则有则有:(216-X)210-6=110-3 216-X=500 X=65036 X化为化为16进制,即进制,即X=FE0CH=11111
17、11000001100B。所以,所以,T0的初值为:的初值为:TH0=0FEH TL0=0CH(2)初始化程序设计初始化程序设计 对寄存器对寄存器IP、IE、TCON、TMOD的相应的相应位进行正确设置,将计数初值送入定时器中。位进行正确设置,将计数初值送入定时器中。(3)(3)程序设计程序设计 中断服务程序除产生方波外,还要注意将计数初中断服务程序除产生方波外,还要注意将计数初值重新装入定时器中,为下一次中断作准备。值重新装入定时器中,为下一次中断作准备。参考程序:参考程序:ORG 0000HORG 0000HRESET:AJMP MAIN RESET:AJMP MAIN ;转主程序转主程序
18、 ORG 000BHORG 000BH ;T0T0的中断入口的中断入口 AJMP IT0P AJMP IT0P ;转转T0T0中中断断处处理理程程序序IT0PIT0P ORG 0100HORG 0100HMAIN:MOV SP,#60H MAIN:MOV SP,#60H ;设堆栈指针设堆栈指针 MOV TMOD,#01HMOV TMOD,#01H ;设置设置T0T0为方式为方式1 1 ACALL PT0M0ACALL PT0M0;调用子程序调用子程序PT0M0PT0M0HERE:AJMP HEREHERE:AJMP HERE ;自身跳转自身跳转PT0M0:MOV TL0,#0CHPT0M0:M
19、OV TL0,#0CH;T0T0中断服务程序,中断服务程序,T0T0重新置初值重新置初值 MOV TH0,#0FEH MOV TH0,#0FEH SETB TR0 SETB TR0 ;启动启动T0T0 SETB ET0 SETB ET0 ;允许允许T0T0中断中断 SETB EA SETB EA ;CPUCPU开中断开中断 RETRETITOP:MOV TL0,#0CH ITOP:MOV TL0,#0CH ;T0T0中断服务子程序,中断服务子程序,T0T0置初值置初值 MOV TH0,#0FEHMOV TH0,#0FEH CPL P1.0 CPL P1.0 ;P1.0P1.0的状态取反的状态取
20、反 RETIRETI查询方式查询方式的参考程序的参考程序:MOV TMOD,#01H MOV TMOD,#01H ;设置设置T0T0为方式为方式1 1 SETB TR0 SETB TR0 ;接通接通T0T0LOOP:MOV TH0,#0FEH LOOP:MOV TH0,#0FEH;T0T0置初值置初值 MOV TL0,#0CH MOV TL0,#0CHLOOP1LOOP1:JNB TF0,LOOP1 JNB TF0,LOOP1;查询查询TF0TF0标志标志 CLR TR0 CLR TR0 ;T0T0溢出,关闭溢出,关闭T0T0 CPL P1.0 CPL P1.0 ;P1.0P1.0的状态求反的
21、状态求反 SJMP LOOP SJMP LOOP例例6-26-2 假假设设系系统统时时钟钟为为6 6MHzMHz,编编写写定定时时器器T0T0产生产生1 1秒定时秒定时的程序。的程序。(1 1)T0T0工作方式的确定工作方式的确定定时时间较长,采用哪一种工作方式?定时时间较长,采用哪一种工作方式?由各种工作方式的特性,可计算出:由各种工作方式的特性,可计算出:方式方式0 0最长可定时最长可定时16.38416.384msms;方式方式1 1最长可定时最长可定时131.072131.072msms;方式方式2 2最长可定时最长可定时512512 s s。选方式选方式1 1,每隔,每隔100100
22、msms中断一次,中断中断一次,中断1010次为次为1 1s s。(2 2)计算计数初值)计算计数初值 因为:因为:(2(21616-X)210X)210-6-6=10=10-1-1 所以:所以:X=15536=3CB0HX=15536=3CB0H 因此:因此:TH0=3CHTH0=3CH,TL0=B0H TL0=B0H(3 3)1010次计数的实现次计数的实现 采用循环程序法。采用循环程序法。(4 4)程序设计)程序设计 参考程序参考程序:ORG 0000HORG 0000HRESETRESET:LJMP MAIN LJMP MAIN ;上电,转主程序入口上电,转主程序入口MAINMAIN
23、ORG 000BHORG 000BH ;T0T0的中断入口的中断入口 LJMP IT0PLJMP IT0P;转转T0T0中断处理程序中断处理程序IT0PIT0P ORG 1000HORG 1000H MAIN MAIN:MOV SP,#60H MOV SP,#60H ;设堆栈指针设堆栈指针 MOV B,#0AH MOV B,#0AH ;设循环次数设循环次数1010次次 MOV TMOD,#01H MOV TMOD,#01H ;设设T0T0工作在方式工作在方式1 1 MOV TL0,#0B0H MOV TL0,#0B0H ;给给T0T0设初值设初值 MOV TH0,#3CHMOV TH0,#3C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 定时器 应用
限制150内