外部中断及中断请求的撤除.ppt

上传人:豆**** 文档编号:62816045 上传时间:2022-11-22 格式:PPT 页数:151 大小:1.50MB
返回 下载 相关 举报
外部中断及中断请求的撤除.ppt_第1页
第1页 / 共151页
外部中断及中断请求的撤除.ppt_第2页
第2页 / 共151页
点击查看更多>>
资源描述

《外部中断及中断请求的撤除.ppt》由会员分享,可在线阅读,更多相关《外部中断及中断请求的撤除.ppt(151页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信外部中断及中断请求的撤除 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.1 I/O 概概 述述 5.1.1I/O接口电路的作用一个计算机系统的组成,除了CPU、存储器外,还必须有外部设备。计算机通过输入/输出设备和外界进行通信。计算机所用的数据以及现场采集的各种信息都要通过输入设备送到计算机;而计算的结果和计算机产

2、生的各种控制信号又需通过输出设备输出到外部设备。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信计算机的I/O操作,即CPU和外部设备之间的数据传送却十分复杂。主要表现在以下几个方面:(1)外部设备的工作速度与计算机相比要低得多。(2)外部设备的种类繁多,有机械式、机电式及电子式等等。(3)外部设备的数据信号是多种多样的,既有电压信号,也有电流信号;既有数字量,还有模拟量。(4)外部设备的数据传送有近距离的,也有远距离的;有的使用并行数据传送,而有的则使用串行传送数据。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信具体说来,接口电路主要有以

3、下几项功能:(1)速度协调。(2)数据锁存。(3)三态缓冲。(4)数据转换。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.1.2接口与端口“接口”一词是从英文interface翻译过来的,具有界面、相互联系等含义。接口这个术语在计算机领域中应用十分广泛,本章所讲述的接口则特指计算机与外设之间在数据传送方面的联系,其功能主要是通过电路实现的,因此称之为接口电路,简称接口。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.1.3I/O的编址方式在计算机中,凡需进行读写操作的设备都存在着编址问题。具体说来在计算机中有两种需要编址的器件:一种

4、是存储器,另一种就是接口电路。存储器是对存储单元进行编址,而接口电路则是对其中的端口进行编址。对端口编址是为I/O操作而进行的,因此也称为I/O编址。常用的I/O编址有两种方式:独立编址方式和统一编址方式。1.独立编址方式2.统一编址方式第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.2 输入输入/输出传送方式输出传送方式5.2.1无条件传送方式无条件传送也称为同步程序传送,类似于CPU和存储器之间的数据传送。只有那些一直为数据I/O传送作好准备的外部设备,才能使用无条件传送方式。这种传送方式不需要测试外部设备的状态,可以根据需要随时进行数据传送操作。无条件传送方

5、式适用于以下两类外部设备的输入输出:http:/第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信(1)外设的工作速度非常快,足以和CPU同步工作。(2)具有常驻的或变化缓慢的数据信号的外设。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.2.2查询传送方式查询传送又称为条件传送,即数据的传送是有条件的。在输入/输出之前,先要检测外设的状态,以了解外设是否已为数据输入输出作好了准备,只有在确认外设已“准备好”的情况下,CPU才能执行数据输入/输出操作。通常把通过程序对外设状态的检测称之为“查询”,所以这种有条件的传送方式又叫做程序查询方式。

6、查询的流程图如图51所示。http:/第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图51查询方式流程图第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.2.3中断传送方式由于查询传送方式为CPU主动要求传送数据,而它又不能控制外设的工作速度,因此只能用等待的方式来解决配合的问题。中断方式则是在外设为数据传送作好准备之后,就向CPU发出中断请求信号(相当于通知CPU),CPU接收到中断请求信号之后立即作出响应,暂停正在执行的原程序(主程序),而转去为外设的数据输入输出服务,待服务完之后,程序返回,CPU再继续执行被中断的原程序。第第5章章

7、 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信由于CPU的工作速度很快,传送1次数据(包括转入中断和退出中断)所需的时间很短。对外设来讲,似乎是对CPU发出数据传送请求的瞬间,CPU就实现了;对主程序来讲,虽然中断了1个瞬间,但由于时间很短,也不会有什么影响。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.3 MCS-51单片机的中断系统单片机的中断系统 5.3.1中断的概念计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务程序执行完了之后能自动回到原主程序处继续执行,这个过程叫做“中断”。中断需要解决两个主要问题:一是如何从主程

8、序转到中断服务程序;二是如何从中断服务程序返回主程序。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信大体说来,采用中断系统改善了计算机的性能,主要表现在以下几个方面:(1)有效地解决了快速CPU与慢速外设之间的矛盾,可使CPU与外设并行工作,大大提高了工作效率。(2)可以及时处理控制系统中许多随机产生的参数与信息,即计算机具有实时处理的能力,从而提高了控制系统的性能。(3)使系统具备了处理故障的能力,提高了系统自身的可靠性。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.3.2中断源所谓中断源就是引起中断的事件,亦即是什么部件要求中断。

9、对于各种计算机来说,其中断源的允许数目是不一样的,例如Z80允许128个中断源(不包括非屏蔽中断),而8086/8088则允许256个中断源。MCS-51单片机相对来说较为简单,只提供了5个中断源:2个外部中断请求和个片内定时器/计数器T0和T1的溢出中断请求TF0和TF1及串行口中断请求TI或RI(合为一个中断源)。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信MCS-51单片机5个中断源的中断请求信号分别锁存在特殊功能寄存器TCON和SCON中:(1)TCON为定时/计数器控制寄存器,字节地址为88H,其中锁存的中断源请求标志如表51所示。表51TCON锁存的中

10、断源第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信(2)SCON串行口控制寄存器,字节地址为98H。SCON的低2位锁存串行口的接收中断和发送中断标志,其格式如表52所示。表52SCON锁存的中断源第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信TI:串行口发送中断标志。在串行口以方式0发送时,每当发送完8位数据后,由硬件置位TI;若以方式1、2、3发送时,在发送停止位的开始时置位TI。TI=1表示串行口发送器正在向CPU申请中断。值得注意的是当CPU响应该中断后,转向中断服务程序时并不复位TI,TI必须由用户在中断服务程序中用软件清0(可

11、用CLRTI或其它指令)。http:/第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信RI:串行口接收中断标志。若串行口接收器允许接收并以方式0工作,则每当接收到第8位数据时置位RI;若以方式1、2、3工作,且SM2=0时,则每当接收器接收到停止位的中间时置位RI;当串行口以方式2或方式3工作,且SM2=1时,仅当接收到的第9位数据RB8为1后,同时还要接收到停止位的中间时置位RI。RI为1表示串行口接收器正向CPU申请中断,同样RI必须由用户在中断服务程序中清0。8031复位后,SCON也被清0。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行

12、通信5.3.3中断的优先级如果正在执行主程序时只有1个中断源请求中断,而这时CPU又是对中断开放的,那么这个中断立即得到响应。然而由于中断是随机产生的,中断源一般又不止1个,因此往往会出现这样的情况:几个中断源同时请求中断;或者当某一个中断正在响应中(即正在执行该中断源的中断服务程序),又有其它的中断源请求中断,这时中断系统应如何处理呢?在一般情况下,首先把各个中断源分成若干个优先级,然后再按如下原则进行处理:第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信(1)不同级的中断源同时申请中断时先高后低;(2)同级的中断源同时申请中断时事先规定;(3)处理低级中断又收到高

13、级中断请求时停低转高;(4)处理高级中断又收到低级中断请求时高不理低。MCS-51单片机的中断系统对优先级的控制比较简单,只规定了两个中断优先级,对于每一个中断源均可编程为高优先级中断或低优先级中断。在同1个优先级中,对5个中断源的优先次序安排如下:最高优先级最低优先级第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信外部中断0(IE0)定时器/计数器T0溢出中断(TF0)外部中断1(IE1)定时器/计数器T1溢出中断(TF1)串行口中断(RI+TI)MCS-51单片机中有1个中断优先级寄存器IP,字节地址为B8H。对于每1个中断源,均可通过对IP的设置来确定其优先等级

14、,置1为高优先级,清0为低优先级。IP寄存器的格式如表53所示。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信表53中断优先级寄存器IP的格式第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信其中:PX0:外部中断0优先级控制位。PT0:定时器0中断优先级控制位。PX1:外部中断1优先级控制位。PT1:定时器1中断优先级控制位。PS:串行口中断优先级控制位。上面优先级控制位规定1为高优先级,0为低优先级。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.3.4中断响应的条件、过程与时间1.中断响应的条件单片机响应中

15、断的条件为中断源有请求(中断允许寄存器IE相应位置1),且CPU开中断(即EA=1)。这样,在每个机器周期内,单片机对所有中断源都进行顺序检测,并可在任1个周期的S6期间,找到所有有效的中断请求,还对其优先级进行排队。但是,必须满足下列条件:第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信(1)无同级或高级中断正在服务;(2)现行指令执行到最后1个机器周期且已结束;(3)若现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且紧随其后的另1条指令也已执行完。单片机便在紧接着的下1个机器周期的S1期间响应中 断。否 则,将 丢 弃 中 断 查 询 的

16、 结 果。http:/第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信2.中断响应过程单片机一旦响应中断,首先对相应的优先级有效触发器置位。然后执行1条由硬件产生的子程序调用指令,把断点地址压入堆栈,再把与各中断源对应的中断服务程序的入口地址送入程序计数器PC,同时清除中断请求标志(串行口中断和外部电平触发中断除外),从而程序便转移到中断服务程序。以上过程均由中断系统自动完成。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信各中断源所对应的中断服务程序的入口地址如下:中断源入口地址外部中断0003H定时器T0中断000BH外部中断0013H定

17、时器T1中断001BH串行口中断0023H第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信CPU从上面相应的地址开始执行中断服务程序直到遇到1条RETI指令为止。RETI指令表示中断服务程序的结束。CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器;另一方面从堆栈栈顶弹出断点地址送入程序计数器PC,从而返回主程序。若用户在中断服务程序的开始安排了保护现场指令(一般均为相应寄存器内容入栈或更换工作寄存器区),则在RETI指令前应有恢复现场指令(相应寄存器内容出栈或换回原工作寄存器区)。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信

18、3.中断响应时间所谓中断响应时间是指从查询中断请求标志位到转入中断服务程序入口地址所需的机器周期数(对单一中断源而言)。响应中断最短需要3个机器周期。若CPU查询中断请求标志的周期正好是执行1条指令的最后1个机器周期,则不需等待就可以响应。而响应中断执行1条长调用指令需要2个机器周期,加上查询的1个机器周期,一共需要3个机器周期才开始执行中断服务程序。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.3.5MCS-51单片机的中断系统MCS-51系列单片机的中断系统属于8位单片机中功能较强的1种中断系统,它可以提供5个中断源,每个中断源有两个中断优先级别可供选择,可

19、实现两级中断服务程序嵌套。此外,所有中断均可由软件设定为允许中断或禁止中断,也就是说,用户可以用关中断指令(或复位)来屏蔽所有的中断请求,也可以用开中断指令使CPU接受中断请求。MCS-51单片机的中断系统结构示意图如图52所示。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图52MCS-51的中断系统第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.3.6外部中断及中断请求的撤除1.外部中断MCS-51单片机的中断系统有2个外部中断源,引脚信号为和(即P3.2和P3.3)。其中断请求触发信号有电平触发和边沿触发两种,当TCON寄存器中的

20、IT0位和IT1位为“0”时采用电平触发;为“1”时采用边沿触发。http:/第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信2.中断请求的撤除CPU响应中断请求后,在中断返回(执行RETI指令)前,必须撤除请求,否则会错误地再一次引起中断过程。如前所述,对于定时器T0与T1的中断请求及边沿触发方式的外部中断0和1来说,CPU在响应中断后用硬件清除了相应的中断请求标志TF0、TF1、IE0与IE1,即自动撤除了中断请求。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图53外部中断请求(电平方式)的撤除第第5章章 输入输入/输出、输出、中断、

21、中断、定时与串行通信定时与串行通信5.3.7中断程序举例在中断服务程序编程时,首先要对中断系统进行初始化,也就是对几个特殊功能寄存器的有关控制位进行赋值。具体来说,就是要完成下列工作:(1)开中断和允许中断源中断;(2)确定各中断源的优先级;(3)若是外部中断,则应规定是电平触发还是边沿触发。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信例1:若规定外部中断0为电平触发方式,高优先级,试写出有关的初始化程序。解:一般可采用位操作指令来实现:SETBEA;开中断SETBEX0;允许外中断0中断SETBPX0;外中断0定为高优先级CLRIT0;电平触发第第5章章 输入输

22、入/输出、输出、中断、中断、定时与串行通信定时与串行通信例2:若规定外部中断1为边沿触发方式,低优先级,在中断服务程序中将寄存器B的内容左环移一位,B的初值设为01H。试编写主程序与中断服务程序。解:程序如下ORG0000H;主程序LJMPMAIN;主程序转至MAIN处ORG0013H;中断服务程序LJMPINT;中断服务程序转至INT处第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信MAIN:SETBEA;开中断SETBEX1;允许外中断1中断CLRPX1;设为低优先级SETBIT1;边沿触发MOVB,01H;设B的初值HALT:SJMPHALT;暂停等待中断INT

23、:MOVA,B;ABRLA;左环移一位MOVB,A;回送RETI;中断返回第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信有以下几点需要说明:(1)由于从0003H到0023H之间分布了5个中断源的入口地址,因此在一般情况下,主程序与中断服务程序均用长转移指令移至其它区域。(2)本例题未考虑保护现场与恢复现场的问题,是否需要,应视具体情况而定。(3)本例是单重中断,若为多级中断,则情况要复杂得多。(4)主程序处于暂停等待中断只是为了举例方便起见,在实际的单片机控制系统中一般是不会这样用的。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.4

24、 定时定时/计数器计数器 在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。比如,在单片机控制的电力拖动系统中,控制的对象为电动机,为了实现闭环控制,就需要定时地对转速进行采样。若采用光电脉冲发生器作为检测元件,则先应对每个采样周期中光电脉冲发生器发出的脉冲进行计数,然后再通过实时计算求得对应的转速。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信对于定时/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都有以下特点:(1)定时/计数器有多种工作方式,可以是计数方式也可以是定时方式。(2)定时/计数器

25、的计数值是可变的,当然对计数的最大值有一定限制,这取决于计数器的位数。计数的最大值也就限制了定时的最大值。(3)可以按照规定的定时或计数值,在定时时间到或者计数终止时,发出中断申请,以便实现定时控制。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.4.1定时/计数器的结构及工作原理MCS-51单片机的定时/计数器(以下简称T/C)的结构如图54所示。由图54可见T/C的核心是1个加1计数器,它的输入脉冲有两个来源:一个是外部脉冲源,另一个是系统机器周期(时钟振荡器经12分频以后的脉冲信号)。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信

26、当T/C处于定时方式时,加1计数器在每个机器周期加1,因此,也可以把它看作在累计机器周期。由于一个机器周期包含12个振荡周期,所以它的计数速率是振荡频率的1/12。图54中有2个模拟的位开关,前者决定了T/C的工作状态:当开关处于上方时为定时状态,处于下方时为计数状态。工作状态的选择由特殊功能寄存器TMOD的C/T位来决定。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图54定时/计数器的结构框图第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信16位的加1计数器由两个8位的特殊功能寄存器THx或TLx组成(X=0、1)。它们可被程控为不同的

27、组合状态。(13位、16位、两个分开的8位等),从而形成T/C不同的4种工作方式,这只要用指令改变TMOD(工作方式控制寄存器)的相应位即可。单片机中微处理器p、特殊功能寄存器TCON和TMOD与定时/计数器T0、T1之间的关系如图55所示,它反映了T/C在单片机中的位置和总体结构。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图55定时/计数器与TMOD、TCON的结构框图第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.4.2定时/计数器的方式和控制寄存器MCS-51单片机有2个特殊功能寄存器TMOD和TCON:TMOD用于设置T/C

28、的工作方式;TCON用于控制定时器T0、T1的启动与停止,并包含了定时器的状态。1.定时器工作方式寄存器TMOD定时器工作方式寄存器TMOD用于选择定时器的工作方式,它的高4位控制定时器T1,低4位控制定时器T0。TMOD中各位的定义如下:GATEC/TM1M0GATEC/TM1M0T1T0TMOD89H第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信其中:T/C功能选择位,当=1时为计数方式;当=0时为定时方式。M1M0:T/C工作方式定义位,其具体定义方式如表54所示。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信表54定时/计数器工作

29、方式第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。GATE=0时,与外部中断无关,由TCON寄存器中的TRx位控制启动。GATE=1时,由控制位TRx和引脚共同控制启动,只有在没有外部中断请求信号的情况下(即外部中断引脚=1时),才允许定时器启动。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信2.定时器控制寄存器TCONTCON控制寄存器各位的定义如下:TF1TR1TF0TR0IE1IT1IE0IT0D7D6D5D4D3D2D1D0TCON88H第第5章章 输入输入/输出

30、、输出、中断、中断、定时与串行通信定时与串行通信其中:TF0(TF1):为T0(T1)定时器溢出中断标志位。当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况下,发出中断请求信号。当CPU响应中断转向中断服务程序时,由硬件自动将该位清0。TR0(TR1):为T0(T1)运行控制位。当TR0(TR1)=1时启动T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行设置。TCON的低4位与外部中断有关,可参阅中断一节的有关内容。TCON寄存器在复位时也被清0。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.4.3定时/计数器的工作方式MCS-51单

31、片机的T/C有4种工作方式,分别由TMOD寄存器中的M1、M0两位的二进制编码所决定。1.方式0当M1M0=00时,T/C设定为工作方式0,构成13位的T/C。其逻辑结构如图56所示。在此工作方式下,T/C构成一个13位的计数器,由THx的8位和TLx的低5位组成,TLx的高3位未用,满计数值为213。T/C启动后立即加1计数,当TLx的低5位计数溢出时向THx进位,THx计数溢出则对相应的溢出标志位TFx置位,以此作为定时器溢出中断标志。当单片机进入中断服务程序时,由内部硬件自动清除该标志。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图56T/C方式0的逻辑结构

32、图第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信2.方式1当M1M0=01时,T/C设定为工作方式1,构成16位定时/计数器,其中THx作为高8位,TLx作为低8位,满计数值为216,其余同方式0类似。其逻辑结构如图57所示。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信3.方式2当M1M0=10时,T/C工作在方式2,构成1个自动重装载的T/C,满计数值为28。在方式0和方式1中,当计数满后,若要进行下一次定时/计数,需用软件向THx和TLx重新予置计数初值。在方式2中THx和TLx被当作两个8位计数器,计数过程中,THx寄存8位初值并

33、保持不变,由TLx进行8位计数。计数溢出时,除产生溢出中断请求外,还自动将THx中的初值重新装到TLx中去,即重装载。除此之外,方式2也同方式0类似。其逻辑结构如图58所示。http:/第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图57T/C方式1的逻辑结构图第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图58T/C方式2的逻辑结构图第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信4.方式3方式3只适用于定时器T0。当定时器T1处于方式3时相当于TR1=0,停止计数。当T0工作在方式3时,TH0和TL0被拆成2

34、个独立的8位计数器。这时,TL0既可作为定时器使用,也可作为计数器使用,它占用了定时器T0所使用的控制位(C/、GATE、TR0、TF0),其功能和操作与方式0或方式1完全相同;而TH0只能作定时器用,并且占据了定时器T1的两个控制信号TR1和TF1。在这种情况下,定时器T1虽仍可用于方式0、1、2,但不能使用中断方式。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图59T/C方式3的逻辑结构图第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.4.4定时/计数器应用举例由于MCS-51单片机的定时/计数器是可编程的,因此在使用之前需要进行

35、初始化。在编程时主要注意两点:第一要能正确写入控制字;第二能进行计数初值的计算。一般情况下,包括以下几个步骤:(1)确定工作方式,即对TMOD寄存器进行赋值。(2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中。(3)根据需要,置位ETx允许T/C中断。(4)置位EA使CPU开中断(需要时)。(5)置位TRx启动计数。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信计数初值的计算方法如下:由于定时/计数器是以加1的方式计数,因此同常用的减1计数器的算法不同。在定时方式下:假定时间常数为Tc,定时时间为T,而T=TcTp,则时间常数为(51)其中Tp为机器周

36、期,即12/晶振频率。应装入定时/计数器的初值为X=2n-Tc(n为计数器的位数)(52)第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信例1:若晶振频率为6MHz,试计算MCS-51单片机定时/计数器的最小定时时间和最大定时时间。解:先确定机器周期:计算最小定时时间:对于定时器的几种工作方式来说,最小定时时间都是一样的,即Tmin=TcTp=12s=2s在计数方式下:假定计数值为N,则应装入的计数初值为X=2n-N(n同上)晶振频率第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信计算最大定时时间:当T/C工作在方式1下的定时时间最长,则最大

37、定时时间为Tmax=TcTp=2162s=131072s=131ms例2:若单片机的晶振频率为6MHz,要求定时/计数器T0产生100ms的定时,试确定计数初值以及TMOD寄存器的内容。解:当晶振频率为6MHz时,产生100ms的定时接近最大值(131ms),故只能采用方式1(16位定时器)。机器周期为:第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信晶振频率时间常数为:计数初值为:第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信设置TMOD方式字:对于T0来说:M1M0=01、GATE=0。由于T1不用,可任意设置,现取为全0,因此,TMO

38、D寄存器的内容为:TMOD=00000001B=01H第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信例3:利用定时/计数器T0通过P1.0引脚输出周期为2ms的方波,设晶振频率为12MHz。试确定计数初值、TMOD内容及编制相应程序。解:若要产生周期为2ms的方波,只要每1ms将信号的幅值由0变到1或由1变到0即可,可采用取反指令CPL来实现。为了提高CPU的效率,可采用定时中断的方式,每1ms产生一次中断,在中断服务程序中将输出信号取反即可。定时器T0的中断入口地址为000BH。计算计数初值:对于定时1ms来说,用定时器方式0(13位定时器)就可实现。第第5章章

39、输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信机器周期为:晶振频率时间常数为:计数初值为:则其高8位为EOH,低5位为18H,故TH0=E0H,TL0=18H。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信确定TMOD方式字:对于定时器T0来说,M1M0=00H、=0、GATE=0。定时器T1不用,取为全0。于是TMOD=00000000B=00H程序设计:ORG000BH;T0中断服务程序入口LJMPINT;转至INT处ORG2000H;主程序MOVTMOD,00H;置T0为定时方式0MOVTH0,0E0H;设置计数初值第第5章章 输入输入/输出、

40、输出、中断、中断、定时与串行通信定时与串行通信MOVTL0,18HSETBEA;CPU开中断SETBET0;允许T0中断SETBTR0;启动T0HALT:SJMP$;暂停,等待中断INT:CPLP1.0;输出方波MOVTH0,0E0H;重新装入计数初值MOVTL0,18HRETI;中断返回第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信需要说明的是:以上程序在定时器初始化之后,即进入虚拟的主程序,暂停等待定时器溢出中断。这种主程序处于暂停状态等待中断的方法一般只用于例题程序,而在实际系统中则很少采用,因为这涉及到CPU的效率。还有一点要注意:当采用方式0、1、3时,只

41、要不关闭定时/计数器,那么每当计数器回0溢出时,都需要重新装入计数初值,以保证计数值不变。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信例4:用查询方式产生例3中所要求的方波。解:程序和例3很相似,不同之处为不需要中断和中断服务程序。查询的对象是定时器T0的溢出标志TF0,在计数过程中,TF0为0;当定时时间到,计数器溢出使TF0置1。由于未采用中断,TF0置1后不会自动复位为0,故需用指令使TF0复位为0。计数初值的计算以及TMOD的选取同例3。MOVTMOD,00H;置定时器T0为方式0MOVTH0,0E0H;设置计数初值MOVTL0,18H第第5章章 输入输入

42、/输出、输出、中断、中断、定时与串行通信定时与串行通信MOVIE,00H;禁止中断SETBTR0;启动T0定时LOOP:JBCTF0,LOOP1;查询计数溢出SJMPLOOP;TF0=0,则反复查询LOOP1:CPLP1.0;输出方波MOVTH0,0E0H;重新装入计数初值MOVTL0,18HSJMPLOOP;重复循环第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信例5:软件扩展定时设片内RAM的70H单元的初值为01H,要求每1秒钟将其内容左环移一位,采用定时器T1,晶振频率为6MHz。解:当晶振频率为6MHz时,一个定时器的最大定时值为131ms,现要求定时1s,

43、已超过该最大定时值,故只能采用定时器定时和软件计数相结合的方法来扩展定时时间。在本例中,要获得1s定时,可将定时器的定时值设为100ms,另设一个软件计数器(常用Rn寄存器),初值为10。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信每100ms定时时间一到,产生定时溢出中断,在中断服务程序中首先使软件计数器减1,若不为0,则立即退出中断;若已减为0,说明1s定时时间已到,可进入中断处理。当中断处理完后,再重新设置软件计数器。其它要求与前例类似。计算计数初值:采用定时方式1,计数初值为:x=3CB0H(参阅例2)。确 定 TMOD方 式 字:对 于 定 时 器 T1

44、来 说,M1M0=01、=0、GATE=0,而定时器T0不用,取为全0。于是TMOD=00010000B=10H程序设计:第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信ORG001BH;T1中断入口LJMPINT;转至INT处ORG2000H;主程序MOVTMOD,10H;T1工作于方式1MOVTH13CH;设置计数初值MOVTL1,B0HSETBEA;CPU开中断SETBET1;允许T1中断SETBTR1;启动T1定时MOV70H,01H;将初值送入70H单元中MOVR0,0AH;设置软件计数器第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行

45、通信HALT:SJMP$;暂停,等待中断INT:DJNZR0,NEXT;中断服务程序MOVA,70H;时间已到,将70H单元内容送ARLA;左环移一位MOV70H,A;回送MOVR0,0AH;重新设置软件计数器NEXT:MOVTH1,3CH;重新设置计数初值MOVTL1,B0HRETI;中断返回第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信例6:设晶振频率为6MHz、定时/计数器T0工作于方式3,TL0和TH0作为两个独立的8位定时器,要求TL0使P1.0产生400s的方波,TH0使P1.1产生800s的方波。解:当采用方式3时,对于TH0来说,需要借用定时器T1的

46、控制信号。计算计数初值:X0=28-20010-6/210-6=156=9CHX1=28-40010-6/210-6=56=38H确定TMOD方式字:对定时器T0来说,M1M0=11、=0、GATE=0,定时器T1不用,取为全0。于是TMOD=00000011B=03H第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信程序设计:ORGMAIN;主程序MAIN:MOVTMOD,03H;T0工作于方式3MOVTL0,9CH;置计数初值MOVTH0,38HSETBEA;CPU开中断SETBET0;允许T0中断(用于TL0)SETBET1;允许T1中断(用于TH0)SETBTR

47、0;启动TL0SETBTR1;启动TH0第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信HALT:SJMPHALT;暂停,等待中断ORG000BH;TL0中断服务程序CPLP1.0;P1.0取反MOVTL0,9CH;重新装入计数初值RETI;中断返回ORG001BH;TH0中断服务程序CPLP1.1;P1.1取反MOVTH0,38H;重新装入计数初值RETI;中断返回第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信5.5 串行通信接口串行通信接口 5.5.1串行通信的基本知识1.并行通信与串行通信在实际应用中,不但计算机与外部设备之间常常要进

48、行信息交换,而且计算机之间也需要交换信息,所有这些信息的交换均称为“通信”。通信的基本方式分为并行通信和串行通信两种。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信并行通信是构成1组数据的各位同时进行传送,例如8位数据或16位数据并行传送。其特点是传输速度快,但当距离较远、位数又多时导致了通信线路复杂且成本高。串行通信是数据一位接一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现通信(如电话线),从而大大地降低了成本,特别适用于远距离通信。缺点是传送速度慢。图510为以上两种通信方式的示意图。由图510可知,假设并行传送N位数据所需时间为T,那么串行传送

49、的时间至少为NT,实际上总是大于NT的。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图510通信的两种基本方式(a)并行通信;(b)串行通信第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信串行通信可分为异步传送和同步传送两种基本方式。1)异步传送方式异步传送的特点是数据在线路上的传送不连续。在传送时,数据是以一个字符为单位进行传送的。它用一个起始位表示字符的开始,用停止位表示字符的结束。异步传送的字符格式如图511(a)所示。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信一个字符由起始位、数据位、奇偶校验位和停

50、止位4个部分组成。起始位为0信号占1位;其后接着的就是数据位,它可以是5位、6位、7位或8位,传送时低位在先、高位在后;再后面的1位为奇偶校验位,可要也可以不要;最后是停止位,它用信号1来表示字符的结束,可以是1位、1位半或2位。第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信图511串行异步传送的字符格式(a)字符格式;(b)有空闲位的字符格式第第5章章 输入输入/输出、输出、中断、中断、定时与串行通信定时与串行通信例如,采用串行异步通信方式传送ASCII码字符5,规定为7位数据位,1位偶校验位,1位停止位,无空闲位。由于5的ASCII码为35H,其对应7位数据位为

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

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