第5章定时计数器及串行通信应用精选PPT.ppt

上传人:石*** 文档编号:70108220 上传时间:2023-01-16 格式:PPT 页数:77 大小:9.30MB
返回 下载 相关 举报
第5章定时计数器及串行通信应用精选PPT.ppt_第1页
第1页 / 共77页
第5章定时计数器及串行通信应用精选PPT.ppt_第2页
第2页 / 共77页
点击查看更多>>
资源描述

《第5章定时计数器及串行通信应用精选PPT.ppt》由会员分享,可在线阅读,更多相关《第5章定时计数器及串行通信应用精选PPT.ppt(77页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第5章 定时计数器及串行通信应用第1页,本讲稿共77页问题的提出:问题的提出:1 1、在微机应用系统中,普遍用到定时、在微机应用系统中,普遍用到定时/计数的功能,如计数的功能,如对工业过程量信号的定时采样、对流水生产工艺中某一产品对工业过程量信号的定时采样、对流水生产工艺中某一产品的计数(或计件),因此,定时的计数(或计件),因此,定时/计数具有广泛的应用背景。计数具有广泛的应用背景。2 2、在前面的程序设计一章,大家已学习了软件延时(即通过、在前面的程序设计一章,大家已学习了软件延时(即通过执行一个循环程序进行时间的延迟)实现定时功能,但这种定时执行一个循环程序进行时间的延迟)实现定时功能,

2、但这种定时具有明显的缺点:一是循环程序执行占用具有明显的缺点:一是循环程序执行占用CPUCPU时间,降低时间,降低CPUCPU的利的利用率;二是定时时间不精确或计算比较麻烦;用率;二是定时时间不精确或计算比较麻烦;因此,针对应用广泛的定时因此,针对应用广泛的定时/计数功能,必须在计数功能,必须在CPUCPU中用硬件来实中用硬件来实现定时现定时/计数功能。计数功能。第2页,本讲稿共77页问题的解决:问题的解决:由于定时由于定时/计数功能的普遍性应用,特别是在长时间定时或定时计数功能的普遍性应用,特别是在长时间定时或定时精度要求较高的场合,通常选用硬件实现定时,采用硬件实现定时,精度要求较高的场合

3、,通常选用硬件实现定时,采用硬件实现定时,我们希望:我们希望:1 1、定时、定时/计数的功能及工作方式是可编程的。即可选它作定时器,计数的功能及工作方式是可编程的。即可选它作定时器,也可作计数器,同时,可选择几种工作方式。也可作计数器,同时,可选择几种工作方式。2 2、定时、定时/计数值在规定的范围内是可编程的。即根据需计数值在规定的范围内是可编程的。即根据需要,通过软件来设定定时值或计数值。要,通过软件来设定定时值或计数值。3 3、当达到定时、当达到定时/计数的设定值时,应向计数的设定值时,应向CPUCPU申请中断,以便实申请中断,以便实现定时现定时/计数控制。计数控制。第3页,本讲稿共77

4、页80C51的定时的定时/计数器计数器 实现定时功能,实现定时功能,比较方便的办法是利用单片机内比较方便的办法是利用单片机内部的定时部的定时/计数器计数器。也可以采用下面三种方法:。也可以采用下面三种方法:软件定时:软件定时不占用硬件资源,但占用了软件定时:软件定时不占用硬件资源,但占用了CPU时间,降低了时间,降低了CPU的利用率。的利用率。采用时基电路定时:例如采用采用时基电路定时:例如采用555电路,外接必电路,外接必要的元器件(电阻和电容),即可构成硬件定时要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围电路。但在硬件连接好以后,定时值与定时范围不能

5、由软件进行控制和修改,即不可编程。不能由软件进行控制和修改,即不可编程。采用可编程芯片定时:这种定时芯片的定时值及定时采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时强,使用灵活。在单片机的定时/计数器不够用时,可计数器不够用时,可以考虑进行扩展。以考虑进行扩展。第4页,本讲稿共77页5.1定时定时/计数器计数器q51系列单片机内部提供系列单片机内部提供2个定时个定时/计数器计数器T0和和T1(89S系列有系列有3个)个),既可用作定,既可用作定时器,也可用作计数器,还可作为串

6、行时器,也可用作计数器,还可作为串行口的波特率发生器。定时口的波特率发生器。定时/计数器实现计数器实现软、硬件结合,给应用系统的设计带来软、硬件结合,给应用系统的设计带来很多方便之处。很多方便之处。q主要作用:主要作用:对外部脉冲计数、产生精确对外部脉冲计数、产生精确定时时间、作串行口的波特率发生器。定时时间、作串行口的波特率发生器。第5页,本讲稿共77页烘箱温度控制系统要定时对温度进行采样,与温度给定值比较后,通过一个隔离输出控制电热丝的通断来控制烘箱内温度。定时的任务由单片机片内的定时器/计数器完成。烘烘箱箱温温度度控控制制系系统统第6页,本讲稿共77页定时定时/计数器的工作原理计数器的工

