《单片机原理及工程应用》课件-第4章 中断系统及定时器应用( 第2次课)定时器_第1页
《单片机原理及工程应用》课件-第4章 中断系统及定时器应用( 第2次课)定时器_第2页
《单片机原理及工程应用》课件-第4章 中断系统及定时器应用( 第2次课)定时器_第3页
《单片机原理及工程应用》课件-第4章 中断系统及定时器应用( 第2次课)定时器_第4页
《单片机原理及工程应用》课件-第4章 中断系统及定时器应用( 第2次课)定时器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

14.2定时器/计数器

51系列单片机有两个16位定时器/计数器,通过对机器周期计数达到定时的目的,通过对外部事件计数达到计数之目的。24.2.1定时器/计数器的基本原理1.定时器的特点

(1)定时器/计数器有多种功能,可以是计数功能也可以是定时功能。

(2)定时器/计数器的计数值是可变的,当然计数的最大值是有限的,这取决于计数器的位数。计数的最大值也就确定了作为定时器时的最大定时范围。

(3)能够在到达设定的定时或计数值时发出中断申请,以便实现定时控制。3定时器/计数器原理框图4定时/计数工作原理

51单片机的定时器/计数器采用加法计数方式工作。两个定时器/计数器T0和T1的内部均有一个16位加法计数器(TH0,TL0和TH1,TL1),用来完成加1计数。当加法计数器产生溢出时,硬件自动产生溢出中断标志信号,可向CPU申请中断。由于加法计数器的初值可以由程序设定,因此,其计数/定时范围就可利用软件来编程。

计数方式时,定时器/计数器对加在T0(P3.4)、T1(P3.5)引脚的脉冲信号进行加1计数,我们可以通过设置不同的初值来控制计数次数。

定时方式时,定时器/计数器对内部机器周期T进行加1计数,因此其计数最小单位就是1个机器周期。5定时器/计数器的控制方式1.定时器方式寄存器TMODC/T:功能选择位,当C/T=1时为计数功能;当C/T=0时为定时功能。GATE:门控位,用于控制定时器/计数器的启动是否受外部中断请求信号的影响。6工作方式设置M1M0工作方式功能00方式013位定时/计数器01方式116位定时/计数器10方式2具有自动重装初值的8位定时/计数器11方式3T0分成两个8位定时/计数器T1无方式372.定时器的控制寄存器TCON其功能前面在中断系统中已经介绍过了。请问你还记得它的功能吗?!哈哈!应该记住,因为它很重要!84.2.3定时器/计数器的工作方式1.工作方式1

将方式寄存器TMOD的方式选择位M1M0设置为01B时,定时器/计数器设定为方式1,由TH0和TL0(或TH1和TL1)构成了16位的定时/计数器。

9定时器/计数器0方式1的逻辑结构方式1:计数长度为16位二进制数,最大计数值M=216=65536。如果要让计数器计数N次,则事先应向计数器中写入的计数初值X为:计数初值X=最大计数值M-计数次数N=216-N=65536-NM1M0=01B10定时器工作方式C/T=0时为定时器方式,加法计数器对机器周期T计数,每个机器周期计数器加1。根据计数次数N便可计算出定时时间,定时时间t由下式确定:定时时间t=N×T=(65536-X)TT为单片机的机器周期X为初值X=65536-t/T

112.工作方式013位定时/计数器工作方式

计数初值X=最大计数值M-计数次数N=213-N=8192-N

定时时间t=N×T=(8192-X)T

X=8192-t/T

M1M0=00B123.工作方式28位方波发生器工作方式(处置自动重装)计数初值X=最大计数值M-计数次数N=28-N=256-N定时时间t=N×T=(256-X)T

X=256-t/T

M1M0=10B134.工作方式3

方式3时,定时器T0被分解成两个独立的8位计数器TL0和TH0。其中,TL0占用原定时器T0的控制位和中断标志位:GATE、TR0、TF0,也占用原定时器0的引脚T0(P3.4)和INT0(P3.2)。TH0占用原T1的控制位TF1和TR1,同时还占用了定时器1的中断源,其启动和关闭仅受TR1置1或清0控制。此时,TH0只能对机器周期进行计数,因此,TH0只能用作简单的内部定时,不能用作对外部脉冲计数,它是定时器0附加的一个8位定时器。M1M0=11B14通常情况下,也只有T1作为串行口波特率发生器使用时,为了充分利用单片机资源,才将T0设置为方式3使用。154.2.4定时器/计数器的应用

由于定时器/计数器的功能是由软件编程实现的,所以,一般在使用定时器/计数器前都要对其进行初始化。所谓初始化实际上就是确定相关寄存器的值。初始化步骤如下:161.确定工作方式——对TMOD赋值。根据任务性质明确工作方式及类型,从而确定TMOD寄存器的值。如:要求定时器/计数器T0完成16位定时功能,TMOD的值就应为00000001B,用指令

MOVTMOD,#01H;即可完成工作方式的设定。2.预置定时器/计数器的计数初值——写入计数初值依据以上确定的工作方式和要求的计数次数,由算式4.1~4.6计算出相应的计数初值。直接将计数初值写入TH0、TL0或TH1、TL1。X=2n-t/T=2n-N173.根据需要开放定时器/计数器中断——直接对IE寄存器赋值。4.若有必要设置IP。5.启动定时/计数器工作——将TR0或TR1置“1”。

GATE=0时,直接由软件置位启动;GATE=1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。18应用举例:T0工作在方式1计数计数值为:06中断后完成启动打包机在P1.1输出一个正脉冲信号.TMOD:00000101BX=65536-06=65530=FFFAHIE=10000010B请你编程实现功能19 ORG0000H LJMPMAIN ORG000BH LJMPT0SUB ORG0040H MAIN: MOVSP,#60H MOVTMOD,#00000101B MOVTH0,#0FFH MOVTL0,#0FAH MOVIE,#10000010B SETBTR0 SJMP$

参考程序20 ORG0100H ;中断服务程序 T0SUB: MOVTH0,#0FFH MOVTL0,#0FAH SETBP1

温馨提示

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

评论

0/150

提交评论