微机原理与应用:第7章 定时计数器

上传人:博****1 文档编号:572742737 上传时间:2024-08-13 格式:PPT 页数:42 大小:711.50KB
返回 下载 相关 举报
微机原理与应用:第7章 定时计数器_第1页
第1页 / 共42页
微机原理与应用:第7章 定时计数器_第2页
第2页 / 共42页
微机原理与应用:第7章 定时计数器_第3页
第3页 / 共42页
微机原理与应用:第7章 定时计数器_第4页
第4页 / 共42页
微机原理与应用:第7章 定时计数器_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《微机原理与应用:第7章 定时计数器》由会员分享,可在线阅读,更多相关《微机原理与应用:第7章 定时计数器(42页珍藏版)》请在金锄头文库上搜索。

1、1 本章介绍的主要内容本章介绍的主要内容 定时计数器结构和工作原理定时计数器结构和工作原理定时计数器结构和工作原理定时计数器结构和工作原理 定时计数器的控制定时计数器的控制定时计数器的控制定时计数器的控制寄存器寄存器 定时计数器的应用编程定时计数器的应用编程定时计数器的应用编程定时计数器的应用编程第第7章章 定时定时/计数器计数器28051定时器定时器/计数器逻辑结构图计数器逻辑结构图71 8051定时定时/计数器结构和工作原理计数器结构和工作原理3 5151系列单片机片内有二个十六位定时系列单片机片内有二个十六位定时/ /计数器:定时器计数器:定时器0(T0)0(T0)和定时器和定时器1(T

2、1)1(T1)。 两个定时器都有定时或计数的功能,可用于定时控制、延时、两个定时器都有定时或计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。对外部事件计数和检测等场合。 定时定时/ /计数器实际上是计数器实际上是1616位加位加1 1计数器。计数器。 T0T0由由2 2个个8 8位持殊功能寄存器位持殊功能寄存器TH0TH0和和TL0TL0构成,构成, T1T1由由2 2个个8 8位持殊功能寄存位持殊功能寄存TH1TH1和和TL1TL1构成。构成。每个定时器都可由软件设置为定时工作方式或计数工作方式。每个定时器都可由软件设置为定时工作方式或计数工作方式。T0和和T1受受特殊功能寄存

3、器特殊功能寄存器TMODTMOD和和TCONTCON控制。控制。 4 72 定时计数器的控制定时计数器的控制寄存器寄存器定时器共有两个控制寄存器:定时器共有两个控制寄存器: 定时器工作模式寄存器定时器工作模式寄存器TMOD(89H ) 定时器控制定时器控制TCON(88H)5 1) 定时定时/计数器方式寄存器计数器方式寄存器TMODTMOD为定时器0、定时器1的工作方式寄存器,其格式如下:TMODD7D6D5D4D3D2D1D0GATEM1GATEM1M0M0定时器1定时器0TMOD的低4位为定时器0的方式字段,高4位为定时器1的方式字段,它们的含义完全相同。6(1)M1和M0:方式选择位。定

4、义如下:M1M0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器定时器1:无中断自动重装8位计数器7(3)GATE:门控位。当GATE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须(P3.2)或(P3.3)为高电平方可启动定时器,此时不再用作中断请求线。(2)C/T:功能选择位。为0时,设置为定时器工作方式;为1时,设置为计数器工作方式。+C/TC/T&81. 定时工作方式 设置为定时工作方式时,定时器计数的脉冲是由51单片机片内振荡器经12分频后产生

5、的。 每经过一个机器周期定时器(T0或T1)的数值加1直至计数满产生溢出。 如:当8051采用12MHz晶体时,每个机器周期为1s,计5 个机器周期即为5 s,即定时5 s 。 当C/T= 0时,多路开关连接12分频器输出,定时器0对机器周期计数,此时,定时器0为定时器。9 2. 计数工作方式 设置为计数工作方式时,通过引脚T0(P34)和T1(P35)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时,定时器的值加1。 在每个机器周期CPU采样T0和T1的输入电平,若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加 1。 当C/T = 1时,多路开关与T0(P3.4)相

6、连,外部计数脉冲由T0脚输入,当外部信号电平发生负跳变时,计数器加1,此时,定时器0为计数器。10TCON(88H)8FH8EH8DH8CH8BH8AH89H88HTR0TF1TR1TF0IE1IT1IE0IT0各位含义如下:(1)TCON.7TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。2) 定时器定时器/计数器控制寄存器计数器控制寄存器TCON TCON的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。定时器控制字TCON的格式如下:11(2)TCON.6TR1:定