7、作原理加加1计数器输入的计数脉冲有两个来源计数器输入的计数脉冲有两个来源,一个是由系统的时钟振一个是由系统的时钟振荡器输出脉冲经荡器输出脉冲经12分频后送来;一个是分频后送来;一个是T0或或T1引脚输入的外部脉引脚输入的外部脉冲源。每来一个脉冲计数器加冲源。每来一个脉冲计数器加1,当加到计数器为全,当加到计数器为全1时,再输入一时,再输入一个脉冲就使计数器回零,且计数器的溢出使个脉冲就使计数器回零,且计数器的溢出使TCON中中TF0或或TF1置置1,向,向CPU发出中断请求(定时发出中断请求(定时/计数器中断允许时)。如果定时计数器中断允许时)。如果定时/计计数器工作于定时模式,则表示定时时间

8、已到;如果工作于计数模式,数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。计数器的计数值。第7页,本讲稿共77页5.1.15.1.1定时定时/计数器的定时和计数功能计数器的定时和计数功能 TH1TL17 07 0T1TH0TL07 07 0T0TCONTMOD微处理器内部总线P用于确定T1和T0的功能和工作方式用于控制T1和T0的启动、停止及中断请求1、定时器、定时器/计数器计数器T0、T1的结构的结构第8页,本讲稿共77页定定时时:指指采采用用

9、具具有有精精确确的的固固定定周周期期的的脉脉冲冲信信号号进进行行计计数数,一一般般是是利利用用内内部部振振荡荡脉脉冲冲,即即机机器器周周期期:fosc/12(=1/T)作为计数脉冲;作为计数脉冲;计数:指对外部输入脉冲进行计数;计数:指对外部输入脉冲进行计数;计数:脉冲不等间隔。计数:脉冲不等间隔。波形等间隔,次数已定,时波形等间隔,次数已定,时间确定即对机器周期间确定即对机器周期T进行进行计数。计数。左图定时时间为左图定时时间为N*T每个下降沿计数一次每个下降沿计数一次确认一次负跳变需两个机器周期,确认一次负跳变需两个机器周期,所以,计数频率最高为所以,计数频率最高为fosc/24。2 2、

10、定时与计数的概念、定时与计数的概念N个方波T第9页,本讲稿共77页定时器定时器0 0方式字段方式字段定时器定时器1 1方式字段方式字段M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D71.工作方式控制寄存器工作方式控制寄存器TMODq定时方式时,每个机器周期使计数定时方式时,每个机器周期使计数器加器加1(T=12/fosc)q计数方式时计数方式时T0(P3.4)、T1(P3.5)的负跳的负跳变使计数器加变使计数器加1。q最大计数速率是最大计数速率是fosc/24,即高低电平,即高低电平分别能保持一个机器周期。分别能保持一个机器周期。u用于控制定时器用于控制定时器/计数

11、器的功能和工作方式计数器的功能和工作方式uTMOD格式格式:(字节地址字节地址89H)操作模式控制位GATE:门控制:门控制GATE=1时,如时,如INTx=1,外部中断,外部中断引脚也为高电平且引脚也为高电平且TRx=1,则启动定,则启动定时器;时器;GATE=0,只要,只要TRx=1定时器就开定时器就开始工作。始工作。qC/T=0定时方式;qC/T=1计数方式;5.1.2定时定时/计数器的控制计数器的控制C/T:选择定时或计数方式:选择定时或计数方式M1M0方式计 数 器 配 置0 00TLx低5位与THx的8位构成13位计数器0 11TLx与THx构成16位计数器1 02自动重装初值(T

12、Hx)的8位(TLx溢出时)计数器1 13仅用于T0,分成两个8位计数器,T1停止计数第10页,本讲稿共77页D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TF1:定时器定时器T1溢出中断标志。溢出中断标志。当定时器当定时器1溢出时,由硬件置溢出时,由硬件置1;当响应中断转向中断服务程序时由硬件清当响应中断转向中断服务程序时由硬件清0。TR1:定时器定时器T1运行控制位。运行控制位。由软件置位由软件置位/复位,控制定时器是否运行。复位,控制定时器是否运行。TF0:功能与功能与TF1类似。类似。TR0:功能与功能与TR1类似。类似。定时器定时器0控制位控制位定时

