第六章:定时计数器B_第1页
第六章:定时计数器B_第2页
第六章:定时计数器B_第3页
第六章:定时计数器B_第4页
第六章:定时计数器B_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机与控制技术单片机与控制技术电气学院:王欣第第6章:章:MCS-51的定时器的定时器/计数器计数器RE:l 硬件编程结构及引脚已介绍l CPU主要部件与特殊功能寄存器(SFR)已介绍l 片内外存储器的组织结构和编址已介绍l 并行I/O口已介绍l 中断及中断系统已介绍l 定时/计数器(外设) 【本次课内容!】l 串行口(外设)生产线上产品计数。每个产品通过得到一个脉冲信号,生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记录脉冲个数,当计数值与设定值相等,启动包装计数器记录脉冲个数,当计数值与设定值相等,启动包装机器。机器。检测转速。电机转动一圈发出一个脉冲,计数器记录一检测转速。电机

2、转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,显示转速。秒时间内脉冲个数,显示转速。定时定时/计数器的应用计数器的应用 (1)获取一定的时间间隔信号(即定时),或)获取一定的时间间隔信号(即定时),或对外部的脉冲个数进行计数。采用专用的硬件定时对外部的脉冲个数进行计数。采用专用的硬件定时/计数器(而不是用延时程序来获得定时),减轻计数器(而不是用延时程序来获得定时),减轻了了CPU的负担。的负担。 (2)定时和计数的本质是一样的。当计数器所)定时和计数的本质是一样的。当计数器所计的脉冲是频率不变的信号时,通过计数值就可以计的脉冲是频率不变的信号时,通过计数值就可以知道时间长短,这时计数器

3、就成了定时器。知道时间长短,这时计数器就成了定时器。定时定时/计数器的作用:计数器的作用:MCS51单片机的定时单片机的定时/计数器资源计数器资源l 有有2个个(8052有有3个个)16位位的定时的定时/计数器,均为计数器,均为加加1计数;计数;l 4种工作方式种工作方式(16位位/13位位/8位位/波特率),由波特率),由TMOD控控制寄存器中的制寄存器中的M1、M0位来控制位来控制l 两个两个SFR:TMOD定义工作方式,定义工作方式,TCON控制有关功控制有关功能能l 定时器定时器的实质为对的实质为对MCU片内机器周期计数,而片内机器周期计数,而计数器计数器对芯片外部引脚对芯片外部引脚T

4、0、T1上的脉冲信号个数计数。上的脉冲信号个数计数。定时定时/计数器的工作原理计数器的工作原理l 定时定时/ /计数器中的核心部件为可预置初值计数器。预计数器中的核心部件为可预置初值计数器。预置初值后开始计数,直至计数值归置初值后开始计数,直至计数值归0 0或产生溢出,可申请或产生溢出,可申请中断。中断。l 计数器有加计数器有加 1 1 计数或减计数或减1 1计数两种形式。计数两种形式。K1K2可预置初值计数器可预置初值计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟脉冲内部时钟脉冲(定时)(定时)外部输入脉冲外部输入脉冲(计数)(计数)溢出信号溢出信号计数脉冲计数脉冲计数初值计

5、数初值 说明:说明: 当用作当用作定时器功能定时器功能时,加时,加1计数器每经过一个机器周计数器每经过一个机器周期的时间加期的时间加1 ,所以定时器,所以定时器可看作计算机器周期的计数器。可看作计算机器周期的计数器。由于每个机器周期包含由于每个机器周期包含12个振荡信号周期,所以加个振荡信号周期,所以加1计数计数器的计数脉冲频率为振荡器信号的器的计数脉冲频率为振荡器信号的1/12,当振荡器频率为,当振荡器频率为6MHz时计数脉冲的最高频率为时计数脉冲的最高频率为500KHz,或周期为,或周期为2s。 当用作当用作计数器功能时,加计数器功能时,加1计数器的计数脉冲取自外计数器的计数脉冲取自外部输