7、时器1运行控制位。由软件置1或清0来启动或关闭定时器1。当GATE=1,且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。(3)TCON.5TF0:定时器0溢出标志位。其功能及操作情况同TF1。(4)TCON.4TR0:定时器0运行控制位。其功能及操作情况同TR1。123) 定时定时/计数器的初始化计数器的初始化 由于定时/计数器的功能是由软件编程确定的,所以,一般在使用定时器/计数前都要对其进行初始化。初始化骤如下: (1) 确定工作方式对TMOD赋值。 MOV TMOD #10H,表明定时器1工作在方式1,且工作在定时器方式。 (2) 预置定时或计数的初值

8、直接将初值写入TH0、TL0或TH1、TL1。13定时/计数器的初值因工作方式的不同而不同。设最大计数值为M,则各种工作方式下的M值如下: 方式0:M=213=8192 方式1:M=216=65536 方式2和方式3:M=28=256 因定时/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下: X = M 计数值147.3 定时器的四种工作方式定时器的四种工作方式 对对TMOD寄存器的寄存器的M1、M0位的设置,可选择四种工作方式,位的设置,可选择四种工作方式,即方式即方式0、方式、方式1、方式、方式2和方式和方式3。 下面用下面用THX、TLX(X=1或或0)

9、表示)表示TH1 TL1 TH0 TL0。 图图 定时器定时器0(或定时器(或定时器1)在方式)在方式0时的逻辑电路结构图时的逻辑电路结构图1. 1.方式方式 0 015定时器(T0或T1)工作于13位定时、计数方式。用于计数方式时最大计数值为 213 8192个脉冲用于定时工作时,定时时间为: t(213一T0初值) 时钟周期12在这种模式下,16寄存器(THx和TLx)只用13位,其中THx占高8位。其中TLx占低5位, TLx的高3位末用。当TLx的低5位溢出时向THx进位,而THx溢出时硬件置位TF0,并申请中断。 定时、计数溢出与否可查询TF0(或TF1)是否置位,如果开中断则产生溢

10、出中断。16 例1 用定时器1,方式0实现1 s的延时,振荡频率为12MHz。 解:因方式0采用13位计数器,其最大定时时间为:81921 s = 8.192 ms。 因此,定时时间不可能大于最大的定时时间,可选择定时时间为5ms,再循环200次。定时时间选定后,再确定计数值为5000,则定时器1的初值为 X = M 计数值= 8192 5000 = 3192 = 0C78H = 110001111000B17因13位计数器中TL1的高3位未用,应填写0,TH1占高8位,所以,X的实际填写值应为X=0110001100011000B=6318H即:TH1=63H,TL1=18H,又因采用方式0

11、定时,故TMOD=00H。18DELAY:MOVR3,#200;置5ms计数循环初值MOVTMOD,#00H;设定时器1为方式0MOVTH1,#63H;置定时器初值MOVTL1,#18HMOVIE,#00H;关中断SETBTR1;启动T1LP1:JB TF1,LP2;查询计数溢出SJMPLP1 ;未到5ms继续计数LP2:CLRTF1MOVTH1,#63H;重新置定时器初值MOVTL1,#18HDJNZR3,LP1 ;未到1s继续循环RET;返回主程序查询法查询法 19T0(或T1)方式1的逻辑电路结构2 .方式方式120当当TMOD中中M1M0=01时,定时计数器工作在方式时,定时计数器工作

12、在方式1。该模式是一个该模式是一个16位定时计数方式。位定时计数方式。寄存器寄存器TH0和和TL0是以全是以全16位参与操作,位参与操作,计数方式时最大计数计数方式时最大计数 21665536(个外部脉冲个外部脉冲)用于定时工作方式时,定时时间为:用于定时工作方式时,定时时间为: t(216一一T0初值初值) 时钟周期时钟周期12 16寄存器寄存器(THx和和TLx) 中中THx提供高提供高8位、位、TLx提供提供低低8位计数初值位计数初值 21T0(或T1)方式2的逻辑电路结构3. 方式方式222 方式方式2 2是是8 8位的可自动重装载的定时计数方式。位的可自动重装载的定时计数方式。161

13、6位的计数器被拆成两个位的计数器被拆成两个8 8位,其中位,其中TL0TL0用作用作8 8位计数器,位计数器, TH0TH0用以保持计数初值。当用以保持计数初值。当TL0TL0计数溢出,置计数溢出,置TF0TF0,TH0TH0中的中的初值自动装入初值自动装入TL0TL0,继续计数,循环重复计数。,继续计数,循环重复计数。用于计数工作方式时,最大计数值为:用于计数工作方式时,最大计数值为: 2 28 8256(256(个外部脉冲个外部脉冲) )。 用于定时工作方式时,其定时时间为;用于定时工作方式时,其定时时间为; t t(2(28 8TH0TH0初值初值) )振荡周期振荡周期1212这种工作方

