单片机――4计数器定时器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章定时器/计数器定时器的概念:定时器在电路结构上是计数器,当计数脉冲周期恒定时,相当于定时器。定时器/计数器的用途:利用定时器作为实时系统的定时采集、定时控制。利用计数器,与工业传感器、变送器配合,可测量转速、流量、频率等工业参数。4.1结构图4.1定时器/计数器结构框图T0、T1的使用方法通过访问SFR中的TMOD、TCON、TL0、TH0、TL1、TH1实现。1.工作方式控制寄存器——TMODTMOD的格式:字节地址为89H,不支持位寻址。TMOD的各个位的意义:8位分为两组,高4位控制T1,低4位控制T0。GATE位:门控位。GATE=1时:T0、T1是否计数受外部引脚输入电平的控制。/INT0引脚控制T0运行;/INT1引脚控制T1运行。GATE=0时:定时器/计数器的运行不受外部输入引脚/INT0、/INT1的控制。C/*T=0:为定时器模式。内部计数器对晶振脉冲12分频后的脉冲计数,该脉冲的周期等于机器周期。即对机器周期进行计数。若选择12MHz晶振,则计数频率为1MHz,从计数值便可求得计数的时间,所以称为定时器模式;C/*T=1:设置为计数器模式.计数器对外部输入引脚T0(P3.4脚)或T1(P3.5脚)的外部脉冲(负跳变)计数,允许最高计数频率为晶振频率的1/24。M1、M0位:4种工作方式选择位。2.定时器/计数器控制寄存器TCONTCON的字节地址为88H,支持位寻址,位地址为88H~8FH,TCON的格式如下:TF1TR1TF0TR0IE1IT1IE0IT0低4位与外部中断有关,将在第六章中介绍。高4位的功能如下:TF1:T1计数溢出标志位。当T1计数溢出时,由硬件置1,申请中断。进入中断服务程序后被硬件自动清0。TF0:T0计数溢出标志位。当T0计数溢出时,由硬件置1,申请中断。进入中断服务程序后被硬件自动清0。TR1:T1计数运行控制位。控制方式结合不同的工作模式讨论。TR0位:T0计数运行控制位。控制方式结合不同的工作模式讨论。4.2定时器/计数器的四种工作方式1.方式0当M1、MO为00时,定时器/计数器被选为工作方式0,这时定时器/计数器的等效框图如图4-2所示(以定时器/计数器T1为例)定时器/计数器工作在方式0时,为13位的计数器,由TL1的低5位和TH1的8位所构成。TL1低5位溢出向TH1进位,TH1计数溢出置位TCON中的溢出标志位TF1。GATE位的状态决定定时器/计数器运行控制取决于TR1一个条件还是TR1和INT1引脚这两个条件。当GATE=0时,A点(见图4-2)电位恒为1,则只要TR1被置为1,B点电位即为1,定时器/计数器被控制为允许计数,即定时器/计数器的计数控制仅由TR1的状态确定(TR1=1计数,TR1=0停止计数)。当GATE=1时,B点电位由INT1输入电平和TR1的状态确定,当TRX=1,且/INT1=1时,B点电平才为1,才允许定时器/计数器计数,故这种情况下计数控制由TR1和/INT1个条件控制。T0工作于方式0时的情形与T1相同。2.方式1当M1、M0为01时,定时器/计数器工作于方式1,这时定时器/计数器的等效电路如图4—3所示(以定时器/计数器T1为例)。应用举例:利用T0工作于方式1,在P1.0、P1.1输出两路相位相反、频率为50HZ、占空比为50%的方波信号。(fosc=12MHz)求T1的初值X:(65536-X)*10-6=10-2X=55536=0D8F0H算法:ORG0000HLJMPMAINORG0030HMAIN:MOVSP,#0EFHLCALLINI_T0WAIT:JNBTF0,WAITCLRTF0MOVTH0,#0D8HMOVTL0,#0F0HCPLP1.0MOVC,P1.0CPLCMOVP1.1,CLJMPWAITINIT_T0:MOVTMOD,#01HSETBTR0RETEND3.方式2当M1、M0为10时,定时器/计数器处于工作方式2,这时定时器/计数器的等效框图如图4-4所示(以定时器T1为例)。定时器/计数器的方式2为自动恢复初值的(常数重装入)8位定时器/计数器,TL1作为8位计数器,当TL1计数溢出时,在置1溢出标志TF1的同时,还自动的将TH1中的常数送至TL1,使TL1从初值开始重新计数。这种工作方式可以省去用户软件中重装常数的程序,简化定时常数的计算方法(确定计数初值),可以相当精确的确定定时时间。应用举例:利用T0工作于方式2,设计一个精确秒表,测量精度为1毫秒(晶体振荡周期12MHz)。EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18031AHR1SW1VCCR2+C1SW2VCC硬件设计:软件编程:US250_BUFEQU30HMS_BUFEQU31HORG0000HLJMPMAINORG0030HMAIN:MOVSP,#0CFHLCALLINIT_T0M1:JNBTF0,M1CLRTF0INCUS250_BUFMOVA,US250_BUFCLRCSUBBA,#4JCM1MOVUS250_BUF,#0INCMS_BUFLJMPM1INT_T0:MOVTMOD,#0AHMOVTL0,#6MOVTH0,#6SETBTR0MOVUS25_BUF,#0MOVMS_BUF,#0RETEND4.方式3当TMOD的低2位为11时,定时器T0的工作方式被选为方式3,各引脚与TO的逻辑关系框图如图4—6所示。方式3只适用于定时器/计数器T0,将16位的T0计数器拆成两个8位,从而使MCS-51具有三个定时器/计数器。此时定时器/计数器T1只能工作于方式0、方式1、方式2,但其功能较前述的功能差,通常用来作串行口波特率产生器。方式3对T1无效。定时器/计数器T0分为两个独立的8位计数器:TL0和TH0,TL0使用T0的状态控制位C/*T,GATE、TR0、/INT0,而TH0被固定为一个8位定时器(不能作外部计数方式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断源。一般情况下,当定时器T1用作串行口的波特率发生器时,定时器所数器T0才工作在方式3。当定时器T0处于工作方式3时,定时器/计数器T1可定为方式0、方式1、和方式2,作为串行口的波特率发生器,或不需要中断的场合。T0工作于方式3时,T1可选定的工作模式:1)方式0定时器T1的控制数字中M1、MO=00时,定时器Tl作在方式0,工作示意图如图4—7(a)所示。2)方式1当定时器TI的控制字中MI、MO二01时,定时器TI的工作方式为方式1,工作示意图如图4—7(b)所示。3)方式2当定时器T1的控制字段中M1、M0=10时,定时器T1的工作方式为方式2,工作示意图如图47(c)所示。4.3应用中的注意问题1.做计数器使用时对计数脉冲的要求(1)对频率的要求脉冲周期大于2个机器周期,脉冲频率F=FOCS*1/24脉冲高、低电平宽度=1个机器周期。说明:当定时器/计数器用作计数器时,计数脉冲来自响应的外部输入引脚T0或T1。当输入信号由1至0的跳变(即下跳变)时,计数器的值增1。每个机器周期的S5P2期间,对外部输入进行采样。如在第一个周期中采得的值为1,而在下一个周期中采得为0,则在紧跟着的再下一个周期S3P1的期间,计数器加1。由于确认一次下跳变要花两个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为振荡器频率的1/24,例如选用12MHz频率的晶体,允许输入的脉冲频率为500KH。对于外部输入信号的占空比并没有什么限制,但为了确保某一给定的电平在变化之前能被采样一次,则这一电平至少要保持一个机器周期。故对输入信号的基本要求如图4—8所示,图中Tcy为机器周期。(2)对波形的要求满足TTL电平要求。2.运行中读计数值应当通过软件防止出现在读数过程中,出现低8位向高8位进位问题。(3)隔离的要求提高系统的抗干扰的能力。RE_READ:MOVA,TH1MOVB,TL1CJNEA,TH1,RE_READRET第4章计数器/定时器习题1.编程确定:T0工作于方式1,对外部脉冲计数,受引脚/INT0控制;T1工作于方式2,定时器方式,不受引脚/INT0控制。2.编程实现:系统上电时,检查P1.0引脚,若引脚P1.0为高电平,则在引脚P1.1输出2000HZ方波信号;若引脚P1.0为低电平,则在引脚P1.1输出4000H方波信号;方波信号占空比为50%,系统的晶体振荡频率为12MHz。

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功