单片机课件:第6章 MCS

发布时间:2025-03-29 14:13

如何利用手机软件进行简单的照片调色 #生活技巧# #手工DIY技巧# #摄影后期技巧#

1、第第6 6章章 MCS-51MCS-51定时器定时器/ /计数器计数器 6.1 6.1 定时器的结构及工作原理定时器的结构及工作原理 6.2 6.2 定时器应用举例定时器应用举例 6.3 6.3 定时器定时器/ /计数器计数器T2 T2 实现定时常用的三种方法: (1)软件定时:占用CPU时间,效率低。 (2)用555电路:不可编程。 (3)可编程芯片:功能强,需要另外扩展。 单片机内部有2个16位的定时/计数器:使用灵活,编程方便。 优先选用6.1 6.1 定时器的结构及工作原理定时器的结构及工作原理 8051单片机定时器内部结构框图如图所示,内部有两个16位的定时器T0和T1,可用于定时或延时控制、对外部事件检测、计数等。定时器和计数器实质上是一样的,“计数”就是对外部输入脉冲的计数;所谓“定时”是通过计数内部脉冲完成的。 定时器T0、T1各由两个8位的特殊功能寄存器TH0、TL0和TH1、TL1构成。方式寄存器TMOD用于设置定时器的工作方式。控制状态寄存器TCON用于启动和停止定时器的计数,并检测定时器的状态。每一个定时器的内部结构实质上是一个可程控的加法计数器,通过内总线与C

2、PU相连,由CPU编程设置定时器的初值、工作方式、启动、停止。当设置了定时器的工作方式、初值并启动定时器工作后,定时器就按被设定的工作方式独立工作,不再占有CPU时间,只有在定时器溢出时,才向CPU申请中断。由此可见,定时器是单片机中工作效率高且应用灵活的部件。 图6-2是定时器Tx(x为0或1,表示T0或T1)的原理框图,图中的“外部引脚Tx”是外部输入引脚的标识符,通常将引脚P3.4、P3.5用T0、T1表示。图6-2 定时器/计数器原理框图 当控制信号= 0时,定时器工作在定时方式。加1计数器对内部时钟f进行计数,直到计数器计满溢出。f是振荡器时钟频率f0的12分频,脉冲周期为一个机器周期,即计数器计数的是机器周期脉冲的个数,以此来实现定时。因此,定时器的定时时间不仅与加1计数器的初值(计数器中的起始值THx、TLx)有关,而且还与系统振荡器时钟频率f0有关。 当控制信号= 1时,定时器工作在计数方式。加1计数器对来自“外部引脚Tx”的外部信号脉冲计数(下降沿触发)。在每一个机器周期的S5P2期间(见第2章时序部分),采样引脚输入电平。若前一个机器周期采样值为“1”,后一个机器周

3、期采样值为“0”,则计数器加1。由于它需要两个机器周期(24个时钟周期)来识别一个“1”到“0”的跳变信号,所以最高的计数频率为时钟频率的1/24。对外部输入信号脉冲的占空比没有特别的限制,但必须保证输入信号电平在它发生跳变前至少被采样一次,因此输入信号的电平至少应在一个完整的机器周期中保持不变。 控制信号K的作用是控制“计数器”的启动和停止,如图6-2所示,K=TRx(+ )。当GATE=0时,K=TRx,K不受输入电平的影响:若TRx=1,允许计数器加1计数;若TRx=0计数器停止计数。 当GATE=1时,K=TRx,与门的输出由输入电平和TRx位的状态来确定:仅当TRx=1,且引脚=1时,才允许计数;否则停止计数。 8051单片机的定时器主要由几个特殊功能寄存器TMOD、TCON、TH0、TL0、TH1、TL1组成。所谓可编程定时器就是通过软件读/写这些特殊功能的寄存器,达到控制定时器目的。其中,THx和TLx分别用来存放计数器初值的高8位和低8位,TMOD用来控制定时器的工作方式,TCON用来存放中断溢出标志并控制定时器的启、停。6.1.1 6.1.1 工作方式寄存器工作方式寄

