第9章C51定时器课件

上传人:我*** 文档编号:141262655 上传时间:2020-08-05 格式:PPT 页数:20 大小:86KB
返回 下载 相关 举报
第9章C51定时器课件_第1页
第1页 / 共20页
第9章C51定时器课件_第2页
第2页 / 共20页
第9章C51定时器课件_第3页
第3页 / 共20页
第9章C51定时器课件_第4页
第4页 / 共20页
第9章C51定时器课件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《第9章C51定时器课件》由会员分享,可在线阅读,更多相关《第9章C51定时器课件(20页珍藏版)》请在金锄头文库上搜索。

1、第9章 C51定时器/计数器程序设计,C51语言是运行于单片机上的程序语言,因此,学习C51语言必须结合单片机来进行。51系列单片机集成了多种硬件资源,这些资源均可以使用C51语言来进行控制。本章开始便介绍如何将C51程序应用于单片机上。 51系列单片机的集成了两个可编程的定时器/计数器,即定时/计数器0和1,简称T0和T1,有4种工作方式可供选择。单片机内部通过专用寄存器TMOD、TCON来设置定时/计数器工作的参数,例如方式选择、定时计数选择、运行控制、溢出标志、触发方式等控制字。本章介绍如何使用C51语言来进行定时器/计数器程序设计。,9.1 定时器/计数器简介,51系列单片机具有两个通

2、用定时器/计数器T0和T1。T0和T1都具有定时和计数两种功能,可以通过特殊功能寄存器来选择,下面分别介绍。 计数。计数功能就是对计数脉冲进行计数。其中,计数脉冲来自相应的外部输入引脚P3.4(T0)或P3.5(T1)。当该引脚的输入信号发生由高电平至低电平的负跳变时,计数器(TH0、TL0或TH1、TL0)的值增加1。 定时。定时功能是对时间进行统计。定时器/计数器的定时功能其实也是通过计数实现的,只不过,此时的计数脉冲来自于单片机的内部时钟脉冲。 除此之外,定时器/计数器T0和T1共有4种工作模式,同样可以通过特殊功能寄存器来选择。,9.1.1 定时器/计数器的结构,定时器/计数器结构如图

3、9.1所示,其核心是一个16位的加1计数器。其中,16位的定时器/计数器T0由2个8位计数器TH0和TL0构成,16位的定时器/计数器T1由2个8位计数器TH1和TL1构成。另外,寄存器TMOD主要用于指定各定时器/计数器的功能和工作模式;寄存器TCON用于控制定时器/计数器的启动和停止计数,同时也设置定时器/计数器的状态。,定时器/计数器的结构示意图,9.1.2 方式控制寄存器TMOD,TMOD寄存器用于定义T0和T1的工作方式和4种工作模式,其单元地址为89H。定时器/计数器0和1的方式控制寄存器TMOD,如图所示。其中,低4位用于控制T0,高4位用于控制T1,两部分操作和含义完全相同。下

4、面分别介绍各个控制位的含义:,方式控制寄存器TMOD,9.1.3 中断控制寄存器TCON,寄存器TCON的功能是在定时器溢出时设定标志位,并控制定时器的运行、停止和中断请求。寄存器TCON的单元地址为88H。中断控制寄存器TCON的组成,如图所示。其包含3个部分,TF1和TR1位用于控制T1,TF0和TR0位用于控制T0,其它的为中断控制。下面分别介绍各种控制位的含义,如下所示。,控制寄存器TCON,9.1.4 定时器/计数器的初值,单片机内部的定时器/计数器是加法计数,其在计数溢出时才申请中断。为了实现自定义的计数值或定时值,需要从计数最大值计算得出需要设置的初值。在不同的工作模式中,计数最

