第345章定时计数器与串口_第1页
第345章定时计数器与串口_第2页
第345章定时计数器与串口_第3页
第345章定时计数器与串口_第4页
第345章定时计数器与串口_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 中断系统基本内容:MCS-51的中断源;MCS-51的中断屏蔽;MCS-51的中断优先级;MCS-51的中断响应条件、响应过程、响应时间;MCS-51的中断应用举例重点内容:MCS-51的中断屏蔽;MCS-51的中断优先级;中断响应条件;中断程序的编写;中断源的扩展。基本要求:熟悉MCS-51的中断源;了解MCS-51的中断响应条件、响应过程、响应时间;会设定MCS-51的中断优先级;会编写中断服务程序;会进行中断源的扩展。难点内容:MCS-51的中断响应条件、响应过程、响应时间;中断服务程序的编写。31 MCS51的中断源8051有5个中断源,8052有6个(T2),其中2个由外部信

2、号输入,称为外部中断,其余由内部产生称为内部中断。每个中断源都对应一个中断请求标志位,请求信号由特殊功能寄存器TCON和SCON中的相应位来锁定。1、 外部中断0请求信号的输入端2、 外部中断1请求信号的输入端3、T0 定时计数器0溢出中断请求4、T1 定时计数器1溢出中断请求5、TX/RX 串行口中断请求32 中断控制 8051中断系统有以下四个特殊功能寄存器: 定时器控制寄存器TCON(用六位)o 串行口控制寄存器SCON(用二位)。 中断允许寄存器IE。 中断优先级寄存器IP。 其中,TCON和SCON只有一部分位用于中断控制。通过对以上各特殊功能寄存器的各位进行置位或复位等操作,可实现

3、各种中断控制功能。 一、 中断请求标志1、TCON中的中断标志位 TCON是定时计数器T0和T1的控制寄存器,同时也锁存T0和T1的溢出中断标志和外部中断0和1的中断标志等。与中断有关的位如下图所示:8FH8EH8DH8CH8BH8AH89H88HTF1TF0IE1IT1IE0IT0各控制位的含义如下: ; TFl定时器计数器T1的溢出中断请求标志位。当启动T1计数以后,TI从初值开始加1计数,计数器最高位产生溢出时,由硬件使TFl置l,并向CPU发出中断请求。当CPU响应中断时,硬件将自动对TFl清00。 TF0定时器计数器T0的溢出中断请求标志位。含义与TF1相同o IE1外部中断1的中断

4、请求标志。当检测到外部中断引脚l上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应该中断请求时,由硬件使IEl清0。 ITl外部中断1的中断触发方式控制位。 ITl0时,外部中断1程控为电平触发方式。 CPU在每一个机器周期S5P2期间采样外部中断1请求引脚的输入电平。若外部中断l请求为低电平,则使lEl置1;若外部中断l请求为高电平,则使IEl清0。 : ITll时,外部中断1程控为边沿触发方式o CPU在每一个机器周期S5P2期间采样外部中断1请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求为高电平,接着的下一个机器周期采样到外部中断l请求

5、为低电平,则使IEl置l。直到CPU响应该中断时,才由硬件使IEl清0。 IE0外部中断0的中断请求标志。其含义与IE1类同oIT0外部中断0的中断触发方式控制位。其含义与ITl类同。2SCON中的中断标志位SCON为串行口控制寄存器,其低2位锁存串行口的接收中断和发送中断标志RI和TI。SCON中TI和RI的格式如图所示。TIRI 各控制位的含义如下: TI串行口发送中断请求标志。CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。 RI串行口接收中断请求标志。在串行口允许接收时,

6、每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须用软件对其清0。 二、中断允许控制 8051对中断源的开放或屏蔽是由中断允许寄存器IE控制的。IE的格式如下图所示。EAESETlEXlET0EX0中断允许寄存器IE对中断的开放和关闭实现两级控制。所谓两级控制,就是有一个总的开关中断控制位EA(1E7),当EA0时,屏蔽所有的中断申请,即任何中断申请都不接受;当EA1时,CPU开放中断,但五个中断源还要由IE的低5位的各对应控制位的状态进行中断允许控制。IE中各位的含义如下: EA中断允许总控制位。EA0,屏蔽所有中断请求;EA1,CPU开放中断。对各中断源的中断请求是