4、存器TMODTMOD TMOD的地址为89H,用于设定定时器T0、T1的工作方式。无位地址不能位寻址,只能通过字节指令进行设置。复位时,TMOD所有位均为“0”。其格式如下: TMOD的低4位为T0的工作方式字段,高4位为T1的工作方式字段,它们的含义是完全相同的。(1)M1和M0方式选择位对应关系见表6-1。 (2)功能选择位。=0为选择定时方式,=1为外部事件计数方式。 (3)GATE门控位。GATE=0,允许软件控制位TR0或TR1(TR0、TR1在TCON中)启动计数器T0或T1;GATE=1,允许通过外部引脚(P3.2)、TR0或(P3.3)、TR1启动计数器,控制T0或T1的运行。表6-1 M1和M0方式选择位对应关系6.1.2 6.1.2 控制寄存器控制寄存器TCONTCON TCON的地址为88H,具有位地址,可位寻址,用来存放定时器的溢出标志TF0、TF1和定时器的启、停控制位TR0、TR1。复位时,TCON的所有位均为“0”。其格式如下: TCON的高4位存放定时器的运行控制位和溢出标志位。低4位存放外部中断的触发方式控制位和锁存外部中断请求源,与中断有关。 (1)

5、TFx:定时器Tx溢出标志。定时器的核心为加法计数器,当定时器Tx发生计数溢出时,由硬件将此位置“1”。TFx可以由程序查询,也是定时中断的请求源,当CPU响应中断、进入中断服务程序后,由单片机内部的“硬件”自动将TFx清“0”。 (2)TRx:定时器Tx运行控制位,通过软件(指令“SETB TRx”或“CLR TRx”)置“1”或 清“0”。TRx为“1”启动“计数器”计数,为“0”停止“计数器”计数。6.1.3 6.1.3 定时器的工作方式定时器的工作方式 MCS-51的定时器T0有4种工作方式,即方式0、方式1、方式2及方式3。定时器T1只有3种工作方式,即方式0、方式1及方式2。 1 1方式方式0 0 当M1、M0两位为00时,定时器被选为工作方式0,13位计数器。其逻辑结构如图6-3所示。在这种方式下,16位寄存器TH0和TL0只用13位,由TH0的8位和TL0的低5位构成。TL0的高3位是不定的,可以不必理会,如图6-4所示。因此方式0是一个13位的定时计数器。当TL0的低5位计数溢出时即向TH0进位,而TH0计数溢出时向中断标志位TF0进位(称硬件置位TF0),并请求中断

6、。因此,可通过查询TF0是否置“1”或考察中断是否发生(通过CPU响应)来判断定时器T0是否溢出。图6-3 T0方式0逻辑结构 当C/=0时,为定时工作方式。开关接到振荡器的12分频器输出,计数器对机器周期脉冲计数。其定时时间为: (2 初值)时钟周期12 若晶振频率为12MHz,则最长的定时时间为: (2 0)(1/12)12s=8.191ms 当C/=1时,为计数方式。开关与外部引脚T0(P3.4)接通,计数器对来自外部引脚T0的输入脉冲计数,当外部信号发生负跳变(下降边沿)时,计数器加1。 定时器的运行控制信号K如前已述,这里不再赘述。以上分析同样适合于定时器T1。图6-4 TH0、TL0构成13位结构1313 2 2方式方式1 1 当M1、M0两位为01时,定时器被选为工作方式1,方式1和方式0的差别仅在于计数器的位数不同。方式1为16位计数器,其逻辑结构如图6-5所示。图6-5 T0方式1逻辑结构作为定时方式使用时,其定时时间为:(2 初值)时钟周期12若晶振频率为12MHz,则最长的定时时间为:(2 0)(1/12)12s = 65.536ms1616 3 3方式方式2 2

7、 当M1、M0两位为10时,定时器被选为工作方式2,为8位计数器,其逻辑结构如图6-6所示。TL0作为8位计数器,TH0作为重置初值的缓冲器,在程序初始化时,由软件赋予同样的初值,一旦计数器溢出便置位TF0,同时自动将TH0中的初值再装入TL0,从而进入新一轮的计数,如此循环不止,而TH0中的初值始终不变。其一次定时时间为: (28初值)时钟周期12图6-6 T0方式2逻辑结构 方式2具有初值自动装入的功能,可以避免在程序中因重新装入初值而对定时精度的影响,适用于需要产生高精度的定时时间的应用场合,常用做串行口波特率发生器。 4 4方式方式3 3 当M1、M0两位为11时,定时器T0被选为工作方式3,这种工作方式只有定时器T0才有。此时T0被拆成两个独立的8位计数器TL0和TH0。其逻辑结构如图6-7所示。图6-7 T0方式3逻辑结构 在图6-7中,8位计数器TL0使用原定时器T0的控制位C/、GATE、TR0和。它既可以工作在定时方式,也可工作在计数方式,计数来自外部引脚T0的外部输入脉冲。 8位计数器TH0,占用了原定时器T1的控制位TR1和溢出标志位TF1,同时也占用了T1中断源

