收藏 分销(赏)

修改NEWMCS51定时器与计数器概述.pptx

上传人:精**** 文档编号:4597083 上传时间:2024-10-02 格式:PPTX 页数:74 大小:608.28KB 下载积分:18 金币
下载 相关 举报
修改NEWMCS51定时器与计数器概述.pptx_第1页
第1页 / 共74页
修改NEWMCS51定时器与计数器概述.pptx_第2页
第2页 / 共74页


点击查看更多>>
资源描述
第六章第六章 MCS-51单片机定时单片机定时/计数器计数器问题的提出 什么是什么是“定时定时”?回答:定时就是通过硬件或软件的定时就是通过硬件或软件的方法产生一个时间基准,以方法产生一个时间基准,以此来实现系统的定时或延时此来实现系统的定时或延时控制。控制。定时和计数在各种场合应用普遍,常用方法有:定时和计数在各种场合应用普遍,常用方法有:定时和计数在各种场合应用普遍,常用方法有:定时和计数在各种场合应用普遍,常用方法有:p硬件定时硬件定时硬件定时硬件定时 定时时间调整较大时,需要重新设计电路。定时时间调整较大时,需要重新设计电路。p软件定时软件定时软件定时软件定时 CPUCPU效率不高,不适合应用于较大延时场合。效率不高,不适合应用于较大延时场合。p可编程的定时器可编程的定时器可编程的定时器可编程的定时器/计数器法计数器法计数器法计数器法 综合硬件定时和软件定时的优点,控制简单。综合硬件定时和软件定时的优点,控制简单。n6.1定时定时/计数器的结构和工作原理计数器的结构和工作原理n6.2定时定时/计数器的功能计数器的功能n6.3定时定时/计数器的控制计数器的控制n6.4定时定时/计数器工作方式及其设置计数器工作方式及其设置n6.5定时定时/计数器应用举例计数器应用举例8051内部集成了内部集成了2 2个个个个1616位位位位可编程定时可编程定时/计数器,称计数器,称为定时为定时/计数器计数器0(T0)和定时)和定时/计数器计数器1(T1)。)。图6-1 MCS-51定时器/计数器逻辑结构图T0T0:是:是1616位加法位加法位加法位加法计数器,计数器,分别由两个八位专用寄存分别由两个八位专用寄存器器TH0TH0和和TL0TL0组成。组成。T1T1:是:是1616位加法位加法位加法位加法计数器,计数器,分别由两个八位专用寄存器分别由两个八位专用寄存器TH1TH1和和TL1TL1组成。组成。用来设置定用来设置定时器的时器的工作工作工作工作方式方式方式方式。用来控制定时器的用来控制定时器的启启启启动、停止及溢出查询动、停止及溢出查询动、停止及溢出查询动、停止及溢出查询。6.1 定时定时/计数器的结构和工作原理计数器的结构和工作原理定时定时/计数器的计数器的核心部件核心部件是一个加是一个加1 1计数器,计数器,外部脉冲源外部脉冲源 系统的时钟振荡器系统的时钟振荡器其脉冲有两个来源:其脉冲有两个来源:振荡器振荡器12 加加1 1计数器计数器TFx中断中断引脚引脚TX端端C/T=0C/T=0C/T=1C/T=1 控制信号控制信号定时定时/计数器的原理计数器的原理6.2 定时定时/计数器的功能计数器的功能 一、一、定时功能定时功能用作定时器用作定时器n是是通通过过内内部部计计数数器器的的计计数数来来实实现现的的,计计数数脉脉冲冲来来自自单单片片机机内内部部的的时时钟钟振振荡荡器器,其其频频率率是是振振荡荡频频率率的的1/12,即即每每个个机机器器周周期期产产生生一一个个计计数数脉脉冲冲,计计数器加数器加1,直至计满溢出。,直至计满溢出。振荡器振荡器12 加加1 1计数器计数器TFx中断中断引脚引脚TX端端C/T=0C/T=0C/T=1C/T=1 控制信号控制信号对对8051时钟信号的时钟信号的12分频信号进行计数分频信号进行计数。6.2 定时定时/计数器的功能计数器的功能 二、二、计数功能计数功能用作计数器用作计数器n计数脉冲来自外部输入引脚计数脉冲来自外部输入引脚T0(P3.4)或或T1(P3.5),当当输入信号发生一个由输入信号发生一个由1到到0的跳变时,计数器加的跳变时,计数器加1。由于识别一个从由于识别一个从1到到0的跳变要用两个机器周期,的跳变要用两个机器周期,所以最快的计数频率是振荡器频率的所以最快的计数频率是振荡器频率的1/24。振荡器振荡器12 加加1 1计数器计数器TFx中断中断引脚引脚TX端端C/T=0C/T=0C/T=1C/T=1 控制信号控制信号6.2 定时定时/计数器的功能计数器的功能 二、二、计数功能计数功能用作计数器用作计数器n计数脉冲来自外部输入引脚计数脉冲来自外部输入引脚T0(P3.4)或或T1(P3.5),当当输入信号发生一个由输入信号发生一个由1到到0的跳变时,计数器加的跳变时,计数器加1。由于识别一个从由于识别一个从1到到0的跳变要用两个机器周期,的跳变要用两个机器周期,所以最快的计数频率是振荡器频率的所以最快的计数频率是振荡器频率的1/24。因此外部脉冲的最高频率不能超过振荡频率的因此外部脉冲的最高频率不能超过振荡频率的1/24,如如fosc=12MHz,则外部事件脉冲频率不,则外部事件脉冲频率不能能于于500kHz,否则否则CPU无法识别一次跳变。无法识别一次跳变。高高 举例说明举例说明(1)定时功能:定时功能:定时功能:定时功能:(每隔每隔每隔每隔1 1个个个个机器周期机器周期机器周期机器周期加加加加1)1)例如某机械零件的热处理工艺曲线为:例如某机械零件的热处理工艺曲线为:温度温度开始定时开始定时保温保温5分钟分钟淬火淬火清洗清洗开始定时开始定时回火回火3小时小时空冷空冷实际控制可以由单实际控制可以由单片机定时发出信号片机定时发出信号控制自动完成整个控制自动完成整个工艺过程。工艺过程。举例说明举例说明(2 2)计数功能计数功能计数功能计数功能:(每来每来每来每来1 1个脉冲个脉冲个脉冲个脉冲加加加加1)1)例如一啤酒生产线,如下图所示:例如一啤酒生产线,如下图所示:计数计数2424瓶瓶光电信号检测光电信号检测2424瓶装完申请中断瓶装完申请中断转入中断服务程序装箱转入中断服务程序装箱输送带输送带发射装置发射装置发射装置发射装置6.3 定时定时/计数器的控制计数器的控制涉及涉及3个寄存器:个寄存器:1.定时器控制寄存器:定时器控制寄存器:TCON2.定时器方式寄存器:定时器方式寄存器:TMOD3.定时器初值寄存器:定时器初值寄存器:TH0 TL0 TH1 TL11.定时器控制寄存器定时器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0l TF0和和TF1计数溢出标志位。计数溢出标志位。l TR0和和TR1定时器运行控制位定时器运行控制位。TR0(TR1)=0 停止定时停止定时/计数器工作计数器工作 TR0(TR1)=1 启动定时启动定时/计数器工作计数器工作2.定时器方式寄存器定时器方式寄存器TMOD 位位 7 6 5 4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0 定时器定时器1 定时器定时器0C/TC/T:1计数计数;0定时定时M1M0:M1M0:0000方式方式方式方式0 0;0101方式方式方式方式1 1;1010方式方式方式方式22;1111方式方式方式方式3 3GATEGATE:门控位,为门控位,为1时要求时要求INTi引脚高电平才计数引脚高电平才计数GATE:门门控控位位,用用来来控控制制定定时时器器/计计数数器器的的启启动动是是否受外部中断请求信号的影响。否受外部中断请求信号的影响。GATE=0,不受影响,不受影响,仅由控制位仅由控制位TRx控制;控制;GATE=1,受,受TRx和外部中断请求信号共同控制。和外部中断请求信号共同控制。lC/T:选择定时器功能还是计数器功能。选择定时器功能还是计数器功能。C/T=1 选择选择计数器计数器功能功能 C/T=0 选择选择定时器定时器功能功能 (计出现在计出现在T0或或T1引脚上的负跳变引脚上的负跳变)(计机器周期计机器周期)M1 M0方式方式说明说明000TLx低低5位与位与THx8位构成位构成13位计数器位计数器011TLx与与THx构成构成16位计数器位计数器102可自动重装初值的可自动重装初值的8位计数器位计数器113定时器定时器0分成两个分成两个8位独立计数器位独立计数器定时器定时器1停止计数停止计数lM1M0:指定定时指定定时/计数器的工作方式计数器的工作方式,可形成可形成四种编码,对应四种工作方式:四种编码,对应四种工作方式:例例6-1:某一系统使某一系统使T1作为定时器,采用方式作为定时器,采用方式2,使使T0作为计数器采用方式作为计数器采用方式1,T0、T1的门控位均的门控位均为为0,请设置,请设置TMOD的值。的值。00100101即:即:TMOD=25HTMODGATEC/TM1M0GATEC/TM0M1D7D6D5D4D3D1D2D0T1方式控制T0方式控制 用用于于存存放放计计数数初初值值,具具有有自自动动加加1功功能能,加加满满后后溢溢出,它们的字节地址是出,它们的字节地址是:TH1(8TH1(8位位位位)TL1(8TL1(8位位位位)TH0(8TH0(8位位位位)TL0(8TL0(8位位位位)8DH8BH8CH8AH8DH8BH8CH8AH根根据据定定时时器器/计计数数器器工工作作方方式式,计计数数长长度度可可分分别别选选择择:8位,位,13位,位,16位。位。3.定时器初值寄存器定时器初值寄存器 TH0 TL0 TH1 TL1 6.4 定时定时/计数器的工作方式及其设置计数器的工作方式及其设置T0有方式有方式0、1、2、3四种;四种;T1有方式有方式0、1、2三种。三种。51的定时器的定时器/计数器共有四种工作方式,计数器共有四种工作方式,其中:其中:6.4.1 工作方式及其特点工作方式及其特点 方式方式方式方式0 01313位计数器位计数器位计数器位计数器(无自动重装入)无自动重装入)无自动重装入)无自动重装入)定时范围:定时范围:(1 181928192)*TpTp计数范围:计数范围:18192方式方式方式方式1 11616位计数器位计数器位计数器位计数器(无自动重装入)无自动重装入)无自动重装入)无自动重装入)定时范围:定时范围:(1 16553665536)*TpTp计数范围计数范围:165536方式方式方式方式2 2、3 388位计数器(方式位计数器(方式位计数器(方式位计数器(方式2 2具有自动重装初值功能)具有自动重装初值功能)具有自动重装初值功能)具有自动重装初值功能)定时范围:定时范围:(11 256256)*TpTp计数范围:计数范围:1256(注:(注:Tp为一个机器周期的时间)为一个机器周期的时间)1、方式、方式0(以(以T0为例)为例)13位定时器位定时器/计数器计数器TMOD00M0M1C/TGATEINT0(P3.2)T0(P3.4)C/T=1C/T=0振荡器 12控制TL0(低5位)TH0TCONTF0TR 0中断图 6-4 方式 0(13位计数器)(高8位)S1S2TL0的高的高3位位没有用没有用。C/T=1,S1接下面,接下面,T0作计数器,对作计数器,对P3.4引脚输引脚输入的外部脉冲计数,当脉冲发生负跳变时,计数器入的外部脉冲计数,当脉冲发生负跳变时,计数器加加1,计数值公式为:,计数值公式为:N=213X=8192X其中:其中:N为计数值,为计数值,X是是THx、TLx的初值。的初值。X=8191(1FFFH)8191(1FFFH)时,时,N最小值最小值=1 1;X=0 0时,时,N最大值最大值=81928192。则则N的范围:的范围:1 181928192。讨论计数方式:讨论计数方式:C/T=0时,时,S1接上面,接上面,T0作定时器,对机器周期作定时器,对机器周期Tp计数。计数。v求定时时间由下式确定:求定时时间由下式确定:Tc=NTp=(213X)Tp=(8192X)Tp其中:其中:Tc为定时时间;为定时时间;N为需要计数的次数;为需要计数的次数;X为计数初值为计数初值v求计数初值计算公式:求计数初值计算公式:X=213Tc/Tp=8192Tc/Tp讨论定时方式讨论定时方式2、方式、方式1(以(以T0为例)为例)16位定时器位定时器/计数器计数器TMOD10M0M1C/TGATEINT0(P3.2)T0(P3.4)C/T=1C/T=0振荡器12控制TL0(8位)TH0(8位)TCONTF0TR0中断图6-5 方式1(16位计数器)C/T=1,S1接下面,接下面,T0作计数器,对作计数器,对P3.4引脚输入引脚输入的外部脉冲计数,当脉冲发生负跳变时,计数器加的外部脉冲计数,当脉冲发生负跳变时,计数器加1,计数值公式为:,计数值公式为:N=216X=65536X其中:其中:N为计数值,为计数值,X是是THx、TLx的初值。的初值。X=65535(FFFFH)65535(FFFFH)时,时,N最小值最小值=1 1;X=0 0时,时,N最大值最大值=6553665536;则则N的范围:的范围:1 16553665536。讨论计数方式讨论计数方式C/T=0时,时,S1接上面,接上面,T0作定时器,对机器周期作定时器,对机器周期Tp计数。计数。v求定时时间由下式确定:求定时时间由下式确定:Tc=NTp=(216X)Tp=(65536X)Tp其中:其中:Tc为定时时间;为定时时间;N为需要计数的次数;为需要计数的次数;X为计数初值为计数初值求计数初值计算公式:求计数初值计算公式:X=216Tc/Tp=65536Tc/Tp讨论定时方式讨论定时方式3、方式、方式2(以(以T0为例)为例)8位定时器位定时器/计数器计数器TL0作为作为8位加法计数器,位加法计数器,TH0作为初值寄存器作为初值寄存器用。用。TL0加法计数器溢出时置加法计数器溢出时置TF0=1,而且发出,而且发出重装载信号,使三态门打开,将重装载信号,使三态门打开,将TH0中的初值自中的初值自动送入动送入TL0。C/T=1,S1接下面,接下面,T0作计数器,对作计数器,对P3.4引脚输入引脚输入的外部脉冲计数,当脉冲发生负跳变时,计数器加的外部脉冲计数,当脉冲发生负跳变时,计数器加1,计数值公式为:,计数值公式为:N=28X=256X其中:其中:N为计数值,为计数值,X是是THx、TLx的初值。的初值。X=255(FFH)255(FFH)时,时,N最小值最小值=1 1;X=0 0时,时,N最大值最大值=256256;则则N的范围:的范围:1 1256256。讨论计数方式:讨论计数方式:C/T=0时,时,S1接上面,接上面,T0作定时器,对机器周期作定时器,对机器周期Tp计数。计数。v求定时时间由下式确定:求定时时间由下式确定:Tc=NTp=(28X)Tp=(256X)Tp其中:其中:Tc为定时时间;为定时时间;N为需要计数的次数;为需要计数的次数;X为计数初值为计数初值v求计数初值计算公式:求计数初值计算公式:X=28Tc/Tp=256Tc/Tp讨论定时方式讨论定时方式工作方式工作方式0:X=213Tc/Tp=213500us/2us=8192250=7942=1F06H=1111100000110B则则TL0=00000110B=06H,TH0=11111000B=0F8H例例6-2:已知晶振已知晶振6MHz,要求定时,要求定时0.5ms,试分别求,试分别求出出T0工作于方式工作于方式0、方式、方式1、方式、方式2时的定时初值。时的定时初值。解:解:机器周期机器周期Tp=12/fosc=12/6MHz=2us;定时定时Tc=0.5ms=500us.工作方式工作方式1:X=216Tc/Tp=216500us/2us=65536250=65286=FF06H则则TL0=06H,TH0=0FFH工作方式工作方式2:X=28Tc/Tp=28500us/2us=256250=6=6H则则TL0=06HTH0=06H(重装初值寄存器,其值不变)(重装初值寄存器,其值不变)练习:n已知晶振已知晶振6MHz,要求定时,要求定时250us,试分别,试分别求出求出T1工作于方式工作于方式0、方式、方式1时的定时初值。时的定时初值。答:答:X0=213Tc/Tp=213250us/2us=8067=1F83HTH1=FCH,TL1=03HX1=216Tc/Tp=216250us/2us=65411=FF83HTH1=FFH,TL1=83HTL0八位定时八位定时/计数器计数器TH0八位定时器八位定时器T1建议使用自动重装方式建议使用自动重装方式TF0TF1将将T0分解为两个计数器分解为两个计数器TL0和和TH0,其中其中TH0借借用了用了T1的的TR1和和TF1T1已无已无TR1,TF1功能功能,建议建议T1做波特率发生器做波特率发生器T1无方式无方式34、方式、方式3(只适用于(只适用于T0)组合扩展模式组合扩展模式注意!注意!方式方式3时时T0(TH0,TL0)及)及T1的各自特点的各自特点:n方式方式3就是将单片机原有的就是将单片机原有的T0,T1两个计数器变成三两个计数器变成三个独立的计数器个独立的计数器,其中其中T1要事先设定为方式要事先设定为方式2(串行口串行口的波特率发生器的波特率发生器)并启动起来。并启动起来。nTH0计数脉冲来自内部计数脉冲来自内部fosc,所以它只能处于所以它只能处于”定时定时”方式。方式。nTH0分别借用了定时器分别借用了定时器T1的的TR1和和TF1来为自己工来为自己工作作,使使TH0能象能象TL0那样用那样用TR1启动定时启动定时,并用并用TF1来来作为作为TH0的溢出中断的标志。的溢出中断的标志。nT1处于方式处于方式3是相当于是相当于TR1=0,此时,此时T1停止计数。停止计数。定时模式下:定时模式下:则定时模式时计数初值则定时模式时计数初值X公式:公式:X=(2nTc/Tp)n:位数,位数,Tc:定时时间,定时时间,Tp:机器周期。机器周期。计数模式下:计数模式下:小结:定时小结:定时/计数功能的计算公式计数功能的计算公式则计数模式时计数初值则计数模式时计数初值X公式:公式:X=2nNN:计数次数计数次数小结:定时小结:定时/计数器的四种工作方式计数器的四种工作方式方式方式0:13位计数器模式。位计数器模式。(以以T1为例为例)当计数器计满为全当计数器计满为全”1”时时,再来一个计数再来一个计数脉冲时脉冲时,就产生一个就产生一个“溢出中断信号溢出中断信号”TF1=1.TH1 TL1振荡器振荡器 1/12(8位位)(低低5位位)TF1中断中断启动控制启动控制T1引脚引脚TR1GATEINT1高三位弃用高三位弃用C/T=0C/T=113位加位加1计数器计数器nGATE=0时时,TR1=1开始定时开始定时/计数计数;GATE=1时时(门控方式门控方式),TR=1且且INT1=1时时,开始工开始工作作.此种方式主要用于测量加在此种方式主要用于测量加在INT1脚上一个正脉脚上一个正脉冲的脉宽冲的脉宽.方式方式1:既既16位计数器模式位计数器模式(以以T1为例为例)TL1TH1振荡器振荡器 1/12(8位位)(8位位)TF1中断中断启动控制启动控制T1引脚引脚TR1GATEINT1C/T=0C/T=116位加位加1计数器计数器n由由TL1做计数器做计数器,TH1做初值寄存器做初值寄存器.工作前工作前TL1,TH1分别预置相同的初值分别预置相同的初值.计数器计数器TL1工作时工作时,每当溢出产生中断的同时每当溢出产生中断的同时,将将TH1中的初值自动重中的初值自动重装装.此模式主要用于做串行口波特率发生器使用此模式主要用于做串行口波特率发生器使用.TL1(8位位)TH1(8位位)振荡器振荡器 1/12TF1中断中断控制控制T1引脚引脚TR1GATEINT1C/T=1C/T=0方式方式2:自动重装初值模式自动重装初值模式8位加位加1计数器计数器8位初值寄存器位初值寄存器n在这种模式中在这种模式中,单片机将单片机将T0和和T1重新进行重新进行“拆分、拆分、组合组合”.将将T0变为由变为由TH0,TL0组成的两个独立的组成的两个独立的8位位定时定时/计数器计数器.T1作为串行通讯的波特率发生器使用。作为串行通讯的波特率发生器使用。方式方式3:组合扩展模式组合扩展模式TL0振荡器振荡器 1/12TF0中断中断控制控制T0引脚引脚TR0GATEINT0C/T=0C/T=1TH0TF1中断中断控制控制TR1Fosc/12在方式在方式3时的模式中时的模式中定时器定时器T0的结构图的结构图定时定时/计数器计数器4种方式比较:种方式比较:方方式式计数方计数方M最大定时时间最大定时时间Tmax方式方式013位位Tmax=8192*1=8.192ms方式方式116位位Tmax=65536*1=65.536ms方式方式2,38位位Tmax=256*1=0.256ms方方式式计数方计数方M最大计数值最大计数值方式方式013位位Tmax=8192方式方式116位位Tmax=65536方式方式2,38位位Tmax=256注:设主频为注:设主频为12MHz(1 1 1 1)定时)定时)定时)定时/计数器配置计数器配置计数器配置计数器配置p 工作模式和方式的确定 确定采用定时还是计数模式 p 初值计算?初值?初值?初值?初值?定时模式公式 计数模式公式 p 溢出方式判断 中断方式还是查询方式 6.4.2 定时定时/计数器配置及初始化计数器配置及初始化(2 2 2 2)定时)定时)定时)定时/计数器初始化计数器初始化计数器初始化计数器初始化 定时/计数器的初始化程序可按照上述三个步骤进行,溢出方式设置则需要根据实际需要具体编写,如采用中断方式,还需设置中断入口地址等。例题1:假设8051单片机外接晶振频率为12MHz12MHz12MHz12MHz,请用单片机T0T0T0T0以方式以方式以方式以方式0 0 0 0的工作方式实现5ms5ms5ms5ms的定时的定时的定时的定时,试计算初值并给出初始化子程序。6.4.2 定时定时/计数器配置及初始化计数器配置及初始化 例题1:假设8051单片机外接晶振频率为12MHz,请用单片机T0以方式0的工作方式实现5ms的定时,试计算初值并给出初始化子程序。ORG 0000HAJMP STARTSTART:MOV TMOD,#00H;T0定时模式,工作方式0MOV TH0,#63H;T0赋初值MOV TL0,#18H 例题2:假设8051单片机外接晶振频率为6MHz,T0工作在方式1下实现定时100mS后申请中断,T1工作在方式2下计数100次后申请中断,计算初值并编写相应程序。MOV TMOD,#61H;设置T0和T1的工作方式MOV TH0,#3CH;T0赋初值MOV TL0,#0B0H MOV TL1,#9CH;T1赋初值MOV TH1,#9CH;SETB ET0;开放相关中断SETB ET1SETB EA.;设置其他程序DS0:MOVTH0,#3CHMOVTL0,#0B0H;T0重赋初值重赋初值6.4.3 扩大定时时间方法扩大定时时间方法 要让单片机产生10秒钟的定时信号,由于6MHz的频率T0溢出一次的最大时间约为131mS左右。因此可让T0每次定时时间为100mS,连续溢出100次,时间就能到10S。学习内容学习内容1应用步骤应用步骤2编程举例编程举例6.5 定时定时/计数器应用举例计数器应用举例n1、T0、T1的选择使用;的选择使用;n2、合理选择工作方式、合理选择工作方式TMOD;n3、计算初值:、计算初值:X=2nTc/Tp其中,其中,n与工作方式有关,与工作方式有关,方式方式0,n=13;方式方式1,n=16;方式方式2、3时,时,n=8。一、定时器应用步骤一、定时器应用步骤n4、编制应用程序:、编制应用程序:定时器定时器/计数器的初始化:计数器的初始化:写写TMOD;写入定时初值;写入定时初值;设置中断系统的设置中断系统的IP、IE;启动定时器运行(启动定时器运行(TRx)。)。正确编制定时器正确编制定时器/计数器中断服务程序。计数器中断服务程序。一、定时器应用步骤一、定时器应用步骤例例6-3:设单片机晶振频率设单片机晶振频率fosc=12MHz,使用,使用T0以方以方式式0产生周期为产生周期为1ms的方波,并由的方波,并由P1.0输出。以中断方输出。以中断方式完成编程。式完成编程。解:解:1 1、TMODTMOD配置配置配置配置T1不用,有关位设置为不用,有关位设置为0;T0的的GATE=0,C/T=0,M1M000(方式(方式0)。)。则则TMOD初始化设置为初始化设置为00000000B,即,即00H。二、定时器编程举例二、定时器编程举例f=12MHZ,则有机器周期,则有机器周期Tp=1usX=2X=21313-500/1-500/1X=8192-500=76927692=1E0CH7692=1E0CH0001111000001100B1111000000001100TH0=F0HTL0=0CH2、计算初值、计算初值产生产生1ms的方波,只需在的方波,只需在P1.0端以端以0.5ms为周期为周期交替输出高低电平即可,因此定时时间为交替输出高低电平即可,因此定时时间为0.5ms。3、启动和中断、启动和中断定时器定时器T0的启动由的启动由TR0控制,即控制,即TR0=1启动。启动。定时器定时器T0的中断允许由的中断允许由ET0和和EA控制,控制,即即ET0=1、EA=1。4、程序设计、程序设计ORG0000HLJMPMAINORG000BHLJMPDS0ORG0100HMAIN:MOVSP,#30HMOVTL0,#0CHMOVTH0,#0F0HMOVTMOD,#00HSETBET0SETBEASETBTR0SJMP$DS0:MOVTL0,#0CHMOVTH0,#0F0HCPLP1.0RETI 练习练习1 1:(计数方式):(计数方式)如前述啤酒生产线,计数如前述啤酒生产线,计数24瓶中断转入装箱程序瓶中断转入装箱程序选选T1方式方式0计数,计数,TMOD的高的高4位为位为:0100初始常数初始常数X的计算的计算:213-X=24X=8192-24=81688168=1FE8H8168=1FE8H0001111111101000B111111111111111100001000TH1=FFHTL1=08H加加24次即溢出中断。程序如下次即溢出中断。程序如下:ORG0000HORG0000HAJMPMAINAJMPMAINORG001BHORG001BHAJMPDS1AJMPDS1ORG1000HORG1000HMAIN:MOVSP,#60HMAIN:MOVSP,#60HMOVTMOD,#40HMOVTMOD,#40H;T0;T0方式方式方式方式0 0定时定时定时定时,T1,T1方式方式方式方式0 0计数计数计数计数MOVTH1MOVTH1,#0FFH#0FFHMOVTL1MOVTL1,#08H#08H;T1T1计数计数计数计数2424次初始常数次初始常数次初始常数次初始常数SETBTR1SETBTR1;启动;启动;启动;启动T1T1开始开始开始开始 计数计数计数计数SETBEASETBEA;允许;允许;允许;允许CPUCPU中断中断中断中断SETBET1SETBET1;允许;允许;允许;允许T1T1中断中断中断中断HEREHERE:AJMPHEREAJMPHERE;等待;等待;等待;等待DS1:DS1:略;装箱指令,并重新设置计数初值略;装箱指令,并重新设置计数初值略;装箱指令,并重新设置计数初值略;装箱指令,并重新设置计数初值RETIRETI练习练习2:设单片机晶振频率为设单片机晶振频率为6MHz,使用,使用定时器定时器1以以方式方式0产生周期为产生周期为500s的等的等宽正方波连续脉冲,并由宽正方波连续脉冲,并由P1.0输出,以输出,以查询方式查询方式完成。完成。1TMOD寄存器初始化寄存器初始化2计算计数初值计算计数初值3由定时器控制寄存器由定时器控制寄存器TCON中的中的TR1位控制定时的启动和停止位控制定时的启动和停止4程序设计程序设计 MOVTMOD,#00H;设置;设置T1为方式为方式0MOVTH1,#0FCH;设置计数初值;设置计数初值MOVTL1,#03HMOVIE,#00H;禁止中断;禁止中断LOOP:SETBTR1;启动定时;启动定时JBCTF1,LOOP1;查询计数溢出;查询计数溢出AJMPLOOPLOOP1:MOVTH1,#0FCH;重新设置计数初值;重新设置计数初值MOVTL1,#03HCLRTF1;计数溢出标志位清;计数溢出标志位清“0”CPLP1.0;输出取反;输出取反AJMPLOOP;重复循环;重复循环(查询方式查询方式)练习练习3:题目同题目同练习练习2,但以,但以中断方式中断方式完成。完成。单片机晶振频率为单片机晶振频率为6MHz,使用定时器,使用定时器1以以工作工作方式方式1产生周期为产生周期为500s的等宽正方波的等宽正方波连续脉冲,并由连续脉冲,并由P1.0输出。输出。1TMOD寄存器初始化寄存器初始化TMOD=10H2计算计数初值计算计数初值TH1=0FFHTL1=83H3.置位置位EA以使以使CPU开放中断开放中断4.置位置位ET1以允许定时以允许定时/计数器计数器1中断中断5.置位置位TR1以启动计数以启动计数主程序:主程序:MOVTMOD,#10H;设置;设置T1为工作方式为工作方式1MOVTH1,#0FFH;设置计数初值;设置计数初值MOVTL1,#083HSETBEA;开中断;开中断SETBET1;定时器;定时器1允许中断允许中断SETBTR1;定时开始;定时开始HERE:SJMP$;等待中断;等待中断中断服务程序:中断服务程序:MOVTH1,#0FFH;设置计数初值;设置计数初值MOVTL1,#083HCPLP1.0;输出取反;输出取反RETI;中断返回;中断返回练习练习4:使用定时器使用定时器0以工作以工作方式方式2在在P1.0输输出周期为出周期为200s的连续正方波脉冲。已知的连续正方波脉冲。已知晶振频率晶振频率f osc=6MHz。1计算计数初值计算计数初值TH0=0CEH,TL0=0CEH2TMOD寄存器初始化寄存器初始化M1M0=10TMOD寄存器的状态应为寄存器的状态应为02H3程序设计程序设计(查询方式查询方式)MOVIE,#00H;禁止中断;禁止中断MOVTMOD,#02H;设置定时器;设置定时器0为工作方式为工作方式0MOVTH0,#0CEH;保存计数初值;保存计数初值MOVTL0,#0CEH;设置计数初值;设置计数初值SETBTR0;启动定时;启动定时LOOP:JBCTF0,LOOP1;查询计数溢出;查询计数溢出AJMPLOOPLOOP1:CPLP1.0;输出方波;输出方波AJMPLOOP;重复循环;重复循环注:由于方式注:由于方式2具有自动重装载功能,因此计数初值只具有自动重装载功能,因此计数初值只需设置一次,以后不再需要软件重置。需设置一次,以后不再需要软件重置。(中断方式)(中断方式)主程序:主程序:MOVTMOD,#02H;设置;设置T1为工作方式为工作方式2MOVTH0,#0CEH;保存计数初值;保存计数初值MOVTL0,#0CEH;设置计数初值;设置计数初值SETBEA;开中断;开中断SETBET0;定时器;定时器0允许中断允许中断SETBTR0;定时开始;定时开始HERE:SJMP$;等待中断;等待中断中断服务程序:中断服务程序:CPLP1.0;输出方波;输出方波RETI;中断返回;中断返回【例例6-4】某应用系统需对外部正脉冲测试宽度。某应用系统需对外部正脉冲测试宽度。INT0:MOVTMOD,#09H;方式方式1,GATE=1MOVTL0,#00HMOVTH0,#00HCLREX0;关;关INT0中断中断LOP1:JBP3.2,LOP1;等待低电平;等待低电平LOP2:JNBP3.2,LOP2;等待高电平;等待高电平SETBTR0;启动;启动T0计数计数LOP3:JBP3.2,LOP3;等待低电平;等待低电平CLRTR0;停止计数;停止计数MOVA,TL0MOVB,TH0【例例6-4】某应用系统需对外部正脉冲测试宽度。某应用系统需对外部正脉冲测试宽度。LOP1:JBP3.2,LOP1;等待低电平;等待低电平LOP2:JNBP3.2,LOP2;等待高电平;等待高电平SETBTR0;启动;启动T0计数计数LOP3:JBP3.2,LOP3;等待低电平;等待低电平CLRTR0;停止计数;停止计数MOVA,TL0MOVB,TH0P3.2INT0*对对T0初始化,初始化,09H送送TMOD,GATE=1T0从从0开始计数开始计数测量脉冲宽度测量脉冲宽度0送送TR0,T0停止计数停止计数读出读出T0的值的值定时器方式寄存器定时器方式寄存器TMOD 位位 7 6 5 4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0 定时器定时器1 定时器定时器0lGATE门控位。门控位。GATE=1,同时,同时INTx为高电平,且为高电平,且TRx置置位时,选通定时器位时,选通定时器x。GATE=0,每当,每当TRx置位时就选通定时器置位时就选通定时器x l只有在启动计数要由外部输入只有在启动计数要由外部输入INTx控制时,控制时,才使才使GATE=1,由框图可知,由框图可知,GATE=1,TRx=1时,只有时,只有INTx引脚输入高电平,引脚输入高电平,Tx才才被允许计数。被允许计数。l在一般情况下,在一般情况下,GATE=0,定时,定时/计数器运行计数器运行控制仅由控制仅由TRx位的状态确定。位的状态确定。(TRx=1启动,启动,TRx=0停止停止)振荡器振荡器1212TFx中断中断Tx端端C/T=0C/T=0C/T=1C/T=1GATEINTx端端TRx TLx(低低5 5位位)THx(8(8位位)控制控制&l ll l利用利用GATEGATE的这一功能,可的这一功能,可以很方便的测量脉冲宽度以很方便的测量脉冲宽度(见例见例6-4)6-4)。小结:定时小结:定时/计数器操作控制次序:计数器操作控制次序:确定工作方式,写入确定工作方式,写入TMOD定时定时/计数计数器工作方式寄存器;器工作方式寄存器;计算定时计算定时/计数初值,装入计数初值,装入THx及及TLx;置位置位TRx以启动计数;以启动计数;置位置位ETx以允许定时以允许定时/计数器计数器x中断;中断;(若需要,不需要可略若需要,不需要可略)置位置位EA以使以使CPU开放中断。开放中断。课后习题解答(1)8051单片机定时单片机定时/计数器都有哪些工作方式,计数器都有哪些工作方式,分别有何特点?分别有何特点?答:答:方式方式0:13位的工作方式,不能自动重装入初值;位的工作方式,不能自动重装入初值;方式方式1:16位的工作方式,不能自动重装入初值,位的工作方式,不能自动重装入初值,定时时间最长;定时时间最长;方式方式2:8位的工作方式,可自动重装入初值,定时位的工作方式,可自动重装入初值,定时最为精确;最为精确;方式方式3:8位的工作方式,可自动重装入初值,定时位的工作方式,可自动重装入初值,定时最为精确,只用最为精确,只用T0具有该方式。具有该方式。(2)简述)简述8051单片机定时单片机定时/计数器的基本工作原理。计数器的基本工作原理。答:两个定时答:两个定时/计数器的工作原理基本一致,以下以计数器的工作原理基本一致,以下以T0工作在工作在16位的工作方式下为例来说明定时位的工作方式下为例来说明定时/计计数器的工作原理。数器的工作原理。16位工作方式下,位工作方式下,TH0和和TL0组成了组成了16位的定时计数器,当两个寄存器初值位的定时计数器,当两个寄存器初值均为均为“0”时,如果启动时,如果启动T0工作后,工作后,T0会对特定会对特定的脉冲信号进行计数工作,计数的本质就是每的脉冲信号进行计数工作,计数的本质就是每来一个计数脉冲计数器自动加来一个计数脉冲计数器自动加1。当低。当低8位位TL0由由“0”计至最大值计至最大值255时,再来一个计数脉冲,时,再来一个计数脉冲,TL0会自动清会自动清“0”,同时往高,同时往高8位位TH0进位;依进位;依此类推,直到高此类推,直到高8位也清位也清“0”,此时称为,此时称为T0溢溢出。出。T
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服