资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,4,章,MCS-51,单片机内部接口电路,(定时器),1,1.,定时器,/,计数器的 结构与原理,1.1,定时器,/,计数器的结构,1.2,定时器,/,计数器的原理,1.3,定时器,/,计数器的功能,2,1.1,定时器,/,计数器的结构,8051,单片机内部设有,两个,16,位可编程定时器,/,计数器,,简称为定时器,0(,T0,),和定时器,1(,T1,),。,16,位的定时器,/,计数器分别由,两个,8,位寄存器,组成,即:,T0,由,TH0,和,TL0,构成,,T1,由,TH1,和,TL1,构成。每个寄存器均可单独访问,这些寄存器是用于存放定时初值或计数初值的。,有一个,8,位的定时器,方式寄存器,TMOD,和一个,8,位的定时器,控制寄存器,TCON,。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的,定时器,/,计数器的工作方式、定时时间和启停控制通过由指令来确定这些寄存器的状态来实现。,TMOD,主要用于设定,定时器的工作方式,,,TCON,主要用于控制,定时器的启动与停止,,并保存,T0,、,T1,的,溢出和中断标志,。,3,1.1,定时器,/,计数器的结构,定时器,/,计数器结构框图,4,1.2,定时器,/,计数器的原理,16,位的定时器,/,计数器实质上是一个加,l,计数器,可实现,定时和计数两种功能,,其功能由软件控制和切换。定时器属硬件定时和计数,是单片机中效率高而且工作灵活的部件。,在定时器,/,计数器开始工作之前,,CPU,必须将一些命令,(,称为控制字,),写入定时器,/,计数器。将控制字写入定时器,/,计数器的过程叫,定时器,/,计数器的初始化,。,在初始化程序中,要将,工作方式控制字,写入定时器方式寄存器,(TMOD),,,工作状态控制字,(,或相关位,),写入定时器控制寄存器,(TCON),,赋,定时,/,计数初值,给,TH0(TH1),和,TL0(TL1),。,5,1.2,定时器,/,计数器的原理,定时器,/,计数器的,定时功能,。,计数器的加,1,信号由振荡器的,12,分频信号产生,即,每过一个机器周期,计数器加,1,,直至计满溢出。,定时器的定时时间与系统的时钟频率有关。因一个机器周期等于,12,个时钟周期,所以,计数频率应为系统时钟频率的十二分之一,。如果晶振频率为,12MHz,,则机器周期为,1,s,。通过改变定时器的定时初值,并适当选择定时器的长度,(8,位、,13,位或,16,位,),,可以调整定时时间。,6,1.2,定时器,/,计数器的原理,定时器,/,计数器的,计数功能,。,通过外部计数,输入引脚,T0(P3.4),和,T1(P3.5),对外部信号计数,,外部脉冲的,下降沿,将触发计数。计数器在每个机器周期的,S5P2,期间采样引脚输入电平,若一个机器周期,S5P2,期间采样值为,1,,下一个机器周期,S5P2,期间采样值为,0,,则计数器加,1,,再下一个机器周期,S3P1,期间,新的计数值装入计数器。,因检测一个由,1,至,0,的跳变需要两个机器周期,故,外部信号的最高计数频率为时钟频率的,二十四分之一,。如果晶振频率为,12MHz,,则最高计数频率为,0.5MHz,。虽然对外部输入信号的占空比无特殊要求,但为了确保给定电平在变化前至少被采样一次,,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上,。,7,1.3,定时器,/,计数器的功能,定时器,/,计数器具有定时和计数两种功能,应用范围如下。,1.,定时与延时控制方面,可产生定时中断信号,以设计出各种不同频率的信号源;产生定时扫描信号,对键盘进行扫描以获得控制信号,对显示器进行扫描以不间断地显示数据。,2.,测量外部脉冲方面,对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也可实现自动计数。,3.,监控系统工作方面,对系统进行定时扫描,当系统工作异常时,使系统自动复位,重新启动以恢复正常工作。,8,2,定时器,/,计数器的控制,2.1,定时器方式寄存器,TMOD,2.2,定时器控制寄存器,TCON,9,2.1,定时器方式寄存器,TMOD,定时器方式寄存器,TMOD,的作用是设置,T0,、,T1,的工作方式。,TMOD,的格式:,各位的功能说明:,(1),GATE,:,门控位,。,GATE=0,:,软件启动定时器,,即用指令使,TCON,中的,TR1(TR0),置,1,即可启动定时器,1(,定时器,0),。,GATE=1,:,软件和硬件共同启动定时器,,即用指令使,TCON,中的,TR1(TR0),置,1,时,只有外部中断,INT0(INT1),引脚输入高电平时才能启动定时器,1(,定时器,0),。,10,2.1,定时器方式寄存器,TMOD,(2),C/T,:,功能选择位,。,C/T=0,时,以定时器方式工作。,C/T=1,时,以计数器方式工作。,(3),M1,、,M0,:,方式选择位,。,定时器工作方式选择位定义,自动重装初值,8,位,计数器,方式,2,1 0,定时器,0,:分为两个独立的,8,位,计数器,定时器,1,:无中断的,计数器,方式,3,1 1,16,位,计数器,方式,1,0 1,13,位,计数器,方式,0,0 0,功能描述,工作方式,M1 M0,11,2.2,定时器控制寄存器,TCON,定时器控制寄存器,TCON,的作用是,控制定时器的启动与停止,并保存,T0,、,T1,的溢出和中断标志,。,TCON,的格式,:,各位的功能说明:,(1),TF1,(TCON.7),:,定时器,1,溢出标志位,。当定时器,1,计满溢出时,由硬件自动使,TF1,置,1,,并申请中断。对该标志位有两种处理方法,一种是以,中断,方式工作,即,TF1,置,1,并申请中断,响应中断后,执行中断服务程序,并由硬件自动使,TF1,清,0,;另一种以,查询,方式工作,即通过查询该位是否为,1,来判断是否溢出,,TF1,置,1,后必须用软件使,TF1,清,0,。,12,2.2,定时器控制寄存器,TCON,各位的功能说明:,(2),TR1,(TCON.6),:,定时器,1,启停控制位,。,GATE=0,时,用软件使,TR1,置,1,即启动定时器,1,,若用软件使,TR1,清,0,则停止定时器,1,。,GATE=1,时,用软件使,TR1,置,1,的同时外部中断,INT1,的引脚输入高电平才能启动定时器,1,。,(3),TF0,(TCON.5),:,定时器,0,溢出标志位,。其功能同,TF1,。,(4),TR0,(TCON.4),:,定时器,0,启停控制位,。其功能同,TR1,。,(5),IE1,(TCON.3),:,外部中断,1,请求标志位,。,(6),IT1,(TCON.2),:,外部中断,1,触发方式选择位,。,(7),IE0,(TCON.1),:,外部中断,0,请求标志位,。,(8),IT0,(TCON.0),:,外部中断,0,触发方式选择位,。,13,3,定时器,/,计数器的四种 工作方式及应用,3.1,定时器,/,计数器的初始化,3.2,方式,0,及应用实例,3.3,方式,1,及应用实例,3.4,方式,2,及应用实例,3.5,方式,3,14,3.1,定时器,/,计数器的初始化,1.,定时器,/,计数器的初始化步骤,定时器,/,计数器是一种可编程部件,在使用定时器,/,计数器前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下。,(1),确定定时器,/,计数器的,工作方式,,确定方式控制字,并写入,TMOD,。,(2),预置定时初值或计数,初值,,根据定时时间或计数次数,计算定时初值或计数初值,并写入,TH0,、,TL0,或,TH1,、,TL1,。,(3),根据需要,开放定时器,/,计数器的中断,,给,IE,中的相关位赋值。,(4),启动,定时器,/,计数器,给,TCON,中的,TR1,或,TR0,置,1,。,15,3.1,定时器,/,计数器的初始化,2.,定时初值或计数初值的计算方法,不同工作方式的定时初值或计数初值的计算方法如下表所示,表中,T,表示定时时间,,T,机,表示机器周期。,X,=2,8,-,计数值,X,=2,8,-,T,/,T,机,2,8,T,机,2,8,=256,8,方式,2,X,=2,16,-,计数值,X,=2,16,-,T,/,T,机,2,16,T,机,2,16,=65536,16,方式,1,X,=2,13,-,计数值,X,=2,13,-,T,/,T,机,2,13,T,机,2,13,=8192,13,方式,0,计数初值计算公式,定时初值计算公式,最大定时时间,最大计数值,计数位数,工作方式,16,定时器,/,计数器,0,方式,0,逻辑结构,C/T,C/T,在方式,0,下,以定时器,0,为例,定时器,/,计数器是一个由,TH0,中的,8,位和,TL0,中的低,5,位组成的,13,位加,1,计数器,(TL0,中的高,3,位不用,),;若,TL0,中的第,5,位有进位,直接进到,TH0,中的最低位。定时器,/,计数器,0,方式,0,逻辑结构如下图所示。,3.1,定时器,/,计数器的初始化,17,3.1,定时器,/,计数器的初始化,【,例,1】,用定时器,0,方式,0,,定时,5ms,,以中断方式工作,进行程序初始化设计,晶振频率为,6MHz,。,解:用定时器,0,方式,0,时,定时器,/,计数器方式寄存器,TMOD,低,4,位中的,M1M0,应取,00,;可设定为软件启动定时器,故,GATE,取,0,;因用定时功能,,C/T,取,0,;定时器方式寄存器,TMOD,高,4,位为无关位,一般都取,0,,所以,TMOD,应为,00H,。,晶振频率为,6MHz,,,T,机,=12/,f,osc,=12/(6,106)=2,s,定时初值,X,=2,13,-,T,/,T,机,=2,13,-5,1000/2=8192-2500=5692,=163CH=1011000111100B,因,TL0,的高,3,位未用,对计算出的定时初值,X,要进行修正,即在低,5,位前插入,3,个,0,,修正后的定时初值,X=10110001,000,11100B=B11CH,18,3.1,定时器,/,计数器的初始化,定时器以中断方式工作,故将中断总允许位,EA,和定时器,0,的中断允许位,ET0,置,1,。,参考程序:,;,启动,定时器,0,SETB TR0,D2 8C,;,开放定时器,0,的中断允许位,SETB ET0,D2 A9,;,开放中断总允许位,SETB EA,D2 AF,;,定时初值,的,低,8,位,MOV TL0,#1CH,75 8A 1C,;,定时初值,的,高,8,位,MOV TH0,#0B1H,75 8C B1,;,置,定时,器,0,为工作方式,0,MOV TMOD,#00H,75 89 00,19,3.2,方式,0,及应用实例,【,例,2】,在,P1.0,输出周期为,1 ms(,频率,1kHz),的方波,采用定时器,1,方式,0,设计程序,晶振频率为,12MHz,。,解:根据题意,只要使,P1.0,每隔,500,s,取反一次即可得到周期,1 ms,的方波,因而,T1,的,定时时间为,500,s,。,用定时器,1,方式,0,时,定时器,/,计数器方式寄存器,TMOD,高,4,位中的,M1M0,应取,00,;可设定为软件启动定时器,故,GATE,取,0,;因为用定时功能,,C/T,取,0,;定时器方式寄存器,TMOD,低,4,位为无关位,一般都取,0,,所以,TMOD,应为,00H,。,晶振频率为,12MHz,,,T,机,=12/,f,osc,=12/(12,106)=1,s,定时初值,X,=213-,T,/,T,机,=213-500/1=8192-500=7692,=1E0CH=1111000001100B,因,TL1,的高,3,位未用,对计算出的定时初值,X,要进行修正,即在低,5,位前插
展开阅读全文