5、大值不同,可以为213、216和28。假设计数最大值为MAX,则初值X计算方法如下: 在计数方式下,X=MAX-计数值。 在定时方式下,X=MAX-定时值/T。 式中T为单片机的计数周期,也就是单片机的机器周期。 例如,当单片机的机器周期T=0.5s时,如果定时器/计数器工作于模式0,MAX=213x0.5s=4.096ms;如果定时器/计数器工作于模式1,则最大定时值为MAX=216x0.5s=32.768ms。,9.1.5 定时器/计数器的初始化,单片机的定时器/计数器是可编程控制的,在使用之前需要先通过如下步骤进行初始化: (1)指定定时器/计数器的工作模式,通过赋值TMOD寄存器来实现

6、。 (2)装入定时器/计数器的初值,通过赋值TH0、TL0或TH1、TL1来实现。 (3)启动定时器/计数器中断,通过赋值IE来实现。如果程序中不使用中断,则可以省略此步骤。 (4)启动定时器/计数器,通过置位TR0、TR1来实现。置位后,定时器/计数器将按规定的工作模式和初值进行计数或开始定时。,9.2 定时器/计数器工作模式0的C51程序设计,51系列单片机的定时器/计数器工作模式0是13位计数器,其由一个高8位(07)计数器(TH0或TH1)和一个具有32位分频的低8位计数器中的(TL0或TL1)的低5位(04)组成。,9.2.1 定时器/计数器工作模式0,在工作模式0中,定时器/计数器

7、T1和T0的组成结构与功能完全相同。当置寄存器TMOD的M1=0、M0=0时,T0和T1就工作在模式0状态。这里以T0为例进行介绍,T1的使用类似。 在工作模式0下,当TL0的低5位计数溢出时,向TH0进位,当TH0计数器溢出时,计数器清零,并向溢出控制位TF0进位置1,同时向8051 CPU发出中断请求。无论工作于计数方式还是定时方式,其运行原理都是相同的。,9.2.2 定时器/计数器模式0的程序设计,定时器/计数器模式0的程序设计可以按照前面介绍的初始化步骤来实现。假定8051单片机(或者其它兼容型号单片机)外接6MHz晶振,需要在P1.2端口输出频率为500Hz的方波,即周期为2ms。此

8、时可以采用定时器T0工作于模式0,使定时器产生1ms的定时,通过定时中断来产生P1.2端口的方波信号输出。 由于采用了6MHz的晶振,因此单片机的机器周期为126MHz=210-6s=2s。根据前面介绍的定时初值的计数方法,定时时间=1ms=110-3=(213-X)210-6,因此定时器初值X=7692=1E0CH。则根据工作模式0的特点,其为13位定时器,定时器T0的初值应该设置为TH0=0F0H,TL0=0CH。,9.3 定时器/计数器工作模式1的C51程序设计,51系列单片机的定时器/计数器工作模式1是16位计数器,其由TH0(或TH1)的高8位(07)和TL0(或TL1)的低8位(0

9、7)组成。工作模式1与模式0的区别在于计数的位数不同。,9.3.1 定时器/计数器工作模式1,在工作模式1中,定时器/计数器T1和T0的组成结构与功能完全相同。当置寄存器TMOD的M1=0、M0=1时,T0和T1就工作在模式1状态。这里以T0为例进行介绍,T1的使用类似。 在工作模式1下,当TL0的计数溢出时,向TH0进位,当TH0计数器溢出时,计数器清零,并向溢出控制位TF0进位置1,同时向8051 CPU发出中断请求。无论工作于计数方式还是定时方式,其运行原理都是相同的。,9.3.2 定时器/计数器模式1的程序设计,定时器/计数器模式1的工作原理和模式0相同,可以按照前面介绍的初始化步骤来

10、实现。假定8051单片机(或者其它兼容型号单片机)外接12MHz晶振,需要在P1.2端口输出频率为50Hz的方波,即周期为20ms。此时可以采用定时器T1工作于模式1,使定时器产生10ms的定时,通过定时中断来产生P1.2端口的方波信号输出。 由于采用了12MHz的晶振,因此单片机的机器周期为1212MHz=110-6s=1s。根据前面介绍的定时初值的计数方法,定时时间=10ms=1010-3=(216-X)110-6,因此定时器初值X=55536=D8F0H。则根据工作模式1的特点,其为16位定时器,定时器T1的初值应该设置为TH0=0D8H,TL0=0F0H。,9.4 定时器/计数器工作模

