第五章2单片机的定时器计数器_第1页
第五章2单片机的定时器计数器_第2页
第五章2单片机的定时器计数器_第3页
第五章2单片机的定时器计数器_第4页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章第五章2 单片机的定时器计数器单片机的定时器计数器 第一节第一节 定时定时/计数器的结构和功能计数器的结构和功能 第二节第二节 定时器定时器/计数器的工作方式计数器的工作方式 第三节第三节 定时器定时器/计数器应用计数器应用第一节第一节 定时器定时器/计数器的结构和功能计数器的结构和功能一、结构和功能一、结构和功能二、方式寄存器二、方式寄存器TMOD和控制寄存器和控制寄存器TCON一、结构和功能一、结构和功能 8051单片机内有两个可编程单片机内有两个可编程16位定时器位定时器/计数器,常称为定时器计数器,常称为定时器0和定时和定时器器1,简称为,简称为T0和和T1,每个定时计数器都由两

2、个,每个定时计数器都由两个8位专用寄存器组成,位专用寄存器组成,T0由由TH0,TL0组成,组成,T1由由TH1,TL1组成,同时还有组成,同时还有TCON,TMOD两个专用寄存两个专用寄存器对其进行控制。常用于定时控制、延时、外部计数和检测等。器对其进行控制。常用于定时控制、延时、外部计数和检测等。1.结构:结构:外部控制门外部控制门2.功能:功能:a.定时:定时: 对机器周期进行计数,即计数脉冲来自单片机的内部。即每对机器周期进行计数,即计数脉冲来自单片机的内部。即每个机器周期产生一个计数脉冲使得计数器加个机器周期产生一个计数脉冲使得计数器加1,直至计满溢出。,直至计满溢出。 一个机器周期

3、一个机器周期12*振荡周期振荡周期 12MHZ晶体,计数周期晶体,计数周期(机器周期机器周期)1us。即每。即每1us计数器加计数器加l。 从开始计数到溢出这段时间就是从开始计数到溢出这段时间就是“定时定时”时间。时间。 因此,若机器周期一定,计数初值越大,则定时越短因此,若机器周期一定,计数初值越大,则定时越短b.计数:计数: 对外来脉冲进行计数。对外来脉冲进行计数。T0(P3.4)和和T1(P3.5)两个引脚,作为计数输入端。两个引脚,作为计数输入端。外部输入的脉冲在出现从外部输入的脉冲在出现从1到到0的负跳变时有效,计数器的负跳变时有效,计数器进行加进行加1。计数方式下,单片机在每个机器

4、周期的计数方式下,单片机在每个机器周期的S5P2拍节时对外拍节时对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一机器周期的一机器周期的S3Pl进行计数。进行计数。即采样计数脉冲需要即采样计数脉冲需要2个机器周期,即个机器周期,即24个振荡周期。个振荡周期。 因此,计数脉冲的频率最高为振荡脉冲频率的因此,计数脉冲的频率最高为振荡脉冲频率的 124 TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR

5、0IE1IT1IE0IT01.控制寄存器控制寄存器TCONTF1(TCON.7, 8FH位)位)-定时器定时器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设有定时设有定时/计

6、数器应用相关的控制器,即两个计数器应用相关的控制器,即两个8位专用寄存器位专用寄存器TMOD和和TCON。定。定/计工作前,必须经过由计工作前,必须经过由CPU将一些命令写入定将一些命令写入定/计的初始化过程。计的初始化过程。二、方式寄存器二、方式寄存器TMOD和控制寄存器和控制寄存器TCON2.方式寄存器方式寄存器TMOD (不能进行位寻址,没有位地址)(不能进行位寻址,没有位地址)GATED7D6D5D4D3D2D1D0C/TM1M0C/TM1M0GATETMOD M1 M0工作方式工作方式功功 能能 说说 明明0 0方式方式013位计数器位计数器0 1方式方式116位计数器位计数器1 0

7、方式方式2自动再装入自动再装入8位计数器位计数器1 1方式方式3定时器定时器0:分成两个:分成两个8位计数器位计数器定时器定时器1:停止计数:停止计数C/T-定时器定时器/计数器方式选择计数器方式选择位。位。 0:定时器;:定时器;1:计数器。:计数器。GATE-外部门控位。外部门控位。 0:不用外部门,只将:不用外部门,只将TR0/TR1置置1来启动定时器;来启动定时器; 1:使用外部门,外部请求:使用外部门,外部请求信号信号INT0/INT1(高电平)和(高电平)和TR0/TR1 (置(置1)共同来启动定)共同来启动定时器。时器。定时计数器定时计数器1定时计数器定时计数器01、 方式方式0

