第六章定时计数器_第1页
第六章定时计数器_第2页
第六章定时计数器_第3页
第六章定时计数器_第4页
第六章定时计数器_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第6 6章章 定时定时/ /计数器计数器u教学目的:了解80C51系列单片机内部定时器/计数器的结构与工作原理;能够采用查询方式对定时器/计数器的4种工作模式编程、应用。 u教学重点:1. 定时/计数器的工作原理; 2. 定时器方式1、2的编程、应用。u教学难点:1.定时/计数器控制寄存器的设置 2.定时初值的设置2v在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。v实现定时功能,可以采用下面三种方法:实现定时功能,可以采用下面三种方法:v软件定时软件定时:软件定时不占用硬件资源,但占用了:软件定时不占用硬件资源,但占用了CPU时

2、间,时间,降低了降低了CPU的利用率。的利用率。v采用时基电路定时采用时基电路定时:例如采用:例如采用555电路,外接必要的元器件电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。可编程。v采用可编程芯片定时采用可编程芯片定时:这种定时芯片的定时值及定时范围很:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的

3、定时在单片机的定时/计数器不够用时,可以考虑进行扩展。计数器不够用时,可以考虑进行扩展。36.1 定时定时/ /计数器计数器T0T0、T1T1概述概述v80C51单片机内部有两个16位的可编程定时计数器,分别简称为“定时器0(T0)”和“定时器1(T1)”。不论哪种型号,其结构、原理和工作方式都是相同的。v可编程是指其功能如工作方式、定时时间、量程、启动方式等均可由指令来确定和改变。46.1.1 定时器/计数器T0、T1的结构图6.1 80C51定时/计数器T0、T1的原理结构框图5v共6个8位寄存器。v其中2个16位定时/计数器分别由2个8位专用寄存器组成:T0由TH0和TL0构成,T1由T

4、H1和TL1构成,地址依次为8AH8DH;用于存放定时或计数初值与当前值。v2个特殊功能寄存器:8位的定时器方式寄存器TMOD:用于选定定时器的工作方式;8位的定时器控制寄存器TCON:用于控制定时器的启动与停止,还可用来保存T0、T1的溢出和中断标志。v当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。v每个寄存器均可单独访问。66.1.2 6.1.2 定时定时/ /计数器的原理计数器的原理v16位的定时计数器实质上是一个二进制加1计数器(TH0、TL0或TH1、TL1)。v定时器/计数器可以工作于计数方式也可以工作于定时方式。v 加加1计数器计数器输入的计数

5、脉冲有两个来源输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出一个是由系统的时钟振荡器输出脉冲经脉冲经12分频后送来;一个是分频后送来;一个是T0或或T1引脚输入的外部脉冲源。每来一引脚输入的外部脉冲源。每来一个脉冲计数器加个脉冲计数器加1,当加到计数器为全,当加到计数器为全1时,再输入一个脉冲就使计数器时,再输入一个脉冲就使计数器回零,且计数器的溢出使回零,且计数器的溢出使TCON中中TF0或或TF1置置1,向,向CPU发出中断请求发出中断请求(定时(定时/计数器中断允许时)。如果定时计数器中断允许时)。如果定时/计数器工作于定时模式,则表计数器工作于定时模式,则表示定时时间已到;如果

6、工作于计数模式,则表示计数值已满。示定时时间已到;如果工作于计数模式,则表示计数值已满。v可见,由溢出时计数器的值减去计数初值才是加可见,由溢出时计数器的值减去计数初值才是加1计数器的计数器的计数值计数值。v定时功能计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1,直至计满溢出为止。所以,计数频率是振荡频率的1/12。v计数功能计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。需要2个机器周期。v定时器启动运行后,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。76.2 定时定时/ /计数器的控制方法计数器的控制方法v定时/计数器是一种可编程部件,

7、不会自动开始工作,必须通过软件确定其工作方式,并启动它开始工作-“定时/计数器的初始化”。8 6.2.1 定时计数器寄存器 v定时器工作方式寄存器TMOD用于选择定时器的工作方式,它的高4位控制定时器T1,低4位控制定时器T0。vGATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。vGATE0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时/计数器工作。1.工作方式寄存器TMODGATEC/TM1M0GATEC/TM1M0T1T0TMOD 89H v定时器工作

8、方式寄存器TMOD用于选择定时器的工作方式,它的高4位控制定时器T1,低4位控制定时器T0。vGATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。vGATE0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时/计数器工作。GATEC/TM1M0GATEC/TM1M0T1T0TMOD 9vC/T=1:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。v M1、M0:定时器/计数器工作方式选择位复位时,TMOD所有位均为0,定时器处于

9、停止工作状态。102 定时/计数器控制寄存器TCONv控制定时器的启动和停止,标志定时器的溢出和中断情况。vTF1:定时/计数器T1的溢出标志位,当定时/计数器T1计满溢出时,由硬件使它置位,如中断允许则触发T1中断。进入中断处理后由内部硬件电路自动清除。vTR1:定时/计数器T1的启动位,可由软件置位或清零,当TR1=1时启动;TR1=0时停止。v当系统复位时,TCON的所有位均清0。TF1TR1TF0TR0IE1IT1IE0IT0D7 D6 D5 D4 D3 D2 D1 D0 TCON 88H 116.2.2定时/计数器的初始化与启动v初始化步骤一般如下:v1. 确定工作方式对TMOD赋值

