第五章:MCS-51单片机定时与计数器_第1页
第五章:MCS-51单片机定时与计数器_第2页
第五章:MCS-51单片机定时与计数器_第3页
第五章:MCS-51单片机定时与计数器_第4页
第五章:MCS-51单片机定时与计数器_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1单片机原理与接口技术韦必忠桂林电子科技大学建筑与交通工程学院Email:wbz@MCS-51单片机定时器/计数器35.1定时器/计数器概述软件定时:执行一个循环程序进行时间延迟。定时准确,不需要外加硬件电路,但增加CPU开销。硬件定时:通过硬件电路实现定时,不占用CPU时间,但使用不够方便。可编程定时器定时:通过对系统时钟脉冲的计数实现定时。计数值通过程序设定,定时准确,使用方便灵活。计数与定时:定时器/计数器实际上是加1计数器。当它对外部事件进行计数时,由于频率不固定,此时称之为计数器。当它对内部固定频率的机器周期进行计数时,称之为定时器。计数器容量:8051单片机有两个计数器,分别称之为T0和T1,这两个计数器分别是由两个8位的RAM单元组成,即每个计数器都是16位的计数器,最大计数量是65536.定时/计数器的结构和工作原理

(一)、定时/计数器的结构定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

(二)、定时/计数器的工作原理计数次数和时间之间的确十分相关;只要计数脉冲的间隔相等,则计数值就代表了时间的流逝;单片机的晶振经过12分频后获得一个脉冲源,如果晶振频率12MHZ,则每秒产生1M脉冲,一个脉冲就是1微秒,所以计数脉冲的间隔与晶振频率有关。

(二)、定时/计数器的工作原理

加1计数器输入的计数脉冲有两个来源:(1)由系统的时钟振荡器输出脉冲经12分频后送来;(2)另一个是T0或T1引脚输入的外部脉冲源。

每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。

可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

设置为定时器模式时:加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。所以:计数值N乘以机器周期Tcy就是定时时间t

。一旦振荡周期确定,机器周期亦确定。设置为计数器模式时:外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。最高计数频率是晶振频率的1/24。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2s。

11定时器/计数器的定时和计数功能MCS-51系列单片机有两个可编程定时器/计数器:T0、T1,16位寄存器,加法计数结构,地址为:T0(TH0,TL0):8CH,8AHT1(TH1,TL1):8DH,8BH特殊功能寄存器每个寄存器(T0,T1)都具有定时和计数功能12MCS-51定时/计数器核心是一个16位计数器(寄存器)。加1信号来源:外部计数脉冲、内部时钟脉冲。信号来源方式:由特殊功能寄存器TMOD设置位

确定。,计数方式(外部);,定时方式(内部)。

80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD:用于设置其工作方式;TCON:用于控制其启动和中断申请。5.2MCS-51定时/计数器控制与状态寄存器14工作方式控制寄存器TMOD(状态寄存器)字节地址89H(不可以位寻址)15M1M0为操作方式选择位

:选择定时/计数器模式,计数模式;,定时模式GATE:选通控制GATE=0,选通,通过TRX启动定时器。GATE=1,端口高电平,通过TRX启动定时器。16启停与中断控制寄存器TCON(控制寄存器)字节地址88HTCON由定时/计数器和中断系统合用。TR0:定时/计数器0启停控制位由软件控制定时/计数器0的启动/停止。TR1:定时/计数器1启停控制位由软件控制定时/计数器1的启动/停止。17TF0:定时/计数器0中断请求标志位当定时/计数器0计数回0时,由内部硬件置位TF0(TF0=1),请求中断。中断服务程序一旦执行,硬件自动清0(TF0=0)。TF1:定时/计数器1中断请求标志位当定时/计数器1计数回0时,由内部硬件置位TF1(TF1=1),请求中断。中断服务程序一旦执行,硬件自动清0(TF1=0)。18IE0:外部中断0中断请求标志IT0=1,负跳变触发中断,硬件置IE0=1,当转向中断服务程序后,硬件自动清IE0=0。IT0=0,低电平触发中断。硬件置IE0=1,当转向中断服务程序后,硬件自动清IE0=0。IE1:外部中断1中断请求标志IT1=1,负跳变触发中断,硬件置IE1=1,当转向中断服务程序后,硬件自动清IE1=0。IT1=0,低电平触发中断。硬件置IE1=1,当转向中断服务程序后,硬件自动清IE1=0。19IT0:外部中断0触发方式控制位软件设置。IT0=1,外部中断,发生10跳变,产生中断请求,向主机申请中断。IT0=0,则端口低电平触发中断。IT1:外部中断1触发方式控制位软件设置。IT1=1,外部中断,发生10跳变,产生中断请求,向主机申请中断。IT1=0,则端口低电平触发中断。以上后四项用于中断系统。TCON可位寻址,其位地址为88H—8FH。205.3定时/计数器的工作方式(工作模式)设置(TMOD寄存器)选择定时模式还是计数模式;对M1M0的设置,用于选择T0、T1的四种操作(工作)方式。四种工作模式:即模式0、模式1、模式2、模式3。TL0、TH0,TL1、TH1两对定时/计数器21(1)定时/计数方式0