13、器定时器1控制位控制位2、状态控制寄存器、状态控制寄存器TCONTCON格式:格式:(字节地址(字节地址88H)第11页,本讲稿共77页1、方式、方式0T0的等效逻辑结构的等效逻辑结构5.1.3定时定时/计数器的工作方式计数器的工作方式在计数工作方式下,计数器的计数值范围是:在计数工作方式下,计数器的计数值范围是:18192(2的的13次方)次方)当为定时工作方式时,定时时间的计算公式为:当为定时工作方式时,定时时间的计算公式为:(8192-计数初值)计数初值)晶振周期晶振周期12方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出

14、时,置位TCON中的TF0标志,向CPU发出中断请求。第12页,本讲稿共77页定时器模式时有定时器模式时有:Nt/Tcy计数初值计算的公式为:计数初值计算的公式为:X=213-N定时器的初值还可以采用计数个数直接取补法获得。定时器的初值还可以采用计数个数直接取补法获得。计数模式时,计数脉冲是计数模式时,计数脉冲是T0引脚上的外部脉冲。引脚上的外部脉冲。门控位门控位GATE具有特殊的作用。当具有特殊的作用。当GATE=0时,经反相后使时,经反相后使或门输出为或门输出为1,此时仅由,此时仅由TR0控制与门的开启,与门输出控制与门的开启,与门输出1时,控制开关接通,计数开始;当时,控制开关接通,计数

15、开始;当GATE=1时,由外中断引脚信时,由外中断引脚信号控制或门的输出,此时控制与门的开启由外中断引脚信号和号控制或门的输出,此时控制与门的开启由外中断引脚信号和TR0共同控制。当共同控制。当TR0=1时,外中断引脚信号引脚的高电平启动时,外中断引脚信号引脚的高电平启动计数,外中断引脚信号引脚的低电平停止计数。这种方式常用来计数,外中断引脚信号引脚的低电平停止计数。这种方式常用来测量外中断引脚上正脉冲的宽度。测量外中断引脚上正脉冲的宽度。第13页,本讲稿共77页定时定时/计数器应用举例计数器应用举例初始化程序应完成如下工作:初始化程序应完成如下工作:对对TMOD赋值,以确定赋值,以确定T0和

16、和T1的工作方式。的工作方式。计算初值计算初值,并将其写入并将其写入TH0、TL0或或TH1、TL1。中断方式时,则对中断方式时,则对IE赋值,开放中断。赋值,开放中断。使使TR0或或TR1置位,启动定时置位,启动定时/计数器定时或计计数器定时或计数。数。第14页,本讲稿共77页编程思路:编程思路:P1.0输出周期为输出周期为10ms宽的方波,只要每隔宽的方波,只要每隔5ms到反一次即到反一次即可得到可得到10ms的方波。由此可选用的方波。由此可选用T0定时定时5ms.例例1:选用选用T0操作模式操作模式0,用于定时,由,用于定时,由P1.0输出周期为输出周期为10ms的方波。设晶振的方波。设

17、晶振fosc=6MHz。高高8位送入位送入TH0,TH0=10110001B=0B1HX=213tfosc/12=8192651000/12=5692=163CH163CH=0001011000111100其中低其中低5位位11100前添加前添加3位位000送入送入TL0,TL0=00011100B=1CHORG0100HMOVTMOD,#00HSETBTR0LP1:MOVTL0,#1CHMOVTH0,#0B1HLP2:JBCTF0,LP3AJMPLP2LP3:CPLP1.0SJMPLP1初值为:初值为:方式0启动T0等待T0定时到重置初值输出方波例:例:51仿真仿真例:例:51演示演示第15

18、页,本讲稿共77页2、工作方式1T0的等效逻辑结构在工作方式在工作方式1下,计数器的计数值范围是:下,计数器的计数值范围是:165536(2的的16次方)次方)当为定时工作方式当为定时工作方式1时,定时时间的计算公式为:时,定时时间的计算公式为:(65536计数初值)计数初值)晶振周期晶振周期12方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。第16页,本讲稿共77页编程思路:编程思路:方波周期方波周期T=1/50=0.02s=20ms,用,用T1定时定时10ms。例例2:用定时器用定时器T1产生一个产生一个50Hz的方波,由的方波,由P1.1输出,仍用

19、程序输出,仍用程序查询方式,查询方式,fosc=12MHz。X=2161010312/12=6553610000=55536=D8F0HORG0100HMOVTMOD,#10HSETBTR1LOOP:MOVTH1,#0D8HMOVTL1,#0F0HJNBTF1,$CLRTF1CPLP1.1SJMPLOOPT1方式0启动T1等待T1定时到重置初值输出方波例:例:52仿真仿真例:例:52演示演示第17页,本讲稿共77页3、工作方式、工作方式2T0的等效逻辑结构的等效逻辑结构方式方式2为能自动重置计数器初值的工作方式,为能自动重置计数器初值的工作方式,TL0为为8位计数器,位计数器,TH0为计数器初