10、。v2. 预置定时或计数的初值可直接将初值写入TH0、TL0或TH1、TL1。 v3. 根据需要开放定时/计数器的中断直接对IE寄存器的定时器中断位赋值 。v在对T0和T1初始化后,即可准备启动定时/计数器工作。 126 62 23 3 定时定时/ /计数器初值的确定方法计数器初值的确定方法v现假设最大计数值为M,那么各方式下的M值如下:v方式0:M2138192v方式1:M21665536v方式2:M28256v方式3:定时器0分成两个8位计数器,所以两个M均为256。v因为定时/计数器是做“加1”计数,并在计满溢出时产生中断,因此初值X可以这样计算:v X M 计数值136.3 定时器T0

11、、T1的工作方式v通过对M1、M0位的设置, T0可选择4种工作方式,T1可选择3种工作方式。本节将介绍这4种工作方式的结构、特点及工作过程。146.3.1 方式0v方式0和方式1 :结构和工作原理基本相同,基本相同,只是只是方式0 为13位计数器方式,方式1 为16位计数器方式。156.3.1 方式1图6-2 T0(或T1)方式1结构16 方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器;因而最大计数值为 2的16次幂,等于65536。如计数值为N,则置入的初值X为: X=65536-N17 方式0是13位的定时/计数方式,因而最大计数值为 2的13次幂

12、,等于8192。如计数值为N,则置入的初值X为:X=8192-N 13位计数器由THx的8位和TLx的低5位组成,TLx的高3位未用;启动后立即加1计数,当TLx的低5位计数溢出时向THx进位,THx计数溢出则对相应的溢出标志位TFx置位,以此作为定时器溢出中断标志。186.3.3 方式2方式方式2为自动重装初值的为自动重装初值的8位计数方式。位计数方式。图6-3 T0(或Tl)方式2结构19 在方式0和方式1中,当计数满后,若要进行下一次定时/计数,需用软件向THx和TLx重新予置计数初值。 方式2,16位的计数器只用了8位来计数,由TLx作为8位计数器,THx作为计数初值寄存器,设置初值时

13、同时送THx和TLx。 TLx进行加计数,在计数溢出时,不仅置溢出标志TFx,还自动将THx中的内容自动送入TLx,使TLx重新从初值开始计数。THx的内容可由软件置入,且在计数器工作期间其值不变。 由于是8位的定时/计数方式,因而最大计数值为 2的8次幂,等于256。如计数值为N,则置入的初值X为: X=256-N特别适合于用作较精确的脉冲信号发生器。206.3.4 方式3方式方式3只适用于定时只适用于定时/计数器计数器T0,定时器定时器T1处于方式处于方式3时相当于时相当于TR1=0,停止计数。,停止计数。图6-4 T0方式3结构21 工作方式工作方式3将将T0分成为两个独立的分成为两个独

14、立的8位计数器位计数器TL0和和TH0,其中,TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0,其功能和操作与方式0或方式1完全相同;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。22总结与回顾 定时器/计数器的复位状态:工作方式0、选择内部启动、计数器停止工作、溢出中断标志清零。 定时器/计数器的初始化:对TMOD赋值确定工作方式 ;预置定时或计数的初值 ;根据需要开放定时器/计数器的中断 ;启动定时/计数器工作。计数器初值最大计数值 要求的计数值定时时间=(最大计数值 计数器初值) 机器

15、周期236.4 定时器T0、T1应用举例 例1、在P1.1端口输出周期为2ms的方波,晶振fOSC6MHz。 分析:采用T0的定时功能,对P1.1端口每隔1ms取反一次即可得到周期为2ms方波。1msP1.11ms24定时器的初始化: TMOD的设定 :工作方式1(M1M0=01) T0为定时器(C/T=0) 内部TR0控制启动计数器初值计算:定时时间=(最大计数值 计数器初值) 机器周期即:1000 s =(65536计数器初值)1261s得:计数器初值=65036=FE0CH25采用查询方式的源程序: ORG 2000H MOV TMOD,#01H MOV TL0,0CH ;给TL0置初值

16、 MOV TH0,0FEH ;给TH0置初值 SETB TR0 ;启动T0 LP1:JBC TF0,LP2 ;查询计数溢出否 AJMP LP1 LP2:MOV TL0, 0CH ;重新设置计数初值 MOV TH0, 0FEH CPL P1.1 ;输出取反 AJMP LP1 ;重复循环26 例2、利用T0门控位测试引脚上出现的正脉冲宽度。已知晶振频率为12MHz,将所测得值高位存入片内71H单元,低位存入片内70H单元。 分析:测量INT0端口正脉冲宽度,就是由INT0控制定时器的启停,这时计数器内部的控制位应设置GATE=1, TR0=1,且 T0工作于定时器方式l(16位计数器)。为保证测量结果的正确性,应在INT0为低电平时,才置TR0为1,当INT0变为高电平时,就启动计数, 当再次变低时,停止计数。此时计数值乘以机器周期即是被测正脉冲的宽度。测量过程如

温馨提示

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

评论

0/150

提交评论