7、否允许,还要取决于各中断源的中断允许控制位的状态。 ES串行口中断允许位。ES0,禁止串行口中断;ES1,允许串行口中断。ETl定时器计数器T1的溢出中断允许位。ETl0,禁止T1中断;ETll,允许T1中断。EXl外部中断l中断允许位。EXl0,禁止外部中断1中断;EXll,允许外部中断1中断。ET0定时器计数器T0的溢出中断允许位。ET00,禁止T0中断;ET01,允许T0中断。EX0外部中断0中断允许位。EX00,禁止外部中断0中断;EX01,允许外部中断0中断。 例: 假设允许片内定时器计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。 解:(a)用字节操作指令MOV IE,

8、8AH 或 MOV A8H, 8AH (b)用位操作指令 SETB ET0 ;定时器计数器0允许中断 SETB ETl ;定时器计数器l允许中断 SETB EA ;CPU 开中断三、中断优先级控制8051有两个中断优先级,每一个中断请求源均可编程为高优先级中断或低优先级中断。中断系统中有两个不可寻址的“优先级生效”触发器,一个指出CPU是否正在执行高优先级的中断服务程序,另一个指出CPU是否正在执行低优先级中断服务程序。这两个触发器为1时,则分别屏蔽所有的中断请求。另外,8051片内有一个中断优先级寄存器IP,其格式如图所示。PSPTlPXlPT0PX0 IP中的低5位为各中断源优先级的控制位

9、,可用软件来设定。各位的含义如下: PS串行口中断优先级控制位。 PT1定时器计数器T1中断优先级控制位。 PXl外部中断1中断优先级控制位。 PT0定时器计数器T0中断优先级控制位。 PX0外部中断0中断优先级控制位。 若某几个控制位为1,则相应的中断源就规定为高级中断;反之,若某几个控制位为0,则相应的中断源就规定为低级中断。 当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬件查询顺序。其优先级顺序排列如下所示。 中断源 同级内的中断优先级 外部中断0 高 定时器计数器0溢出中断 外部中断1 定时器计数器1溢出中断 串行口中断 最低 有了IP的控制,可实现如下功能: (

10、1)按内部查询顺序排队 通常,系统中有多个中断源,因此就会出现数个中断源同时提出中断请求的情况。这样,就必须由设计者事先根据它们的轻重缓急,为每个中断源确定一个CPU为其服务的顺序号。当数个中断源同时向CPU发出中断请求时,CPU根据中断源属顺序号的次序依次响应其中断请求。 (2)实现中断嵌套当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,这时,CPU就暂时中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去响应优先级更高的中断请求,并为其服务。待服务结束,再继续执行原来较低级的中断服务程序。该过程称为中断嵌套(类似于子程序的嵌套),该中断系统称为多级中断系统。

11、二级中断嵌套的中断过程如图下所示。 例:设8031的片外中断为高优先级,片内中断为低优先级。试设置IP相应值。 解:(a)用字节操作指令 MOV IP,#05H 或 MOV 0B8H,#05H (b)用位操作指令 SETBPX0 SETB PXl CLR PS CLR PT0 CLR PTl33 中断处理过程 中断处理过程可分为三个阶段,即中断响应、中断处理和中断返回。由于各计算机系统的中断系统硬件结构不同,中断响应的方式也有所不同。在此说明8051单片机的中断处理过程。 以外设提出接收数据请求为例。当CPU执行主程序到第K条指令时,外设向CPU发一信号,告知自己的数据寄存器已“空”,提出接收

12、数据的请求(即中断请求)。CPU接到中断请求信号,在本条指令执行完后中断主程序的执行并保存断点地址,然后转去准备向外设输出数据(即响应中断)。 CPU向外设输出数据(中断服务),数据输出完毕,CPU返回到主程序的第K+1条指令处继续执行(即中断返回)。在中断响应时,首先应在堆栈中保护主程序的断点地址(第K+1条指令的地址),以便中断返回时,执行RETI指令能将断点地址从堆栈中弹出到PC,正确返回。由此可见,CPU执行的中断服务程序如同子程序一样,因此又被称作中断服务子程序。但两者的区别在于:子程序是用LCALL(或ACALL)指令来调用的,而中断服务子程序是通过中断请求实现的。所以,在中断服务