6、入引脚部输入引脚T0、T1(8052还有还有T2),只要这些引脚上有),只要这些引脚上有一个从一个从“1”到到“0”的负跳变,加的负跳变,加1计数器就加计数器就加1。CPU在每在每个机器周期对外部输入状态进行采样。计数器加个机器周期对外部输入状态进行采样。计数器加1的执行的执行是在检测到跳变后的那个机器周期时刻。是在检测到跳变后的那个机器周期时刻。由于需要两个机由于需要两个机器周期(器周期(24个振荡信号周期)来识别一个从个振荡信号周期)来识别一个从“1”到到“0”的的负跳变,所以最大计数速率为振荡信号频率的负跳变,所以最大计数速率为振荡信号频率的1/24。显而显而易见,为了保障外部输入状态在

7、改变之前至少采样一次,易见,为了保障外部输入状态在改变之前至少采样一次,因此,信号必须至少保持一个完整的机器周期。因此,信号必须至少保持一个完整的机器周期。 图图6-1 MCS-51定时器定时器/计数器逻辑结构框图计数器逻辑结构框图T0T1TF1TF0设定4种工作状态1 定时定时/计数器的结构计数器的结构 51系列单片机中有两个特殊功能寄存器系列单片机中有两个特殊功能寄存器(TMOD/TCON),用于用于定义定时定义定时/计数器的工作方式和控制定时计数器的工作方式和控制定时/计数器的有关功能计数器的有关功能. 1)定时器方式寄存器)定时器方式寄存器TMOD(只能按字节地址访问!)(只能按字节地

8、址访问!) TMOD用于定义工作方式以及操作方式。用于定义工作方式以及操作方式。其格式为其格式为: 高位 低位GATE C/TM1M0GATEC/TM1M0 定时/计数器1 定时/计数器0TMODTMOD的高的高4位控制定时位控制定时/计数器计数器1,低,低4位控制定时位控制定时/计数计数0。其中其中M1、M0定义定时定义定时/计数器的工作方式。计数器的工作方式。1)定时器方式寄存器)定时器方式寄存器TMODl C/T:定时:定时/计数器功能选择位。计数器功能选择位。 1:计数器功能(对外部脉冲即负跳变计数,:计数器功能(对外部脉冲即负跳变计数,允许的最高计数允许的最高计数频率为晶振频率的频率

9、为晶振频率的1/24); 0:定时器功能:定时器功能l GATE:门控制位,用于控制定时:门控制位,用于控制定时/计数器的(启动计数器的(启动)计数计数是否是否受受外部中断输入引脚(外部中断输入引脚(INT0、INT1脚)电平脚)电平的影响。的影响。 GATE=0,与外部中断无关,以运行控制位,与外部中断无关,以运行控制位TRX来启动;来启动; GATE=1,只有在没有外部中断请求信号情况下(即外部中断,只有在没有外部中断请求信号情况下(即外部中断引脚引脚INTx=1),才允许),才允许计数。计数。l M1、M0:工作方式选择:工作方式选择 GATE C/TM1M0 GATEC/TM1 M0T

10、1T0 D7 D6 D5 D4 D3 D2 D1 D0由M1、M0决定的定时/计数器的工作方式M1M0工作方式工作方式说明说明00013位定时位定时/计数器计数器01116位定时位定时/计数器计数器102具有自动重装入的具有自动重装入的8位定时位定时/计数器计数器113定时器定时器0(T0)分为)分为2个个独立的独立的8位定时器,位定时器,T1在方式在方式3时停止工作时停止工作举例:举例:设置设置T1为为16位位的的计数计数器对外部脉冲计数,器对外部脉冲计数,T1启动不受启动不受外部中断影响。则外部中断影响。则 MOV TMOD,50H;(;(0101 0000B)2)定时器控制寄存器)定时器

11、控制寄存器TCON用于外部中断(中断系统中已介绍)SETB TR0;启动定时器0使用中断方式,作为中断请求标志位,进入中断服务程序后硬件自动清零软件控制3)定时器初值的确定?)定时器初值的确定? 加法计数器是计满溢出时才申请中断, 所以在给定时器/计数器赋初值时, 不能直接输入所需的计数值, 而应输入的是计数器计数的最大值与这一计数值的差值, 设最大值为 M, 初值为 X, 则 X的计算方法如下: 计数状态: X=M计数值 定时状态: X=M定时时间/Tcy 而 Tcy=12晶振频率 每一种工作方式对应的最大计数值:每一种工作方式对应的最大计数值:方式方式0 13位计数器位计数器1328192

