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

下载本文档

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

文档简介

1、第六章定时器/计数器第一节概述8051内部提供两个十六位的定时器/计数器T0和T1,它们既可以用作硬件定时,也可以对外部脉冲计数。1 .计数功能:所谓计数功能是指对外部脉冲进行计数。外部事件的发生以输入脉冲下降沿有效,从单片机芯片T0(P3.4)和T1(P3.5)两个引脚输入,最高计数脉冲频率为晶振频率的1/24。2 .定时功能:以定时方式工作时,每个机器周期使计数器加1,由于一个机器周期等于12个振荡脉冲周期,因此如单片机采用12MHz晶振,贝U计数频率为12MHz/12=1MHz即每微秒计数器加1。这样就可以根据计数器中设置的初值计算出定时时间。第二节定时器/计数器的基本结构、工作方式及应

2、用、定时器/计数器基本结构定时器/计数器的基本结构如图6-1。T0由TH0和TL0两个八位二进制加法计数器组成十六位二进制加法计数器;T1由TH1和TL1两个八位二进制加法计数器组成十六位二进制加法计数器。图6-1定时器/计数器基本组成、定时器/计数器控制寄存器1.定时器方式控制寄存器TMOD定时器方式控制寄存器地址89H,不可位寻址。TMOIW存器中高4位定义T1,低4位定义TO。其中M1,M0用来确定所选工作方式如表61:TMOD位序B7B6B5B4B3B2B1B0位符号GATEC/TM1M0GATEC/TM1M0P定时/计数器T1定时/计数器T0表6-1TMOD控制位功能符号功能说明GA

3、TE门控位。GATE=0用运行控制位TR0(TR1)启动定时器。GATE-1用外中断请求信号输入端(INT1或INT0)和TR0(TR1)共同启动定时器。C/TTE时方式或计数方式选择位。C/T-0,定时工作方式。C/T-1,计数工作方式。M1M0工作方式选择位。M1M0-00方式0,13位计数器。M1M0-01方式1,16位计数器。M1M0-10方式2,具有自动再装入的8位计数器。M1M0-11方式3,定时器0分成两个8位计数器,定时器1停止计数。2.定时器控制寄存器TCON定时器控制寄存器TCONte址88R可以位寻址,TCON&要用于控制定时器的操作及中断控制。有关中断内容在第四

4、章已说明。此处只对定时控制功能加以介绍。表62给出了TCO样T关控制位功能:TCON位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0表6-2TCON有关控制位功能符号功能说明TF1计数/计时1溢出标志位。计数/计时1溢出(计洒)时,该位置1。在中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清0。在查询方式时,也可以由程序查询和清0。TR1定时器/计数器1运行控制位。TR1=0,停止定时器/计数器1工作。TR1=1,启动定时器/计数器1工作。该位由软件置位和复位。TF0计数/计时0溢出标志位。计数/计时0溢出(计洒)时,该位置1。在中断方

5、式时,此位作中断标志位,在转向中断服务程序时由硬件自动清0。在查询方式时,也可以由程序查询和清0。TR0定时器/计数器0运行控制位。TR0=0,停止定时器/计数器0工作。TR0=1,启动定时器/计数器0工作。该位由软件置位和复位。系统复位时,TMO序日TCONt存器的每一位都清零。三、工作方式及应用用户可通过编程对专用寄存器TMOW的M1,M0位的设置,选择四种操作方式。(一)方式0(以T0为例)在此方式中,定时寄存器由TH0的8位和TL0的5位(其余位不用)组成一个13位计数器。当GATE=0寸,只要TCO阱的TR0为1,13位计数器就开始计;当GATE=似及TR0=1时,13位计数器是否计

6、数取决于INT0引脚信号,当1NTQ由0变1时开始计数,当INT0由1变为0时停止计数。当13位计数器溢出时,TCON勺TF0位就由硬件置1,同时将计数器清"0"。当方式0为定时工作方式时,定时时间计算公式为:(2一计数初值X)X晶振周期X12当方式0为计数工作方式时,计数值的范围是:12(8192)。方式0内部逻辑框图如图6-2所示:图62方式0内部逻辑结构图例6-1设单片机晶振频率为6MHz试用T0在P1.0端线输出周期为1ms的方波脉冲,如图6-3所示。试用方式0分别以查询方式和中断方式实现。0.5ms图63例61示意图解:1.米用查询方式。(1)计数初值计算。由题意