8、 (T1,T0)当当M1M0两位为两位为00时,定时时,定时/计数器被选为工作方式计数器被选为工作方式0,13位计数器,其逻辑结位计数器,其逻辑结构如图所示。构如图所示。控制控制振荡器振荡器1212TL0TL0低低5 5位位TF0TF0中断中断T0T0 端端C/C/ T = 0T = 0C/C/ T = 1T = 1+ +INT0INT0 端端GATEGATETR0TR0TH0TH0 高高8 8位位第二节第二节 定时器定时器/计数器的工作方式计数器的工作方式在方式在方式0下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是: 18192(213 )定时工作方式时,定时时间的计

9、算公式为:定时工作方式时,定时时间的计算公式为: (213一计数初值一计数初值)晶振周期晶振周期12 或或(213一计数初值一计数初值)机器周期机器周期若晶振频率为若晶振频率为6MHz,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为: 最大定时时间为:最大定时时间为:213 0 x2s=16384s =16.384ms213 (213 -1)x2s=2s2、 方式方式1 (T1,T0)当当M1M0两位为两位为01时,定时时,定时/计数器被选为工作方式计数器被选为工作方式1,16位计数器,其逻辑结构位计数器,其逻辑结构如图如图 所示。所示。控制控制

10、振荡器振荡器1212TL0TL0(8(8位位) )TF0TF0中断中断T0T0 端端C/C/ T = 0T = 0C/C/ T = 1T = 1+ +INT0INT0 端端GATEGATETR0TR0TH0TH0(8(8位位) )在方式在方式1下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是: 165536(216 )定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为: (216一计数初值一计数初值)晶振周期晶振周期12 或或(216一计数初值一计数初值)机器周期机器周期若晶振频率为若晶振频率为6MHz ,1个机器周期为个机器周期为1/6 x 10

11、-6 x12=2s则最小定时时间为:则最小定时时间为: 最大定时时间为:最大定时时间为:216 (216 -1) x2s=2s216 0 x2s=131072s =131.072ms控制控制振荡器振荡器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位计数器,位计数器,

12、其逻辑结构如图所示。其逻辑结构如图所示。方式方式0和方式和方式1有个共同的特点,就是计数溢出后计数器全清有个共同的特点,就是计数溢出后计数器全清0,因此,循环定时时,因此,循环定时时就需要反复设定计数器初值,比较麻烦,而方式就需要反复设定计数器初值,比较麻烦,而方式2具有自动重加载初值的功能,免去具有自动重加载初值的功能,免去很多反复设置初值的工作。很多反复设置初值的工作。在方式在方式2下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是: 1256(28 )定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为: (28一计数初值一计数初值)晶振周期晶振

13、周期12 或或(28一计数初值一计数初值)机器周期机器周期若晶振频率为若晶振频率为6MHz, 1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为: 最大定时时间为:最大定时时间为:28(28 -1) x 2s=2s28 0 x 2s=512s控制控制振荡器振荡器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 fosco

14、scTF1TF1中断中断1/1/12 12 f foscoscTR1TR14、 方式方式3(T0)当当M1M0两位为两位为11时,定时时,定时/计数器被选为工作方式计数器被选为工作方式3,只用于定时器只用于定时器0,T0被分被分成两个独立的成两个独立的8位计数器,其逻辑结构如图所示。位计数器,其逻辑结构如图所示。定时器定时器T0T0方式方式3 3结构结构控制控制振荡器振荡器1212TL1TL1(8(8位位) )串行口串行口T1T1(P3.5)P3.5)端端C/C/ T = 0T = 0C/C/ T = 1T = 1TH1TH1(8(8位位) )重新装入重新装入振荡器振荡器1212TL1TL1(

15、8/5(8/5位位) )T1T1(P3.5)P3.5)端端C/C/ T = 0T = 0C/C/ T = 1T = 1TH1TH1(8(8位位) )串行口串行口定时器定时器T0 用作用作方式方式3时,时,T1仍可用于方式仍可用于方式02结构结构这时,仅用这时,仅用C/T来切换定时或计数。来切换定时或计数。T1T1方式方式0 0或或1 1T1T1方式方式2 2在方式在方式0下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是: 18192(213 ) 213计数初值计数初值计数的脉冲数计数的脉冲数定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为: (2

16、13一一计数初值计数初值)晶振周期晶振周期12定时时间定时时间 或或(213一一计数初值计数初值)机器周期机器周期定时时间定时时间若晶振频率为若晶振频率为6MHz,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为: 最大定时时间为:最大定时时间为:213 (213 -1)x2s=2s213 0 x2s=16384s =16.384ms第三节第三节 定时定时/计数器应用计数器应用我们编程时,通常是求计数初值我们编程时,通常是求计数初值(1)计算计数初值计算计数初值 :例例1:设单片机晶振频率设单片机晶振频率Fosc6MHz,使用定时器,使用定时器1以

