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

下载本文档

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

文档简介

1、80C51单片机的定时计数器定时计数器的控制寄存器与定时器计数:器o和1有关的控制馬存器主要有以下几个;1. 曲情存® ICONTCO*寄存番既参与中断控制,又奏与定时控制.有关中断控制的內容在前一节已介绍,驱怎定时控制有关的控制位介绍1 TFQ (TF1)计数镒出标志位当加1计数器回到0时,则表示计数镒出.当产生计数镒出时,该位由51件自动直1.使用査询方式时,此垃磁就鄆 査询有效后,该位应用软件右法及时潜鸟使用中断右式时,断标志位,在转向中断服务程序时由硬件自动措仇 TKO (TR1) 一定时器运行控制位TRO CTR1) =1启动宦时器计数器工作°TXD CTR1)

2、-0停止宦时器计数器工作.该位根据需妾以软件方法肉題1或蓿0.需要指出的是,当定时器计数器开始工作后*加1计数器就不斷地加h当产主计数溢出后,定时器计数器并不傅止工作, 从计数初值开始,重新开始不断地加L直到把TRO (TR!)瞬少才停止工作.2. 工作芳瞇制寄存蹇TMODTM0D寄存器是一个专用寄存器,就或媲GATE、计数彳定时方式选择位匕元、E T1及工作方式选择位站山们组成.限T 寄存器不能位寻址,貝能用宇节传送指令设買其內容-各位定义如D7D6D5D4D3D2DIDOGATEC/TMlMOGATE| C TMlMO<_>y定时器计数器I定时器计数器0由图6-H不难理解各位含

3、义如下 GATEH控位GATE-0 录用TRO (TR1)来启动(停止)定时器计数器-GATE町币卿TRO (TR1)和菽而(或氏T1)来启动定时器/计数器° C TF魏方式淀时方式选择位C T=0宦时工作右式.C T-1计歎工作方式 Ml :T工件育瓷选择位羊片机旳訓器计隸岳共有口种工作方式如表t h因防武卜方式儿可通过M1MC未选择;吏弓:才时需计数寄皿种工杵亡式I1LD工用式ti :订發軽社敦miimsjsrE号TL低:位pH-1iSIH* TL1T斗rHl TH为重漩寄存器)pn-TsL中断5WH帝麗IEIE寄存器讦细内容在上一节已讲过,K中与询器计馥器有关前位如下,EA中断

4、比评总控常J悅®ET0 (ETL> 定坯器计数霍中断允许控制傥ETO (ET1)=0禁止定时计数中断.ETO (ET1) =1允讦定时讨隸申断"S0C51单片机取t时匪1-1数話共有匹种工作方It下更祝一一Tl细<>定时器/计数器的工作方式1定时器/计数器的工作方式0<1)电路逻辑结构当图6-7中的计数器=13位<TH的8位与TL低5位)即得方式0的逻辑电路图。<2 )工作方式0的特点 两个定时器/计数器TO、T1均可在方式0下工作; 是13位的计数结构,其计数器由TH全部8位和TL的低5位构成 <高3位不用); 当产生计数溢出时,

5、由硬件自动给计数溢出标志位TF0<TF1 )置1,由软件给TH,TL重新置计数初值。应说明的是,方式0采用13位计数器是为了与早期的产品兼容,计数初值的高8位和低5位的确定比较麻烦,所以在实际应用中常由 16位的方式1取代。2 定时器/计数器的工作方式1<1)电路逻辑结构方式1是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。其逻辑电路如图 6-11所示。<2 )工作方式1的特点 两个定时器/计数器均可在方式1下工作; 是16位的计数结构,其计数器由TH的全部8位和TL的全部8位构成; 当产生计数溢出时,由硬件自动给计数溢出标志位TF0<TF1 )置1

6、,由软件给TH , TL重新置计数初值。<3)计数/定时的范围在方式1下,当为计数工作方式时,因为是 16位的计数结构,所以计数范围是:165536。当为定时工作时,其定时时间=<216-计数初值)M机器周期,例如:设单片机的晶振频率 f=12MHz,则机器周期 为1卩s从而定时范围:1卩s65536g因为80C51单片机的定时计数器是可编程的。因此,在利用定时/计数器进行定时计数之前,先要通过软件对他进行初始化,初始化一般应进行如下工作: 设置工作方式,即设置TMOD中的各位 GATE、C/T、M1M0。 计算加1计数器的计数初值 COUNT,并将计数初值 COUNT送入TH、T