11、式2的C51程序设计,51系列单片机的定时器/计数器工作模式2是8位自动重新装入的计数器,16位计数器分成独立的2个部分,其中TH0(或TH1)作为计数初值寄存器,用于存放和保持初值,初值在程序中设置。,9.4.1 定时器/计数器工作模式2,在工作模式2中,定时器/计数器T1和T0的组成结构与功能完全相同。当置寄存器TMOD的M1=1、M0=0时,T0和T1就工作在模式2状态。这里以T0为例进行介绍,T1的使用类似。 模式2具有使8位计数器TL0(或TL1)自动重装初值的功能,在程序初始化时,为TH0、TL0赋同样的初值,此后TL0每次溢出都由TH0重新装入初值。在这个过程中,不会丢失计数信号

12、,且重新再装入也不会影响TH0中存放的初值。 装入初值并启动定时/计数器后,TL0按加法计数器工作,当TL0溢出时,使溢出标志位TF0进位置1,并选通三态门,将TH0存放的初值重新装入到TL0中,使TL0从初值开始继续下一轮的计数,如此循环下去。作为额外的用途,溢出信号还将送到串行通信系统,设置并产生串行通信波特率。,9.4.2 定时器/计数器模式2的程序设计,定时器/计数器模式2是自动重装载模式,在这种模式下,计数器初值只需设置1次,在定时器溢出后不用软件重新设置,硬件会自动复位。工作模式2常作为串行口波特率发生器使用。这里假设单片机外接11.0592MHz晶振,使用工作于模式2的定时器/计

13、数器T1作为串行通信的波特率发生器。,9.5 定时器/计数器工作模式3的C51程序设计,51系列单片机的定时器/计数器工作模式3是将16位计数器分成2个相互独立的8位计数器TL0和TH0。,9.5.1 定时器/计数器工作模式3,在工作模式0中,当置定时器/计数器T0寄存器TMOD的M1=1、M0=1时,T0就工作在模式0状态。定时器/计数器的工作模式3只适用于T0。对于T1,设置为模式3时,相当于使TR1=0,使其停止计数,没有什么实际意义。 在工作模式3下,TL0使用了T0的状态控制位C/、GATE、TR0、和TF0。其操作情况与模式0和模式1相同,即可以按计数方式工作,也可以按定时方式工作

14、。在定时器工作方式下,其定时时间=(28-T0初值)时钟周期12。,9.5.2 定时器/计数器模式3的程序设计,定时器/计数器模式3中,TH0和TL0分别作为两个独立的8位定时器使用,其程序设计可以按照前面介绍的初始化步骤来实现。假定8051单片机(或者其它兼容型号单片机)外接6MHz晶振,需要在P1.0端口和P1.1端口输出如图9.4所示的波形。从图中可以看出,P1.0引脚的方波周期为400s,P1.1引脚的方波周期为800s。程序中可以采用TL0和TH0产生200s和400s的定时中断,并在中断服务例程中对P1.0引脚和P1.1引脚取反而得到。 由于采用了6MHz的晶振,因此单片机的机器周期为126MHz=210-6s=2s。根据前面介绍的定时初值的计数方法,定时时间=200s =20010-6=(28-X)210-6,因此定时器TL0的初值为X=156=9CH。同样,定时时间=400s =40010-6=(28-X)210-6,因此定时器TL0的初值为X=56=38H。,9.6 小结,本章详细讲述了51系列单片机的定时器/计数器的结构,控制寄存器以及4种工作模式,并结合每一种工作模式给出了详细的程序设计方法和实例。定时器/计数器是单片机的一个非常有用的功能,熟练掌握本章内容,对以后的C51单片机程序设计有很大帮助。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号