《单片机原理及应用课件(陈林林)第5章--定时计数器原理及其应用1-rev1知识分享.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用课件(陈林林)第5章--定时计数器原理及其应用1-rev1知识分享.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理及应用课件单片机原理及应用课件(陈林林陈林林)第第5 5章章-定时计数定时计数器原理及其应用器原理及其应用1-rev11-rev1定时定时/计数器的计数器的核心部件是一个核心部件是一个16位的加位的加1计计数器数器两个定时两个定时/计数器的加计数器的加1计数器共由计数器共由2组、组、4个个特殊功能计数器构成,它们分别是:特殊功能计数器构成,它们分别是:TH0:T0加加1计数器的高计数器的高8位位TL0:T0加加1计数器的低计数器的低8位位TH1:T1加加1计数器的高计数器的高8位位TL1:T1加加1计数器的低计数器的低8位位对定时对定时/计数器启动后,加计数器启动后,加1计数器可自动
2、对计数器可自动对规定脉冲规定脉冲源源的脉冲数进行计数,的脉冲数进行计数,TLX计数满后自动向相应的计数满后自动向相应的THX进位,当进位,当THX也计数满后,将置位也计数满后,将置位TCON特殊特殊功能寄存器中的功能寄存器中的TFX位,供程序位,供程序查询查询或向或向CPU发出发出中中断断请求。请求。定时定时/计数器计数器THX和和TLX均可按字节读写,对其写入均可按字节读写,对其写入特定的数值,可控制从开始计数到计数溢出置位特定的数值,可控制从开始计数到计数溢出置位TFX所需计数的脉冲个数;而对其读出,则可了解从启动所需计数的脉冲个数;而对其读出,则可了解从启动定时器到现在所计的脉冲个数。定
3、时器到现在所计的脉冲个数。“规定脉冲源规定脉冲源”定时定时/计数器能够计数的计数器能够计数的“规定脉冲源规定脉冲源”有两个:有两个:一个是内部振荡源一个是内部振荡源12分频后形成的脉冲,即对机器周期进分频后形成的脉冲,即对机器周期进行计数;行计数;另一个是对从另一个是对从T0(或(或T1)引脚引入的外部脉冲计数,这种)引脚引入的外部脉冲计数,这种情况下,计数器在每个机器周期的情况下,计数器在每个机器周期的S5P2节拍期间采样外部节拍期间采样外部输入信号,若一个周期采样值为输入信号,若一个周期采样值为“1”,下一个周期的采样,下一个周期的采样值为值为“0”,则计数器加,则计数器加1,所以,对外部
4、信号的最高计数,所以,对外部信号的最高计数率是振荡频率的率是振荡频率的1/24,且要求外部输入信号的高、低电平,且要求外部输入信号的高、低电平时间均需保持一个机器周期以上。时间均需保持一个机器周期以上。周期信号关系周期信号关系图图由于单片机振荡频率是已知的,因此对内部振由于单片机振荡频率是已知的,因此对内部振荡源荡源12分频后形成的脉冲进行计数时,即可完分频后形成的脉冲进行计数时,即可完成定时。成定时。实现定时实现定时的具体作法是,向的具体作法是,向THX、TLX写入特写入特定的基数,可预先确定从定时定的基数,可预先确定从定时/计数器开始运计数器开始运行到行到THX、TLX溢出所需的时间,一旦
5、溢出所需的时间,一旦TFX置置位,则经历了预期的时间,从而完成定时。位,则经历了预期的时间,从而完成定时。加加1计数器的工作原理计数器的工作原理 定时计数器内部结构示意图1.定时器定时器工作方式寄存器工作方式寄存器TMOD TMOD用于控制用于控制T0和和T1的工作方式,字节地址的工作方式,字节地址89H,高半字节定义高半字节定义T1的工作方式;低半字节定义的工作方式;低半字节定义T0的工的工作方式,作方式,TMOD不能位寻址,复位后,所有位均为零。各位不能位寻址,复位后,所有位均为零。各位定义如下:定义如下:GATEC/TM1M0GATEC/TM1M0定时计数器1定时计数器0D7D6D5D4
6、D3D2D1D0TMOD1)M1、M0:工作方式选择位:工作方式选择位 M1 M0工作方式说 明0 0方 式013位定时/计数器0 1方 式116位定时/计数器1 0方 式2自动重装入8位定时/计数器1 1方 式3T0:拆分为两个8位定时/计数器T1:工作于方式2或停止工作2)C/T:定:定时时/计计数功能数功能选择选择位位C/T0为定时模式;为定时模式;C/T=1为计数模式为计数模式 3)GATE:门控位:门控位GATE0时时,只要用,只要用软软件置件置TCON中的中的TR0或或TR1为为1,就可以启,就可以启动动相相应应的定的定时时/计计数器;数器;GATA1时,软件启动时,软件启动TR0
7、或或TR1后,外部中断后,外部中断引脚引脚/INT0或或/INT1也必须同时为高电平,才能也必须同时为高电平,才能启动定时启动定时/计数器计数器T0或或T1工作工作GATA1时时,可测量可测量/INT0或或/INT1引脚高电平的引脚高电平的宽度宽度2.定时器定时器控制寄存器控制寄存器TCON TCON用于控制定时用于控制定时/计数器的启动、停止,并寄存计数器的启动、停止,并寄存定时器的溢出状态定时器的溢出状态另有另有4位与中断系统有关位与中断系统有关TCON字节地址位字节地址位88H,可位寻址。各位定义如下:,可位寻址。各位定义如下:TF1TR1TF0TR0IE1IT1IE0IT0D7D6D5
8、D4D3D2D1D0TCON8FH8EH8DH8CH8BH8AH89H88H位地址1)TF1:定时:定时/计数器计数器1溢出中断请求标志溢出中断请求标志 2)TR1:定时:定时/计数器计数器1运行控制位运行控制位3)TF0:定:定时时/计计数器数器0溢出中断溢出中断请请求求标标志志4)TR0:定时:定时/计数器计数器0运行控制位运行控制位 定时计数器内部结构示意图5.2定时定时/计数器工作方式计数器工作方式 两个定时两个定时/计数器工作方式计数器工作方式0方式方式2的原理的原理完全相同,只是有关的加完全相同,只是有关的加1计数器计数器(THX、TLX)及及TMOD、TCON中对应的控制、标中对
9、应的控制、标识位不同;对应的外部输入引脚不同。识位不同;对应的外部输入引脚不同。1.工作方式工作方式0 13位位计计数模式:数模式:由由TL1的低的低5位位(高高3位未用位未用)和和TH1的的8位位组组成加成加1计计数器。数器。TL1的低的低5位溢出位溢出时时向向TH1进进位,位,TH1溢出溢出时时,置位,置位TCON中相中相应应的的TF1标标志,向志,向CPU发发出中断出中断请请求或供求或供程序程序查询查询。从启从启动动到溢出的定到溢出的定时时间为时时间为:T213(TH1TL1)初初值值机器周期机器周期最最长长定定时时间为时时间为:T213机器周期机器周期最大脉冲最大脉冲计计数个数数个数为
10、为:N2138192定时计数器工作方式定时计数器工作方式0 02.工作方式工作方式1 加加1计计数器数器长长度度为为16位,由位,由TL1作作为为低低8位、位、TH1作作为为高高8位,位,定定时时间为时时间为:T216(TH1TL1)初初值值机器周期机器周期最最长长定定时时间为时时间为:T216机器周期机器周期最大脉冲最大脉冲计计数个数数个数为为:N21665536定时计数器方式定时计数器方式1 13.工作方式工作方式2 该方式下,加一计数器溢出后可自动重新加载初该方式下,加一计数器溢出后可自动重新加载初值,不必软件干预值,不必软件干预软件简单,定时更为准确,特别适合用于需要连软件简单,定时更
11、为准确,特别适合用于需要连续高精度定时的场合续高精度定时的场合(如串口波特率发生器如串口波特率发生器)。定定时时间为时时间为:T28TL1初初值值机器周期机器周期最最长长定定时时间为时时间为:T28机器周期机器周期 定时计数器方式定时计数器方式24.工作方式工作方式3 该该方式只适合于定方式只适合于定时时/计计数器数器0方式方式3时时T0被拆分被拆分为为两个独立的加两个独立的加1计计数器数器TL0使用原使用原T0的有关控制位、引脚和溢出的有关控制位、引脚和溢出标标志;志;TH0只能作定只能作定时时器使用,但它占用器使用,但它占用T1的启停控制位的启停控制位TR1和溢出和溢出标标志位志位TF1。
12、该方式使系统增加一个额外的该方式使系统增加一个额外的8位定时器,但位定时器,但T0一旦设置为方式一旦设置为方式3,对,对T1的使用有一定的影的使用有一定的影响,响,一般一般将将T1作为串口波特率发生器作为串口波特率发生器 5.3定时定时/计数器应用举例计数器应用举例 应用定时应用定时/计数器,实质是解决两个问题:计数器,实质是解决两个问题:通过通过写入控制字写入控制字,对定时,对定时/计数器计数器初始化初始化,确定恰,确定恰当的工作方式;当的工作方式;计算加计算加1计数器的计数器的初值初值,以确定定时的时间或计数,以确定定时的时间或计数的脉冲数的脉冲数 1.定定时时/计计数器初始化的步数器初始
13、化的步骤骤包括:包括:向向TOMD写入工作方式控制字;写入工作方式控制字;向向TH、TL装入初装入初值值;如果要使用中断,如果要使用中断,则则置置EA1(总总的中断允的中断允许许)和和ETx1(允允许许定定时时器中断器中断);置置TRx1,启动定时,启动定时/计数器。计数器。2.初值的计算初值的计算设设计数器模值计数器模值(TH、TL记满时的值记满时的值)为为M,计,计数脉冲个数为数脉冲个数为N,计数器初值为,计数器初值为TC 则:则:TCMN,或,或NMTC 在定在定时时模式下,模式下,计计数脉冲是数脉冲是单单片机主脉冲的片机主脉冲的12分分频频,设设周期周期为为T计计数数,则则定定时时间时
14、时间T与其它参与其它参数的关系数的关系为为:T(MTC)T计计数数即:即:TCMT/T计数计数 TC0时,定时时间最长时,定时时间最长 若主若主频频12MHZ,则则最大定最大定时时间为时时间为:方式方式0:Tmax2131 s8.192ms方式方式1:Tmax2161 s65.536ms方式方式2、3:Tmax281 s0.256ms计算定时器初值:计算定时器初值:系系统时钟频统时钟频率率为为12MHz,所以,所以计计数脉冲周期数脉冲周期T计计数数121/12MHZ1 s。选择选择方式方式1,则则:计计数脉冲数数脉冲数NT/T计计数数10103/(1106)10000定定时时初初值值X2161
15、000055536D8F0HTH初值为初值为D8H中,送入中,送入TL0初初值为值为F0H 例51 利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,设系统时钟频率为12MHz设设置置T0的方式控制字的方式控制字TMOD:M1M0=01,GATE=0,C/=0,方式控制字为方式控制字为01H ORG0000HMAIN:MOVTMOD,#01H;置工作方式;置工作方式1MOVTH0,#0D8H;装入;装入计计数初数初值值MOVTL0,#0F0HSETBTR0;启;启动动T0JNBTF0,$;等待定;等待定时时间时时间到到CPLP1.0;P1.0取反取反
16、输输出出SJMPMAIN;循;循环环,输输出方波出方波END 例52 使用定使用定时时器器实现长时间实现长时间的延的延时时思路:思路:把定时器设置为把定时器设置为50ms,另外设置两个软件计,另外设置两个软件计数器数器20、60,总时间为,总时间为50ms2060=60000ms=1分钟分钟T1为方式为方式1则则M1M0=01H,使用定时器,使用定时器G/T=0,GATE=0,TMOD=10H时钟频时钟频率率为为12MHz。方式方式1为为16位计数器,最位计数器,最大大65536,减去,减去50000等于等于15536,则计数器初,则计数器初值为值为3CB0H ORG0000H;程序开始程序开
17、始LJMPMAINORG0030HMAIN:MOV30H,#20;30h,31h分别置常数分别置常数20,60MOV31H,#60;MOVTMOD,#10H;定时器方式定时器方式1MOVTH1,#03CH;置定时器初值置定时器初值MOVTL1,#0B0HMOVIE,#00H;禁止中断禁止中断SETBTR1;起动定时器起动定时器LOOP:JBCTF1,LOOP1;查询定时器时间到转查询定时器时间到转loop1AJMPLOOPLOOP1:MOVTH1,#03CH;重置定时器重置定时器MOVTL1,#0B0HDJNZ30H,LOOP;定时是否到了定时是否到了20次次MOV30H,#20DJNZ31H
18、,LOOP;定时是否到了定时是否到了60次次MOV31H,#60CPLP1.0;取反取反p1.0AJMPLOOPEND定时器小结:定时器小结:(2 2个个1616位加法计数器)位加法计数器)运行运行/停止停止由由TRxTRx位控制,位控制,(当当GATE=1GATE=1时:时:由由TRxTRx位和位和TxTx引脚上的信号共同控制引脚上的信号共同控制)工作方式工作方式由由TMODTMOD决定决定;计数计数/定时定时由由C/TC/T位决定位决定 工作方式工作方式0 0(1313位)位)永远不用永远不用 工作方式工作方式3 3(T0T0拆为双拆为双8 8位)位)几乎几乎无无用用 工作方式工作方式1 1(1616位)位)经常用到经常用到 工作方式工作方式2 2(8 8位自动重装)位自动重装)经常用到经常用到从初值按机器周期或外部脉冲递加,溢出位从初值按机器周期或外部脉冲递加,溢出位 TFxTFx申请中断申请中断;中断允许中断允许由由ETxETx位和位和EAEA位控制位控制OVER!结束!结束!