14、式可省去用户重装常数的程序,并可产生精这种工作方式可省去用户重装常数的程序,并可产生精确的定时时间确的定时时间。23T0方式3的逻辑电路结构和T1结构4.方式方式324若将若将T0T0设置为模式设置为模式3 3,TL0TL0和和TH0TH0被分成为两个互相被分成为两个互相独立的独立的8 8位计数器位计数器TH0TH0和和TL0TL0。 TL0TL0可工作为定时方式或计数方式。可工作为定时方式或计数方式。 TH0TH0只可用作定时功能,占用定时器只可用作定时功能,占用定时器T1T1的控制位的控制位TR1TR1和和T1T1的中断标志位的中断标志位TF1TF1,其启动和关闭仅受,其启动和关闭仅受TR

15、lTRl的的控制。控制。定时器定时器T1T1在模式在模式 3 3下为无中断重装下为无中断重装8 8位计数器。位计数器。257.4 定时计数器的应用程序设计定时计数器的应用程序设计7.4.1 7.4.1 定时器的计数初值定时器的计数初值C C的计算和装入的计算和装入 如前所述,如前所述,80518051定时器定时器/ /计数器不同工作方式的模计数器不同工作方式的模值不同,计数初值(值不同,计数初值(C C)的求法如下。)的求法如下。 计数方式:计数方式: 计数初值计数初值 C=C=模模-X-X(其中(其中X X为要计的脉冲个数)为要计的脉冲个数)定时方式:定时方式: 计数初值计数初值 C=C=模

16、模t / MCt / MC 其中其中t t为欲定时时间,为欲定时时间,MCMC为为80518051的机器周期的机器周期MC=12/foscMC=12/fosc 当采用当采用12MHZ12MHZ晶振时,晶振时,MC=1usMC=1us; 当采用当采用6MHZ6MHZ晶振时,晶振时,MC=2usMC=2us。26方式方式0 0( 1313位方式):位方式):C=2000H64H=1F9CH1F9CH0001111110011100B把13位中的高八位1111 1100B1111 1100B装入装入TH0TH0, 而把13位中的低五位低五位xxx1 1100Bxxx1 1100B装装入TL0TL0。

17、 MOV TH0MOV TH0,#0FCH#0FCH; MOV TL0MOV TL0,#1CH#1CH;(xxx(xxx用用“0 0”填入)填入)方式方式1(161(16位方式位方式) ): C=10000H-64H=FF9CH用指令装入计数初值: MOV TH0MOV TH0,#0FFH#0FFH MOV TL0 MOV TL0,#9CH#9CH例例 要计要计100个脉冲的计数初值个脉冲的计数初值27方式方式2(8位自动再装入方式)位自动再装入方式) C=100H64H=9CH 初值既要装入初值既要装入TH0,也要装入,也要装入TL0: MOV TH0,#9CH MOV TL0,#9CH28

18、7.4.2 定时计数器的初始化编程定时计数器的初始化编程 定时计数器的初始化编程步骤:定时计数器的初始化编程步骤:1)根据定时时间要求或计数要求计算)根据定时时间要求或计数要求计算计数器初值计数器初值;2)工作方式控制字送)工作方式控制字送TMOD寄存器;寄存器;3)送计数初值的高八位和低八位到)送计数初值的高八位和低八位到THX和和TLX寄存寄存 器中;器中;4)启动定时(或计数),即将)启动定时(或计数),即将TRX置位置位。 如果工作于中断方式,需要置位如果工作于中断方式,需要置位EA(中断总开关)(中断总开关)及及ETX(允许定时(允许定时/计数器中断)。并编中断服务程序。计数器中断)

19、。并编中断服务程序。29例例7-1 P1中接有八个发光二极管,编程使八个管中接有八个发光二极管,编程使八个管轮流点亮,每个管亮轮流点亮,每个管亮100ms,设晶振为,设晶振为6MHz。分析分析 :利用:利用T1完成完成100ms的定时,当的定时,当P1口线输口线输出出“1”时,发光二极管亮,每隔时,发光二极管亮,每隔100ms”1”左移左移一次,采用定时方式一次,采用定时方式1,先计算计数初值,先计算计数初值T: MC= 2s 100ms/2s =50000=C350H T =10000H-C350H=3CB0H7.4.3 应用编程举例应用编程举例30 ORG 0030H ORG 0030H