8、。它被固定为一个8位定时工作方式,其启动和停止仅受TR1控制。TR1=1时, 启动TH0计数;TR1=0时,停止TH0计数。由此可见,在方式3下,TH0只能用做定时工作方式,不能对外部脉冲进行计数,这一点请读者要注意。 必须指出,当定时器T0用做方式3时,定时器T1仍可设置为方式0、方式1或方式2。但由于TR1、TF1及T1的中断源已被定时器T0占用,此时定时器T1仅由控制位C/选择计数的时钟源,当计数器计数满溢出时,产生的信号只能送往内部的串行口,作为串行通信的收发时钟,即用做串行口波特率发生器。 如果企图将定时器T1置为方式3,则它将停止计数,其效果与置TR1=0相同,即关闭定时器。6.2 6.2 定时器应用举例定时器应用举例 在利用MCS-51内部的定时器进行定时或计数之前,首先要通过软件对它进行初始化。初始化包括下述几个步骤: (1)确定工作方式字:对TMOD寄存器正确赋值。 (2)确定定时器初值:计算初值,并直接将初值写入寄存器THx、TLx。 由于计数器采用加法计数,通过溢出产生中断标志,因此不能直接输入所需的“计数值”,而是要从计数器的最大值减去“计数值”才是应置入THx

9、、TLx的初值。 设计数器的最大值为M,在不同的工作方式中,M可以为2(方式0)、2(方式1)、2(方式2、3),则置入的初值N可这样来计算,即 计数方式时,N=M“计数值” 定时方式时,N=M(“定时时间”/T) 其中,T为机器周期,是单片机时钟脉冲周期的12倍,T=12/ f0。 (3)根据需要,开放定时器中断:对寄存器IE置初值。 (4)启动定时器:对寄存器TCON中的TR1或TR0置“1”。置“1”后,计数器即按规定的工作方式和初值开始计数。131686.2.1 6.2.1 定时控制、脉宽检测定时控制、脉宽检测 【例例】利用T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc=12MHz。 要在P1.0输出周期为2ms的方波,需要使P1.0每隔1ms取反一次输出即可。 (1)确定工作方式字 T0为方式0,定时工作状态,GATE=0,不受控制,T1不用全部取“0”值,故TMOD=00H。 (2)计算1ms定时初值N 方式0为13位计数方式,取M=2。 机器周期T= (1/fosc)12=1/ (12106)12=1s。 计算初值N=2 11

10、03/T=2 1103/1=81921000 = (7192)10 = (1110000011000)2131313TH0= E0H,TL0=18H,故TH0初值为E0H,TL0初值为18H。 (3)采用查询TF0的状态来控制P1.0输出 其程序如下: MOV TMOD,#00H;置T0为方式0 MOV TL0,#18H;送计数初值 MOV TH0,#0E0H SETB TR0;启动T0 LOOP:JBC TF0,NEXT;查询定时时间到,转NEXT,同时清TF0 SJMP LOOP NEXT:MOV TL0,#18H;重赋计数初值 MOV TH0,#0E0H CPL P1.0 ;输出取反 SJMP LOOP;重复循环 END6.2.2 6.2.2 电压电压/ /频率转换频率转换 在工程实践中,常利用电压/频率(V/F)转换器,配合单片机定时器/计数器构成高分辨率、高精度、低成本的A/D转换器。其设计思想为:模拟量传感器输出的mV级的电压信号经运算放大器放大后,用V/F转换器转换成频率随电压变化的脉冲信号,然后利用单片机内部的计数器/定时器进行计数,再通过软件进行处理获得相应模拟量的数

11、字量。 若令定时器T0工作于定时方式,用于产生计数的门限时间t;再用定时器T1对输入的被测脉冲进行计数,即工作于计数方式1,初值为0,最大计数值为65 536。当V/F转换器选定之后,其最大的模拟量所对应的最大输出频率值fmax已确定,则最大计数值为fmaxt,被测信号的电压值: Vx=Vmax(Nx/Nmax)=VmaxNx/(fmaxt) 式中,Nx为t时间段内的实际计数值;Vmax为V/F转换器的最大量程。 V/F转换器具有良好的精度、线性和积分输入的特点,其转换速率不低于双积分型A/D器件,与单片机接口具有以下优点: (1)接口电路简单:每一路模拟信号只占用1位I/O线。 (2)输入方式灵活:既可以作为I/O输入,也可以作为中断方式输入,还可以作为计数器信号输入,从而满足各种不同系统的要求。 (3)具有较强的抗干扰性:由于V/F转换的过程是对输入信号不断积分的过程,因而对噪声有一定的平滑作用,同时其输出为数字量,便于采用光电隔离技术。 (4)易于远距离传输:V/F输出的是一个串行信号,易于远距离传输,若与光导纤维技术相结合,可构成一个不受电磁干扰的远距离传输系统。【例例】在图6