17、方式以方式0产生周期为产生周期为200s的等宽正方波脉冲,并由的等宽正方波脉冲,并由P1.0输出。以查询方式完成。输出。以查询方式完成。 欲产生欲产生200s的等宽正方波脉冲,只需在的等宽正方波脉冲,只需在P1.0端以端以100s为周期交替输出高低为周期交替输出高低电平即可实现,为此定时时间应为电平即可实现,为此定时时间应为100s。使用。使用6MHz晶振,则一个机器周期晶振,则一个机器周期为为2s。方式。方式0为为13位计数结构。位计数结构。设待求的计数初值为设待求的计数初值为x,则:,则: (213x)2s100s,求解得:,求解得: x8142(D)=1FCEH= 11111110011

18、10B = 1111111001110B 。低。低5位和高位和高8位分位分别转换为十六进制数,高别转换为十六进制数,高8位为位为FEH,低,低5位为位为0EH。其中高。其中高8位放入位放入THl,即,即THlFEH;低;低5位放入位放入TLl,即,即TL10EH。(2) TMOD寄存器初始寄存器初始化化为把定时器计数器为把定时器计数器1设定为方式设定为方式0,则,则MlM000H;为实现定时功能,应使;为实现定时功能,应使CT0;为实现定时器计数器;为实现定时器计数器1的运行控制,则的运行控制,则GATE0。定时器计数器。定时器计数器0不不用,有关位设定为用,有关位设定为0。因此。因此TMOD

19、寄存器应初始化为寄存器应初始化为00H。(3)由定时器控制寄存器由定时器控制寄存器TCON中的中的TR1位控制定时的启动和停止:位控制定时的启动和停止:TR11启动,启动,TR10停止停止(4)程序设计程序设计MOVTMOD,#00HMOVTH1,#0FEHMOVTL1,#0EHSETBTR1LOOP1: JBCTF1,LOOP2SJMPLOOP1LOOP2: MOVTL1,#0EHMOVTH1,#0FEHCLRTF1CPLP1.0SJMPLOOP1在方式在方式1下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是: 165536(216 ) 216计数初值计数初值计数的脉冲

20、数计数的脉冲数定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为: (216一一计数初值计数初值)晶振周期晶振周期12 定时时间定时时间 或或(216一一计数初值计数初值)机器周期机器周期定时时间定时时间若晶振频率为若晶振频率为6MHz ,1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为: 最大定时时间为:最大定时时间为:216 (216 -1) x2s=2s216 0 x2s=131072s =131.072ms例例2:设单片机晶振频率设单片机晶振频率Fosc12MHz,使用定时器,使用定时器0以方式以方式1产生周期为产生

21、周期为2S的等宽正方波脉冲,并由的等宽正方波脉冲,并由P1.0输出。输出。以查询方式完成。以查询方式完成。 (1)计算计数初值计算计数初值 设待求的计数初值为设待求的计数初值为x,则:,则: (216x)1s 50000s ,求解得:,求解得: x15536D3CB0H。即。即TH03CH;TL0B0H。(2) TMOD寄存器初始化寄存器初始化 TMOD00000001B(3)程序设计程序设计ATART:MOVR2,#20MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0LOOP1: JBCTF0,LOOP2SJMPLOOP1LOOP2:MOVTL0,#0B0

22、HMOVTH0,#3CHDJNZR2,LOOP1CPLP1.0MOVR2,#20SJMPLOOP1在方式在方式2下,计数工作方式时,计数值的范围是:下,计数工作方式时,计数值的范围是: 1256(28 ) 28计数初值计数初值计数的脉冲数计数的脉冲数定时工作方式时,定时时间的计算公式为:定时工作方式时,定时时间的计算公式为: (28一一计数初值计数初值)晶振周期晶振周期12 定时时间定时时间 或或(28一一计数初值计数初值)机器周期机器周期定时时间定时时间若晶振频率为若晶振频率为6MHz, 1个机器周期为个机器周期为1/6 x 10-6 x12=2s则最小定时时间为:则最小定时时间为: 最大定