13、子程序中也存在保护现场恢复现场的问题。中断处理的大致流程图如课本图510所示。一、 中断响应1、中断响应条件CPU响应中断的条件有:有中断源发出中断请求。中断总允许位EAl,即CPU开中断。 申请中断的中断源的中断允许位为l,即中断没有被屏蔽。 无同级或更高级中断正在被服务。 当前的指令周期已经结束。 若现行指令为RETI或者是访问IE或IP指令时,该指令以及紧接着的另一条指令已执行完。例如,CPU对外部中断的响应,当采用边沿触发方式时,CPU在每个机器周期的S5P2期间采样外部中断输入信号INTX(X=0,1),如果在相邻的两次采样中,第一次采样到的INTXl,紧接着第二次采样到的INTX0

14、,则硬件将特殊功能寄存器TCON中的IEX(X0,1)置l,请求中断。IEX的状态可一直保存下去,直到CPU响应此中断,进入到中断服务程序时,才由硬件自动将IEX清0。由于外部中断每个机器周期被采样一次,因此,输入的高电平或低电平至少必须保持12个振荡周期(一个机器周期),以保证能被采样到。2、中断响应操作过程 8051的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为l,将在接下来的机器周期Sl期间按优先级进行中断处理。中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。 8051单

15、片机的中断系统中有两个不可编程的“优先级生效”触发器。一个是“高优先级生效”触发器,用以指明已进行高级中断服务,并阻止其他一切中断请求;一个是“低优先级生效”触发器,用以指明已进行低优先级中断服务,并阻止除高优先级以外的一切中断请求。 8051单片机一旦响应中断,首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令LCALL,把当前PC值压入堆栈,以保护断点,再将相应的中断服务程序的入口地址(如外中断0的入口地址为0003H)送入PC,于是CPU接着从中断服务程序的入口处开始执行。 对于有些中断源,CPU在响应中断后会自动清除中断标志,如定时器溢出标志TF0,TFl和边沿触发方

16、式下的外部中断标志IE0,IEl;而有些中断标志不会自动清除,只能由用户用软件清除,如串行口接收发送中断标志RI,TI在电平触发方式下的外部中断标志IE0和IEl则是根据引脚INT0和INT1的电平变化的,CPU无法直接干预,需在引脚外加硬件(如D触发器)使其自动撤消外部中断请求。CPU执行中断服务程序之前,自动将程序计数器的内容(断点地址)压入堆栈保护起来(但不保护状态寄存器PSW的内容,也不保护累加器A和其他寄存器的内容),然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元中,以执行中断服务程序。各中断源及与之对应的矢量地址见课本表5l中 断 源中断矢量地址外部中断0 (

17、INT0)0003H定时器T0中断000BH外部中断1 (INTl)0013H定时器Tl中断001BH串行口中断0023H 由于MCS51系列单片机的两个相邻中断源中断服务程序入口地址相距只有8个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址中放一条长跳转指令LJMP,这样就可以转到64KB的任何可用区域了。若在2KB范围内转移,则可存放AJMP指令。中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作,一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入程序计数器PC,使程序返回到被中断的

18、程序断点处继续执行。 我们在编写中断服务程序时应注意: 在中断矢量地址单元处放一条无条件转移指令(如LJMP XXXXH),使中断服务程序可灵活地安排在64KB程序存储器的任何空间。 在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。 若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。3、中断响应时间 CPU不是在任何情况下都对中断请求予以响应,而且不同的情况下对中断响应的时间也是不同的。现以外部中断为例,说明中断响应的最短时间。 在每个机器周期的S5P2期间,INT0和INTl引脚的电平被锁