20、值暂存器。为计数器初值暂存器。定时时间定时时间T=(256-计数初值计数初值)晶振周期晶振周期12第18页,本讲稿共77页编程思路:编程思路:T1工作于计数方式,外部计数脉冲由工作于计数方式,外部计数脉冲由T1(P3.0)引)引脚引入,每来一个由脚引入,每来一个由1至至0的跳变计数器加的跳变计数器加1,由程序查询,由程序查询TF1的状的状态。态。例例3:用定时器用定时器1,模式,模式2计数,要求每计满计数,要求每计满3次,将次,将P1.0端取反。端取反。TH1=TL1=253ORG0100HMOVTMOD,#60HMOVTH1,#253MOVTL1,#253SETBTR1LOOP:JBCTF1

21、,REPSJMPLOOPREP:CPLP1.0SJMPLOOPT1方式2计数送初值启动T1等待T1计数到取反计数初值:X=3=253例:例:53仿真仿真例:例:53演示演示第19页,本讲稿共77页方式方式2与方式与方式0、1的区别:的区别:方式方式0方式方式1:计数溢出后,计数器为全计数溢出后,计数器为全0,因而循环定时或循,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。许多不便,同时也会影响计时精度。方式方式2:具有自动重装载功能,即自动加载计数初值。具有自动重装载功能,即自动加载计

22、数初值。16位位计数器分为两部分,计数器分为两部分,TL0为计数器,为计数器,TH0作为预置寄存器。作为预置寄存器。当计数溢出时,由预置寄存器当计数溢出时,由预置寄存器TH0以硬件方法自动给计数器以硬件方法自动给计数器TL0重新加载。重新加载。方式方式2在串口通讯时,常用作波特率发生器。在串口通讯时,常用作波特率发生器。第20页,本讲稿共77页只有只有T0能工作于方式能工作于方式3,此时,此时T1的的一些控制位已被的的一些控制位已被T0借用,只能工作借用,只能工作在方式在方式0、方式、方式1或方式或方式2下,等效电路参见下图:下,等效电路参见下图:4、工作方式、工作方式3第21页,本讲稿共77

23、页5、定时、定时/计数器的初始化和初值确定计数器的初始化和初值确定为使定时为使定时/计数器正常工作,首先必须对定时计数器正常工作,首先必须对定时/计计数器进行初始化,然后再开启定时或计数。定时计数器进行初始化,然后再开启定时或计数。定时计数器的初始化包括以下内容。数器的初始化包括以下内容。(4)启动定时器)启动定时器/计数器;计数器;如:如:SETBTR0(1)确定工作方式)确定工作方式对对TMOD赋值;赋值;如:如:MOV TMOD,#06H;设定设定T0为计数器工作方式。为计数器工作方式。(2)预置定时计数器中计数的初值)预置定时计数器中计数的初值直接写入直接写入TH和和TL;如:如:MO

24、VTH0,#00H;设定计数初值。;设定计数初值。MOVTL0,#00H(3)根据需要开放定时)根据需要开放定时/计数器的中断计数器的中断对对IE位赋值;位赋值;第22页,本讲稿共77页初值的计算方法:初值的计算方法:X=M计数值计数值M是定时器的最大计数值。视工作方式不同而不同。是定时器的最大计数值。视工作方式不同而不同。工作方式工作方式工作方式工作方式0 0:13位定时位定时/计数方式,因此,最多可以计到计数方式,因此,最多可以计到2的的13次方,也就是次方,也就是8192次。次。工作方式工作方式工作方式工作方式1 1:16位定时位定时/计数方式,因此,最多可以计到计数方式,因此,最多可以

25、计到2的的16次方,也就是次方,也就是65536次。次。工作方式工作方式工作方式工作方式2 2和和工作方式工作方式工作方式工作方式3 3:都是都是8位的定时位的定时/计数方式,因此,计数方式,因此,最多可以计到最多可以计到2的的8次方,也说是次方,也说是256次。次。第23页,本讲稿共77页预置值计算:预置值计算:用最大计数量减去需要的计数次数即用最大计数量减去需要的计数次数即可。可。通过上面的任务,我们掌握了计数程序的编制方法,通过上面的任务,我们掌握了计数程序的编制方法,下面我们再看看定时程序怎样编制。下面我们再看看定时程序怎样编制。首先我们看一下下面的程序段。首先我们看一下下面的程序段。