12、-10所示的电路中,设V/F转换器AD654输入的模拟电压为01V,输出引脚1可输出0500kHz的脉冲,其与单片机的定时器T1的输入脚相连,以便进行计数。定时器T0控制T1计数的时间t=100ms,则脉冲信号的最大计数值Nmax=50 000,所以T1应设定在方式1(16位)、计数模式。若主频为6MHz,则定时时间100ms所对应的计数值为50 000,T0工作于定时方式1,计数器初值N=65 53650 000=15 536,其C51程序如下: #include #include unsigned int data n,v; main() TMOD=0x51; /设置T0工作于定时方式1,T1工作于计数方式1 TL0=15536%256,TH0=15536/256; /设置T0、T1的计数初值 TH1=0,TL1=0; EA=1,ET0=1; /开启T0、CPU中断 TR0=1,TR1=1; /开启T0、T1计数器 while (1); /等待100ms到 void time0() interrupt 1 /T0中断函数 n=TH1*256+TL1; /读T1计数值 v=1000*

13、n/50000; /计算电压值,单位为mV TL0=15536%256,TH0=15536/256; /重置T0、T1计数初值 TH1=0,TL1=0; 6.3 6.3 定时器定时器/ /计数器计数器T2T2 在MCS-51的52子系列单片机中,增加了一个16位定时器/计数器T2。定时器T2使52子系列的P1.0、P1.1具有了第二功能,分别是时钟信号输入脚T2和外部边沿信号输入脚T2EX,同时也增加了一个中断源T2和中断入口地址0002BH。 T2的功能比T0、T1更强,在特殊功能寄存器中有5个与T2有关的寄存器,分别是TH2、TL2、定时器2控制寄存器T2CON、捕捉寄存器RCAP2L、RCAP2H。T2与T0、T1有类似的功能,也可作为定时器/计数器使用,此时由T2CON中的C/位来控制。除此之外,T2还可具有16位捕捉方式、16位常数自动重装入方式和波特率发生器方式。6.3.1 T26.3.1 T2的状态控制寄存器的状态控制寄存器T2CONT2CON T2CON为状态控制寄存器,可位寻址,其位地址和格式如下所示:其中,D7、D6为状态位,其余为控制位,D0、D2、D4、D5设定

14、T2的三种工作方式,见表6-2。表6-2 定时器T2方式选择(1)溢出中断标志位TF2(2)外部中断标志EXF2(3)串行口接收时钟选择位RCLK(4)串行口发送时钟选择位TCLK(5)外部允许标志位EXEN2(6)T2的计数控制位TR2(7)定时器或计数器功能选择位(8)捕捉或16位常数自动重装方式选择位6.3.2 T26.3.2 T2的工作方式的工作方式 1 1捕捉模式捕捉模式 当=1时,T2工作于捕捉方式,其结构原理如图6-13所示。此时,T2CON中的EXEN2位控制T2捕捉动作的发生。图6-13 定时器T2捕捉模式结构图 当EXEN2=0时,不发生捕捉动作,T2作为定时器/计数器使用。若C/=0时,T2为定时器;若C/=1时,T2为外部事件计数器(下降沿触发),当T2计数溢出时,将TF2标志置“1”,并发出中断请求。在这种情况下,TH2和TL2的内容不会送入捕捉寄存器中。 若EXEN2=1,T2除实现上述定时器/计数器的功能外,还可实现捕捉功能,即当在T2EX引脚(P1.1)上发生的负跳变时,就会把TH2和TL2的内容锁入捕捉寄存器(RCAP2H和RCAP2L)中,并将T2C

15、ON中的中断标志EXF2置“1”,向CPU发出中断请求。 T2的16位捕捉方式主要用于测试外部事件的发生时间,如可用于测试输入脉冲的频率、周期等,此时T2的初值一般取0,使T2循环地从0开始计数。 2 21616位常数自动装入模式位常数自动装入模式 当CP/=0时,T2工作于16位常数自动装入方式,其结构原理如图6-14所示。此时,T2CON中的EXEN2位控制T2常数自动装入动作的发生。 当EXEN2=0时,T2作为定时器/计数器使用,当TR2=1时,T2从初值开始加1计数,溢出时将打开控制初值装入的三态门,将RCAP2H和RCAP2L中存放的计数初值重新装入TH2和TL2中,使T2从该值开始重新计数,同时将TF2标志置“1”,向CPU发出中断请求。RCAP2H和RCAP2L中的初值在初始化时由软件编程置入。 若EXEN2=1,T2在T2EX引脚(P1.1)上发生的负跳变或计数器加法溢出时,都可以将RCAP2H和RCAP2L中存放的计数初值重新装入TH2和TL2中,使T2从该值开始重新计数。此时,当T2EX引脚(P1.1)上出现的负跳变时,将外中断标志EXF2置“1”或计数器加法溢出