19、存到TCON的IE0和IEl标志位,CPU在下一个机器周期才会查询这些值。这时,如果满足中断响应条件,下一条要执行的指令将是一条长调用指令“LCALL”,使程序转至中断源对应的矢量地址入口。长调用指令本身要花费2个机器周期。这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,中间要隔3个机器周期,这是最短的响应时间。 如果遇到中断受阻的情况,则中断响应时间会更长一些。例如,一个同级或高优先级的中断正在进行,则附加的等待时间将取决于正在进行的中断服务程序。如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为1个3个机器周期。因为一条指令的最长执行时间为4个机器周期(MUL

20、和DIV指令)。如果正在执行的是RETI指令或者是读写IE或IP的指令,则附加的时间在5个机器周期之内(为完成正在执行的指令,还需要1个机器周期,加上为完成下一条指令所需的最长时间为4个机器周期,故最长为5个机器周期)。若系统中只有一个中断源,则响应时间在3个8个机器周期之间o二、 中断处理 CPU响应中断后即转至中断服务程序的入口,执行中断服务程序。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况下,中断处理包括两部分内容:一是保护现场,二是为中断源服务。 现场通常有PSW、工作寄存器和SFR

21、等。如果在中断服务程序中要用这些寄存器,则在进入中断服务之前应将它们的内容保护起来(保护现场),在中断结束执行RETI指令前应恢复现场。 中断服务针对中断源的具体要求进行相应的处理。 用户在编写中断服务、程序时,应注意以下几点: 各中断源的入口矢量地址之间只相隔8个单元,一般的中断服务程序是容纳不下的,因而最常用的方法是在中断入口地址单元处存放一条无条件转移指令转至存储器其他的任何空间。 若在执行当前中断程序时禁止更高优先级中断,应用软件关闭CPU中断或屏蔽更高级中断源的中断,在中断返回前再开放中断。 在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,一般应关闭CPU中断,使CPU暂

22、不响应新的中断请求。这样,在编写中断服务程序时,应注意在保护现场之前要关闭中断,在保护现场之后若允许高优先级中断嵌套,则应开中断。同样,在恢复现场之前应关闭中断,恢复之后再开中断o三、 中断返回 当某一中断源发出中断请求时,CPU能决定是否响应这个中断请求。若响应此中断请求,CPU必须在现行(假设)第K条指令执行完后,把断点地址(第K十1条指令的地址)即现行PC值压入堆栈中保护起来(保护断点)。当中断处理完后,再将压入堆栈的第K+l条指令的地址弹到PC(恢复断点)中,程序返回到原断点处继续运行。在中断服务程序中,最后一条指令必须为中断返回指令RETI。 CPU执行此指令时,一方面清除中断响应时

23、所置位的“优先级生效”触发器,一方面从当前栈顶弹出断点地址送入程序计数器PC,从而返回主程序。若用户在中断服务程序中进行了压栈操作,则在RETI指令执行前应进行相应的出栈操作,使栈顶指针SP与保护断点后的值相同;也就是说,在中断服务程序中,PUSH指令与POP指令必须成对使用,否则不能正确返回断点。34 外部中断扩展方法805l单片机有两个外部中断请求输入端,即和。在实际应用中,若外部中断源有两个以上时,就需要扩展外部中断源。一、 利用定时器扩展外部中断源805l单片机有两个定时器,都具有两个内部中断标志和外部计数输入引脚。当定时器设置为计数方式时,计数初值设置为满量程FFH。一旦外部信号从计

24、数器引脚输入一个负跳变信号,计数器加1产生溢出中断,从而可以转去处理该外部中断源的请求。因此,我们可以把外部中断源作为边沿触发输入信号,接至定时器的T0(P34)或Tl(P35)引脚上;该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序。二、 中断加查询扩展中断源 利用805l的两根外部中断输入线。每一中断输入线可以通过“线或”的关系连接多个外部中断源,同时利用输入端口线作为各中断源的识别线。具体线路见图所示的多个外部中断源连接方法。 图中的四个外部装置通过集电极开路的OC门构成“线或”的关系,四个装置的中断请求输入均通过传给CPU。无论哪一个外设提出中断请求,都会使引