26、MOVTMOD,#01HMOVTL0,#00HMOVTH0,#4CHSETB TR0以上程序是一个定时初始化程序段,计数方式和它类似。以上程序是一个定时初始化程序段,计数方式和它类似。第24页,本讲稿共77页编程思路:编程思路:T0定时每定时每50ms中断一次,中断程序使中断一次,中断程序使P1.0反相一次。反相一次。例例1:已知已知focs=12MHZ,利用定时器使图,利用定时器使图中发光二极管中发光二极管VD进行秒闪烁,要求亮进行秒闪烁,要求亮50ms,暗,暗50ms,采用中断编程。,采用中断编程。X=216tfosc/12=6553612501000/12=15536=3CB0H初值为:

27、初值为:5.1.4应用举例应用举例第25页,本讲稿共77页ORG0000HSJMPSTARTORG000BHLJMPTIME0START:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0MOVIE,#82HWAIT:SJMPWAITTIME0:MOVTH0,#3CHMOVTL0,#0B0HCPLP1.0RETI开放中断与定时器主程序其他任务重置初值改变输出状态主程序入口中断程序入口中断返回例:例:54仿真仿真例:例:54演示演示第26页,本讲稿共77页例例2:用定时器用定时器T1完成时钟秒、分、时的定时。已知晶体振荡频完成时钟秒、分、时的定时。已知晶体振荡频

28、率为率为12MHz。分析:由于机器周期 ,采用方式1能定时的最长时间也只有65.536ms。要得到长时间的定时,必须采用软件计数器。例如定时器定时50ms,对50ms计数20次为1秒,对1秒计数60次为1分,对1分计数60次为1小时。50ms计数次数计数次数50000/150000次次定时初值定时初值655365000015536秒计数初值(秒计数初值(50H单元)单元)20分计数初值(分计数初值(51H单元)单元)60时计数初值(时计数初值(52H单元)单元)60第27页,本讲稿共77页程序:程序:ORG0000HMOVTMOD,#10HMOVTH0,#15536MOD256MOVTL0,#

29、15536/256MOV50H,#20MOV51H,#60MOV52H,#60SETBTR1方式1定时启动定时器时间常数软计数常数例:例:55仿真仿真例:例:55演示演示第28页,本讲稿共77页L2:JNBTF1,L2CLRTF1MOVTL0,#15536MOD256MOVTH0,#15536/256DJNZ50H,L2MOV50H,#20DJNZ 51H,L2MOV51H,#60DJNZ 52H,L2MOV52H,#60SJMP L2END例:例:55仿真仿真例:例:55演示演示第29页,本讲稿共77页编程思路:编程思路:延时程序由延时程序由T0定定时时10ms,连续延时,连续延时20次为次

30、为0.2秒。秒。例例3:如图开始时如图开始时P1.0亮,延时亮,延时0.2秒后左移至秒后左移至P1.1亮,如此左亮,如此左移移7次至次至P1.7亮,再延时亮,再延时0.2秒秒右移至右移至P1.6亮,如此右移亮,如此右移7次后次后至至P1.0亮。亮。X=216tfosc/12=655366101000/12=60536=0D8F0H初值为:初值为:第30页,本讲稿共77页ORG0000HMOVTMOD,#01START:MOVA,#OFEHMOVR2,#07LOOP:MOVP1,ARLAMOVR3,#20LCALLDELAYDJNZR2,LOOPMOVR2,#07LOOP1:MOVP1,ARRA

31、MOVR3,#20LCALLDELAYDJNZR2,LOOP1LJMPSTART左移至下一位左移7次等待左移结束方式1定时点亮第一个灯右移与左移相同延时0.2秒主程序:主程序:例:例:55仿真仿真例:例:55演示演示第31页,本讲稿共77页DELAY:SETBTR0AGAIN:MOVTH0,D8HMOVTL0,#0F0HLOOP2:JBCTF0,LOOP3LJMPLOOP2LOOP3:DJNZR3,AGAINCLRTR0RETEND等待10mS定时到预置时间常数等待0.2S定时到启动定时器关定时器、返回定时程序:定时程序:例:例:56仿真仿真例:例:56演示演示第32页,本讲稿共77页例例4:

32、要求当要求当P3.3每来每来3个脉冲时,个脉冲时,P1.0的状态翻的状态翻转改变一次。转改变一次。分析:分析:定时器定时器T0工作在计数方式,计数工作在计数方式,计数3次将次将P1.0输出取输出取反一次。由于计数初值小,因此采用方式反一次。由于计数初值小,因此采用方式2最好。最好。计数次数计数次数3次次计数初值计数初值2563253第33页,本讲稿共77页程序:程序:ORG0000HMOV TMOD,#06HMOVTL0,#253MOV TH0,#253SETB TR0MOVP3,#0FFHLP2:JNBTF0,LP2CLRTF0CPLP1.0SJMP LP2END例:例:53仿真仿真例:例:

33、53演示演示第34页,本讲稿共77页5.1.5 5.1.5 定时定时/计数器计数器T2T21、T2的寄存器的寄存器1)T2CON控制寄存器控制寄存器TF2定时器定时器2 2 溢出标志:溢出标志:定时器定时器2溢出时置位,必须由软件清除。当溢出时置位,必须由软件清除。当RCLK或或TCLK等于等于1时时TF2将不会置位将不会置位。EXF2定时器定时器2 2 外部标志:外部标志:当当EXEN21且且T2EX的负跳变产生捕获或重装时的负跳变产生捕获或重装时EXF2置位;置位;定时器定时器2中断中断开放开放时时EXF21将使将使CPU从中断向量处执行定时从中断向量处执行定时器器2中断子程序中断子程序。

34、EXF2位必须用软件清零。在递增位必须用软件清零。在递增/递减计数器递减计数器模式模式(DCEN1)中中EXF2不会引起中断不会引起中断。第35页,本讲稿共77页RCLK接收时钟标志接收时钟标志:RCLK1时,定时器时,定时器2的溢出脉冲作为串行口模式的溢出脉冲作为串行口模式1和模式和模式3的接收时钟的接收时钟,RCLK0时,将定时器时,将定时器1的溢出脉冲作为接收时钟的溢出脉冲作为接收时钟。TCLK发送时钟标志发送时钟标志:TCLK1时,定时器时,定时器2的溢出脉冲作为串行口模式的溢出脉冲作为串行口模式1和模式和模式3的发送时钟的发送时钟,TCLK0时,将定时器时,将定时器1的溢出脉冲作为发

35、送时钟的溢出脉冲作为发送时钟。EXEN2定时器定时器2 2 外部使能标志:外部使能标志:当其置位且定时器当其置位且定时器2未作为串行口时钟时,允未作为串行口时钟时,允许许T2EX的负跳变产生捕获或重装的负跳变产生捕获或重装,EXEN20时时,T2EX的跳变对定时器的跳变对定时器2无效无效。TR2定时器定时器2 2 启动启动/停止控制位:停止控制位:置置1时启动定时器时启动定时器。C/T2定时器定时器/计数器选择:计数器选择:置置0时定时器时定时器2工作在定时状态,置工作在定时状态,置1时工作在计数器状态。时工作在计数器状态。CP/RL2捕获捕获/重装标志:重装标志:置位时,置位时,EXEN21

36、时时,T2EX的负跳变产生捕获;清零时,的负跳变产生捕获;清零时,EXEN21则则定定时器时器2溢出或溢出或T2EX的负跳变都可使定时器自动重装的负跳变都可使定时器自动重装。当当RCLK1或或TCLK1时时该位无效且定时器强制为溢出时自动重装该位无效且定时器强制为溢出时自动重装。第36页,本讲稿共77页2)T2MOD方式控制寄存器方式控制寄存器不可用,保留将来之用。不可用,保留将来之用。T2OE定时器定时器2 2 输出使能位输出使能位:T2OE1,允许,允许T2输出;输出;T2OE0,禁止,禁止T2输出。输出。DCEN向下计数使能位:向下计数使能位:定时器定时器2可配置成向上可配置成向上/向下