20、MOV A MOV A,#01H#01H MOV TMODMOV TMOD,#10H #10H ;T1T1工作于定时方式工作于定时方式1 1 SETB TR1 SETB TR1 MOV IE, MOV IE,00H ;00H ;禁止中断禁止中断NEXTNEXT:MOV P1MOV P1,A A ;置第一个置第一个LED亮亮 MOV TL1MOV TL1,#0B0H #0B0H ; 定时定时100100ms ms MOV TH1 MOV TH1,#3CH#3CHAGAI: JBC TF1,SHIAGAI: JBC TF1,SHI; 100100msms到转到转SHI,SHI,并清并清TF1TF1

21、 SJMP AGAI SJMP AGAISHISHI: RL ARL A SJMP NEXT SJMP NEXT31 例例7-2:利利用用定定时时/计计数数器器T0通通过过P1.0引引脚脚输输出出周周期期为为2ms的的方方波波,设设晶晶振振频频率率为为12MHz。试试确确定定计计数数初初值值、TMOD内容及编制相应程序。内容及编制相应程序。 解解:每每1ms产产生生一一次次中中断断,在在中中断断服服务务程程序序中中将将输输出出信信号取反即可。号取反即可。 计算计数初值:计算计数初值: 对对于于定定时时1ms来来说说,用用定定时时器器方方式式0(13位位定定时时器器)就就可实现。可实现。 32机

22、器周期为机器周期为:时间常数为时间常数为:计数初值为:计数初值为:则则其其高高8位位为为E0H,低低5位位为为18H,故故TH0=E0H(高高8位)位),TL0=18H(低(低5位)位)。33 确定确定TMOD方式字:方式字: 对于定时器对于定时器T0来说来说,M1M0=00H、 =0、GATE=0。定时器定时器T1不用不用,取为全取为全0。于是。于是 TMOD=00000000B=00H 程序设计:程序设计:34 ORG 0000H LJMP ST ORG 000BH ;T0中断服务程序入口中断服务程序入口 LJMP INT ;转至转至INT处处 ORG 2000H ;主程序主程序ST:MO

23、V TMOD,00H ;置置T0为定时方式为定时方式0 MOV TH0,0E0H;设置计数初值设置计数初值 MOV TL0,18H SETB EA ;CPU开中断开中断 SETB ET0 ;允许允许T0中断中断 SETB TR0 ;启动启动T0 SJMP $ ;暂停暂停,等待中断等待中断INT: CPL P1.0 ;输出方波输出方波 MOV TH0,0E0H ;重新装计数初值重新装计数初值 MOV TL0,18H RETI ;中断返回中断返回 END特别注意:当采用方式特别注意:当采用方式0、1、3时时,只要不关闭定时只要不关闭定时/计数器计数器,那么每当计数那么每当计数器回器回0溢出时溢出时

24、,都需要重都需要重新装入计数初值新装入计数初值,以保证以保证计数值不变计数值不变。35 ST:MOV TMOD,00H ;置定时器置定时器T0为方式为方式0 MOV TH0,0E0H ;设置计数初值设置计数初值 MOV TL0,18H MOV IE,00H ;禁止中断禁止中断 SETB TR0 ;启动启动T0定时定时 LOOP:JBC TF0,LOOP1 ;查询计数溢出查询计数溢出 SJMP LOOP ;TF0=0,则反复查询则反复查询 LOOP1:CPL P1.0 ;输出方波输出方波 MOV TH0,0E0H ;设置计数初值设置计数初值 MOV TL0,18H SJMP LOOP ;重复循环

25、重复循环例例7-3:用查询方式产生例:用查询方式产生例7-2中所要求的方波。中所要求的方波。解:程序和例解:程序和例7-2很相似很相似,不同之处为不需要中断和中断服务程序。不同之处为不需要中断和中断服务程序。 查询的对象是定时器查询的对象是定时器T0的溢出标志的溢出标志TF0。 36解:方法解:方法1:1:采用采用T0T0产生周期为产生周期为200ms200ms脉冲,即脉冲,即P1.0P1.0每每100ms100ms取反一次作为取反一次作为T1T1的计数脉冲,的计数脉冲,T1T1对下降沿计数,因此对下降沿计数,因此T1T1计计5 5个脉冲正好个脉冲正好1000ms1000ms。例例7-4 7-

