D__幻灯片定稿_第6章定时器_第1页
D__幻灯片定稿_第6章定时器_第2页
D__幻灯片定稿_第6章定时器_第3页
D__幻灯片定稿_第6章定时器_第4页
D__幻灯片定稿_第6章定时器_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6 6章章 MCS-51MCS-51单片机的定时器单片机的定时器/ /计数器计数器本章要点:单片机定时器/计数器的内部逻辑结构单片机定时器/计数器的控制寄存器单片机定时器/计数器的具体应用6.1定时/计数方法概述在单片机的控制应用中,定时和计数是必不可少的,MCS-5l单片机有两个可编程的定时器/计数器T0和T1,都是16位加法计数结构,分别由TH0和TL0及TH1和TL1组成。单片机的计数是指对外部事件进行计数,从T0(P3.4)和T1(P3.5)引脚输入信号。即对外来脉冲进行计数。外部输入的脉冲负跳变时计数器加1(加法计数)。单片机的定时是通过计数器的计数来实现的,计数脉冲来自单片机的

2、内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计数器加1。6.1.1 定时器定时器/计数器的控制寄存器计数器的控制寄存器1.定时器控制寄存器(TCON)TCON寄存器有关定时的控制位共有4位,在第五章中已提到,现介绍如下:TF0和TF1:计数溢出标志位。当计数器计数溢出(计满)时,该位置l。使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清0;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清0。TR0和TR1:定时器运行控制位。当TR0(TR1)=0,停止定时器/计数器工作;TR0(TR1)=1,启动定时器/计数器工作。该位根据需要以软件

3、方法使其置1或清0。2.工作方式控制寄存器门(TMOD)TMOD用于设定定时器/计数器的工作方式,不能位寻址,它的低4位定义T0,高4位定义T1。GATE:门控位。GATE=0时,以运行控制位TR启动定时器;GATE=1,且TR=1时,以外中断请求信号(或)启动定时器。 :定时方式或计数方式选择位。=0,定时工作方式;=1,计数工作方式。M1M0:工作方式选择位,其对应关系如表6-1所示。位序D7D6D5D4D3D2D1D0符号GATEM1M0GATEM1M0M1M0工作方式功能说明00方式013位定时器/计数器01方式116位定时器/计数器10方式2可自动加载的8位定时器/计数器11方式3T

4、0分为两个独立的8位计数器TL0和TH0,定时器T1停止计数表6-1 定时器/计数器工作方式选择3.中断允许控制寄存器(IE)与定时器/计数器有关的位是:EA、ET0、ET1。在第五章中已提到,现重复介绍如下:EA:中断允许总控制位。ET0和ET1:定时计数中断允许控制位。ET0(ET1)=0,禁止定时(或计数)中断;ET0(ET1)=1,允许定时(或计数)中断。6.1.2定时工作方式定时工作方式MCS-51单片机的定时器有单片机的定时器有4种工作方式,由种工作方式,由TMOD的的M1M0来设定工作方式。来设定工作方式。定时器T0用作定时器方式定时器T0的功能TMODGATE=0GATE=10

5、13位定时器00H08H116位定时器01H09H28位定时器02H0AH38位定时器03H0BH定时器T0用作计数器方式定时器T0的功能TMODGATE=0GATE=1013位计数器04H0CH116位计数器05H0DH28位计数器06H0EH38位计数器07H0FH表6-2 定时器/计数器0工作方式控制寄存器的设定定时器T1用作定时器方式定时器T0的功能TMODGATE=0GATE=1013位定时器00H80H116位定时器10H90H28位定时器20HA0H定时器T0工作在方式3下,T1只能工作在方式0、方式1、方式2下。定时器T1用作计数器方式定时器T0的功能TMODGATE=0GAT