37、计数器向下计数器,DCEN0,T2加加1计数;计数;DCEN1且且T2EX=1时,时,T2加加1计数;计数;DCEN1且且T2EX=0时,时,T2减减1计数。计数。第37页,本讲稿共77页2、T2的工作方式的工作方式1)定时)定时/计数自动重装方式(递增计数自动重装方式(递增/递减计数器递减计数器)16位自动重装模式中,定时器位自动重装模式中,定时器T2可通过可通过C/T2配置为定时配置为定时器器/计数器,编程控制递增计数器,编程控制递增/递减计数。计数递减计数。计数的方向是由的方向是由DCEN递减计数使能位确定的递减计数使能位确定的,DCEN位于位于T2MOD寄存寄存器器中当中当,DCEN0

38、时,定时器时,定时器2默认为向上计数,当默认为向上计数,当DCEN1时,定时器时,定时器2可通过可通过T2EX确定递增或递减计数确定递增或递减计数。第38页,本讲稿共77页当当DCEN0时,定时器时,定时器2自动递增计数,在该模式中通过设置自动递增计数,在该模式中通过设置EXEN2位进行选择。位进行选择。如果如果EXEN20,定时器,定时器2递增计数到溢出后将递增计数到溢出后将TF2置位,然后将置位,然后将RCAP2L和和RCAP2H中的中的16位值作为重新装载值装入定时器位值作为重新装载值装入定时器2,RCAP2L和和RCAP2H的值是通的值是通过软件预设的。如果过软件预设的。如果EXEN2

39、1,16位重新装载可通过溢出或位重新装载可通过溢出或T2EX从从10的负跳的负跳变实现,此负跳变同时将变实现,此负跳变同时将EXF2置位,如果定时器置位,如果定时器2中断被使能,则当中断被使能,则当TF2或或EXF2置置1时产生中断。时产生中断。DCEN1时,定时器时,定时器2可递增或递减计数,此模式允许可递增或递减计数,此模式允许T2EX控制计数控制计数的方向。当的方向。当T2EX1时定时器时定时器2递增计数,计数到递增计数,计数到0FFFFH后溢出并置位后溢出并置位TF2,还将产生中断(如果中断被使能)。定时器,还将产生中断(如果中断被使能)。定时器2的溢出将使的溢出将使RCAP2L和和R

40、CAP2H中的中的16位值作为重新装载值放入位值作为重新装载值放入TL2和和TH2。当。当T2EX0时,时,将使定时器将使定时器2递减计数,当递减计数,当TL2和和TH2计数到等于计数到等于RCAP2L和和RCAP2H时,定时器产生溢出,定时器时,定时器产生溢出,定时器2溢出置位溢出置位TF2,并将,并将0FFFFH重新装入重新装入TL2和和TH2。当定时器。当定时器2递增递增/递减产生溢出时,外部标志位递减产生溢出时,外部标志位EXF2翻转,翻转,如果需要可将如果需要可将EXF2位作为第位作为第17位,在此模式中位,在此模式中EXF2标志不会产生中标志不会产生中断。断。第39页,本讲稿共77

41、页第40页,本讲稿共77页第41页,本讲稿共77页2)定时)定时/计数捕获方式计数捕获方式在捕获模式中通过在捕获模式中通过T2CON中的中的EXEN2设置两个选项。如果设置两个选项。如果EXEN20,定,定时器时器2作为一个作为一个16位定时器或计数器(由位定时器或计数器(由T2CON中中C/T2位选择),溢出时位选择),溢出时置位置位TF2(定时器(定时器2溢出标志位),该位可用于产生中断(通过使能溢出标志位),该位可用于产生中断(通过使能IE寄存寄存器中的定时器器中的定时器2中断使能位)。如果中断使能位)。如果EXEN21,与以上描述相同,但增加了,与以上描述相同,但增加了一个特性,即外部

42、输入一个特性,即外部输入T2EX由由1变变0时,将定时器时,将定时器2中中TL2和和TH2的当前值的当前值各自捕获到各自捕获到RCAP2L和和RCAP2H。另外。另外T2EX的负跳变使的负跳变使T2CON中的中的EXF2置位,置位,EXF2也象也象TF2一样能够产生中断,其向量与定时器一样能够产生中断,其向量与定时器2溢出中断地址相溢出中断地址相同,定时器同,定时器2中断服务程序通过查询中断服务程序通过查询TF2和和EXF2来确定引起中断的事件。来确定引起中断的事件。捕获模式如图所示,在该模式中捕获模式如图所示,在该模式中TL2和和TH2无重新装载值。甚至当无重新装载值。甚至当T2EX产生捕获

43、事件时,计数器仍以产生捕获事件时,计数器仍以T2EX的负跳变或振荡频率的的负跳变或振荡频率的1/12计数。计数。第42页,本讲稿共77页第43页,本讲稿共77页3)波特率发生器方式)波特率发生器方式寄存器寄存器T2CON的位的位TCLK和或和或RCLK允许从定时器允许从定时器1或定时器或定时器2获得串行口获得串行口发送和接收的波特率。当发送和接收的波特率。当TCLK=0时定时器时定时器1作为串行口发送波特率发生器,当作为串行口发送波特率发生器,当TCLK=1时定时器时定时器2作为串行口发送波特率发生器。作为串行口发送波特率发生器。RCLK对串行口接收波特率有对串行口接收波特率有同样的作用,通过

44、这两位串行口能得到不同的接收和发送波特率,一个通过定时同样的作用,通过这两位串行口能得到不同的接收和发送波特率,一个通过定时器器1产生,另一个通过定时器产生,另一个通过定时器2产生。产生。定时器定时器2工作在波特率发生器模式时与自动重装模式相似,当工作在波特率发生器模式时与自动重装模式相似,当TH2溢出时,波特率溢出时,波特率发生器模式使定时器发生器模式使定时器2寄存器重新装载来自寄存器,寄存器寄存器重新装载来自寄存器,寄存器RCAP2H和和RCAP2LR的值由软件预置。当串行口工作于模式的值由软件预置。当串行口工作于模式1和模式和模式3时,波特率由下时,波特率由下面给出的定时器面给出的定时器

