




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章MCS51定时器计数器及其应用5.1定时方法概述 在单片机的应用中,可供选择的定时方法主要有:1.软件定时软件定时是靠执行一个循环程序以进行时间延迟。软件定时的特点是时间较精确,且不需外加硬件电路。但软件定时要占用CPU的时间,增加CPU开销,因此软件定时的时间不宜太长。当单片机时钟确定后,每条指令的指令周期是确定的,在指令表中用振荡周期表示出来了。因此,根据程序执行所用的总的振荡周期数和振荡频率,可以较准确的计算,程序执行完所用的时间。软件延时是实际经常采用的一种短时间定时方法。例4-16 ORG 1000HTIME: MOV R1,#0FAH ;12个振荡周期L1 : MOV R0,#0FFH ;12个振荡周期W1 : DJNZ R0 ,W1 ;24个振荡周期 DJNZ R1 ,L1 ; 24个振荡周期 NOP ; 12个振荡周期 NOP ; 12个振荡周期 RET ; 24个振荡周期计算延时时间:N=12+(12+24255+24)250+12+12+24 =1539060个振荡周期如果=6MHz T=1/=1/6sTt=NT=15390601/6S=256510S=0.25651S调整R0和R1中的参数,可改变延时时间,如果需要加长延时间,可以增加循环嵌入。当延时时间较长、不便多占用CPU时间的情况下,一般采用定时器方法。2.内部可编程定时器这种定时方法是通过对系统时钟脉冲的计数来实现的。计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活又方便。此外,由于采用计数方法实现定时,因此可编程定时器都兼有计数功能,可以对外来脉冲进行计数。3.外部扩展专用定时器对于时间较长的定时,常使用外部扩展专用定时器完成。这种方法定时全部由硬件电路完成,不占用CPU时间。例如:DALLAS 公司的DS1302低功耗时钟芯片.它可以对年月日时分秒计时,并且有闰年补偿功能,它可以很方便地和单片机接口.5.2 51单片机内部的定时器计数器作为基本组成内容,8051单片机共有两个可编程的定时器计数器,分别称定时器计数器0和定时器计数器1。它们都是十六位加法计数结构,分别由TH0和TL0及TH1和TL1两个8位计数器组成,它们具有计数和定时两种工作方式以及四种工作模式。两个特殊功能寄存器(定时器控制寄存器TCON和定时器方式寄存器TMOD)用于确定定时器计数器的功能和操作方式。图5-1给出了定时器计数器的结构框图,它反映了单片机中微处理器、寄存器TCON和TMOD与定时器T0、T1之间的关系。计数器的输入脉冲源可以是外部脉冲源或系统时钟振荡器,计数器对这两个输入脉冲之一进行递增计数。 顾名思义,MCS51的每个定时器计数器都具有定时和计数两种功能。 图5-1 定时器/计数器的结构框图1.计数功能 所谓计数是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。8051芯片有T。(P3.4)和T1(P3.5)两个信号引脚,分别是这两个计数器的计数输入端,外部输入的脉冲在负跳变时有效,进行计数器加1(加法计数)。 计数方式下,单片机在每个机器周期的S5P2拍节对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一机器周期的S3P1进行计数。可见采样计数脉冲是在二个机器周期进行的。鉴于此,计数脉冲的频率不能高于振荡脉冲频率的124。2.定时功能 定时功能也是通过计数器的计数来实现的,不过这时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计数器加1。由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的112。如果单片机采用12MHZ晶体,则计数频率为1MHz。即每微秒计数器加1。这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。5.3 定时器计数器的控制寄存器 与定时器控制器有关的控制寄存器有:1.定时器控制寄存器(TCON)TCON寄存器既参与中断控制又参与定时控制。有关中断的控制内容已在第六章中说明,此处只对其定时控制功能加以介绍。其中有关定时的控制位共有四位:TF0(TF1)-计数溢出标志位 当计数器从初值开始递增计数至计数溢出(计满)时,由单片机内部(硬件)自动对该位置1。使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清0;使用中断方式时,此位作中断标志位,在转向中断服务程序时,自动(硬件)清0。TR0(TR1)-定时器运行控制位定时器T0(T1)的运行控制位 该位根据需要以软件方法使其置1或清0,用来启动关闭定时器T0(T1)。2.工作方式控制寄存器(TMOD) TMOD寄存器是一个专用寄存器,用于控制两个定时器计数器的工作方式。但TMOD寄存器不能位寻址,只能用字节传送指令设置其内容。各位定义如下:位序D7D6D5D4D3D2D1D0位符号GATEC/TM1M0GATEC/TM1M0 其中:高4位字段用于定时器T1的工作方式控制,低4位字段用于定时器T0的工作方式控制。TMOD各位的定义和功能如下:GATE-门控位 GATE=0以运行控制位TR0(TR1)启动定时器GATE=l以外中断请求信号(INT0、INT1)启动定时器以上说明:GATE为1时,定时器计数器的计数受外部引脚输入电平的控制,具体来讲,INT0控制T0运行,INT1控制T1运行。GATE为0时,定时器计数器的运行不受外部输入引脚的控制。因此,通常称前者为外部控制,后者为内部控制。CT-定时方式或计数方式选择位 C/T=0定时工作方式,计数脉冲是内部脉冲,其周期等于机器周期。 C/T=1计数工作方式,计数脉冲是从引脚T0或T1输入。M1M0工作方式选择位 M1M0=00 方式0 M1M0=01 方式1 MlM0=10 方式2M1M0=11 方式33.中断允许寄存器(IE) IE寄存器的详细内容请见第六章。其中与定时器计数器有关的位重复介绍如下。EA-中断允许总控制位ET。(ET1)-定时计数中断允许控制位 ET。(ET1)=0禁止定时计数中断 ET。(ET1)=1允许定时计数中断5.4 MCS-51的定时器计数器工作方式MCS-51的定时器计数器共有四种工作方式,现从方式0开始逐个介绍。5.4.1定时器计数器工作方式01.电路逻辑结构 方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。TL0的高3位弃之不用。图5-2是定时器计数器0在工作方式0的逻辑结构(定时器计数器1与此完全相同)。 图5-2 定时器计数器工作方式0逻辑结构如图所示,当C/T=0时,多路开关接通振荡脉冲的十二分频输出,13位计数器以此进行计数,这就是所谓定时器工作方式。当CT=1时,多路开关接通计数引脚(T0),外部计数脉冲由引脚T。输入。当计数脉冲发生负跳变时,计数器加1,这就是所谓计数工作方式。不管是那种工作方式,当TL。的低5位计数溢出时,向TH。进位,而全部13位计数溢出时,则向计数溢出标志位TF。进位。这里说明一下工作方式控制寄存器中门控位(GATE)的功能。当GATE0时,由于GATE信号封锁了或门,使引脚INT0信号无效。而这时或门输出端的高电平状态却打开了与门。因此可以由TR0(TCON寄存器)的状态来控制计数脉冲的接通与断开。这时如果TR01,则接通模拟开关,使计数器进行加法计数,即定时器计数器工作。如果TR。0,则断开模拟开关,停止计数,定时器计数器不能工作。因此在单片机的定时或计数应用中要注意GATE位的清0 当GATE=1,同时又TR0=1时,有关电路的或门和与门全都打开,计数脉冲的接通与断开由引脚信号INT。控制。当该信号为高电平时计数器工作;当该信号为低电平时计数器停止工作。这种情况可用于测量外信号的脉冲宽度。2.定时和计数应用 在方式0下,当为计数工作方式时,计数值的范围是: 18192(213) 当为定时工作方式时,定时时间的计算公式为; (213-计数初值)T 12 或(213-计数初值)机器周期 其时间单位分别与晶振周期或机器周期相同。 如晶振频率为6MHZ,则最小定时时间为:213-(213-1)1/6 10-6 12 = 2 10-6=2(us)最大定时时间为:(213-0) 1/6 10-6X12=16384X10-6=16384(us)定时器计数器初始化程序设计的基本步骤如下: (1)确定工作方式,对寄存器TMOD和TCON等赋值; (2)预置定时或计数的初值X; (3)根据需要开放或关闭定时器计数器的中断; (4)启动定时器计数器工作。应用举例设单片机晶振频率Fosc=6MHz,使用定时器1以方式0产生周期为500us的等宽正方波脉冲,并由P1.0输出。以查询方式完成。计算计数初值 欲产生500us的等宽正方波脉冲,只需在P1.0端以250us为周期交替输出高低电平即可实现,为此定时时间应为250us。使用6MHZ晶振,则一个机器周期为2us。方式0为13位计数结构。 设待求的计数初值为X,则: (213-X) 1/6 10-6 12=250 10-6 ,求解得:X8067。二进制数表示为1111110000011。转换为十六进制数,高8位为FCH,低5位为03H。其中高8位放入TH1,即TH1=FCH;低5位放入TL1,即TL1=O3H。 TMOD寄存器初始化 为把定时器计数器1设定为方式0,则M1M000;为实现定时功能,应使CT=0;为实现定时器计数器1的运行控制,则GATE=0。定时器计数器0不用,有关位设定为0。因此TMOD寄存器应初始化为00H。由定时器控制寄存器TCON中的TR1位控制定时的启动和停止,TR11启动,TR1=0停止。程序设计 MOV TMOD,00H ;设置T1工作方式0 MOV TH1,#OFCH ;设置计数初值 MOV TL1,03H ; MOV IE,00H ;禁止中断 SETB TR1 ;启动定时 LOOP:JBC TF1,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1:MOV TH1,0FCH ;重新设置计数初值。N MOV TL1,03H ; CPL P1。0 ;输出取反 AJMP LOOP ;重复循环5.4.2定时器计数器工作方式1方式1是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。其逻辑电路和工作情况与方式0完全相同。所不同的只是组成计数器的位数。 图5-3 定时器计数器工作方式1逻辑结构 当为计数工作方式时,计数值的范围是: 165536(216) 当为定时工作方式时,定时时间计算公式为: (216-计数初值)X晶振周期X12或(216-计数初值)X机器周期 其时间单位与晶振周期或机器周期相同。 如晶振频率为6MHZ,则最小定时时间为:216-(216-1)X1/6X10-6X12=2X10-6=2(us)最大定时时间为:(216-0)X1/6X10-6X12=131072X10-6=131072(us)131ms应用举例:题目同方式0的应用举例,但以中断方式完成。即单片机晶振频率FOSC6MHZ,使用定时器1以工作方式1产生周期为500us的等宽正方波脉冲,并在P1。0端输出。计算计数初值 TH1=FFH TL1A1HTMOD寄存器初始化 TMOD=10H程序设计主程序: MOV TMOD,1OH ;定时器 1工作方式1 MOV TH1,0FFH ;设置计数初值 MOV TL1,0A1H ; SETB EA ;开中断 SETB ET1 ;定时器1允许中断 LOOP:SETB TR1 ;定时开始 HERE:SJMP ;等待中断 SJMP HERE中断服务程序: ORG 001BH MOV TH1,0FFH ;重新设置计数初值 MOV TL1,0A1H ; CPL P1.0 ;输出取反 RETI ;中断返回5.4.3定时器计数器工作方式2 工作方式0和工作方式1的最大特点是计数溢出后,计数器为全0。因此循环定时或循环计数应用时就存在反复设置计数初值的问题。这不但影响定时精度,而且也给程序设计带来不便。方式2就是针对此问题而设置的,它具有自动重新加载功能,即自动加载计数初值,因此也可以说方式2是自动重新加载工作方式。在这种工作方式下,把16位计数器分为两部分,即以TL作计数器,以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。当计数溢出后,不是像前两种工作方式那样通过软件方法,而是由预置寄存器TH以硬件方法自动给计数器TL重新加载。1.电路逻辑结构 图5-3是定时器计数器0在工作方式2的逻辑结构。 图5-4 定时器计数器工作方式2逻辑结构 初始化时:8位计数初值同时装入TL和TH中。当TL计数溢出时,置位TF,同时把保存在预置寄存器TH中的计数初值自动加载TL,然后TL重新计数。如此重复不止。这不但省去了用户程序中的重装指令,而且也有利于提高定时精度。但这种工作方式下是8位计数结构,计数值有限,最大只能到255。 这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。2.循环定时和循环计数应用应用举例使用定时器0以工作方式2产生100us定时,在P1.0输出周期为200us的连续方波。已知晶振频率Fosc=6MHZ。计算计数初值。 6MHZ晶振下,一个机器周期为2us,以TH0作重新装载的预置寄存器,TL0作8位计数器,假设计数初值为X。则: (28X)X2X10-6100X10-6 求解得: X=206D=11001110B=CEH 把CEH分别装入TH-0和TL0中: TH0=CEH,TL0=CEHTMOD寄存器初始化 定时器计数器0为工式方式2,M1M010;为实现定时功能C/T=0;为实现定时器计数器0的运行GATE0;定时器计数器1不用,有关位设定为0。 综上情况TMOD寄存器的状态应为02H。程序设计(查询方式) MOV IE,00H ;禁止中断 MOV TMOD,02H ;设置定时器0为方式2 MOV TH0,0CEH ;设置计数初值 MOV TL0,#0CEH ;保存计数初值 SETB TR0 ;启动定时 LOOP: JBC TF0,LOOPI ;查询计数溢出 AJMP LOOP ;输出方波 LOOP1:AJMP LOOP ;重复循环 由于方式2具有自动重装载功能,因此计数初值只需设置一次,以后不再需要软件重置。程序设计(中断方式)主程序: MOV TMOD,02H ;定时器O为方式2 MOV TH0,0CEH ;设置计数初值 MOV TL0,0CEH ;保存计数初值 SETB EA ;开中断 SETB ET0 ;定时器0允许中断 LOOP: SETB TR0 ;启动定时HERE: SJMP ;等待中断 SJMP HERE中断服务程序:ORG 000BH CPL P1.0 ;输出方波 RETI ;中断返回。应用举例用定时器1以工作方式2计数,每计100次进行累加器加1操作。计算计数初值 28100=156D=9CH则TH1=9CH,TL1=9CHTMOD寄存器初始化 M1M0=10,CT=1,GATE=0因此TMOD=60H程序设计 MOV IE,00H ;禁止中断 MOV TMOD,60H ;设置计数器1为方式2 MOV TH1,9CH ;计数初值 MOV TL1,9CH ;设置计数初值 SETB TR1 ;启动计数 DEL:JBC TF1,LOOP ;查询计数溢出 AJMP DEL LOOP:INC A ;累加器加1 AJMP DEL ;循环返回5.4.4定时器计数器工作方式3 前三种工作方式下,对两个定时器计数器的设置和使用是完全相同的。但是在工作方式3下,两个定时器计数器的设置和使用却是不同的,因此要分开介绍。1.工作方式3下的定时器计数器0在工作方式3下,定时器计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以计数使用,又可以定时使用,定时器计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。而且逻辑电路结构也极其类似,如图5-4所示。图5-5 定时器计数器0工作方式3逻辑结构 与TL0的情况相反,对于定时器计数器0的另一半TH0,则只能作为简单的定时器使用。而且由于定时器计数器0的控制位已被TL0独占,因此只好借用定时器计数器1的控制位TR1和TF1。即以计数溢出去置位TF1,而定时的启动和停止则受TR1的状态控制。 由于TL0既能作定时器使用也能作计数器使用,而TH0只能作定时器使用却不能作计数器使用,因此在工作方式3下,定时器计数器0可以构成二个定时器或一个定时器一个计数器。2.工作方式3定时器计数器1如果定时器计数器0已工作在工作方式3,则定时器计数器1只能工作在方式0、方式1或方式2下,因为它的运行控制位TR1及计数溢出标志位TF1;已被定时器计数器0借用,如图8-5所示。 图5-6 定时器计数器0工作方式3下的使用在这种情况下,定时器计数器1通常是作为串行口的波特率发生器使用,以确定串行通信的速率。因为已没有计数溢出标志位TF1可供使用,因此只能把计数溢出直接送给串行口。当作为波特率发生器使用时,只需设置好工作方式,便可自动运行。如要停止工作,只需送入一个把它设置为方式3的方式控制字就可以了。因为定时器计数器1不能在方式3下使用,如果硬把它设置为方式3,就停止工作。5.5门控位GATE的功能和使用方法 当TMOD中的门控位GATE01时,定时器T0的启动受INT0上的电平控制,只有当INT0和TR0同时为1时,定时器T0才启动。利用这个功能,可以测试INT0上输入的正脉冲宽度。其具体程序如下: ORG 8000H MOV TMOD,09H MOV TL0,00H MOV TH0,00H CLR OAFH ;关中断 HERE1:JB INT0,HERE1 ;等INT0为低电平 SETB TR0 HERE2:JNB INT0,HERE2 ;等INT0为高电平,启动定时器T0 HERE3:JB INT0,HERE3 ;等INT0低电平到来 CLR TR0 ;停止定时器T0工作 LCALL DIR ;显示子程序,显示TH0、TL0计数,即 ;显示脉
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年数字创意行业数字文化创意发展与IP价值运营研究报告
- 2025年影视行业内容创作与IP运营模式研究报告
- 2025年医疗健康行业数字化医疗服务创新研究报告
- 2025年人工智能医疗行业智能影像诊断与远程手术研究报告
- 2025年智能物流行业智慧仓储与智能运输研究报告
- 2025年教育行业在线教育平台课程内容研究报告
- 2025年化工能源行业绿色能源技术应用与碳排放减少研究报告
- 2025年饮食文化行业传统美食与现代饮食研究报告
- 2025年合肥滨湖产投控股集团有限公司第二批招聘1人笔试参考题库附答案解析
- 2025黑龙江大庆市让胡路区黑龙江人才周区属医院人才引进7人笔试备考试题及答案解析
- 2025年“国学小名士”知识线上竞答题库500题(含答案)
- 2025年河北水利发展集团有限公司公开招聘工作人员41名笔试参考题库附带答案详解
- 脏腑手法调理培训课件
- 2025年度宁波法院面向全市基层法院公开遴选员额法官5人考试参考题库及答案解析
- 酒店消防安全培训课件
- 2025年人工智能市场渠道拓展策略方案
- 气血两虚日常护理常规
- Unit 6 A Day in the Life 大单元整体教学分析教案-2025-2026人教版七年级英语上册
- GJB827B--2020军事设施建设费用定额
- GB/T 20716.1-2025道路车辆牵引车和挂车之间的电连接器(7芯)第1部分:24 V标称电压车辆的制动系统和行走系的连接
- 2025年第十七届广东省中学生天文知识竞赛试题(含答案)
评论
0/150
提交评论