7、可得,只需从P1.0端线每延时500Ps后交替输出高低电平即可。得:13.(2X)1_(Ms)X12=500Ps6记数初值X=213250=794210=1111100000110B即TH0=F8H,TL0=06H计数器T1计数器T0(2)T0初始化.=00,方式0=0,定时=0,TR0启动得(TMODN00H由此可得参考程序如下:ORG0000HAJMPMAIN;转向主程序。ORG0040HMAIN:MOVSP,#30H;堆栈设置。MOVTMOD,#00H;TMOIDJ始化。MOVTH0,MOVTL0,#0F8H#06H;设置计数初值。MOVIE,:#00H;禁止中断。SETBTR0LOOP

8、:JBCTF0,LOOP1;启动T0o;定时到,转LOOP1并将TF0清零,否则AJMPLOOPLOOP1MOVTH0,#0F8H按原顺序执行。;继续查询。;重新设置计数初值。MOVTL0,CPLP1.0AJMPLOOP#06H;输出状态翻转。;返回LOOP2.米用中断方式中断方式中计数初值X和TMOD勺设置与查询方式相同。木用中断万式绘勺移序如下:ORG0000HAJMPMAIN;转向主程序。ORG000BH;T0中断服务程序固定入口地址。AJMPZD;转向T0中断服务程序。ORG0040HMAIN:MOVSP,#30H;设置堆栈指针。MOVTMOD,#00H;TMODJ始化。MOVTH0,

9、#0F8H;设置计数初值。MOVTL0,#06HSETBET0;开放T0中断。SETBEA;开放总中断。SETBTR0;启动T0oHERE:AJMPHERE;等待中断。ZD:CPLP1.0;输出取反。MOVTH0,#0F8H;重新设置计数初值。MOVTL0,#06HRETI;返回。在实际应用中,由于中断请求及响应过程要占用几个机器周期时间,故实际输出波形的周期略大于1ms,可在调试中适当修改计数初值解决。(二)方式1方式1采用16位计数结构的工作方式,其余与方式0相同。显然方式1的定时时间计算公式为:(2一计数初值)乂晶振周期X12计数范围是:12(65536)(三)方式2方式2是由TL组成8

10、位计数器。TH作为常数缓冲器,由软件预置初始值。当TL产生溢出时,一方面使溢出标志位TF置1;同时把TH的8位数据重新装入TL中,即方式2具有自动重新加载功能。方式2的逻辑结构见图6-4(以定时器/计数器0为例)。图64方式2逻辑结构图例62用8051对外部脉冲进行计数,每计满100个脉冲后使内部40H单元内容加1,用T0以方式2中断实现,TR0启动。例62示意图解:1 .计数初值计算(方式2).(28-X)=100X=28-100=156D=9CH2 .TMOD置用T0以方式2实现,TR0启动,可得:(TMODN00000110B=06H3 .中断系统设置EA=1,ET0=14 .参考程序:

11、ORG0000HAJMPMAINORG000BHAJMPZDMAIN:ORG0040HMOVSP,#30H;初始化。MOVTMOD,#06HMOVTH0,#9CHMOVTL0,#9CHMOV40H,#00HSETBEA;中断设置。SETBET0SETBTR0AJMP$ORG0080HZD:INC40HRETI(四)方式3在方式3中,TL0和TH0成为两个相互独立的8位计数器。TL0占用了全部T0的控制位和信号引脚,即GATEC/、TRdTF0等。而TH0只用作定时器使用。而且由于定时器/计数器0的控制位已被TL0独占,因此TH0只好借用定时器/计数器1的控制位TR1和TF1进行工作。同时,由于

12、TR1,TF1已“出借”给TH0,TH1和TL1的溢出就送给串行口,作为串行口时钟信号发生器(即波特率信号发生器,详见第九章),并且只要设置好工作方式(方式0,方式1,方式2)以及计数初值,T1无须启动使可自动运行。如要停止T1工作,只要将其设置工作方式3即可。例6-3试用T0在P1.0输出周期为400Ps,占空比为10:1的矩形脉冲,以定时工作方式2编程实现(查询方式)。设F晶振=6MH乙如图65所示:T1T2P1.0T408051T=T1+T2>JLTNs:T2=101图65例63示意图解:由题意可知,P1.0输出高电平持续360Ms,输出低电平持续40改。1.计数初值计算:定时工作

13、方式2中TL0为8位计数器,TH0为预置寄存器。延时360Ms计数初值X1计算公式为:.(28-X1)X12(Ms)+6=360MsX1=4CH短延时40Ms计数初值X2计算公式为:(28-X2)X12(Ms)+6=40PsX2=ECH2.TMO殴置(TMOD)=00000010H=02H43.采用查询方式(禁止中断)(5)参考程序如下:ORG0000HAJMPMAINORG0040HMAIN:MOVSP,SETBP1.0MOVTMODMOVIE,MOVTL0,MOVTH0,AGAIN:SETBTR0LOOP:JBCTF0,AJMPLOOPLOOP1:CPLP1.0JNBP1.0MOVTH0,

14、AJMPAGAINLOOP2:MOVTH0,AJMPAGAIN#30H;P1.0。1。,#02H;TMODU始化。#00H;禁止中断。#4CH;装入计数初值。#0ECH;启动T0OLOOP1;定时到?;未到,继续等待。;定时到,P1.0状态取反。,LOOP2;P1.0为零转移。#0ECH;P1.0为1,装短延时计数初值。;循环。#4CH;P1.0为零,装长延时计数初值。;循环。思考题和习题61请叙述8051单片机四种定时工作方式的特点。62设晶振频率为12MHz试编写一个用软件延时10ms的子程序。63试用软、硬件相结合的方法编写一个延时10s的子程序。64试编写程序,使T0以方式1每隔20ms向CP必出中断申请,设晶振频率为6MHzTR0

温馨提示

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

最新文档

评论

0/150

提交评论