6、E=1013位计数器40HC0H116位计数器50HD0H28位计数器60HE0H定时器T0工作在方式3下,T1只能工作在方式0、方式1、方式2下。表6-3 定时器/计数器1工作方式控制寄存器的设定1.方式方式0方式0下的电路逻辑结构如图6-2所示,以T0为例。内部计数器是13位,由TH0的8位和TL0的低5位构成。当TL0低5位计数溢出时向TH0进位,TH0计数满时则将TF0置1。振荡器 12C/T 0C/T 1控制T0TR0GATE& 11INT0中断TL0低5位TH08位TF0如图所示,当=0时,多路开关接通振荡脉冲的12分频输出,为定时工作方式。当=l时,多路开关接通计数引脚(

7、TO),外部计数脉冲由引脚TO输入,为计数工作方式。当GATE=0时,由TR0控制计数器的接通与断开,TR0=,T0工作;TR0=0,T0停止工作。当GATE=1,且TR0=1时,由控制计数器的接通与断开,=1,T0工作;=0,T0停止工作。当为计数工作方式时,计数值的范围是:1213当为定时工作方式时,定时时间的计算公式为:(213-计数初值)晶振周期12 或 (213-计数初值)机器周期2.方式方式1方式1是16位计数结构的工作方式,与方式0的区别仅在于计数器的位数不同,由TH0的8位和TL0的8位构成。如图6-3所示。当为计数工作方式时,计数值的范围是:1216当为定时工作方式时,定时时

8、间的计算公式为:(216-计数初值)晶振周期12 或 (216-计数初值)机器周期振荡器12控制T0TR0GATE&11INT0中断TF0TH0(8位)C/T0C/T1TL0(8位)3.方式2方式2具有自动重新加载计数初值的8位计数器,即以TL作计数器,TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。当计数溢出后,置TF为1的同时,由TH自动给TL重新加载。这样,可以省去在程序中重装常数的操作。但方式3计数位数少,计数范围小,最大只能到255。如图6-4所示。当为计数工作方式时,计数值的范围是:128当为定时工作方式时,定时时间的计算公式为:(28-计数初值)晶振周期12 或

9、 (2n-计数初值)机器周期振荡器12控制T0TR0GATE&11INT0中断TF0TL0(8位)重新输入TL0(8位)C/T 0C/T 14.方式方式3在工作方式3下,T0拆成两个独立的8位计数器TL0和TH0。TL0使用T0的各控制位和引脚信号,其工作情况与方式0或方式1完全相同。而TH0只能作为简单的定时器使用,借用TR1作为运行控制位,计数溢出去置位TF1。如图6-5所示。如果T0已工作在工作方式3,则T1只能工作在方式0、方式l或方式2下,因为TR1、TF1已被T0借用,T1没有运行控制和溢出中断功能,此时定时器T1仅由控制位切换其定时或计数功能,当计数器计数满溢出时,只能将

10、输出送往串行口。所以,T1常作为串行口的波特率发生器使用,或不需要中断的场合。因定时器1的TR1被占用,因此其启动和关闭较为特殊,当设置好工作方式时,定时器1即自动开始运行。若要停止操作,只需送入一个设置定时器1为方式3的方式字即可。振荡器12控制T0TR0GATE&11INT0中断TF0TL0(8位)121fosc中断TF1TH0(8位)TR1C/T0C/T1121fosc121fosc工作方式36.2 定时器/计数器与中断综合应用举例MCS-51的定时器/计数器是可编程的,因此,在利用定时器/计数器进行定时或者计数之前,首先要通过软件对它进行初始化。初始化包括下述几个步骤:(1)写

11、TMOD,设定各定时器/计数器的工作方式、外部计数还是内部定时等工作状态;(2)将计数初值写入对应寄存器中;(3)定时器中断开放或禁止(采用中断应开放,反之禁止);(4)启动,即写TCON(可位寻址)。【例6-1】设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500us的等宽正方波连续脉冲,并由P1.3输出。以查询方式完成。求解步骤:1.首先计算计数初值设待求的计数初值为X,根据要求可知方波宽度为250us,由定时时间的计算公式可得(213X)210-6=25010-6,则X=213125=8067。转换为二进制得X=0001111110000011B。其中高8位放入TH1,低位放

12、入TL1,即:TH1=0FCH,TL1=03H2TMOD寄存器初始化。工作方式0,M1MO=00;定时功能,=0;为实现T1的运行控制,则 GATE=0。T0不用,有关位设定为0。因此TMOD寄存器应初始化为00H ,即:TMOD=00H。3由TCON中的TR1位控制定时的启动和停止:TR1=1启动,TR1=0停止。4程序设计MOV TMOD,00H ;设置T1为工作方式0MOV TH1,OFCH ;设置计数初值MOV TL1,03HMOV IE,#00H ;禁止中断LOOP:SETB TR1 ;启动定时JBC TF1,LOOP1 ;查询计数溢出AJMP LOOPLOOP1:MOV TH1;O

