《单片机 第五章 单片机的定时器计数器精选PPT.ppt》由会员分享,可在线阅读,更多相关《单片机 第五章 单片机的定时器计数器精选PPT.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机 第五章 单片机的定时器计数器第1页,此课件共32页哦第一节第一节 定时器定时器/计数器的结构和功能计数器的结构和功能一、结构和功能一、结构和功能二、方式寄存器二、方式寄存器TMOD和控制寄存器和控制寄存器TCON第2页,此课件共32页哦一、结构和功能一、结构和功能8051单片机内有两个可编程单片机内有两个可编程16位定时器位定时器/计数器,常称为定时器计数器,常称为定时器0和定时器和定时器1,简称为简称为T0和和T1,每个定时计数器都由两个,每个定时计数器都由两个8位专用寄存器组成,位专用寄存器组成,T0由由TH0,TL0组成,组成,T1由由TH1,TL1组成,同时还有组成,同时还有T
2、CON,TMOD两个专用寄存器对其进行控制。常用于两个专用寄存器对其进行控制。常用于定时控制、延时、外部计数和检测等。定时控制、延时、外部计数和检测等。1.结构:结构:外部控制门外部控制门第3页,此课件共32页哦2.功能:功能:a.定时:定时:对机器周期进行计数,即计数脉冲来自单片机的内部。即每个机器周期对机器周期进行计数,即计数脉冲来自单片机的内部。即每个机器周期产生一个计数脉冲使得计数器加产生一个计数脉冲使得计数器加1,直至计满溢出。,直至计满溢出。一个机器周期一个机器周期12*振荡周期振荡周期12MHZ晶体,计数周期晶体,计数周期(机器周期机器周期)1us。即每。即每1us计数器加计数器
3、加l。从开始计数到溢出这段时间就是从开始计数到溢出这段时间就是“定时定时”时间。时间。因此,若机器周期一定,计数初值越大,则定时越短因此,若机器周期一定,计数初值越大,则定时越短第4页,此课件共32页哦b.计数:计数:对外来脉冲进行计数。对外来脉冲进行计数。T0(P3.4)和和T1(P3.5)两个引脚,作为计数输入端。两个引脚,作为计数输入端。外部输入的脉冲在出现从外部输入的脉冲在出现从1到到0的负跳变时有效,计数器进行加的负跳变时有效,计数器进行加1。计数方式下,单片机在每个机器周期的计数方式下,单片机在每个机器周期的S5P2拍节时对外部计数拍节时对外部计数脉冲进行采样。如果前一个机器周期采
4、样为高电平,后一个机器周期脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一机器周期的采样为低电平,即为一个有效的计数脉冲。在下一机器周期的S3Pl进进行计数。行计数。即采样计数脉冲需要即采样计数脉冲需要2个机器周期,即个机器周期,即24个振荡周期。个振荡周期。因此,计数脉冲的频率最高为振荡脉冲频率的因此,计数脉冲的频率最高为振荡脉冲频率的124第5页,此课件共32页哦TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT01.控制寄存器控制寄存器TCONTF1(TCON.7,8FH位)位)-
5、定时器定时器T1中断请求溢出标志位。中断请求溢出标志位。TF0(TCON.5,8DH位)位)-定时器定时器T0中断请求溢出标志位。中断请求溢出标志位。TR1(TCON.6,8EH位)位)-T1运行控制位。运行控制位。0:关闭:关闭T1;1:启动:启动T1运行。只由软件置位或清零。运行。只由软件置位或清零。TR0(TCON.4,8CH位)位)-T0运行控制位。运行控制位。0:关闭:关闭T0;1:启动:启动T0运行。运行。只由软件置位或清零。只由软件置位或清零。8051设有定时设有定时/计数器应用相关的控制器,即两个计数器应用相关的控制器,即两个8位专用寄存器位专用寄存器TMOD和和TCON。定。
6、定/计工计工作前,必须经过由作前,必须经过由CPU将一些命令写入定将一些命令写入定/计的初始化过程。计的初始化过程。二、方式寄存器二、方式寄存器TMOD和控制寄存器和控制寄存器TCON第6页,此课件共32页哦2.方式寄存器方式寄存器TMOD(不能进行位寻址,没有位地址)(不能进行位寻址,没有位地址)GATED7D6D5D4D3D2D1D0C/TM1M0C/TM1M0GATETMODM1M0工作方式工作方式功功能能说说明明00方式方式013位计数器位计数器01方式方式116位计数器位计数器10方式方式2自动再装入自动再装入8位计数器位计数器11方式方式3定时器定时器0:分成两个:分成两个8位计数
7、器位计数器定时器定时器1:停止计数:停止计数C/T-定时器定时器/计数器方式选择位。计数器方式选择位。0:定时器;:定时器;1:计数器。:计数器。GATE-外部门控位。外部门控位。0:不用外部门,只将:不用外部门,只将TR0/TR1置置1来启动定时器;来启动定时器;1:使用外部门,外部请求信:使用外部门,外部请求信号号INT0/INT1(高电平)和(高电平)和TR0/TR1(置(置1)共同来启动定时)共同来启动定时器。器。定时计数器定时计数器1定时计数器定时计数器0第7页,此课件共32页哦第8页,此课件共32页哦1、方式方式0(T1,T0)当当M1M0两位为两位为00时,定时时,定时/计数器被
8、选为工作方式计数器被选为工作方式0,13位计数器,其逻辑结构如图所示。位计数器,其逻辑结构如图所示。控制控制振荡器振荡器1212TL0TL0低低5 5位位TF0TF0中断中断T0T0 端端C/C/T=0T=0C/C/T=1T=1+INT0INT0 端端GATEGATETR0TR0TH0TH0 高高8 8位位第二节第二节 定时器定时器/计数器的工作方式计数器的工作方式第9页,此课件共32页哦在方式在方式0下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是:18192(213)定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为:(213一计数初值一计数初
9、值)晶振周期晶振周期12 或或(213一计数初值一计数初值)机器周期机器周期若晶振频率为若晶振频率为6MHz,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为:最大定时时间为:最大定时时间为:2130 x2s=16384s=16.384ms213(213-1)x2s=2s第10页,此课件共32页哦2、方式方式1(T1,T0)当当M1M0两两位位为为01时时,定定时时/计计数数器器被被选选为为工工作作方方式式1,16位位计计数数器器,其其逻逻辑辑结结构构如如图图所所示。示。控制控制振荡器振荡器1212TL0TL0(8(8位位)TF0TF0中断中断T0
10、T0 端端C/C/T=0T=0C/C/T=1T=1+INT0INT0 端端GATEGATETR0TR0TH0TH0(8(8位位)第11页,此课件共32页哦在方式在方式1下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是:165536(216)定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为:(216一计数初值一计数初值)晶振周期晶振周期12或或(216一计数初值一计数初值)机器周期机器周期若晶振频率为若晶振频率为6MHz,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为:最大定时时间为:最大定时时间为:
11、216(216-1)x2s=2s2160 x2s=131072s=131.072ms第12页,此课件共32页哦控制控制振荡器振荡器1212TL0TL0(8(8位位)TF0TF0中断中断T0T0 端端C/C/T=0T=0C/C/T=1T=1+INT0INT0 端端GATEGATETR0TR0TH0TH0(8(8位位)重新装重新装入入3、方式方式2(T1,T0)当当M1M0两两位位为为10时时,定定时时/计计数数器器被被选选为为工工作作方方式式2,自自动动重重加加载载8位位计计数数器器,其其逻逻辑辑结结构如图所示。构如图所示。方式方式0和方式和方式1有个共同的特点,就是计数溢出后计数器全清有个共同
12、的特点,就是计数溢出后计数器全清0,因此,循环定时时,因此,循环定时时就需要反复设定计数器初值,比较麻烦,而方式就需要反复设定计数器初值,比较麻烦,而方式2具有自动重加载初值的功能,免去具有自动重加载初值的功能,免去很多反复设置初值的工作。很多反复设置初值的工作。第13页,此课件共32页哦在方式在方式2下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是:1256(28)定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为:(28一计数初值一计数初值)晶振周期晶振周期12或或(28一计数初值一计数初值)机器周期机器周期若晶振频率为若晶振频率为6MHz,1
13、个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为:最大定时时间为:最大定时时间为:28(28-1)x2s=2s280 x 2s=512s第14页,此课件共32页哦控制控制振荡器振荡器1212TL0TL0(8(8位位)TF0TF0中断中断T T0 0 端端C/C/T=0T=0C/C/T=1T=1+INT0INT0 端端GATEGATETR0TR0TH0TH0(8(8位位)1/1/12 12 f foscosc1/1/12 12 f foscoscTF1TF1中断中断1/1/12 12 f foscoscTR1TR14、方式方式3(T0)当当M1M0两两
14、位位为为11时时,定定时时/计计数数器器被被选选为为工工作作方方式式3,只只用用于于定定时时器器0,T0被被分分成成两两个个独独立立的的8位计数器,其逻辑结构如图所示。位计数器,其逻辑结构如图所示。定时器定时器T0T0方式方式3 3结构结构第15页,此课件共32页哦控制控制振荡器振荡器1212TL1TL1(8(8位位)串行口串行口T1T1(P3.5)P3.5)端端C/C/T=0T=0C/C/T=1T=1TH1TH1(8(8位位)重新装入重新装入振荡器振荡器1212TL1TL1(8/5(8/5位位)T1T1(P3.5)P3.5)端端C/C/T=0T=0C/C/T=1T=1TH1TH1(8(8位位
15、)串行口串行口定时器定时器T0 用作用作方式方式3时,T1仍可用于方式仍可用于方式02结构结构这时,仅用这时,仅用C/T来切换定时或计数。来切换定时或计数。T1T1方式方式0 0或或1 1T1T1方式方式2 2第16页,此课件共32页哦在方式在方式0下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是:18192(213)213计数初值计数初值计数的脉冲数计数的脉冲数定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为:(213一一计数初值计数初值)晶振周期晶振周期12定时时间定时时间或或(213一一计数初值计数初值)机器周期机器周期定时时间定时时间若晶
16、振频率为若晶振频率为6MHz,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为:最大定时时间为:最大定时时间为:213(213-1)x2s=2s2130 x2s=16384s=16.384ms第三节第三节 定时定时/计数器应用计数器应用我们编程时,通常是求计数初值我们编程时,通常是求计数初值第17页,此课件共32页哦(1)计算计数初值计算计数初值:例例1:设单片机晶振频率设单片机晶振频率Fosc6MHz,使用定时器,使用定时器1以方式以方式0产生周期为产生周期为200s的等宽正方波的等宽正方波脉冲,并由脉冲,并由P1.0输出。以查询方式完成。输出。
17、以查询方式完成。欲产生欲产生200s的等宽正方波脉冲,只需在的等宽正方波脉冲,只需在P1.0端以端以100s为周期交替输出高低电平即可为周期交替输出高低电平即可实现,为此定时时间应为实现,为此定时时间应为100s。使用。使用6MHz晶振,则一个机器周期为晶振,则一个机器周期为2s。方式。方式0为为13位计数结构。位计数结构。设待求的计数初值为设待求的计数初值为x,则:,则:(213x)2s100s,求解得:,求解得:x8142(D)=1FCEH=1111111001110B=1111111001110B。低。低5位和高位和高8位分别转换为十位分别转换为十六进制数,高六进制数,高8位为位为FEH
18、,低,低5位为位为0EH。其中高。其中高8位放入位放入THl,即,即THlFEH;低;低5位放位放入入TLl,即,即TL10EH。(2)TMOD寄存器初始化寄存器初始化为把定时器计数器为把定时器计数器1设定为方式设定为方式0,则,则MlM000H;为实现定时功能,应使;为实现定时功能,应使CT0;为;为实现定时器计数器实现定时器计数器1的运行控制,则的运行控制,则GATE0。定时器计数器。定时器计数器0不用,有关位设定为不用,有关位设定为0。因此。因此TMOD寄存器应初始化为寄存器应初始化为00H。(3)由定时器控制寄存器由定时器控制寄存器TCON中的中的TR1位控制定时的启动和停止:位控制定
19、时的启动和停止:TR11启动,启动,TR10停止停止第18页,此课件共32页哦(4)程序设计程序设计MOVTMOD,#00HMOVTH1,#0FEHMOVTL1,#0EHSETBTR1LOOP1:JBCTF1,LOOP2SJMPLOOP1LOOP2:MOVTL1,#0EHMOVTH1,#0FEHCLRTF1CPLP1.0SJMPLOOP1第19页,此课件共32页哦在方式在方式1下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是:165536(216)216计数初值计数初值计数的脉冲数计数的脉冲数定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为:(2
20、16一一计数初值计数初值)晶振周期晶振周期12定时时间定时时间或或(216一一计数初值计数初值)机器周期机器周期定时时间定时时间若晶振频率为若晶振频率为6MHz,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为:最大定时时间为:最大定时时间为:216(216-1)x2s=2s2160 x2s=131072s=131.072ms第20页,此课件共32页哦例例2:设单片机晶振频率设单片机晶振频率Fosc12MHz,使用定时器,使用定时器0以方式以方式1产生周期为产生周期为2S的等宽的等宽正方波脉冲,并由正方波脉冲,并由P1.0输出。输出。以查询方式完成
21、。以查询方式完成。(1)计算计数初值计算计数初值设待求的计数初值为设待求的计数初值为x,则:,则:(216x)1s50000s,求解得:,求解得:x15536D3CB0H。即。即TH03CH;TL0B0H。(2)TMOD寄存器初始化寄存器初始化TMOD00000001B第21页,此课件共32页哦(3)程序设计程序设计START:MOVR2,#20MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0LOOP1:JBCTF0,LOOP2SJMPLOOP1LOOP2:MOVTL0,#0B0HMOVTH0,#3CHDJNZR2,LOOP1CPLP1.0MOVR2,#20
22、SJMPLOOP1第22页,此课件共32页哦在方式在方式2下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是:1256(28)28计数初值计数初值计数的脉冲数计数的脉冲数定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为:(28一一计数初值计数初值)晶振周期晶振周期12定时时间定时时间或或(28一一计数初值计数初值)机器周期机器周期定时时间定时时间若晶振频率为若晶振频率为6MHz,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为:最大定时时间为:最大定时时间为:28(28-1)x2s=2s280 x 2s
23、=512s第23页,此课件共32页哦例例3:使用定时器使用定时器0以工作方式以工作方式2产生产生100s定时,在定时,在P1.0输出周期为输出周期为200s的连续方波。的连续方波。已知晶振频率已知晶振频率fosc6MHz。(1)计算计数初值计算计数初值6MHz晶振下,一个机器周期为晶振下,一个机器周期为2s,以,以TH0作重装载的预置寄存器,作重装载的预置寄存器,TL0作作8位计数器,假设计数初值为位计数器,假设计数初值为x。则:则:(28x)2s100s求解得:求解得:X206D11001110BCEH把把CEH分别装入分别装入TH0和和TL0中:中:TH0CEH,TL0CEHTMOD寄存器
24、初始化寄存器初始化(2)定时器计数器)定时器计数器0为工作方式为工作方式2,MlM010;为实现定时功能;为实现定时功能C/T=0;依题意依题意GATE0;定时器计数;定时器计数器器1不用,有关位设定为不用,有关位设定为0。综上情况。综上情况TMOD寄存器的状态应为寄存器的状态应为02H。(3)程序设计)程序设计(查询方式查询方式):MOVTMOD,#02HMOVTH0,#0CEHMOVTL0,#0CEHSETBTR0LOOP:JBCTF0,LOOP1SJMPLOOPLOOP1:CPLP1.0SJMPLOOP第24页,此课件共32页哦例例4:用定时器用定时器l以工作方式以工作方式2计数,每计计
25、数,每计100次进行累计器加次进行累计器加1操作操作.(1)计算计数初值计算计数初值.28100156D9CHTH19CH,TL19CHTMOD寄存器初始化:寄存器初始化:MlM010,CT1,GATE=0因此因此TMOD60H(2)程序设计序设计程序设计序设计CLRAMOVTMOD,#60HMOVTH1,#9CHMOVTL1,#9CHSETBTR1DEL:JBCTF1,LOOPSJMPDELLOOP:INCASJMPDEL第25页,此课件共32页哦例例5:(应用两个定时器)(应用两个定时器)设重复周期大于设重复周期大于1ms的低频脉冲信号从的低频脉冲信号从P3.5引脚(引脚(T1)输入。要求
26、)输入。要求P3.5每发生每发生1次负跳次负跳变时,变时,P1.0输出输出1个个500s同步负脉冲,同时同步负脉冲,同时P1.1输出输出1个个1ms的同步正脉冲,其波形的同步正脉冲,其波形图如下,设图如下,设fosc6MHz。P3.5P1.0P1.11ms500s1ms计算计数初值:定时器计算计数初值:定时器T0定时定时500us,使用方式,使用方式2,T1用于计数用于计数1个脉冲(每一次负跳变发生一个脉冲(每一次负跳变发生一次变化)次变化)因此同时使用两个定时计数器,因此同时使用两个定时计数器,T0:(28-x)2us500us x=6D=06H TH006H,TL006HT1:X=28-1
27、 X=255D=0FFH TH1=0FFH,TL1=0FFHT0用于定时用于定时CT0,方式,方式2 M1 M010,GATE=0 T1用于计数用于计数CT1,方式,方式2 M1 M010,GATE=0 TMOD寄存器初始化:寄存器初始化:TMOD62H第26页,此课件共32页哦ORG0030HSTART1:MOVTMOD,#62HMOVTH0,#06H;T0,定时,定时500usMOVTL0,#06HMOVTH1,#0FFH;T1,计数一个脉冲计数一个脉冲MOVTL1,#0FFHSETBP1.0CLRP1.1SETBTR1;启动启动T1LP1:JBCTF1,NEX1SJMPLP1NEX1:C
28、LRP1.0SETBP1.1SETBTR0;启动启动T 0LP2:JBCTF0,NEX2;定时;定时500usSJMPLP2NEX2:SETBP1.0LP3:JBCTF0,NEX3SJMPLP3NEX3:CLRP1.1;定定2次次500us共共1msCLRTR0;T0停止工作停止工作AJMPLP1P3.5P1.0P1.11ms500s1ms第27页,此课件共32页哦例例6:利用定时器利用定时器0控制产生周期为控制产生周期为2ms和和100ms的方波信号,分别由的方波信号,分别由P1.0和和P1.1引脚输出,引脚输出,采用中断方式采用中断方式。系统时钟为。系统时钟为12MHz。分析:方波为分析:
29、方波为2ms,定时时间为,定时时间为1ms。机器周期为机器周期为1s,采用方式,采用方式0,则计数初值为,则计数初值为 X=213-1000=7192=1110000011000B TH0=E0H,TL0=18H 方波为方波为100ms,定时时间为,定时时间为50ms,可采用,可采用50次次1ms定定时时第28页,此课件共32页哦ORG0000HLJMPBEGINORG000BHLJMPTOINTORG2000HBEGIN:MOVTMOD,#00HMOVTL0,#18HMOVTH0,#0E0HMOVR2,#50SETBEASETBET0SETBPT0SETBTR0HERE:SJMPHERETO
30、INT:MOVTL0,#18HMOVTH0,#0E0HCPLP1.0DJNZR2,RETURNCPLP1.1MOVR2,#50RETURN:RETI第29页,此课件共32页哦查询方式查询方式中断方式中断方式LOOP1:JBCTF0,LOOP2SJMPLOOP1HERE:SJMP HEREORG 000BHLJMP TOINT SETB EA SETB ET0 SETB PT0 SETB TR0SETB TR0 TOINT:使用中断方式时:使用中断方式时:定时器溢定时器溢出中断请求标志位出中断请求标志位TF0,TF1,由硬件自动清由硬件自动清0。使用查询方式时:使用查询方式时:定时器溢出定时器溢
31、出中断请求标志位中断请求标志位TF0,TF1,由用由用户软家清户软家清0。第30页,此课件共32页哦单片机专门固化的定时器单片机专门固化的定时器/计数器的特点:计数器的特点:总结总结1、51子系统有子系统有2个个计数器、计数器、52子系统有子系统有3个个计数器计数器2、每个计数器都是一个、每个计数器都是一个加法加法计数器。计数器。3、每个计数器都可定义为、每个计数器都可定义为8bit、13bit、16bit等等4种工种工 作方式,以方便在不同的环境下使用。作方式,以方便在不同的环境下使用。4、每个计数器都可以、每个计数器都可以置初值置初值,每来一个脉冲,每来一个脉冲+1。5、每个计数器都可以选择计数源,内部或外部。、每个计数器都可以选择计数源,内部或外部。6、当选择内部振荡源,由于已知频率,所以可以当定、当选择内部振荡源,由于已知频率,所以可以当定 时器,计数频率固定为振荡频率的时器,计数频率固定为振荡频率的12分频分频。7、当选择外部脉冲,由于频率未知,可用内部振荡频、当选择外部脉冲,由于频率未知,可用内部振荡频 率去测量,最大计数脉冲为振荡频率的率去测量,最大计数脉冲为振荡频率的24分频分频。第31页,此课件共32页哦思考题第32页,此课件共32页哦
限制150内