25、脚电平变低,究竟是哪个外设申请中断,可以通过程序查询P10P13的逻辑电平获知。设这四个中断源的优先级为装置1最高,装置4最低。软件查询时,由最高至最低的顺序查询。有关中断服务程序的片断如下: ORG 0003H LJMP INTRP ;中断服务程序入口:INTRP:PUSH PSW ;中断服务程序是一个中断查询程序 PUSH A JB Pl0,DVl jB P11,DV2 JB P1,2,DV3 JB Pl、3,DV4 EXIT: POP A POP PSW RETIDV1:装置1的中断服务程序 AJMP EXITDV1:装置2的中断服务程序 AJMP EXITDV1:装置3的中断服务程序

26、AJMP EXITDV1:装置4的中断服务程序 AJMP EXIT35应用举例例:如图所示,此中断电路可实现系统的故障显示。当系统的各部分正常工作时,四个故障源的输入均为低电平,显示灯全不亮。当有某个部分出现故障时,则相应的输入线由低电平变为高电平,相应的发光二极管亮。 解:如图所示,当某一故障信号输入线由低电平变为高电平时,会通过INT0线引起8031中断(边沿触发方式)。在中断服务程序中,应将各故障源的信号读入,并加以查询,以进行相应的发光显示。 程序清单: ORG 0000H AJMP MAIN ;上电,转向主程序 ORG 0003H ;外部中断0入口地址 AJMP INSER ;转向中

27、断服务程序 MAIN:ANL P1,#55H ;P10,P12,P14,P16为输入 ;P11,P13,P15,P17输出为0 SETB EX0 ;允许外部中断0中断 SETB 工T0 ;选择边沿触发方式 SETB EA ;CPU开中断 HERE:SJMP HERE ;等待中断 INSER:JNB P10,Ll ;查询中断源,(P10)0,转L1 SETB P11 ;是P10引起的中断,使相应的二极管亮 L1:JNB P12,L2 ;继续查询 SETB P13 L2:JNB P14,L3 SETB P15, L3:JNB P16,L4 SETB P17 L4:RETI END第四章 定时计数器

28、及其应用基本内容:定时计数器的基本工作原理;定时计数器的控制和状态寄存器;定时计数器的工作方式;定时计数器的编程应用。基本要求:理解定时计数器的工作原理;掌握定时计数器的寄存器状态设定;会正确选用定时计数器的工作模式;会计算定时计数器的计数初值。重点内容:定时计数器的控制和状态寄存器;定时计数器的工作方式;定时计数器的编程应用。难点内容:定时计数器的控制和状态寄存器的设定;定时计数器的方式选择;定时计数器的初值计算。41 定时计数器的基本工作原理8051内部有T0、T1两个16位定时计数器,其核心是一个16位的加一计数器。一般可以有两个时钟来源:1、 单片机内部时钟提供定时方式每个机器周期使其

29、加一,所以定时的速率是振荡频率的112。对机器周期的计数实现计时功能。2、 外部引脚Tx引脚提供计数方式在Tx引脚由10跳变时,计数器加一。由于在每个机器周期的S5P2采样Tx,当前采样是1。之后采样是0才加一。所以计数速率是振荡频率的124,即两个机器周期加一。要求:高电平至少保持1个完整的机器周期。(讲解为什么?)4 2 定时计数器的控制与状态寄存器共有两个定时计数器,由软件写入TMOD、TCON两个8位寄存器,用来设定T0、T1的操作模式和控制功能。系统复位后,所有位被清零。1、 TMOD工作方式控制寄存器 用来定义定时计数器的操作模式。 GATEC/M1M0GATEC/M1M0 其中:

30、高四位用于定时计数器T1,低四位用于定时计数器T0。M1M0:工作模式选择位M1 M0工作模式功能描述0 0模式013位定时计数器0 1模式116位定时计数器1 0模式2自动再装入8位计数器1 1模式3T0:分成两个8位计数器;T1:停止计数C/:计数定时方式选择位 C/1时为计数模式,即对内部时钟计数。C/0时为定时模式,即对外部脉冲计数。GATE:门控位GATE1时,只有当为高电平且TRx置一时才能启动定时计数器。GATE0时,不管电平状态,只要TRx置一就能启动定时计数器。2、 TCON定时计数器的启停与中断控制寄存器 用于控制定时计数器的启动和停止、中断请求等。可以按字节寻址,也可按位