13、FCH ;重新设置计数初值MOV TL1,03HCPL P1.3 ;输出取反AJMP LOOP ;重复循环【例6-2】设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500us的等宽正方波连续脉冲,并由P1.3输出。以中断方式完成。MOV TMOD,00H ;设置T1为工作方式0MOV TH1,0FCH ;设置计数初值MOV TL1,03HSETB EA ;开中断SETB ET1 ;定时器1允许中断SETB TR1 ;定时开始HERE:SJMP$ ;等待中断中断服务程序:MOV TH1;0FCH ;重新设置计数初值MOV TL1,03HCPL P1.3 ;输出取反RETI ;中断返回

14、【例6-3】用定时器1以工作方式2实现计数,每计100次进行累加器加1操作。1计算计数初值:28一100=156D=9CH,则TH1=9CH, TL1=9CH2TMOD 寄存器初始化:M1M0=10,=1,GATE=0,因此,TMOD=60H3程序设计MOV IE,00H ;禁止中断MOV TMOD,60H ;设置计数器1为工作方式2MOV TH1,9CH ;设置计数初值MOV TL1,9CH ;保存计数初值SETB TR1 ;启动计数DEL:JBC TF1,L00P ;查询计数溢出AJMP DELLOOP:INC A ;累加器加1AJMP DEL ;循环返回本章小结 本章介绍MCS-51单片

15、机的定时器/计数器T0、T1的结构和应用,每个定时器/计数器有4种工作方式:方式0、方式1、方式2、方式3;方式0为13位的定时器/计数器;方式1为16位的定时器/计数器;方式2为8位的有自动重装载功能的定时器/计数器;方式3只适用定时器0,将定时器0分为两个独立的8位的定时器/计数器,同时定时器1可作为串行口波特率发生器。思考与练习一、思考题一、思考题使用一个定时器,如何通过软硬件结合的方法,实现较长时间的定时?定时工作方式有什么特点,适用于什么场合?二、习题二、习题填空题填空题1.当计数器产生计数溢出时,把定时器控制器的TF0(TF1)位置“l”。对计数溢出的处理,在中断方式时,该位作为(

16、)位使用;在查寻方式时,该位作()位使用。2.在定时器工作方式1下,计数器的宽度为16位,如果系统晶振频率为6MHZ,则最大定时时间为()。选择题选择题在下列的(A)、(B)、(C)、(D)4个选项中,只有一个是正确的,请选择出来。1在下列寄存器中,与定时计数控制无关的是()(A)TCON(定时控制寄存器)(B)TMOD(工作方式控制寄存器)(C)SCON(串行控制寄存器)(D)IE(中断允许控制寄存器)2下列定时计数硬件资源中,不是供用户使用的是()(A)高8位计数器TH(B)低8位计数器TL(C)定时器计数器控制逻辑(D)用于定时计数控制的相关寄存器3在工作方式0下,计数器是由TH的全部8

17、位和TL的5位组成,因此其计数范围是()(A)18192(B)08191(C)08192(D)l40964如果以查询方式进行定时应用,则应用程序中的初始化内容应包括()(A)系统复位、设置工作方式、设置计数初值(B)设置计数初值、设置中断方式、启动定时(C)设置工作方式、设置计数初值、打开中断(D)设置工作方式、设置计数初值、禁止中断5与定时工作方1和0比较,定时工作方式2不具备的特点是()(A)计数溢出后能自动重新加载计数初值(B)增加计数器位数(C)提高定时精度(D)适于循环定时和循环计数应用编程题编程题1.假定单片机晶振频率为6MH。,要求每隔100ms,从外部RAM以data开始的数据区传送一个数据到P1口输出,共传送100个数据。要求以两个定时器串行定时方法实现。2.一个定时器的定时时间有限如何实现两个定时器的串行定时,以满足较长定时时间的要求?3.每隔1秒钟读一次P1.0,如果所读的状态为“1”,内部RAM10H单元加1,如果所读的状态为“0”,则内部RAM11H单元加1。假定单片机晶振频率为12MHz,请以软硬件结合方法定时实现之。4.单片机用内部定时方法产生频率为

温馨提示

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

评论

0/150

提交评论