7、L中。计数方式:计数值 =2n -COUNT ,计数初值:COUNT= 2n -计数值。定时方式:定时时间 =<2n -COUNT ) >机器周期,计数初值COUNT = 2n -定时时间/机器周期。其中n=13、16、8、8分别对应方式 0、1、2、3。 启动计数器工作,即将TR置1。 T0、T1开中断例6-5 T0工作于:定时方式1,定时时间T=2ms,系统主频fosc=8MHz,允许中断,对 T0进行初始化 编程。解:因为,T0工作于定时方式,T0工作方式1。因此, =0 , GATE=0 , M1M0=01 。T1 不用,故 TMOD=0000 0001=01H 。系统主频

8、fosc=8M时,时钟周期 T=1/8 us机器周期=12T=12/8=1.5 s。加 1 计器初值 COUNT =216 2000/1.5 =10000H 535H=FACBH,初始化程序如下:MOV SP , #50HMOV TMOD , #01HMOV TH0 , #0FAHMOV TL0 , #0CBHSETB TR0SETB ET0 SETB EA例6-6定时计器T0工作于计数方式,计数值 =1,使用方式1,允许中断,初始化编程。解:因为,T0工作于计数方式,T0工作方式1。因此,】日,gATE=0 , T0工作方式1,M1M0=01 。 T1 不用,故 TMOD=0000 0101

9、=05H计数器初值 COUNT=216 1 = 1111 1111 1111 111 仁FF FFHMOV TMOD , #05HMOV TH0 , #0FFHMOV TL0 , #0FFHSETB TR0SETB ET0SETB EA;设置TO工作计数方式1。;加1计数器高8位TH0赋初值FFH;加1计数器高8位TL0赋初值FFH;打开T0启动开关;T0开中断;CPU开中断3定时器/计数器的工作方式2这样不但影响工作方式0和工作方式1的最大特点是产生计数溢出后,需要由软件重新给计数器赋初值定时精度,而且也给程序设计带来不便。方式2在计数溢出后自动重装计数器初值。其逻辑结构如下。<1)逻

10、辑结构如图6-8所示<2 )工作方式2的特点 两个定时器/计数器均可在方式2下工作; 把计数器分成两部分 TH和TL,在开始计数 <定时)时,把计数初值赋给TL的同时,也赋给 TH,在TL发生计数溢出后,而是通过硬件自动把TH中的内容重新赋给 TL。 是8位的计数结构TH:暂存器 < 用来暂时存放计数初值)。TL :计数器。系颈时衲圉6-3定时计数器方式2<3)计数/定时的范围因为是8位的计数结构,所以,计数范围为1256,定时时间=<28-计数初值)机器周期。例6-7 TO工作于定时方式2,定时时间T=500卩s,系统主频fosc=6 MHz。进行初始化编程。解

11、:因为,TO工作于定时方式, TO工作方式2。因此,"=0 , GATE=0 , M1M0=10。T1 不用,故 TMOD=00000010=02H系统主频fosc=6M时,时钟周期 T=1/6 us机器周期=12T=12/6=2soCOUNT =28-500/2 =256 250=06MOV SP , #50HMOV TMOD , #02HMOV TH0 , #06HMOV TL0 , #06HSETB TR0SETB ET0SETB EA例6-8设单片机频率为6MHz,使用定时器0以方式2产生周期为200 s的连续等宽正方波脉冲,并由 P1.0输出,以查询方式来完成。计算计数初值

12、要产生200卩舶连续等宽正方波脉冲,只需在P1.0端以100s为周期交替输出高低电平即可实现,从而定时时间为100“ f=6MHz、则机器周期为2八 100=<256-C0UNT ) '2求得:计数初值 COUNT=206=CEH 。这样,把 CEH装入TL0的同时,也装入 TH0中暂存,即:<TH0) =<TL0 ) =CEH确定TMOD寄存器的内容 根据TMOD各位的含义,不难得出 <TMOD ) =02H。 程序MOVTMOD -02HMOVTLD =0CEHMOVTHO, =OCEHIE,刖OHSETBTROLOOP:JBCTFO, LPAJX1PLOO

13、PLP:CPLP1.0小IPLOOP:对定时器:初始化:设置计数初值;暂存计数初值;禁止中断:启动定时器0工作因为工作方式2具有自动装载功能,因此计数初值只需设置一次,以后就不再需要软件重置。这是方式2与方式0、1的本质区别。4定时器/计数器的工作方式3在前面的三种工作方式中,两个定时器/计数器的设置和使用是完全相同的。但是在工作方式3下,两个定时器/计数器的设置和使用却不尽相同,下面分别介绍。<1)在工作方式3下的定时器/计数器0在工作方式3下,定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以计数使 用,又可以定时使用,定时器 /计数器0的控制位和引脚信号全归