12、方式方式1 16位计数器位计数器16265536方式方式2 8位计数器位计数器方式方式3 8位计数器位计数器8225682256 定时初值:定时初值:对机器周期进行计数。对机器周期进行计数。T:定时时间,:定时时间,X:初值,:初值,N:计数:计数器位数,器位数,oscf:系统时钟(晶振)频率,则:系统时钟(晶振)频率,则:2/12NoscXfT 计数初值:计数初值:对外部脉冲进行计数,计数值根据要求确定。对外部脉冲进行计数,计数值根据要求确定。X:初值,:初值,N:计数器位数,则计数器位数,则2NX 计数值12(2)NoscXTf2 定时器/计数器的4种工作方式SFR: 定时器方式寄存器定时

13、器方式寄存器TMOD TMOD用于定义工作方式以及操作方式。其格式为: 高位 低位GATE C/TM1M0GATEC/TM1M0 定时/计数器1 定时/计数器0TMODTMOD的高的高4位控制定时位控制定时/计数器计数器1,低,低4位控制定时位控制定时/计数计数0。其中其中M1、M0定义定时定义定时/计数器的工作方式。计数器的工作方式。1 1)方式)方式0 0 (13位计数器) 当当M1、M0位置成位置成00时,工作方式为方式时,工作方式为方式0,由图这时定时,由图这时定时/计数器的加计数器的加1计数器为计数器为13位,即位,即TL的低的低5位位和和TH的的8位位。 计数脉冲源由计数脉冲源由T

14、MOD的的C/T位来决定。位来决定。TL和和TH的计数值由全的计数值由全“1”变为变为全全“0”时,时,TCON的中断溢出标志位的中断溢出标志位TF置位,定时置位,定时/计数器向计数器向CPU申请中申请中断。允许计数脉冲输入的条件是:断。允许计数脉冲输入的条件是:TR0/1=1且且GATE=0或或/INT01=1,这些,这些均由软件设置。均由软件设置。0111110100TimerCountl 当定时/计数器工作于定时功能且选为方式0时,应按照定时的时间选择一个时间常数作为计数器的初值,需要连续定时时,应在每次溢出产生中断后,在程序(ISR)中为TL和TH 装入初值。l 方式0的计数长度M为2

15、的13次方。初值也是13位二进制数,但要注意是高8位赋值给THx,低5位前面补足 3 个 0 凑成 8 位赋给TLx。 举例:如要求T0的计数值为1000,则初值为 xM100081921000 1C18H1 1100 0001 1000B 则赋初值时, TH0 1 1100 000B=0E0H, TL0 0001 1000B =18H。2 2)方式)方式1 1 (16位计数器)方式方式1和方式和方式0的工作原理基本相同的工作原理基本相同,唯一不同是,唯一不同是T0和和T1工作工作在方式在方式1时是时是16位位的计数的计数/定时器定时器方式方式1时的时的计数长度计数长度M是是2的的16次方次方

16、。16位的初值直接拆成高位的初值直接拆成高低字节,分别送入低字节,分别送入THx和和TLx即可即可。3 3)方式)方式2 2 (8位计数器,初始值自动重装) 工作方式工作方式0和工作方式和工作方式1的最大特点的最大特点就是计数溢出后,计数器为就是计数溢出后,计数器为全全0,因而循环定时或循环计数应用时就,因而循环定时或循环计数应用时就存在反复设置初值存在反复设置初值的问的问题,这给程序设计带来许多不便,同时也会影响计时精度。题,这给程序设计带来许多不便,同时也会影响计时精度。作为计数器保存计数初值l 工作方式工作方式2就针对这个问题而设置,它具有自动重装载功能,即自就针对这个问题而设置,它具有