31、寻址。复位后为00H。 8FH 8EH 8DH 8CH 8BH 8AH 89H 88HTF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TFx: Tx的溢出中断请求标识位当Tx回零并产生溢出信号,由内部硬件置位,向CPU申请中断。CPU响应中断进入中断服务程序后被硬件自动清零。也可用软件清零。TRx: Tx的启动停止控制位TRx1时,相应的定时计数器开始工作;TRx0相应的定时计数器停止工作IEx:跳变中断请求标志位IEx1时,若主机检测到上有10跳变时,内部硬件置位IEx,向CPU请求中断,PU响应中断进入中断服务程序后被硬件自动清零。ITx:选择的跳变电平触发中断ITx1,负

32、跳变触发产生中断请求;ITx0,低电平触发产生中断请求。43 定时计数器的工作方式 1、 定时计数器方式013位定时计数器当TMOD的M1M0为00时,由一个高八位计数器THx和一个低八位计数器TLx的低五位组成一个13位定时计数器。0 TLx 4 0 THx 7 TFx 中断请求 TLx0TLx4 由11111变为00000时,向THx进位,使THx加一,全为1变成全0时,TFx1,产生中断请求。条件:为高电平且GATE1 TRx1 或 GATE0 且TRx12、 定时计数器方式116位定时计数器0 TLx 7 0 THx 7 TFx 中断请求 由THx和TLx组成16位定时计数器3、 定时

33、计数器方式2自动再装入方式0 TLx 7TFxTHx 中断请求计数初值分别送入THx和TLx,启动后仅仅TLx加1,当TLx满回零溢出后,置位TFx请求中断,同时打开三态门,使THx 中的初值重新进入TLx,继续进行下一轮计数。一般用于串行通讯中的波特率发生器。4、 定时计数器方式3此方式下,TL0 定时计数,TH0定时。T1不工作。将定时器0分成两个独立的八位计数器,由于TH0借用了T1 的TR1和TF1,所以T1没有工作方式3。4 4 定时计数器的应用根据应用要求,通过程序初始化,正确选用工作模式、设定控制字,正确计算、设定计数初值,编写中断服务程序,适时设定控制位等。通常遵循以下顺序:工

34、作方式设定,设置控制字TMOD计数初值计算及装入THx、TLx中断允许位ETx和EA 的设定启动停止位TRx的设定1、 初值计算 T0、T1是加一计数器,不是自减的,所以不能用实际计数值作为计数初值置于THx、TLx中,而应该用其实际值的补码。如 0 7 10 讲解设实际值为X,则计数初值应该为 ,n为字长(8、13、16)那么实际值X是怎么确定的呢?计数状态时,X即是所计数的要求。定时状态时,X要根据定时时间和时钟频率设定。定时时,每个机器周期初值加一,要定时时间为Tc ,则计数初值为 定时计数初值例一 设某机器的主频是6 MHZ,先在要定时5 ms,则方式0和方式1下的计数初值分别为多少?

35、方式1:计数初值=63036 写为十六进制为F6 (THx )3C(TLx)方式0:计数初值=8192-2500=5692 为十六进制的163CH,但是必须将其化为低五位高八位的形式 1 0 1 1 0 0 0 1 1 1 1 0 0 所以THx0B1H, TLx1CH B 1 1 C例二、某应用系统,选定时计数器T1,工作方式1,定时时间Tc =10ms,主频为12M,要求每隔10ms产生一次中断,将累加器A的内容循环作移一次并送到P1口。试编制程序。1、 设定控制字TMODGATEC/M1M0GATEC/M1M0 0 0 0 1 0 0 0 0 10H2、 计算计数初值机器周期Tp1 us