45、2溢出率所决定:溢出率所决定:式中的式中的X X为为1616位无符号数(位无符号数(即即RCAP2H和和RCAP2L的的16位的值)。位的值)。第44页,本讲稿共77页4)可编程时钟输出方式)可编程时钟输出方式当当C/T2C/T20 0(T2T2工作工作在定时器方式)时,置位在定时器方式)时,置位T2OE则定时器则定时器T2可从可从P1.0输出占空比为输出占空比为11的时钟信号。时钟输出频率为:的时钟信号。时钟输出频率为:式中的式中的X X为为1616位无符号数(位无符号数(即即RCAP2H和和RCAP2L的的16位位的值)。的值)。第45页,本讲稿共77页5.1.6 5.1.6 定时器定时器

46、T3T3WDTWDT监视定时器监视定时器5.6.1WDT的功能和应用特点的功能和应用特点当系统的当系统的CPU部位受到干扰信号的作用时,将使系统失控。部位受到干扰信号的作用时,将使系统失控。最典型的故障是破坏程序计数器最典型的故障是破坏程序计数器PC的状态值。导致程序在地址空的状态值。导致程序在地址空间内间内“乱飞乱飞”,或者陷入死循环。而我们对这种情况的处理主要,或者陷入死循环。而我们对这种情况的处理主要有这么几种方法:有这么几种方法:(1)指令冗余技术;()指令冗余技术;(2)软件陷阱技术;()软件陷阱技术;(3)看门)看门狗技术。狗技术。看门狗是利用一个专门的定时器,来监控主程序的运行,

47、也就看门狗是利用一个专门的定时器,来监控主程序的运行,也就是说在主程序的正常运行过程中,我们要在看门狗定时时间到之前是说在主程序的正常运行过程中,我们要在看门狗定时时间到之前对定时器进行复位,如果出现死循环,或者说对定时器进行复位,如果出现死循环,或者说PC指针不能回来,那指针不能回来,那么看门狗得不到复位,其定时时间到后就会产生一个信号使单片机么看门狗得不到复位,其定时时间到后就会产生一个信号使单片机复位,程序重新开始运行。复位,程序重新开始运行。第46页,本讲稿共77页要激活或复位要激活或复位89S51看门狗,只需向看门狗复位寄存器看门狗,只需向看门狗复位寄存器WDTRST(地址为(地址为

48、A6H)顺序写入)顺序写入1EH和和E1H即可。即可。MOV0A6H,#1EH;先送先送1EHMOV0A6H,#0E1H;后送后送E1H注意事项:注意事项:189S51的看门狗必须由程序激活后才开始工作。所以必须保证的看门狗必须由程序激活后才开始工作。所以必须保证CPU有有可靠的上电复位。否则看门狗也无法工作。可靠的上电复位。否则看门狗也无法工作。2看门狗使用的是看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。的晶振。在晶振停振的时候看门狗也无效。389S51只有只有14位计数器,在位计数器,在16383个机器周期内必须至少喂狗(看门狗个机器周期内必须至少喂狗(看门狗复位)一次,而且

49、这个时间是固定的,无法更改。当晶振为复位)一次,而且这个时间是固定的,无法更改。当晶振为12M时每时每16个个毫秒需喂狗一次。毫秒需喂狗一次。89S52只有只有13位计数器,在位计数器,在8191个机器周期内必须至少个机器周期内必须至少喂狗一次。当晶振为喂狗一次。当晶振为12M时每时每8个毫秒需喂狗一次个毫秒需喂狗一次.第47页,本讲稿共77页【并行通信和串行通信】【并行通信和串行通信】【并行通信和串行通信】【并行通信和串行通信】并行通信:并行通信:并行通信:并行通信:数据的各位同时送出。占用数据的各位同时送出。占用数据的各位同时送出。占用数据的各位同时送出。占用I/OI/O多,速度快。多,速

50、度快。多,速度快。多,速度快。串行通信:串行通信:串行通信:串行通信:数据的各位逐位送出。线路简单,速度慢。数据的各位逐位送出。线路简单,速度慢。数据的各位逐位送出。线路简单,速度慢。数据的各位逐位送出。线路简单,速度慢。1.1.数据通信的传输方式数据通信的传输方式数据通信的传输方式数据通信的传输方式 5.2单片机串行通信单片机串行通信001001P1.0P1.1P1.2P1.3RXDTXD单片机外设1外设2111 0 1 01 0 0 000015.2.15.2.1串行通信概述串行通信概述串行通信概述串行通信概述 第48页,本讲稿共77页2.2.串行数据通信两种形式串行数据通信两种形式串行数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com