17、自动重装载功能,即自动加载计数初值,所以也称为自动重加载工作方式。动加载计数初值,所以也称为自动重加载工作方式。l 在这种工作方式中,在这种工作方式中,16位计数器分为两部分,即以位计数器分为两部分,即以TL0为计数器,为计数器,以以TH0作为预置寄存器,初始化时把计数初值分别加载至作为预置寄存器,初始化时把计数初值分别加载至TL0和和TH0中,当计数溢出时,不再象方式中,当计数溢出时,不再象方式0和方式和方式1那样需要那样需要“人工干人工干预预”,由软件重新赋值,而是由预置寄存器,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给以硬件方法自动给计数器计数器TL0重新加载。重新加载。4 4

18、)方式)方式3 3 (两个独立(两个独立8位计数器,仅限T0)TH0、TL0被拆作于不同用途独立!定时器模式l 在工作方式在工作方式3模式下,定时模式下,定时/计数器计数器0被拆成两个独立的被拆成两个独立的8位计数器位计数器TL0和和TH0。其中。其中TL0既可以作计数器使用,也可以作为定时器使用,定时既可以作计数器使用,也可以作为定时器使用,定时/计计数器数器0的各控制位和引脚信号全归它使用的各控制位和引脚信号全归它使用。其功能和操作与方式。其功能和操作与方式0或方式或方式1完全相同。完全相同。 TH0就没有那么多就没有那么多“资源资源”可利用了,只能作为简单的内部定时器使用,可利用了,只能

19、作为简单的内部定时器使用,而且由于定时而且由于定时/计数器计数器0的控制位已被的控制位已被TL0占用,因此只能借用定时占用,因此只能借用定时/计数计数器器1的控制位的控制位TR1和和TF1,也就是以计数溢出去置位,也就是以计数溢出去置位TF1,TR1则负责控则负责控制制TH0定时的启动和停止。定时的启动和停止。l 由于由于TL0既能作定时器也能作计数器使用,而既能作定时器也能作计数器使用,而TH0只能作定时器使用而只能作定时器使用而不能作计数器使用,因此在方式不能作计数器使用,因此在方式3模式下,定时模式下,定时/计数器计数器0可以构成二个可以构成二个定时器或者一个定时器和一个计数器。定时器或

20、者一个定时器和一个计数器。l T0工作于方式工作于方式3时,时,T1的工作方式就不可避免受到一定的限制,因为自的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时己的一些控制位已被定时/计数器计数器0借用,只能工作在方式借用,只能工作在方式0、方式、方式1或方或方式式2下,下,不同的是定时不同的是定时/计数器计数器1不能使用溢出标志和中断!不能使用溢出标志和中断!l 如果设置如果设置T1工作在方式工作在方式3,则,则T1停止工作,相当于其他方式时令停止工作,相当于其他方式时令TR10。T0工作在方式工作在方式3下下T1的各种工作方式的各种工作方式l 一般情况下,当当T1T1用作串行

21、口的波特率发生器用作串行口的波特率发生器时,时, T0 T0才工作在方式才工作在方式3 3。l T0T0处于方式处于方式3 3时,时, T1T1可定为方式可定为方式0 0、方式、方式1 1和方和方式式2 2,用来,用来作为串行口的波特率发生器,作为串行口的波特率发生器,或不或不需要中断的场合。需要中断的场合。(1 1)T1T1工作在方式工作在方式0 0 (2 2)T1T1工作在方式工作在方式1 1 振荡器1/12TL1(8位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)(3 3)T1T1工作在方式工作在方式2 2(3) 定时/计数器的初始化由于定时由于定时/计数器是可编程的,因此在

22、进行定时或计数之前要把程计数器是可编程的,因此在进行定时或计数之前要把程序进行初始化。初始化一般包括以下几个步骤:序进行初始化。初始化一般包括以下几个步骤:S1确定工作方式确定工作方式TMOD寄存器赋值。寄存器赋值。S2置定时置定时/计数器的初值计数器的初值直接将初值写入寄存器直接将初值写入寄存器TH0、TL0和和 TH1、TL1。S3根据需要,开放中断根据需要,开放中断对寄存器对寄存器IE置初值。置初值。S4启动启动使使TCON寄存器中的寄存器中的TR1或或TR0置位,置位后,加置位,置位后,加1计计数器按规定的工作方式和初值开始计数。数器按规定的工作方式和初值开始计数。初值初值N的计算的计

23、算可以通过下式求得:可以通过下式求得: 计数方式:计数方式:N=M-计数值计数值 定时方式时:定时方式时:N=M-定时值定时值(fosc/12)。)。其中:其中:M为加为加1计数器的最大值(在不同的工作方式中,计数器的最大值(在不同的工作方式中,M可以为可以为213、216或或28),),fosc为振荡器频率(即主振频率)。为振荡器频率(即主振频率)。补充:补充: 定时器定时器/计数器应用举例计数器应用举例 一、一、 方式方式 0 的应用的应用 例例 1 利用定时器利用定时器T0产生产生1ms定时,并使定时,并使P1.0输出周期为输出周期为 2 ms的方波的方波, 设单片机晶振频率为设单片机晶