23、时时间为:最大定时时间为:28(28 -1) x 2s=2s28 0 x 2s=512s例例3:使用定时器使用定时器0以工作方式以工作方式2产生产生100s定时,在定时,在P1.0输出周期为输出周期为200s的连续方波。已知晶振频率的连续方波。已知晶振频率fosc6MHz。(1) 计算计数初值计算计数初值 6MHz晶振下,一个机器周期为晶振下,一个机器周期为2s,以,以TH0作重装载的预置寄存器,作重装载的预置寄存器,TL0作作8位计数器,假位计数器,假设计数初值为设计数初值为x。则:。则: (28x)2s100s求解得:求解得: X206D11001110BCEH把把CEH分别装入分别装入T

24、H0和和TL0中:中: TH0CEH,TL0CEHTMOD寄存器初始化寄存器初始化(2)定时器计数器)定时器计数器0为工作方式为工作方式2,MlM010;为实现定时功能;为实现定时功能 C/T=0; 依题意依题意GATE0;定时器计数器定时器计数器1不用,有关位设定为不用,有关位设定为0。综上情况。综上情况TMOD寄存器的状态应为寄存器的状态应为02H。(3)程序设计)程序设计(查询方式查询方式) :MOVTMOD,#02HMOVTH0,#0CEHMOVTL0,#0CEHSETBTR0LOOP:JBCTF0,LOOP1SJMPLOOPLOOP1:CPLP1.0SJMPLOOP例例4:用定时器用

25、定时器l 以工作方式以工作方式2计数,每计计数,每计100次进行累计器加次进行累计器加1操作操作.(1)计算计数初值计算计数初值. 28100156D9CH TH19CH,TL19CHTMOD寄存器初始化:寄存器初始化:MlM010,CT1,GATE=0因此因此 TMOD60H(2)程序设计序设计程序设计序设计CLRAMOVTMOD,#60HMOVTH1,#9CHMOVTL1,#9CHSETBTR1DEL:JBCTF1,LOOPSJMPDELLOOP:INCASJMPDEL例例5: (应用两个定时器)(应用两个定时器)设重复周期大于设重复周期大于1ms的低频脉冲信号从的低频脉冲信号从P3.5引

26、脚(引脚(T1)输入。要求)输入。要求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,T

27、L006HT1: X=28-1 X=255D=0FFH TH1=0FFH, TL1=0FFHT0用于定时用于定时CT0 ,方式,方式2 M1 M010 ,GATE=0 T1用于计数用于计数CT1 ,方式,方式2 M1 M010 ,GATE=0 TMOD寄存器初始化:寄存器初始化: TMOD62HORG 0030HSTART1: MOV TMOD,#62HMOV TH0,#06H ;T0,定时,定时500usMOV TL0,#06HMOV TH1,#0FFH; T1, 计数一个脉计数一个脉冲冲MOV TL1,#0FFHSETB P1.0 CLR P1.1 SETB TR1 ; 启动启动T 1LP

28、1:JBC TF1,NEX1 SJMP LP1NEX1: CLR P1.0SETBP1.1 SETB TR0 ; 启动启动T 0LP2:JBC TF0,NEX2;定时;定时500usSJMP LP2NEX2:SETB P1.0LP3:JBC TF0,NEX3SJMP LP3NEX3:CLR P1.1 ;定定2次次500us共共1msCLR TR0 ;T0停止工作停止工作AJMP LP1P3.5P1.0P1.11ms500s1ms例例6:利用定时器利用定时器0控制产生周期为控制产生周期为2ms和和100ms的方波信号,分别的方波信号,分别由由P1.0和和P1.1引脚输出,引脚输出,采用中断方式采用中断方式。系统时钟为。系统时钟为12MHz。分析:方波为分析:方波为2ms,定时时间为,定时时间为1ms。 机器周期为机器周期为1s,采用方式,采用方式0,则计数初值为,则计数初值为 X=213-1000=7192=1110000011000B TH0=E0H,TL0=18H 方波为方波为100ms,定时时间为,定时时间为50ms,可采用,可采用50次次1ms定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论