14、它使用。其功能和操作方式0或方式1完全相同。而且逻辑电路结构也极其类似,如图6-9所示。与TL0的情况不同,对于定时器/计数器0的另一半TH0 ,则只能作为简单的定时器使用。而且因为定时器/计数器0的控制位已被TL0独占,因此只好借用定时器/计数器1的控制位TR1和TF1。即以计数溢出去置位TF1,而定时的启动和停止则受TR1的状态控制。因为 TL0既能作定时器使用也能作计数器使用,而TH0只能作定时器使用却不能作计数器使用,因此在工作方式 3下,定时器/计数器0可以构成二个定时器或一个定时器一个计数器。系蜿时钟启动开关加1计数器溢出标志fbsc/12TR1图6-9定时计数器方式3的T0结构&

15、lt;2 )工作方式3下的定时器/计数器1如果定时器/计数器0已工作在工作方式3,则定时器/计数器1只能工作在方式0、方式1或方式2下,它的 运行控制位TR1及计数溢出标志位 TF1已被定时器/计数器0借用,如图6-10所示。加E计數辭在这种情况下,定时器/计数器1通常是作为串行口的波特率发生器使用,以确定串行通信的速率。因 为已没有计数溢出标志位 TF1可供使用,因此只能把计数溢出直接送给串行口。当作为波特率发生器 使用时,只需设置好工作方式,便可自动运行。如要停止工作,只需送入一个把它设置为方式3的方式控制字就可以了。因为定时器/计数器1不能在方式3下使用,如果硬把它设置为方式3,就停止工

16、作。定时器/计数器的应用举例例6-9设单片机的晶振频率 f=6MHz,使用定时器1以方式1产生周期为500卩舶等宽正方波脉冲,并由 P1.0输出,以中断方式完成。计算计数初值250=<216-COUNT ) X2,求得计数器初值: <TH1 ) =FFH , <TL1 ) =83H确定TMOD寄存器的内容001BH开始的8个单元放不下中断服定时器1向CPU申请中断时,务程序,所以在001BHINT T1: WV处安排一条 LJMP INT_T1IH1.切 FFHTL1.述丑ICPL P1.0门-门例6-10利用单片机内的定时器/计数器来定时,每隔1秒钟把累加器A的内容循环右移

17、一次,共移 8次。设单片机晶振频率f=6MHz ) 程序覚6IMODj *10H;对走时器1初始化TH1>:设置计数初值X5OVTLB =83HSETBEA:中斷总允许SETBET1;允许定时器1中断SETBTRI;启动定时器1的工作SJXIP$?等待中斷HERE:CPU是转到001BH去响应中断,而(訂主程序RD减1(RD J =OAH循环右移A停OAH禁止中斷- <1(返回丿(b )中断服务程序图鼻L1主程序和中断服务程序流程團ORGOOOOHMAINORG001BHLJMPKT T1MAIN:XiOVTXICDj 列OHTH1, *3 CHTLB丸恥HSETBEASETBET

18、1RO, -OAHRl, -OSHSJMP$INT TkMOVTH1, f3CHMOVHl,式恥HDJNZRO LOOPXK),RO,RRADJNZR1 , LOOPCLRTRICLREALOOP: RETI:对定时器1初始化;设置计数初值;中斷总允许;允许定时器1中断:设晝R0为计数器,10Cta»】0=15:设置R1为计数器 > 購Q&;等待中断;设蒼计数初僅J给弐蘆赋初值,为下次右移作唯备;停止定时器1工作;禁止中断例6-11门控位GATE的使用,使用TO测试一一引脚上正脉冲宽度 TP。TMOD中有一门控位 GATE,其功能是使TO、T1的运行受到外部中断请求1、

19、-;二电平的控 制。当 GATE(TMOD.3>=1 ,必须使TR0和同时为1时,TO才运行;当 GATE<TMOD.7)=1,必 须使TR1和川丁同时为1时,T1才运行。作为GATE的应用实例,这里介绍一种脉冲宽度的检测方法。设要检测的正脉冲加在厂匚上,其宽度为TP。检测方法是:设置定时器 TO为方式1、门控、定时。在 /'. I为低电平时软件启动 TO,但这 时TO并不立即计数,而是要等到 二二I变为高电平时TO才开始计时。当 J U变为低电平时,TO随之停 止计时。这时使 TRO = O,读出THO、TLO的内容乘以定时脉冲周期,可得到被检测脉冲宽度为TP。高电平TP /5 引脚ZJ低电平LTRD=1IKTO =1 INTO =0U6-12泄脉冲宽毘MAIN:0丫n【8,珂阳;设TO为方式L门控r疋时X5OrTLO, -OOH;置TO初值THO, =00HW.AJ

温馨提示

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

评论

0/150

提交评论