24、振频率为 6 MHz。 选用定时器选用定时器 /计数器计数器T0 作定时器作定时器, 输出为输出为P1.0 引脚引脚, 2 ms 的方波可由间隔的方波可由间隔 1 ms的高低电平相间而成的高低电平相间而成, 因而只要每隔因而只要每隔 1 ms对对 P1.0 取反一次即可得到这个方波。取反一次即可得到这个方波。 定时定时 1 ms的初值的初值: 因为因为 机器周期机器周期=126 MHz= 2 s所以所以 1 ms内内T0 需要计数需要计数N次次: N= 1 ms2 s = 500 由此可知由此可知: 使用方式使用方式 0 的的 13 位计数器即可位计数器即可, T0 的初值的初值X为为 X=M

25、N=8 192500=7 692=1E0CH 但是但是, 因为因为 13 位计数器中位计数器中, 低低 8 位位 TL0 只使用了只使用了 5 位位, 其其余码均计入高余码均计入高 8 位位TH0 的初值的初值, 则则 T0 的初值调整为的初值调整为 TH0=0F0H, TL0=0CHTMOD初始化初始化: TMOD=00000000B=00H (GATE=0, C/T=0, M1=0, M0=0)TCON初始化初始化: 启动启动TR0=1 IE初始化初始化: 开放中断开放中断EA=1, 定时器定时器T0 中断允许中断允许ET0=1 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 程

26、序清单如下程序清单如下: ORG 0000H AJMP START; 复位入口复位入口 ORG 000BH AJMP TOINT ; T0中断入口中断入口 ORG 0030HSTART: MOV SP, 60H; 初始化程序初始化程序 MOV TH0, 0F0H ; T0赋初值赋初值 MOV TL0, 0CH MOV TMOD, 00H ; 工作方式设定工作方式设定 SETB TR0 ; 启动启动T0 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 SETB ET0 ; 开开T0中断中断 SETB EA ; 开总允许中断开总允许中断 MAIN: AJMP MAIN ; 主程序主程序

27、T0INT: CPL P1.0 ; 取反取反 MOV TL0, 0CH;重装计数初值;重装计数初值 MOV TH0, 0F0HRETI END补充:补充: 定时器定时器/计数器应用举例计数器应用举例 一、一、 方式方式 1 的应用的应用 例例 2 利用定时器利用定时器T1产生一个产生一个25Hz方波,并使方波,并使P1.0输出的输出的, 设单片机晶振频率为设单片机晶振频率为 12 MHz。 选用定时器选用定时器 /计数器计数器T1 作定时器作定时器, 输出为输出为P1.0 引脚引脚, 25Hz的方波的周期为的方波的周期为1/25=40ms, T1可由间隔可由间隔20ms的高低的高低电平相间而成