16、时,将TF2置“1”均向CPU发出中断请求。 T2的16位常数自动装入方式的初值只需设定一次。在定时方式(C/=0)时,若设定初值为N,则定时时间精确地等于(216N)12/fosc。图6-14 定时器T2常数自动装入模式结构图3 3波特率发生器方式波特率发生器方式 当T2CON中的控制位RCLK=1或TCLK=1时,T2作为串行口方式1和方式3的波特率发生器,这时的逻辑结构如图6-15所示。 图6-15 定时器T2的波特率发生器的结构 T2的波特率发生器方式和内部控制的16位常数自动装入方式相类似。不同的是当C/=0时,以振荡器的二分频信号作为T2的计数脉冲,当计数溢出时,将RCAP2H和RCAP2L中存放的计数初值重新装入TH2和TL2中,使T2从初值开始重新计数,但并不置TF2为“1”,也不向CPU发中断请求,因此可以不必禁止T2中断。 RCAP2H和RCAP2L中的常数由软件设定为N后,T2的溢出率是严格不变的,其值为 T2的溢出率=(216N)振荡器频率/2 因而使串行口的方式1和方式3的波特率非常稳定,其值为 方式1和方式3的波特率=(216N)振荡器频率/32 若EXEN

17、2=1,当T2EX引脚(P1.1)上发生的负跳变时,也不会将RCAP2H和RCAP2L中存放的计数初值重新装入TH2和TL2中,而仅仅置位EXF2,向CPU请求中断,因此T2EX可以作为一个外部中断源使用。 由于在计数过程中(TR2=1),不能对TH2、TL2、RCAP2H和RCAP2L进行写操作,因此初始化时,应对它们均设置初值后,才将TR2置“1”,启动计数。 习题61综述MCS-51系列单片机定时器T0、T1的结构与工作原理。2定时器T0已预置初值为FFFFH,并选定用于方式1、计数工作方式,问此时定时器T0的实际用途将可能是什么?3定时器T0如用于下列定时,晶振频率为12MHz,试为定时器T0编制初始化程序。(1)50ms。(2)25ms。4定时器T0已预置初值156,且选定用于方式2、计数工作方式,现在T0引脚上输入周期固定为1ms的脉冲,问:(1)分析此时定时器T0的实际用途可能是什么?(2)在什么情况下,定时器T0溢出? 5设晶振频率为12MHz,定时器T0的初始化程序如下: MAIN: MOV TH0,#0DH MOV TL0,#0D0H MOV TMOD,#01H SETB TR0 LOOP: JNB TF0,LOOP CLR TF0 CPL P1.0 SJMP LOOP 问:(1)该定时器工作于什么方式? (2)相应的定时时间或计数值是多少? 6综述定时器T0、定时器T1各有哪几种工作方式?相应的方式特征与用法是什么? 7利用T0方式0产生2ms的定时,在P1.0引脚上输出周期为4ms的方波。设单片机晶振频率为12MHz。 8利用T0方式1产生50ms的定时,在P1.0引脚上输出周期为150ms的波形。其中,高电平为50ms,低电平为100ms。设单片机晶振频率为12MHz。 9利用定时器T0门控位GATE,测试(P3.2)引脚上出现的正脉冲的宽度,并将脉冲的宽度存放在31H30H中。设单片机晶振频率为12MHz。

《单片机课件:第6章 MCS-51定时器计数器》由会员hs****ma分享,可在线阅读,更多相关《单片机课件:第6章 MCS-51定时器计数器》请在金锄头文库上搜索。

网址:单片机课件:第6章 MCS https://www.yuejiaxmz.com/news/view/841103

相关内容

单片机课程设计=倒计时60秒定时器.doc
单片机EX1=1是什么意思
单片机IT0=1是什么意思
【第六章】STM32单片机+NB
39、基于51单片机声控光控灯人体感应路灯照明灯系统设计
第一单元第三课清洗小件衣物 课件
32、基于51单片机红外智能垃圾桶系统设计(程序+原理图+仿真+元件清单+开题报告+参考论文等)
《积极心理学(第2版)》课件6第六章希望.pptx
第6章172
第一章智能建筑概述课件.ppt

随便看看