(13位计数器)以定时/计数器0(T0)为例TH0全部8位,TL0低5位构成13位定时/计数器。当时(定时方式),开关接至振荡12分频输出;当时(计数方式),开关接通T0(P3.4)当计数脉冲发生负跳变计数器加1。22GATE:看图,选择了定时或计数工作方式后,定时/计数脉冲不一定能到达计数器端,中间还有一个开关,如果这个开关不合上,计数脉冲就没法过去。那开关什么时候合上呢?有两种情况:GATE=0时,GATE非后是1,进入或门,或门总是输出1(与或门的另一个输入端INT0无关),在这种情况下,开关打开或者合上只取决于TR0,只要TR0=1,开关就合上,计数脉冲就得以畅通无阻,如TR0=0则开关打开,计数脉冲无法通过。因此,定时/计数器是否工作,只取决于TR0。GATE=1时,计数脉冲通路上的开关不仅要由TR0来控制,而且还要受到INT0引脚的控制,只有TR0=1,且INT0引脚也是高电平,开关才合上,计数脉冲才能通过。2324定时/计数方式1

(16位计数器)逻辑结构和方式0完全一样,只是TL是8位计数器。计数范围1—65536如晶振6MHz,最小定时时间为:2s(机器周期)最大定时时间为:131ms(大约)。该模式对应的是一个16位的定时器/计数器,如图5-5所示。其结构与操作几乎与模式0完全相同,惟一的差别是:在模式1中,寄存器TH0和TL0是以全部16位参与操作。用于定时工作方式时,定时时间为t=(216-T0初值)×振荡周期×12用于计数工作方式时,计数最大长度为216=65536个外部脉冲。图5-5定时器/计数器T0工作模式1逻辑结构框图26定时/计数方式2

(自动再装入8位计数器)THx,TLx相互独立(x=0,1)。TLx作为8位计数器,THx是初值寄存器。TLx溢出后,置TFx申请中断。THx初值重新装入TLx。只需通过软件设置一次,启动后无限次定时/计数运行。(自动进行下一次)模式2把TL0(或TL1)设置成一个可以自动重装载的8位定时器/计数器,如图5-6所示。TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。这时,16位计数器被拆成两个,TL0用作8位计数器,TH0用以保存初值。用于定时工作方式时,其定时时间(TF0溢出周期)为t=(28-TH0初值)×振荡周期×12用于计数工作方式时,最大计数长度为28=256个外部脉冲。图5-6定时器/计数器T0工作模式2逻辑结构框图28定时/计数方式3

(T0分成两个8位计数器,T1无效)将T0分成两个独立的8位计数器。TL0组成完整的8位定时/计数器;既能定时,又能计数。TH0只能组成8位定时器(内部脉冲)。只能定时。TL0占用T0全部控制信号及中断请求标志位(TR0、TF0等)TH0只能借用TR1和TF1。P3.5口(T1外部计数脉冲输入口)不能占用。工作模式3对T0和T1大不相同。若将T0设置为模式3,TL0和TH0被分成为两个相互独立的8位计数器,如图5-7所示。图5-7定时器/计数器T0工作模式3逻辑结构框图305.4定时/计数器应用基本步骤:工作方式控制字(TMOD)的设置;计数初值的计算并装入THx、TLx;中断允许位ETx、EA的设置,使主机开放中断;启/停位TRx的设置。31计数初值的确定在方式0下,当为计数方式时,计数值范围1—8192(213

)在方式1下,当为计数方式时,计数值范围1—65536(216

)在方式2下,当为计数方式时,计数值范围1—256(28

)32当计数时,采用预置数的方法,比如我们需要计数100次,那就先放入65436,再来100个脉冲,就到65536了。定时时间:(2n–计数初值)*机器周期33在方式0下最小定时时间为:2s最大定时时间为:16384s(8192*2)在方式1下最小定时时间为:2s最大定时时间为:131ms(65536*2)如晶振周期6MHz,机器周期为2s。思路:需要采用软件计数器的概念,先用定时/计数器做一个(比如50毫秒)的定时器,定时时间到了以后不要立即执行相关操作(比如输出),而是将软件计数器中的值加1,如果软件计数器计到了20,那定时时间就是20*50=1000毫秒了。34如何实现定时1S或者其它定时时间?35例题:生成周期为500s的等宽正方波。机器晶振6MHz。使用T1以方式0工作,由P1.0输出500s机器周期:2s。定时时间250s。以250s为周期在P1.0端交替输出高低电平。368067-4096=397113971-2048=1923

11923-1024=8991899-512=387

1387-256=1311131-128=3164

032016

08040二进制表示:111111000001137程序设计(查询方式):

MOVTMOD,#00H ;设置T1 MOVTH1,#0FCH ;计数初值

MOVTL1,#03H ;

MOVIE,#00H ;禁止中断

SETBTR1 ;启动定时LOOP:JBCTF1,LOOP1 ;查询计数溢出

AJMPLOOPLOOP1:MOVTH1,#FCH ;重新设置计数初值

MOVTL1,#03H ;

温馨提示

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

评论

0/150

提交评论