28、电平相间而成, 因而只要每隔因而只要每隔20ms对对 P1.0 取反一次即可得取反一次即可得到这个方波。到这个方波。 定时定时 20ms的初值的初值: 因为因为 机器周期机器周期=1212MHz= 1 s所以所以 20ms内内T1需要计数的次数为需要计数的次数为: 20 ms1 s = 20000 次次 由此可知由此可知: 使用方式使用方式 1 的的 16 位计数器即可位计数器即可, T1 的初值的初值X为为 X=MN=6553620000=45536=B1E0H 方式方式1为为 16 位计数器位计数器, 低低 8 位位 TL1 和高和高 8 位位TH1 可以直可以直接赋初值接赋初值, 则则

29、T1 的初值为的初值为 TH0=0B1H, TL0=0E0HTMOD初始化初始化: TMOD=00010000B=10H (GATE=0, C/T=0, M1=0, M0=1)TCON初始化初始化: 启动启动TR1=1 IE初始化初始化: 开放中断开放中断EA=1, 定时器定时器T0 中断允许中断允许ET1=1 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 程序清单如下程序清单如下: (中断方式中断方式) ORG 0000H AJMP START; 复位入口复位入口 ORG 001BH AJMP TOINT ; T1中断入口中断入口 ORG 0030HSTART: MOV SP,

30、60H; 初始化程序初始化程序 MOV TH0, 0B1H ; T1赋初值赋初值 MOV TL0, 0E0H MOV TMOD, 10H ; 工作方式设定工作方式设定 SETB TR1 ; 启动启动T1 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 SETB ET1 ; 开开T1中断中断 SETB EA ; 开总允许中断开总允许中断 MAIN: AJMP MAIN ; 主程序主程序 T0INT: CPL P1.0 ; 取反取反 MOV TL0, 0B1H;重装计数初值;重装计数初值 MOV TH0, 0E0HRETI END查询方式 二、二、 方式方式 1应用应用 方式方式 1 与

31、方式与方式 0 基本相同基本相同, 只是方式只是方式 1 改用了改用了 16 位计数位计数器。器。 要求定时周期较长时要求定时周期较长时, 13 位计数器不够用位计数器不够用, 可改用可改用 16 位位计数器。计数器。 例例 2 已知某生产线的传送带上不断地有产品单向传送已知某生产线的传送带上不断地有产品单向传送, 产品之间有较大间隔。使用光电开关统计一定时间内的产品产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。个数。 假定红灯亮时停止统计假定红灯亮时停止统计, 红灯灭时才在上次统计结果红灯灭时才在上次统计结果的基础上继续统计的基础上继续统计, 试用单片机定时器试用单片机定时器 /

32、计数器计数器T1的方式的方式 1完成该项产品的计数任务。完成该项产品的计数任务。 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 图 6.7 硬件原理图 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 (1) 初始化初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H (2) T1在方式在方式1时时, 溢出产生中断溢出产生中断, 且计数器回零且计数器回零, 故在中故在中断服务程序中断服务程序中, 需用需用R0计数中断次数计数中断次数, 以保护累积计数结果。以保护累积计数结果。 补充:补充: 定时器定时器/计数器

33、应用举例计数器应用举例 (3) 启动启动T1计数计数, 开开T1中断。中断。 程序清单如下程序清单如下: ORG 0000H AJMP START ; 复位入口复位入口 ORG 001BH AJMP T1INT ; T1中断入口中断入口 ORG 0100H START: MOV SP, 60H ; 初始化程序初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 MOV TL1, 00H MOV R0, 00H ; 清中断次数计数单元清中断次数计数单元 MOV P3, 28H; 设置设置P3.5第

34、二功能第二功能 SETB TR1 ; 启动启动T1 SETB ET1; 开开T1中断中断 SETB EA ; 开总中断开总中断 MAIN: ACALL DISP ; 主程序主程序, 调显示子程序调显示子程序 ORG 0A00H T1INT: INC R0 ; 中断服务子程序中断服务子程序 RETI DISP: ; 显示子程序显示子程序 RET 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 三、三、 方式方式 2 应用应用 方式方式 2 是定时器自动重装载的操作方式是定时器自动重装载的操作方式, 在这种方式下在这种方式下, 定时器定时器 0 和和 1 的工作是相同的的工作是相同的,