36、计数初值6553610000555360D8F6H所以TH10D8H,TL10F6H3、 程序清单:ORG 0000HAJMP 0100HORG0013HLJMPINTT1ORG 0100HMOVTMOD, #10HMOVTH0, #0D8HMOV TL0 , #0F6HSETB EASETB ET1SETB TR1WAIT:SJMPWAIT 或者用 SJMP $INTT1:MOV TH0, #0D8HMOV TL0 , #0F6HRLAMOVP1,ARETIEND第五章 串行通讯基本内容:串行通讯的同步通讯、异步通讯的概念;串行通讯的分类;MCS51串行通讯口的控制寄存器、特殊功能寄存器;M

37、CS51串行通讯口的工作方式;串行通讯中波特率的设定;MCS51串行通讯口的编程实例。重点内容:MCS51串行通讯口的控制寄存器、特殊功能寄存器;串行通讯中波特率的设定;MCS51串行通讯口的的编程。基本要求:了解串行通讯的同步通讯、异步通讯的概念、串行通讯的分类;掌握MCS51串行通讯口的控制寄存器、特殊功能寄存器的具体含义及其使用方法;会正确设定串行通讯中的波特率;会正确使用MCS51串行通讯口进行通讯。难点内容:串行通讯中波特率的设定;串行通讯时有关中断的使用。51 串行通讯概述 在微机系统中,主机与外部设备进行通讯主要有两种基本通讯形式:并行通讯和串行通讯。并行通讯 数据的所有位同时传

38、输 特点:速度快、效率高,需要较多通讯线,适用于近距离。串行通讯数据的各位一位一位传输特点:节省传输线、成本低,速度慢、效率低一、 异步通讯和同步通讯在串行通讯中,常使用的串行通讯方式主要有异步通讯和同步通讯两种方式下面简单介绍:1、 同步通讯方式USRT发送和接收时钟严格的同步,需要同步字符SYNC,格式如下: XXXXX PSYNC 5、6、7、8位数据 奇偶校验位要求连续发送数据,不允许断流,若发送器数据没有准备好,用SYNC补充。2、 异步通讯方式UART不需要同步字符,不要求数据的连续性,每个数据均以相同的帧格式传送。起始位058位数据奇偶校验位01停止位1空闲位1或多个1起始位0

39、一帧数据起始位:通讯线上无数据时为高电平,发送数据时先送一低电平,表示传送开始。数据位:58位,一般是从数据的最低位到最高位。奇偶校验位:用于对数据进行检错,若不一致,由软件重新发送。停止位: 高电平,可以是1位、位、2位。通讯时,必须实现在通讯协议中设定好一帧数据的字符长度及波特率。二、 串行通讯的传输方式串行通讯的传送方向通常有三种,全双工、半双工和单工方式。 1、单工方式一根线连接发送端和接收端,单向传输。 2、半双工方式 每个设备均有发送端和接收端,两个设备之间仅有一条线连接,由电子开关切换,不能同时在两个方向上传输。 3、全双工方式 两根线连接到两设备的接收端和发送端,实现接收和发送

40、同时进行。 具体参考课本180页图92三、 波特率波特率,即数据的传送速率,表示每秒钟传送二进制位的位数,单位是 b/s。一般情况下使用的波特率为5019200b/s之间。例如:假设数据传送的速度是120字符s,每个字符包含10个二进制位,则此时的波特率为10*1201200b/s 52 MCS51的串行通讯口 在51系列单片机中,设有一个全双工的串行口,有两个独立的接收、发送缓冲器,可以同时发送、接收字符。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,所以两个缓冲器只有一个地址,统称为串行通讯特殊功能寄存器SBUF。1、 串行口控制寄存器SCON用于选择串行口的工作方式及某些控制功能SM0SM1SM2RENTB8RB8TIRISM0 SM1选择串口的工作方式功能描述波特率0 00移位寄存器方式1/12 fosc 0 1110位UART方式可变 1 0211位UART方式1/64 1/32 fosc 1 1311位UART方式可变 SM2: 允许方式2或3的多机通讯位 方式2、3中,SM21且REN1时,只有接收到的第9位数据RB81时,RI才被激活 方式0中 ,SM2应该为0。 方式1中,若SM21,只有接收到有效停止位时才请求接收中断。 REN: 允许禁止串行接收控制位 REN1时 允许 启动RX

温馨提示

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

评论

0/150

提交评论