定时计数器和串行接口.ppt
《定时计数器和串行接口.ppt》由会员分享,可在线阅读,更多相关《定时计数器和串行接口.ppt(124页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章定时定时/计数器与串行通信计数器与串行通信第第7章章MCS-51单片机单片机定时定时/计数器和串行接口计数器和串行接口第第7章章定时定时/计数器与串行通信计数器与串行通信(1)了解定时了解定时/计数器的结构和工作原理。计数器的结构和工作原理。(2)熟悉定时熟悉定时/计数器的控制寄存器。计数器的控制寄存器。(3)掌握定时掌握定时/计数器的应用编程。计数器的应用编程。(4)了解串行通信接口的结构和工作原理。了解串行通信接口的结构和工作原理。(5)熟悉串行通信接口的控制寄存器。熟悉串行通信接口的控制寄存器。(6)掌握串行通信的应用编程。掌握串行通信的应用编程。本章教学要求本章教学要求 第第
2、7章章定时定时/计数器与串行通信计数器与串行通信7.1定时定时/计数器计数器在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。比如,在单片机控制的电力拖动系统中,控制的对象为电动机,为了实现闭环控制,就需要定时地对转速进行采样。第第7章章定时定时/计数器与串行通信计数器与串行通信对于定时/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都有以下特点:(1)定时/计数器有多种工作方式,可以是计数方式也可以是定时方式。(脉冲内部提供、外部提供)(2)定时/计数器的计数值是可变的,当然对计数的最大值有一定限制,这取决于计数器的位数。
3、计数的最大值也就限制了定时的最大值。(3)可以按照规定的定时或计数值,在定时时间到或者计数终止时,发出中断申请,以便实现定时控制。第第7章章定时定时/计数器与串行通信计数器与串行通信7.1.1定时/计数器的结构及工作原理MCS-51单片机的定时/计数器(以下简称T/C)的结构如下图所示。由图可见,T/C的核心是1个加1计数器,它的输入脉冲有两个来源:一个是外部脉冲源计计数数器器,另一个是系统机器周期(时钟振荡器经12分频以后的脉冲信号)定时器定时器。第第7章章定时定时/计数器与串行通信计数器与串行通信图7-2定时/计数器的结构框图第第7章章定时定时/计数器与串行通信计数器与串行通信当T/C处于
4、定时方式时,加1计数器在每个机器周期加1,因此,也可以把它看作在累计机器周期。由于一个机器周期包含12个振荡周期,所以它的最高计数速率是振荡频率的1/12。用作计数器时,由于对外部信号的识别需要一个机器周期,而计数器判断的是一次下降沿,所以计数最高速率是振荡频率的1/24。第第7章章定时定时/计数器与串行通信计数器与串行通信16位的加1计数器由两个8位的特殊功能寄存器THx或TLx组成(X=0、1)。它们可被程控为不同的组合状态。(13位、16位、两个分开的8位等),从而形成T/C不同的4种工作方式,这只要用指令改变TMOD(工作方式控制寄存器)的相应位即可。第第7章章定时定时/计数器与串行通
5、信计数器与串行通信第第7章章定时定时/计数器与串行通信计数器与串行通信7.1.2定时/计数器的方式和控制寄存器MCS-51单片机有2个特殊功能寄存器TMOD和TCON:TMOD用于设置T/C的工作方式;TCON用于控制定时器T0、T1的启动与停止,并包含了定时器的状态。1.定时器工作方式寄存器TMOD定时器工作方式寄存器TMOD用于选择定时器的工作方式,它的高4位控制定时器T1,低4位控制定时器T0。TMOD中各位的定义如下:GATEC/TM1M0GATEC/TM1M0T1T0TMOD89H第第7章章定时定时/计数器与串行通信计数器与串行通信其中:T/C功能选择位,当=1时为计数方式;当=0时
6、为定时方式。M1M0:T/C工作方式定义位,其具体定义方式如表所示。第第7章章定时定时/计数器与串行通信计数器与串行通信GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。GATE=0时,与外部中断无关,由TCON寄存器中的TRx位控制启动。GATE=1时,由控制位TRx和引脚共同控制启动,只有在没有外部中断请求信号的情况下(即外部中断引脚=1时),才允许定时器启动。利用这一功能可以方便地测量外部脉冲高电平的脉宽。第第7章章定时定时/计数器与串行通信计数器与串行通信2.定时器控制寄存器TCONTCON控制寄存器各位的定义如下:TF1TR1TF0TR0IE1IT1IE0IT0D7
7、D6D5D4D3D2D1D0TCON88H第第7章章定时定时/计数器与串行通信计数器与串行通信其中:TF0(TF1):为T0(T1)定时器溢出中断标志位。当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况下,发出中断请求信号。当CPU响应中断转向中断服务程序时,由硬件自动将该位清0。TR0(TR1):为T0(T1)运行控制位。当TR0(TR1)=1时启动T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行设置。第第7章章定时定时/计数器与串行通信计数器与串行通信7.1.3定时/计数器的工作方式MCS-51单片机的T/C有4种工作方式,分别由TMOD寄存器中的M1、M0两位
8、的二进制编码所决定。1.方式0当M1M0=00时,T/C设定为工作方式0,构成13位的T/C。其逻辑结构如图所示。在此工作方式下,T/C构成一个13位的计数器,由THx的8位和TLx的低5位组成,TLx的高3位未用,满计数值为213。第第7章章定时定时/计数器与串行通信计数器与串行通信图73T/C方式0的逻辑结构图第第7章章定时定时/计数器与串行通信计数器与串行通信2.方式1当M1M0=01时,T/C设定为工作方式1,构成16位定时/计数器,其中THx作为高8位,TLx作为低8位,满计数值为216,其余同方式0类似。其逻辑结构如图所示。第第7章章定时定时/计数器与串行通信计数器与串行通信图74
9、T/C方式1的逻辑结构图第第7章章定时定时/计数器与串行通信计数器与串行通信3.方式2当M1M0=10时,T/C工作在方式2,构成1个自动重装载的T/C,满计数值为28。在方式2中THx和TLx被当作两个8位计数器,计数过程中,THx寄存8位初值并保持不变,由TLx进行8位计数。计数溢出时,除产生溢出中断请求外,还自动将THx中的初值重新装到TLx中去,即重装载。第第7章章定时定时/计数器与串行通信计数器与串行通信图75T/C方式2的逻辑结构图第第7章章定时定时/计数器与串行通信计数器与串行通信4.方式3方式3只适用于定时器T0。当定时器T1处于方式3时相当于TR1=0,停止计数。当T0工作在
10、方式3时,TH0和TL0被拆成2个独立的8位计数器。这时,TL0既可作为定时器使用,也可作为计数器使用,它占用了定时器T0所使用的控制位(C/、GATE、TR0、TF0),其功能和操作与方式0或方式1完全相同;而TH0只能作定时器用,并且占据了定时器T1的两个控制信号TR1和TF1。在这种情况下,定时器T1虽仍可用于方式0、1、2,但不能使用中断方式。第第7章章定时定时/计数器与串行通信计数器与串行通信图76T/C方式3的逻辑结构图第第7章章定时定时/计数器与串行通信计数器与串行通信7.1.4定时/计数器应用举例由于MCS-51单片机的定时/计数器是可编程的,因此在使用之前需要进行初始化。在编
11、程时主要注意两点:第一要能正确写入控制字;第二能进行计数初值的计算。一般情况下,包括以下几个步骤:(1)确定工作方式,即对TMOD寄存器进行赋值。(2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中。(3)根据需要,置位ETx允许T/C中断。(4)置位EA使CPU开中断(需要时)。(5)置位TRx启动计数。第第7章章定时定时/计数器与串行通信计数器与串行通信计数初值的计算方法如下:由于定时/计数器是以加1的方式计数,因此同常用的减1计数器的算法不同。在定时方式下:假定时间常数为Tc,定时时间为T,而T=TcTp,则时间常数为(71)其中Tp为机器周期,即12/晶振频率。应装入定时/
12、计数器的初值为X=2n-Tc(n为计数器的位数)(72)第第7章章定时定时/计数器与串行通信计数器与串行通信例1:若晶振频率为6MHz,试计算MCS-51单片机定时/计数器的最小定时时间和最大定时时间。解:先确定机器周期:计算最小定时时间:对于定时器的几种工作方式来说,最小定时时间都是一样的,即Tmin=TcTp=12s=2s计算最大定时时间:当T/C工作在方式1下的定时时间最长,则最大定时时间为Tmax=TcTp=2162s=131072s=131ms晶振频率第第7章章定时定时/计数器与串行通信计数器与串行通信例2:若单片机的晶振频率为6MHz,要求定时/计数器T0产生100ms的定时,试确
13、定计数初值以及TMOD寄存器的内容。解:当晶振频率为6MHz时,产生100ms的定时接近最大值(131ms),故只能采用方式1(16位定时器)。第第7章章定时定时/计数器与串行通信计数器与串行通信晶振频率时间常数为:计数初值为:第第7章章定时定时/计数器与串行通信计数器与串行通信设置TMOD方式字:对于T0来说:M1M0=01、GATE=0。由于T1不用,可任意设置,现取为全0,因此,TMOD寄存器的内容为:TMOD=00000001B=01H试解释对于T0的寄存器设置。第第7章章定时定时/计数器与串行通信计数器与串行通信例3:利用定时/计数器T0通过引脚输出周期为2ms的方波,设晶振频率为1
14、2MHz。试确定计数初值、TMOD内容及编制相应程序。解:若要产生周期为2ms的方波,只要每1ms将信号的幅值由0变到1或由1变到0即可,可采用取反指令CPL来实现。为了提高CPU的效率,可采用定时中断的方式,每1ms产生一次中断,在中断服务程序中将输出信号取反即可。定时器T0的中断入口地址为000BH。计算计数初值:对于定时1ms来说,用定时器方式0(13位定时器)就可实现。第第7章章定时定时/计数器与串行通信计数器与串行通信机器周期为:Tp=1us时间常数为:计数初值为:则其高8位为E0H,低5位为18H,故TH0=E0H,TL0=18H。第第7章章定时定时/计数器与串行通信计数器与串行通
15、信确定TMOD方式字:对于定时器T0来说,M1M0=00H、=0、GATE=0。定时器T1不用,取为全0。于是TMOD=00000000B=00H程序设计:ORG000BH;T0中断服务程序入口LJMPINT;转至INT处ORG2000H;主程序MOVTMOD,00H;置T0为定时方式0MOVTH0,0E0H;设置计数初值第第7章章定时定时/计数器与串行通信计数器与串行通信MOVTL0,18HSETBEA;CPU开中断SETBET0;允许T0中断SETBTR0;启动T0HALT:SJMPHALT;暂停,等待中断;输出方波MOVTH0,0E0H;重新装入计数初值MOVTL0,18HRETI;中断
16、返回第第7章章定时定时/计数器与串行通信计数器与串行通信例例例例7-57-5 设设一一只只发发光光二二极极管管LED和和8051的的脚脚相相连连。当当脚脚是是高高电电平平时时,LED发发亮亮;当当脚脚是是低低电电平平时时,LED熄熄灭灭。编编制制程程序序用用定定时时器器来来实实现现发发光光二二极极管管LED的的闪闪烁烁功功能能,设设置置LED每每1s闪闪烁烁一一次次。已已知单片机系统主频为知单片机系统主频为12MHz。-应用实例应用实例第第7章章定时定时/计数器与串行通信计数器与串行通信设设计计思思想想:定定时时/计计数数器器的的最最长长定定时时是是,无无法法实实现现1s的的定定时时。可可以以
17、采采用用软软件件计计数数器器来来进进行行设设计计。定定义义一一个个软软件件计计数数器器单单元元30H,先先用用定定时时/计计数数器器T0做做一一个个50ms的的定定时时器器,定定时时时时间间到到后后将将软软件件计计数数器器中中的的值值加加1,如如果果软软件件计计数数器器计计到到了了20(1s),取取反反,并并清清除除软软件件计计数数器器中中的的值值,否否则则直直接接返返回回。则则完完成成了了20次次定定时时中断才取反一次,实现定时时间中断才取反一次,实现定时时间2050=1000ms=1s的定时。的定时。定时定时/计数器计数器T0采用工作方式采用工作方式1(16位定时器),位定时器),其初值为
18、:其初值为:216 50ms/1 s=65536 50000=15536=3CB0H-应用实例应用实例第第7章章定时定时/计数器与串行通信计数器与串行通信程序如下:程序如下:ORG0000HAJMPSTART;转入主程序转入主程序ORG000BH;定时定时/计数器计数器T0的中断服务程序入口地址的中断服务程序入口地址AJMPTIME0;跳转到真正的定时器中断服务程序处跳转到真正的定时器中断服务程序处ORG0030HSTART:MOVSP,#60H;设置堆栈指针设置堆栈指针MOVP1,#00H;关发光二极管关发光二极管LED(使其灭)(使其灭)MOV30H,#00H;软件计数器预清软件计数器预清
19、0MOVTMOD,#01H;定时定时/计数器计数器T0工作于方式工作于方式1MOVTH0,#3CH;设置定时设置定时/计数器的初值计数器的初值MOVTL0,#0B0HSETBEA;开总中断允许开总中断允许SETBET0;开定时开定时/计数器计数器T0中断允许中断允许SETBTR0;启动定时启动定时/计数器计数器T0LOOP:JMPLOOP;循环等待循环等待-应用实例应用实例第第7章章定时定时/计数器与串行通信计数器与串行通信TIME0:INC30H;中断程序中断程序MOVA,30HCJNEA,#14H,RET0;与与20比较比较,不等转不等转RET0MOV30H,#00HRET0:MOVTH0
20、,#3CH;重设定时初值,启动重设定时初值,启动MOVTL0,#0B0HRETI-应用实例应用实例第第7章章定时定时/计数器与串行通信计数器与串行通信尽尽管管MCS-51为为用用户户只只提提供供了了两两个个外外部部中中断断源源,但但用用户户可可以以根根据据实实际际需需求求,进进行行多多于于两两个个外外部部中中断断请请求求的的扩扩展展,其其中中有有很很多多扩扩展方法。在此重点介绍利用定时器中断作为外部中断的扩展。展方法。在此重点介绍利用定时器中断作为外部中断的扩展。MCS-51有有两两个个定定时时/计计数数器器T0、T1,若若选选择择它它们们以以计计数数器器方方式式工工作作,当当引引脚脚T0或或
21、T1上上发发生生负负跳跳变变时时,T0或或T1计计数数器器则则加加1。利利用用这这个个特特性性,借借用用引引脚脚T0或或T1作作为为外外部部中中断断请请求求输输入入线线,若若设设定定计计数数初初值值为为满满量量程程,计计数数器器加加1,就就会会产产生生溢溢出出中中断断请请求求,TF0或或TF1变变成成了了外外部部中中断断请请求求标标志志位位,T0或或T1的的中中断断入入口口地地址址被被扩扩展展成成了了外外部部中中断断源源的的入入口口地地址址。值值得得注注意意的的是是,当当使使用用定定时时器器作作为为外外部部中中断断时时,定定时时器器以以前前的的功功能能将将失失效效,除除非非用用软软件对它进行复
22、用。件对它进行复用。3 3采用定时采用定时采用定时采用定时/计数器扩展外部中断计数器扩展外部中断计数器扩展外部中断计数器扩展外部中断-扩展外部中断扩展外部中断第第7章章定时定时/计数器与串行通信计数器与串行通信将将定定时时器器T0引引脚脚作作为为外外部部中中断断源源使使用用的的具具体体做做法法为为,设设定定相相应应定定时时器器工工作作方方式式为为方方式式2,计计数数器器TH0、TL0初初值值为为0FFH,允允许计数器许计数器T0中断,则中断,则T0的初始始化程序如下:的初始始化程序如下:MOVTMOD,06H;将计数器将计数器T0设定为设定为;方式方式2外部计数外部计数MOVTL0,#0FFH
23、;设置计数器初值设置计数器初值MOVTH0,#0FFH;设置重装计数器初值设置重装计数器初值SETBET0;允许允许T0中断中断SETBEA;CPU开中断开中断SETBTR0;启动启动T0-扩展外部中断扩展外部中断第第7章章定时定时/计数器与串行通信计数器与串行通信#includevoidmain(void)TMOD=0 x66;/*两个定时两个定时/计数器都设为方式计数器都设为方式2外部计数模式外部计数模式*/TH1=0 xFF;/*设定重装值,设定重装值,TL1不用设置不用设置*/TH0=0 xFF;/*设定重装值,设定重装值,TL0不用设置不用设置*/TCON=0 x50;/*置位置位T
24、R1、TR0,开始计数,开始计数*/IE=0 x9F;/*中断使能中断使能*/-扩展外部中断扩展外部中断第第7章章定时定时/计数器与串行通信计数器与串行通信/*定时器定时器0中断服务程序中断服务程序*/voidtimer0_int(void)interrupt1TF0=0;/*计数溢出标志位清计数溢出标志位清0*/*定时器定时器1中断服务程序中断服务程序*/voidtimer1_int(void)interrupt3TF1=0;/*计数溢出标志位清计数溢出标志位清0*/-扩展外部中断扩展外部中断第第7章章定时定时/计数器与串行通信计数器与串行通信定时器计数器扩展外部中断实际项目例子定时器计数器
25、扩展外部中断实际项目例子/*强力单片机技术项目交易网作者:王春林*/#include#include#include#include#defineUNunsignedcharvoiddel05s();sbitlsledcs=P37;UNdatad0=0;UNdatad1=0;UNdatad2=0;UNdatad3=0;voiddelay();sbitbm7=bm7;sfr16DPTR=0 x82;sbitACC0=ACC0;sbitACC1=ACC1;sbitACC2=ACC2;sbitACC3=ACC3;sbitACC4=ACC4;sbitACC5=ACC5;sbitACC6=ACC6;sb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时 计数器 串行 接口
限制150内