35、它的工作过程与方式它的工作过程与方式 0、 方式方式 1 基本相同基本相同, 只不过在溢出的同时只不过在溢出的同时, 将将 8 位二进制初值位二进制初值自动重装载自动重装载, 即在中断服务子程序中即在中断服务子程序中, 不需要编程送初值不需要编程送初值, 这这里不再举例。定时器里不再举例。定时器 T1 工作在方式工作在方式 2 时时, 可直接用作串行可直接用作串行口波特率发生器口波特率发生器, 补充:补充: 定时器定时器/计数器计数器应用应用举例举例 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 例例 3 利用定时器利用定时器T1,采用工作方式,采用工作方式2,计数,要求每,计数,

36、要求每计数计数156次,将次,将P1.7取反。取反。 选用定时器选用定时器 /计数器计数器T1 工作于计数方式工作于计数方式, 外部计数脉外部计数脉冲由冲由T1(P3.5)引脚引入)引脚引入,每来一个由每来一个由1至至0的跳变计数器加的跳变计数器加1, 由程序查询由程序查询TF1的状态。的状态。 计数初值计数初值: X=256-156=100=64H TH1=TL1=64HTMOD初始化初始化: TMOD=01100000B=60H (GATE=0, C/T=1, M1=1, M0=0)TCON初始化初始化: 启动启动TR1=1 ORG 2000H MOV TMOD, 60H;T1方式方式2,

37、计数方式,计数方式 MOV TH1, 64H ;T1计数初值计数初值 MOV TL1, 64H SETB TR1 ;启动;启动T1START: JBC TF1,REP ;TF1=1转移转移 SJMP LOOP ;等待;等待REP: CPL P1.7 ;取反输出;取反输出 SJMP LOOP补充:补充: 定时器定时器/计数器应用举例计数器应用举例 四、四、 方式方式 3 的应用的应用 定时器定时器 T0 工作在方式工作在方式 3 时是时是 2 个个 8 位定时器位定时器 /计数器。计数器。 且且TH0 借用了定时器借用了定时器 T1 的溢出中断标志的溢出中断标志TF1和运行控制位和运行控制位 T

38、R1。 例例 3 假设有一个用户系统中已使用了两个外部中断源假设有一个用户系统中已使用了两个外部中断源, 并置定时器并置定时器 T1 于方式于方式 2, 作串行口波特率发生器用作串行口波特率发生器用, 现要求现要求再增加一个外部中断源再增加一个外部中断源, 并由并由 P1.0 口输出一个口输出一个 5K Hz的方的方波(假设晶振频率为波(假设晶振频率为 6 MHz)。)。 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 在不增加其它硬件开销时在不增加其它硬件开销时, 可把定时器可把定时器/计数器计数器 T0 置于置于工作方式工作方式 3, 利用外部引脚利用外部引脚 T0端作附加的外部

39、中断输入端端作附加的外部中断输入端, 把把 TL0 预置为预置为 0FFH, 这样在这样在 T0 端出现由端出现由 1至至 0 的负跳变的负跳变时时, TL0 立即溢出立即溢出, 申请中断申请中断, 相当于边沿激活的外部中断源。相当于边沿激活的外部中断源。 在方式在方式 3下下, TH0 总是作总是作 8 位定时器用位定时器用, 可以靠它来控制由可以靠它来控制由 P1.0 输出的输出的 5 kHz方波。方波。 由由 P1.0 输出输出 5 kHz的方波的方波, 即每隔即每隔 100 s使使 P1.0 的电的电平发生一次变化。则平发生一次变化。则TH0中的初始值中的初始值 X=MN=256100/2=206。 下面是有关的程序。下面是有关的程序。 补充:补充: 定时器定时器/计数器应用举例计数器应用举例 MOV TL0, 0FFH MOV TH0, 206 MOV TL1, BAUD ; BAUD根据波特率要求设置常数 MOV TH1, BAUD MOV TMOD, 27H ; 置T0工作方式3计数,置T1为方式2定时 MOV TCON, 55H ; 启动定时器 T0、 T1, 置外部中断 0 和 1 ; 为跳沿

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论