1、单片机原理与接口应用单片机原理与接口应用 MCS51 80518051单片机片内有二个十六位定时器计单片机片内有二个十六位定时器计数器:定时器数器:定时器0(T0)0(T0)和定时器和定时器1(1(T1)T1)。都有定时或事件计数的功能,可用于定时控都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。制、延时、对外部事件计数和检测等场合。 2 2个个1616位定时器实际上都是位定时器实际上都是1616位加位加1 1计数器。计数器。T0T0由由2 2个个8 8位持殊功能寄存器位持殊功能寄存器TH0TH0和和TL0TL0构成,构成,T1T1由由TH1TH1和和TL1TL1构
2、成。构成。每个定时器都可由软件设置为定时工作方式每个定时器都可由软件设置为定时工作方式或计数工作方式。或计数工作方式。这些功能都由特殊功能寄存器这些功能都由特殊功能寄存器TMODTMOD设置和设置和TCONTCON所控制。所控制。 设置为定时工作方式时,定时器计数的设置为定时工作方式时,定时器计数的脉冲是由脉冲是由8051片内振荡器输出经片内振荡器输出经12分频分频后产生的。后产生的。 每个机器周期使定时器每个机器周期使定时器(T0或或T1)的数值的数值加加1直至计计数满产生溢出。直至计计数满产生溢出。如:当如:当8051采用采用12MHz晶体时,每个机器晶体时,每个机器周期为周期为1s,计数
3、额率为,计数额率为1MHz。 设置为计数工作方式时,通过引脚设置为计数工作方式时,通过引脚T0(P34)和和T1(P35)对外部脉冲信号计数。对外部脉冲信号计数。当输入脉冲信号产生由当输入脉冲信号产生由1至至0的下降沿时,定时器的下降沿时,定时器的值加的值加1, 在每个机器周期的在每个机器周期的S5P2期间采样期间采样T0和和T1的输的输入电平。若前一个机器周期采样值为入电平。若前一个机器周期采样值为1,下一个,下一个机器周期采样值为机器周期采样值为0,则计数器加,则计数器加1。此后的机器。此后的机器周期周期S3P1期间,新的数值装入计数器。期间,新的数值装入计数器。检测一个检测一个1至至0的
4、跳变需要二个机器周期,故最高的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。计数频率为振荡频率的二十四分之一。 虽然对输入信号虽然对输入信号的占空比无特殊的占空比无特殊要求,但为了确要求,但为了确保某个电平在变保某个电平在变化之前至少被采化之前至少被采样一次,要求电样一次,要求电平保持时间至少平保持时间至少是一个完整的机是一个完整的机器周期。器周期。不管是定时工作方式还是计数方式,定时器不管是定时工作方式还是计数方式,定时器T0T0或或T1T1在对内部时钟或对外部事件计数时,在对内部时钟或对外部事件计数时,不占用不占用CPUCPU的时间,除非定时器计数器溢的时间,除非定时器计数
5、器溢出,才可能中断出,才可能中断CPUCPU的当前操作。的当前操作。由此可见,定时器是单片机中效率高而且工由此可见,定时器是单片机中效率高而且工作灵活的部件。作灵活的部件。 除了可以选择定时器或计数器工作方式外,除了可以选择定时器或计数器工作方式外,每个定时器计数器还有四种工作模式,也每个定时器计数器还有四种工作模式,也就是每个定时器可构成四种电路结构模式。就是每个定时器可构成四种电路结构模式。其中,模式其中,模式0一模式一模式2对对T0和和T1是一样的,模是一样的,模式式3对两者是不同的。对两者是不同的。 定时器共有两个控制字:定时器共有两个控制字: 定时器控制寄存器定时器控制寄存器TCON
6、(88H) 定时器工作模式寄存器定时器工作模式寄存器TMOD(89H)由软件写入由软件写入TMOD和和TCON两个八位寄存器,两个八位寄存器,用来设置用来设置T0或或T1的工作模式和控制功能。的工作模式和控制功能。定时器控制寄存器定时器控制寄存器TCON除可字节寻址外,除可字节寻址外,各位还可位寻址各位还可位寻址当当8051系统复位时两个寄存器都被清系统复位时两个寄存器都被清0。 TMOD用于控制用于控制T0和和T1的操作模式。其各的操作模式。其各位的定义格式如下:位的定义格式如下: 定时器定时器T1 定时器定时器T0 TMOD D7D6D5D4 D3D2D1 D0 (89H)GATE C/T
7、 M1 M0GATE C/TM1 M0 M1 M0工作方式工作方式功能描述功能描述 0 0 模式模式0 13位计数器位计数器 0 1 模式模式1 16位计数器位计数器 1 0 模式模式2 自动再装入自动再装入8位计数器位计数器 1 1 模式模式3 T0:分成两个:分成两个8位计数器位计数器T1:停止计数:停止计数 C/T C/T0 0,设置为定时方式。,设置为定时方式。 定时器计数定时器计数 805l805l片内脉冲,亦即对片内脉冲,亦即对机器周期计数。机器周期计数。 C/TC/T1 1,设置为计数方式,设置为计数方式, 计数器的输入是来自计数器的输入是来自T0(P3T0(P34)4)或或Tl
8、Tl(P3.5)(P3.5)端的外部脉冲。端的外部脉冲。 GATEGATE0 0时,只要用软件使时,只要用软件使TR0(TR0(或或TRlTRl) )置置1 1就就启动了定时器,而不管启动了定时器,而不管INT0(INT0(或或INT1)INT1)的电平的电平是高还是低。是高还是低。GATEGATEl l时,只有当时,只有当INT0(INT0(或或INT1)INT1)引脚为高电引脚为高电平且由软件使平且由软件使TR0(TR0(或或TRlTRl) )置置1 1时,才能启动时,才能启动定时器工作。定时器工作。TMOD不能位寻址,只能用字节设置定时器工不能位寻址,只能用字节设置定时器工作方式作方式;
9、 低半字节设定低半字节设定T0,高半字节设定,高半字节设定T1。 TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H (88H) (88H) TF1 TR1 TF0 TR0TF1 TR1 TF0 TR0 IE1 IT1 IE1 IT1 IE0 IT0 IE0 IT0 TCONTCON各位的作用如下:各位的作用如下: TF1TF1: T1T1溢出标志位。当溢出标志位。当T1T1溢出时由硬件自动使中断触溢出时由硬件自动使中断触发器发器TF1TF1置置1 1,并向,并向CPUCPU申请中断。当申请中断。当
10、CPUCPU响应进入中响应进入中断服务程序后,断服务程序后,TF1TF1又被硬件自动清又被硬件自动清0 0。TF1TF1也可以用软也可以用软件清件清0 0。 TF0:TF0: T0 T0溢出标志位。其功能和操作情况如溢出标志位。其功能和操作情况如TF1TF1。 TR1:TR1: T1 T1运行控制位。可由软件置运行控制位。可由软件置1 1或清或清0 0来启动或关闭来启动或关闭T1T1。指令。指令( (SETB TRlSETB TRl) )使使TR1TR1位置位置1 1,定时器,定时器T1T1便开始计便开始计数。数。 TR0:TR0: T0 T0运行控制位。其功能及操作情况同运行控制位。其功能及
11、操作情况同TRlTRl。 8051复位时,复位时,TCON的所有位被清的所有位被清0。 8051 8051单片机的定时器计数器单片机的定时器计数器T0T0和和T1T1可由可由软件对特殊功能寄存器软件对特殊功能寄存器TMODTMOD中控制位中控制位 C CT T的设置,以选择定时功能或计数功能。的设置,以选择定时功能或计数功能。对对M1M1、M0M0位的设置,可选择四种工作模式,位的设置,可选择四种工作模式,即模式即模式0 0、模式、模式1 1、模式、模式2 2和模式和模式3 3。在模式在模式0 0、I I和和2 2时,时,T0T0与与T1T1的工作模式相同;的工作模式相同;在模式在模式3 3时
12、,两个定时器的工作模式不同。时,两个定时器的工作模式不同。 模式模式0是选择定时器是选择定时器(T0或或T1)高高8位加低位加低5位的位的个个13位定时器计数器。位定时器计数器。 在这种模式下,在这种模式下,1616寄存器寄存器(TH0(TH0和和TL0)TL0)只只用用1313位,其中位,其中TL0TL0的高的高3 3位末用,其余位位末用,其余位占整个占整个1313位的低位的低5 5位,位,TH0TH0占高占高8 8位。位。当当TL0TL0的低的低5 5位溢出时向位溢出时向TH0TH0进位而进位而TH0TH0溢出时向中断标志位溢出时向中断标志位TF0TF0进位进位( (硬件置位硬件置位TF0
13、)TF0),并申请中断。,并申请中断。 T0T0溢出否可查询溢出否可查询TF0TF0是否置位,以产生是否置位,以产生T0T0中断。中断。 C/T C/T0 0时,控制开关接通振荡器十二分时,控制开关接通振荡器十二分频输出端,就是定时工作方式。其定时频输出端,就是定时工作方式。其定时时间为:时间为: t t(2(21313一一T0T0初值初值) )振荡周期振荡周期1212 当当C/T1时,控制开关使引脚时,控制开关使引脚T0(P34)与与13位计数器相连,外部计数脉冲由引位计数器相连,外部计数脉冲由引脚脚T0P34输入,当外部信号电平输入,当外部信号电平发生发生“1”到到“0”跳变时计数器加跳变
14、时计数器加1,这,这时,时,T0成为外部事件计数器。这就是计成为外部事件计数器。这就是计数工作方式。数工作方式。 GATE GATE0 0时,使或门输出时,使或门输出A A点电位为常点电位为常“1”1”,或门,或门被封锁,于是,引脚被封锁,于是,引脚INT0INT0输入信号无效。这时或门输入信号无效。这时或门输出的常输出的常“1”1”打开与门,打开与门,B B点电位取决于点电位取决于TR0TR0状态,状态,于是由于是由TR0TR0一位就可控制计数开关一位就可控制计数开关K K开启或关断开启或关断T0T0。 若软件使若软件使TR0TR0置置1 1,便接通计数开关,便接通计数开关K K,启动,启动
15、T0T0在在原值上加原值上加1 1计数,直至溢出。溢出时,计数,直至溢出。溢出时,1313位寄存器位寄存器清清0 0,TF0TF0置置位,并申请中断,位,并申请中断,T0T0仍从仍从0 0重新开始计重新开始计数。数。 若若TR0TR00 0。则关断计数开关。则关断计数开关K K,停止计数。,停止计数。 当当GATE =1时,时,A点电位取决于点电位取决于(P3.4)引脚的输入电引脚的输入电平。仅当平。仅当(P3.4)输入高电平时输入高电平时TR0l时,时,B点才是高点才是高电平,计数开关电平,计数开关K闭合闭合T0开始计数,当开始计数,当INT0由由1变变0时,时,T0停止计数。这一特性可以用
16、来测量在停止计数。这一特性可以用来测量在(P3.4)端出现的正脉冲的宽度。端出现的正脉冲的宽度。 该模式是一个该模式是一个1616位定时器计数器。位定时器计数器。 其结构与操作几乎与模式其结构与操作几乎与模式0 0完全相同,唯完全相同,唯一的差别是:在模式一的差别是:在模式1 1中,寄存器中,寄存器TH0TH0和和TL0TL0是以全是以全1616位参与操作,位参与操作,用于定时工作方式时,定时时间为:用于定时工作方式时,定时时间为: t(216一T0初值) 时钟周期12 用于计数工作方式时,计数长度为用于计数工作方式时,计数长度为21665536(个外部脉冲个外部脉冲) 模式模式2 2把把T0
17、(T0(或或T1)T1)配置成配置成个可以自动重个可以自动重装载的装载的8 8位定时器计数器。位定时器计数器。 TL0TL0计数溢出时,不仅使溢出中断标志计数溢出时,不仅使溢出中断标志位位TF0TF0置置1 1,而且还自动把,而且还自动把TH0TH0中的内容中的内容重装载到重装载到TL0TL0中。中。这时这时1616位的计数器被拆成两个位的计数器被拆成两个8 8位;位; TL0TL0用作用作8 8位计数器,位计数器,TH0TH0用以保持初值。用以保持初值。 在程序初始化时,在程序初始化时,TL0TL0和和TH0TH0由软件赋予相同由软件赋予相同的初值。的初值。旦旦TL0TL0计数溢出,置位计数
18、溢出,置位TF0TF0,并将,并将TH0TH0中的初中的初值再自动装入值再自动装入TL0TL0,继续计数,循环重复。,继续计数,循环重复。用于定时器工作方式时,其定时时间用于定时器工作方式时,其定时时间(TF0(TF0溢出溢出周期周期) )为;为; t t(2(28 8TH0TH0初值初值) )振荡周期振荡周期1212用于计数器工作方式时,最大计数长度(用于计数器工作方式时,最大计数长度(TH0TH0初值初值0 0)为:)为: 2 28 8256(256(个外部脉冲个外部脉冲) )。 这种工作方式可省去用户软件中重装常数的这种工作方式可省去用户软件中重装常数的程序,并可产生相当精度的定时时间。
19、特别适程序,并可产生相当精度的定时时间。特别适用作串行口波待率发生器。用作串行口波待率发生器。 操作模式操作模式3 3对对T0T0和和T1T1是大不相同的。是大不相同的。 若将若将T0设置为模式设置为模式3,TL0和和TH0被分成为两个互被分成为两个互相独立的相独立的8位计数器。位计数器。 其中其中TL0TL0用原用原T0T0的各控制位、引脚和中断源。的各控制位、引脚和中断源。即即C CT T、GATEGATE、TR0TR0、TF0TF0和和T0 (P3T0 (P34)4)引脚、引脚、 (P3(P32)2)引脚。引脚。 TL0TL0除仅用除仅用8 8位寄存器外,其功能和操作与模式位寄存器外,其
20、功能和操作与模式0(130(13位计数器位计数器) )、模式、模式1(161(16位计数器位计数器) )完全相同。完全相同。 TL0TL0也可工作为定时器方式或计数器方式。也可工作为定时器方式或计数器方式。 TH0TH0只可用作简单的内部定时功能,它占用了定只可用作简单的内部定时功能,它占用了定时器时器T1T1的控制位的控制位TR1TR1和和T1T1的中断标志位的中断标志位TF1TF1,其启,其启动和关闭仅受动和关闭仅受TRlTRl的控制。的控制。 定时器定时器T1无操作模式无操作模式3状态。状态。 例例1:假设利用定时器假设利用定时器T0T0模式模式1 1产生一个产生一个50Hz50Hz的方
21、波,由的方波,由P1P10 0输出,采用输出,采用12MHz12MHz时钟时钟定时器,定时器,CPU不作其它工作。不作其它工作。定时器不作其它工作,因而可以采用查询定时器不作其它工作,因而可以采用查询的方式进行控制。初值可由下式算得:的方式进行控制。初值可由下式算得: (2(21616一一x)x)1 11010-6-6(1/501/50)(1/21/2) 得:得:x555360D8F0H。 MOVMOVTMOD,#01HTMOD,#01H; ;定时器定时器T0T0模式模式0 0SETBSETBTR0TR0; ;启动启动T0T0L0:L0:MOVMOVTH0,#0D8HTH0,#0D8H; ;置
22、初值置初值 MOVMOVTL0,#0F0HTL0,#0F0H; ;L1:L1:JNBJNBTF0,L1TF0,L1; ;等待溢出等待溢出CLRCLRTF0TF0; ;清标志清标志CPLCPLP1.0P1.0; ;取反取反SJMPSJMPL0L0 门控制位门控制位GATE使定时器计数器使定时器计数器T1的的启动计数受启动计数受INT1的控制;的控制; 当当GATE为为1,TR1为为1时,只有时,只有INT1引引脚输入高电平时,脚输入高电平时,T1才允许计数,才允许计数, 利用利用GATE的这个功能,可测试的这个功能,可测试INT1引引脚脚(P33)上正脉冲的宽度上正脉冲的宽度(机器周期数机器周期数) MOV MOV TMOD,#90HTMOD,#90H; ;定时器定时器T1T1模式模式1 1、定时、定时MOVMOVTH1, #00HTH1, #00H ; ;设定初值设定初值MOVMOVTL1, #00HTL1, #00H; ;JBJBP3.3, $P3.3, $; ;等待等待INT1INT1变低变低SETBSETBTR1TR1 ; ;启动启动T1T1JNBJNBP3.3, $P3.3, $; ; 等待等待INT1INT1变高变高 JBJB P3.3, $ P3.3, $; ;开始计数,等待变低开始计数,等待变低 CLRTR1; 停止计数停止计数
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。