收藏 分销(赏)

第9章C51定时器.ppt

上传人:xrp****65 文档编号:13743536 上传时间:2026-04-08 格式:PPT 页数:20 大小:237.50KB 下载积分:10 金币
下载 相关 举报
第9章C51定时器.ppt_第1页
第1页 / 共20页
第9章C51定时器.ppt_第2页
第2页 / 共20页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,9,章,C51,定时器,/,计数器程序设计,C51,语言是运行于单片机上的程序语言,因此,学习,C51,语言必须结合单片机来进行。,51,系列单片机集成了多种硬件资源,这些资源均可以使用,C51,语言来进行控制。本章开始便介绍如何将,C51,程序应用于单片机上。,51,系列单片机的集成了两个可编程的定时器,/,计数器,即定时,/,计数器,0,和,1,,简称,T0,和,T1,,有,4,种工作方式可供选择。单片机内部通过专用寄存器,TMOD,、,TCON,来设置定时,/,计数器工作的参数,例如方式选择、定时计数选择、运行控制、溢出标志、触发方式等控制字。本章介绍如何使用,C51,语言来进行定时器,/,计数器程序设计。,9.1,定时器,/,计数器,简介,51,系列单片机具有两个通用定时器,/,计数器,T0,和,T1,。,T0,和,T1,都具有定时和计数两种功能,可以通过特殊功能寄存器来选择,下面分别介绍。,计数。计数功能就是对计数脉冲进行计数。其中,计数脉冲来自相应的外部输入引脚,P3.4,(,T0,)或,P3.5,(,T1,)。当该引脚的输入信号发生由高电平至低电平的负跳变时,计数器(,TH0,、,TL0,或,TH1,、,TL0,)的值增加,1,。,定时。定时功能是对时间进行统计。定时器,/,计数器的定时功能其实也是通过计数实现的,只不过,此时的计数脉冲来自于单片机的内部时钟脉冲。,除此之外,定时器,/,计数器,T0,和,T1,共有,4,种工作模式,同样可以通过特殊功能寄存器来选择。,9.1.1,定时器,/,计数器的结构,定时器,/,计数器结构如图,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,,两部分操作和含义完全相同。下面分别介绍各个控制位的含义:,方式控制寄存器,TMOD,9.1.3,中断控制寄存器,TCON,寄存器,TCON,的功能是在定时器溢出时设定标志位,并控制定时器的运行、停止和中断请求。寄存器,TCON,的单元地址为,88H,。中断控制寄存器,TCON,的组成,如图所示。其包含,3,个部分,,TF1,和,TR1,位用于控制,T1,,,TF0,和,TR0,位用于控制,T0,,其它的为中断控制。下面分别介绍各种控制位的含义,如下所示。,控制寄存器,TCON,9.1.4,定时器,/,计数器的初值,单片机内部的定时器,/,计数器是加法计数,其在计数溢出时才申请中断。为了实现自定义的计数值或定时值,需要从计数最大值计算得出需要设置的初值。在不同的工作模式中,计数最大值不同,可以为,2,13,、,2,16,和,2,8,。假设计数最大值为,MAX,,则初值,X,计算方法如下:,在计数方式下,,X=MAX-,计数值。,在定时方式下,,X=MAX-,定时值,/T,。,式中,T,为单片机的计数周期,也就是单片机的机器周期。,例如,当单片机的机器周期,T=0.5s,时,如果定时器,/,计数器工作于模式,0,,,MAX=2,13,x0.5s=4.096ms,;如果定时器,/,计数器工作于模式,1,,则最大定时值为,MAX=2,16,x0.5s=32.768ms,。,9.1.5,定时器,/,计数器的初始化,单片机的定时器,/,计数器是可编程控制的,在使用之前需要先通过如下步骤进行初始化:,(,1,)指定定时器,/,计数器的工作模式,通过赋值,TMOD,寄存器来实现。,(,2,)装入定时器,/,计数器的初值,通过赋值,TH0,、,TL0,或,TH1,、,TL1,来实现。,(,3,)启动定时器,/,计数器中断,通过赋值,IE,来实现。如果程序中不使用中断,则可以省略此步骤。,(,4,)启动定时器,/,计数器,通过置位,TR0,、,TR1,来实现。置位后,定时器,/,计数器将按规定的工作模式和初值进行计数或开始定时。,9.2,定时器,/,计数器工作模式,0,的,C51,程序设计,51,系列单片机的定时器,/,计数器工作模式,0,是,13,位计数器,其由一个高,8,位(,0,7,)计数器(,TH0,或,TH1,)和一个具有,32,位分频的低,8,位计数器中的(,TL0,或,TL1,)的低,5,位(,0,4,)组成。,9.2.1,定时器,/,计数器工作模式,0,在工作模式,0,中,定时器,/,计数器,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,。此时可以采用定时器,T0,工作于模式,0,,使定时器产生,1ms,的定时,通过定时中断来产生,P1.2,端口的方波信号输出。,由于采用了,6MHz,的晶振,因此单片机的机器周期为,126MHz=210,-6,s=2s,。根据前面介绍的定时初值的计数方法,定时时间,=1ms=110,-3,=,(,2,13,-X,),210,-6,,因此定时器初值,X=7692=1E0CH,。则根据工作模式,0,的特点,其为,13,位定时器,定时器,T0,的初值应该设置为,TH0=0F0H,,,TL0=0CH,。,9.3,定时器,/,计数器工作模式,1,的,C51,程序设计,51,系列单片机的定时器,/,计数器工作模式,1,是,16,位计数器,其由,TH0,(或,TH1,)的高,8,位(,0,7,)和,TL0,(或,TL1,)的低,8,位(,0,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,相同,可以按照前面介绍的初始化步骤来实现。假定,8051,单片机(或者其它兼容型号单片机)外接,12MHz,晶振,需要在,P1.2,端口输出频率为,50Hz,的方波,即周期为,20ms,。此时可以采用定时器,T1,工作于模式,1,,使定时器产生,10ms,的定时,通过定时中断来产生,P1.2,端口的方波信号输出。,由于采用了,12MHz,的晶振,因此单片机的机器周期为,1212MHz=110,-6,s=1s,。根据前面介绍的定时初值的计数方法,定时时间,=10ms=1010,-3,=,(,2,16,-X,),110,-6,,因此定时器初值,X=55536=D8F0H,。则根据工作模式,1,的特点,其为,16,位定时器,定时器,T1,的初值应该设置为,TH0=0D8H,,,TL0=0F0H,。,9.4,定时器,/,计数器工作模式,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,重新装入初值。在这个过程中,不会丢失计数信号,且重新再装入也不会影响,TH0,中存放的初值。,装入初值并启动定时,/,计数器后,,TL0,按加法计数器工作,当,TL0,溢出时,使溢出标志位,TF0,进位置,1,,并选通三态门,将,TH0,存放的初值重新装入到,TL0,中,使,TL0,从初值开始继续下一轮的计数,如此循环下去。作为额外的用途,溢出信号还将送到串行通信系统,设置并产生串行通信波特率。,9.4.2,定时器,/,计数器模式,2,的,程序设计,定时器,/,计数器模式,2,是自动重装载模式,在这种模式下,计数器初值只需设置,1,次,在定时器溢出后不用软件重新设置,硬件会自动复位。工作模式,2,常作为串行口波特率发生器使用。这里假设单片机外接,11.0592MHz,晶振,使用工作于模式,2,的定时器,/,计数器,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,相同,即可以按计数方式工作,也可以按定时方式工作。在定时器工作方式下,其定时时间,=,(,2,8,-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,-6,s=2s,。根据前面介绍的定时初值的计数方法,定时时间,=200s=20010,-6,=,(,2,8,-X,),210,-6,,因此定时器,TL0,的初值为,X=156=9CH,。同样,定时时间,=400s=40010,-6,=,(,2,8,-X,),210,-6,,因此定时器,TL0,的初值为,X=56=38H,。,9.6,小结,本章详细讲述了,51,系列单片机的定时器,/,计数器的结构,控制寄存器以及,4,种工作模式,并结合每一种工作模式给出了详细的程序设计方法和实例。定时器,/,计数器是单片机的一个非常有用的功能,熟练掌握本章内容,对以后的,C51,单片机程序设计有很大帮助。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服