26、4 在在P1.7P1.7端接一个发光二极管端接一个发光二极管LEDLED,要求利用定时控,要求利用定时控制使制使LEDLED亮一秒灭一秒周而复始,设亮一秒灭一秒周而复始,设fosc=6MHZfosc=6MHZ。T0采用方式采用方式1,X= 65536-50000 得得X=3CB0H,T1采用方式采用方式2,计数初值计数初值X =256-5=FBH3738 ORG 0000H ORG 0000HMAINMAIN:CLR P1.7CLR P1.7 SETB P1.0 SETB P1.0 MOV TMOD MOV TMOD,#61H#61H MOV TH1 MOV TH1,#0FBH#0FBH MO

27、V TL1 MOV TL1,#0FBH#0FBH SETB TR1 SETB TR1LOOP1:CPL P1.7LOOP1:CPL P1.7LOOP2LOOP2:MOV TH0MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H#0B0H SETB TR0 SETB TR0LOOP3: JBC TF0LOOP3: JBC TF0,LOOP4LOOP4 SJMP LOOP3 SJMP LOOP3LOOP4LOOP4:CPL P1.0CPL P1.0 JBC TF1 JBC TF1,LOOP1LOOP1 SJMP LOOP2 SJMP LOOP2 END END查询法查询法

28、39方法方法2:T0每隔每隔100ms中断一次,中断中断一次,中断10次即实现了次即实现了1秒的定时。秒的定时。 ORG 000BH ;T0中断服务程序入口中断服务程序入口 AJMP IP0 ORG 0030H ;主程序开始;主程序开始 MAIN:CLR P1.7 ;T0定时定时100ms MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA MOV R4,#0AH;中断;中断10次计数次计数 SETB TR0 SJMP ;等待中断;等待中断 IP0:DJNZ R4,RET0; CPL P1.7 MOV R4,#0AHRET0: M

29、OV TH0,#3CH MOV TL0,#0B0H RETI40 7.5 小 结 定时计数器应用非常广泛,如定时采样、定时计数器应用非常广泛,如定时采样、时间测量、产生音响、作脉冲源、制作日历时时间测量、产生音响、作脉冲源、制作日历时钟等。因此应很好掌握。钟等。因此应很好掌握。 51系列单片机既有两个系列单片机既有两个16位的定时计数器,位的定时计数器,有四种不同的工作方式,归纳于下表:有四种不同的工作方式,归纳于下表:4128=256=100H28=256=100H216=65536=10000H213=8192=2000H 模模 值值 (计数最大值计数最大值)TL0定时,计数定时,计数占用

30、占用TR0、TF0 ;TH0定时,使用定时,使用T1 的的TR1、TF1此时此时T1作波特率作波特率发生器发生器定时、计数范围小,定时、计数范围小,自动重装自动重装用于用于定时时间定时时间 65.5ms,计数脉冲计数脉冲 65536 个个场合场合用于用于定时时间定时时间 8.19ms ,计数脉冲计数脉冲 8192 个个场合场合 应用场合应用场合(设设fosc12MHz)同方式同方式0、1第一次装入第一次装入,启动启动工作后工作后,每次每次TL回回零后零后,不用程序装不用程序装入入,由由TH自动装入自动装入到到TL每启动一次工作每启动一次工作,需装入一次计需装入一次计数初值数初值 同左同左 TH

31、 TL高八位高八位 TH低八位低八位 TL高八位高八位 TH低五位低五位 TL 计数初值计数初值C的装入的装入方式方式 3 3T0T0两个两个8 8位位 方方式式方式方式 2 28 8位自动位自动重装方式重装方式方式方式 116位定时位定时计数方式计数方式 方式方式 013位定时位定时计数方式计数方式 方方 式式八位八位42 定时和计数实质都是对脉冲的计数,只是被定时和计数实质都是对脉冲的计数,只是被计脉冲的来源不同,定时方式的被计脉冲来源于计脉冲的来源不同,定时方式的被计脉冲来源于时钟时钟,计数方式的被计脉冲来源于,计数方式的被计脉冲来源于外部外部,定时方,定时方式的计数初值和被计脉冲式的计数初值和被计脉冲周期周期有关,计数方式的有关,计数方式的和被计脉冲的和被计脉冲的个数个数有关。有关。 无论定时还是计数,当计满规定的无论定时还是计数,当计满规定的 脉冲个数脉冲个数产生溢出(计数初值寄存器回零),置位产生溢出(计数初值寄存器回零),置位TFx , 可可以通过程序查询,如果允许中断,会产生中断。以通过程序查询,如果允许中断,会产生中断。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号