MCS-51单片机中断系统.ppt_第1页
MCS-51单片机中断系统.ppt_第2页
MCS-51单片机中断系统.ppt_第3页
MCS-51单片机中断系统.ppt_第4页
MCS-51单片机中断系统.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、06:43,1,单片机原理与接口技术,太原理工大学,电子工业出版社,第6章 MCS-51单片机中断系统,制作 张兴忠 修审 牛昱光,06:43,2,1. 了解MCS-51单片机中断系统的内部结构; 2. 了解MCS-51单片机中断系统的中断源; 3. 了解MCS-51单片机中断系统的工作方式; 4. 熟悉MCS-51单片机中断系统的中断入口地址; 5. 掌握MCS-51单片机中断系统的控制寄存器; 6. 掌握MCS-51单片机中断服务程序的设计方法。,本章教学要求,-第6章 MCS-51单片机中断系统,06:43,3,本章目录,6.1 中断概述 6.1.1 CPU与外设的 输入/输出方式 6.

2、1.2 中断的概念 6.2 MCS-51中断系统 6.2.1 中断系统的内部结构,-第6章 MCS-51单片机中断系统,6.2.2 中断源与中断方式 6.2.3 中断控制寄存器 6.2.4 中断响应 6.3 中断应用举例 6.3.1 中断服务程序设计 6.3.2 中断系统应用实例 习题与思考题,06:43,4,6.1 中断的概述,CPU与外部设备交换信息有以下几种方式: 1)程序控制传送方式: 包括分为无条件传送方式和查询传送方式; 2) 中断传送方式; 3) 直接存储器存取(DMA)方式。,-CPU与外部设备交换信息,06:43,5,6.1.1 CPU与外设的输入/输出方式,无条件传送方式也

3、称为同步程序传送,这种传送方式不需要交换状态信息,即不需要测试外部设备的状态,只需在程序中加入访问外设的指令,便可以根据需要随时实现数据传送,无条件传送方式适用于以下两类外部设备的输入输出: 1) 外设的工作速度非常快,足以和CPU同步工作。 2) 具有常驻的或变化缓慢的数据信号的外设。,1无条件传送方式,-无条件传送方式,06:43,6,2查询传送方式,通常把通过程序对外设状态的检测称之为“查询”,所以这种有条件的传送方式又叫做程序查询方式。查询的流程图如图6-1(a)所示。,6.1.1 CPU与外设的输入/输出方式,-查询传送方式,06:43,7,3直接存储器存取(DMA)方式,DMA(D

4、irect Memory Access)方式是CPU让出数据总线(悬浮状态),使外部设备和存储器之间直接传送(不通过CPU)数据的方式。在下述两种情况时可考虑采用DMA方式。 1) 外设和存储器之间有大量的数据需要传送。 2) 外部设备的工作速度很快的情况。,6.1.1 CPU与外设的输入/输出方式,-DMA方式,06:43,8,4中断传送方式,中断方式则是在外设为数据传送作好准备之后,就向CPU发出中断请求信号(相当于通知CPU),CPU接收到中断请求信号之后立即作出响应,暂停正在执行的原程序(主程序),而转去为外设的数据输入输出服务,待服务完之后,程序返回,CPU再继续执行被中断的原程序。

5、,6.1.1 CPU与外设的输入/输出方式,-中断传送方式,06:43,9,6.1.2 中断的概述,中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。如图6-2所示。实现这种中断功能的硬件系统和软件系统统称为中断系统。,-中断的概念,06:43,10,主程序:CPU正常情况下运行的程序称为主程序。 中断源:把向CPU提出中断申请的设备称为中断源。 中断请求:由中断源向CPU所发出的请求中断的信号称中断请求。 中断响应:CPU在满足条件情况下接受中断申请,终止现行程序执行转而为申请中

6、断的对象服务称中断响应。 中断服务程序:为服务对象服务的程序称为中断服务程序。 断点:现行程序被中断的地址称为断点。 中断返回:中断服务程序结束后返回到原来程序称中断返回。,6.1.2 中断的概述,-中断的概念,06:43,11,(1)中断源 (2)中断优先级控制 (3)中断响应的过程,6.1.2 中断的概述,-中断系统的基本问题,1) 检测中断 2) 保护现场 3) 中断服务 4) 清除中断标志位 5) 恢复现场 6) 中断返回,06:43,12,保护现场是指由于CPU执行中断处理程序时,可能要使用主程序中使用过的累加器、寄存器或标志位。为了使这些寄存器的值在中断服务程序中不被冲掉,在进入中

7、断服务程序前,要将有关寄存器保护起来。在中断服务程序执行完时,还必须恢复原寄存器的内容及原程序中断处的地址。即恢复现场和恢复断点。 保护现场和恢复现场是通过在中断服务程序中采用堆栈操作指令PUSH及POP实现的。而保护断点、恢复断点是由CPU响应中断和中断返回时自动完成的。,6.1.2 中断的概述,-保护断点和保护现场,06:43,13,6.2.1 中断系统的内部结构,MCS-51单片机的中断系统由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路组成,其内部结构框图如图6-3所示。,-中断系统的内部结构,06:43,14,6.2.2 中断源与中断方式,MCS-51单片机的中断系统提供了5

8、个中断源。,-中断源及种类,1中断源,06:43,15,通常,在实际应用中有以下几种情况可采取中断方式工作。 (1) I/O设备。 (2) 硬件故障。 (3) 实时时钟。 (4) 为调试程序而设置的中断源。,-中断工作方式应用,6.2.2 中断源与中断方式,06:43,16,-中断源及种类,2中断方式 (1) 外部中断 外部中断是指从单片机外部引脚INT0和INT1输入中断请求信号的中断,即外部中断源有两个。如输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为外部中断源,从引脚INT0和INT1输入。 外部中断请求和有电平触发和跳变(边沿)触发两种触发方式。这两种触发

9、方式可以通过对特殊功能寄存器TCON编程来选择。,6.2.2 中断源与中断方式,06:43,17,-中断源及种类,(2) 内部中断 内部中断是单片机芯片内部产生的中断。MCS-51单片机(51子系列)的内部中断有定时/计数器T0和T1的溢出中断,串行口的发送/接收中断。,2中断方式,6.2.2 中断源与中断方式,06:43,18,6.2.3 中断控制寄存器,MCS-51中断系统在4个特殊功能寄存器控制下工作。这4个特殊功能寄存器是定时/计数器控制寄存器(TCON)、串行口控制寄存器(SCON)、中断允许控制寄存器(IE)和中断优先级控制寄存器(IP)。通过对这4个特殊功能寄存器的各位进行置位或

10、复位操作,可实现各种中断控制功能。,-概述,06:43,19,6.2.3 中断控制寄存器,1) TCON中的中断请求标志位 TCON为定时/计数器控制寄存器,其字节地址为88H,可位寻址,位地址范围为88H8FH。这个寄存器有两个作用,即除了控制定时/计数器T0和T1的溢出中断外,还控制外部中断的触发方式和锁存外部中断请求标志位。TCON中的各位定义如图6-4所示。,-概述,1中断请求控制,06:43,20,IT0:选择外部中断0的中断触发方式。 IT0=0,为电平触发方式,低电平有效; IT0=1,为边沿触发方式,P3.2引脚信号出现负跳变有效。 IT1:选择外部中断1的中断触发方式。其功能

11、与IT0类同。 IE0:外部中断0的中断请求标志。 当INT0输入端口有中断时IE0=1,由硬件置位。,6.2.3 中断控制寄存器,-TCON寄存器,06:43,21,IE1:外部中断INT1的中断请求标志。功能与IE0类似。 TF0:片内定时/计数器0溢出中断请求标志。 定时/计数器的核心为加法计数器,当定时/计数器T0发生定时或计数溢出时,由硬件置位TF0或TF1,向CPU申请中断,CPU响应中断后,会自动清零TF0或TF1。 TF1:片内定时/计数器1溢出中断请求标志。功能与TF0类同。,6.2.3 中断控制寄存器,-TCON寄存器,06:43,22,外部中断请求标志位IE0和IE1及其

12、中断请求信号的撤销问题 无论是采用边沿触发方式(IT0=1)还是电平触发方式(IT0=0),在CPU响应中断请求后,中断请求标志位IE0即由硬件自动清零。 由于CPU对引脚没有控制作用,在采用电平触发方式时中断请求信号的低电平可能继续存在,在以后的机器周期采样时又会把已清零的IE0标志位重新置1,这有可能再次引起中断而造成出错。所以,在中断响应后必须采用其他方法撤销该引脚上的低电平,以撤除外部中断请求信号。中断请求标志位IE1的清零及中断请求信号的撤销问题与IE0类似。,6.2.3 中断控制寄存器,-TCON寄存器,06:43,23,【例6-1】 图6-5所示为对于外部中断采用电平触发方式时的

13、撤除外部中断请求信号参考电路。,6.2.3 中断控制寄存器,-TCON寄存器,分析:外部中断请求信号通过D触发器加到单片机引脚INTx(x = 0,1)上。当外部中断请求信号使D触发器的CLK端发生正跳变时,由于D端接地,Q端输出0,向单片机发出中断请求。CPU响应中断后,利用一根口线,如P1.0做应答线,在中断服务程序中用两条指令:,06:43,24,6.2.3 中断控制寄存器,-TCON寄存器,ANL P1.0, #0FEH ORL P1.0, #01H 通过以上两条命令来撤除中断请求。第1条指令使P1.0为0,而P1口其他各位的状态不变。由于P1.0与D触发器的置1端相连,故D触发器Q=

14、1,撤除了中断请求信号。第二条指令将P1.0变成1,从而使,使以后产生的新的外部中断请求信号又能向单片机申请中断。,06:43,25,2)SCON中的中断标志位,SCON为串行口控制寄存器,其字节地址为98H,可以进行位寻址。串行口的接收和发送数据中断请求标志位(RI、TI)被锁存在串行口控制寄存器SCON中,其格式如图6-6所示。,6.2.3 中断控制寄存器,-SCON寄存器,06:43,26,TI:串行口发送中断请求标志位 CPU将一个数据写入发送缓冲器SBUF时,就启动发送,每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI中断标志,必须在中断服务程序中由软件对TI清

15、0。 RI:串行口接收中断请求标志位 在串行口允许接收时,每接收完一帧数据,由硬件自动将RI位置为1。CPU响应中断时,并不清除RI中断标志,也必须在中断服务程序中由软件对TI标志清0。,6.2.3 中断控制寄存器,-SCON寄存器,06:43,27,2中断允许控制,MCS-51对中断源的开放或屏蔽是由中断允许寄存器IE控制的,IE的字节地址为0A8H,可以按位寻址,当单片机复位时,IE被清为0。 通过对IE的各位置1或清0操作,实现开放或屏蔽某个中断,其格式如图6-7所示。,6.2.3 中断控制寄存器,-IE寄存器,06:43,28,EA:总中断允许控制位。当EA=0时,屏蔽所有的中断;当E

16、A=1时,开放所有的中断。 ES:串行口中断允许控制位。当ES=0时,屏蔽串行口中断;当ES=1且EA=1时,开放串行口中断。 ET1:定时/计数器T1的中断允许控制位。当ET1=0时,屏蔽T1的溢出中断;当ET1=1且EA=1时,开放T1的溢出中断。,6.2.3 中断控制寄存器,-IE寄存器,06:43,29,EX1:外部中断1的中断允许控制位。 当EX1=0时,屏蔽外部中断1的中断; 当EX1=1且EA=1时,开放外部中断1的中断。 ET0:定时/计数器T0的中断允许控制位。 功能与ET1相同。,6.2.3 中断控制寄存器,-IE寄存器,06:43,30,EX0:外部中断0的中断允许控制位

17、。功能与EX1相同。 MCS-51复位以后,IE被清0,所有的中断请求被禁止。由用户程序对IE相应的位置1或清0,即可允许或禁止各中断源的中断申请。改变IE的内容,即可由位操作指令来实现(即SETB bit;CLR bit),也可用字节操作指令实现(即MOV IE, #data;ORL IE, #data;MOV IE, A等)。,6.2.3 中断控制寄存器,-IE寄存器,06:43,31,(1)用位操作指令 CLREX0 ;禁止外部中断0中断 CLREX1 ;禁止外部中断1中断 CLRES ;禁止串行口中断 SETBET0 ;允许定时/计数器T0中断 SETBET1 ;允许定时/计数器T1中

18、断 SETBEA ;CPU开中断,6.2.3 中断控制寄存器,例6-2 若允许片内2个定时/计数器中断,禁止其它中断源的中断请求,试编写出设置IE的相应程序。,(2)用字节操作指令 MOV IE, #8AH 或 MOV A8H #8AH ;IE寄存器的字节 地址为A8H,-IE的设置,06:43,32,3中断优先级控制,8051有2个中断优先级,每一个中断请求源均可编程为高优先级中断或低优先级中断,从而实现2级中断嵌套。,6.2.3 中断控制寄存器,-2级中断嵌套,06:43,33,1) 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序且执行了

19、主程序中的一条指令后,CPU才响应新的中断请求。 2) 正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。 3) CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。,6.2.3 中断控制寄存器,-中断优先级控制,以上所述可归纳为下面3条基本规则。,06:43,34,中断优先级寄存器IP,1) PS:串行口中断优先级控制位 PS=1,设定串行口为高优先级;PS=0,设定串行口为低优先级。 2) PT1:定时器T1中断优先级控制位 PT1=1,设定T1为高优先级;PT1=0,设定T1为低优先级。,6.2.3 中断控制寄存器,在MCS-51内部提供了一个中断优先

20、级控制寄存器(IP)。其字节地址为B8H,既可按字节形式访问,又可按位形式访问,其位地址范围为0B8H0BFH。,06:43,35,中断优先级寄存器IP,3) PX1:外部中断1中断优先级控制位 PX1=1,设定外部中断1为高优先级; PX1= 0,设定外部中断1为低优先级。 4) PT0:定时器T0中断优先级控制位 PT0=1,设定T0为高优先级;PT0=0,设定T0为低优先级。 5) PX0:外部中断0中断优先级控制位 PX0=1,设定外部中断0为高优先级;PX0=0,设定外部中断0为低优先级。,6.2.3 中断控制寄存器,06:43,36,在同时收到几个同一优先级的中断请求时,哪一个中断

21、请求能优先得到响应,取决于内部查询次序,这相当于在同一个优先级内,还同时存在按次序决定的第二优先级结构,其查询次序见表6-2所示。,6.2.3 中断控制寄存器,-中断优先级控制,06:43,37,(1)用位操作指令 CLRPS ;串行口、定时 /计数器T0、 T1为低优先级 CLRPT0 CLRPT1 SETBPX0;外中断0、1为 高优先级 SETBPX1,6.2.3 中断控制寄存器,例6-3 设置IP寄存器的初始值,使得MCS-51的片内中断为低优先级,片外中断为高优先级。,(2)用字节操作指令 MOV IP, #05H 或 MOV B8H, #05H ;IP寄存器的字 节地址为B8H,-

22、中断优先级设置,06:43,38,例6-4 某程序中对IE、IP的初始化如下: MOVIE, #8FH MOVIP, #06H 则此时该系统中: 1)CPU中断允许; 2)允许外部中断0、外部中断1、定时器0和定时器1提出 的中断申请,屏蔽串口中断; 3)允许中断源的中断优先次序为: 定时/计数器0外部中断1外部中断0定时/计数器1,6.2.3 中断控制寄存器,-中断优先级设置,06:43,39,6.2.4 中断响应,单片机响应中断的条件为中断源有请求且CPU开中断(即EA=1)。 1) 无同级或高级中断正在处理。 2) 现行指令执行到最后1个机器周期且已结束。 3) 若现行指令为RETI或访

23、问特殊功能寄存器IE、IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。,-中断响应的条件,1中断响应的条件,06:43,40,-2中断响应过程,1) 根据中断请求源的优先级高低,对相应的优先级状态触发器置1,硬件自动生成常调用指令LCALL addr16。 2) 保护断点,即把程序计数器PC的内容压入堆栈保存。 3) 清除相应的中断请求标志位。 4) 把被响应的中断源所对应的中断服务程序入口地址(中断矢量)送入PC,从而转入相应的中断服务程序执行。 上述调用指令LCALL addr16中的addr16是程序存储区中相应的中断入口地址。例如对于外中断1的响应,系统自动生成的长调用指

24、令为:LCALL 0013H,6.2.4 中断响应,CPU响应中断后,由硬件自动执行如下的功能操作:,06:43,41,MCS-51系统的中断服务程序的入口地址即中断矢量也是由硬件自动生成的。各中断源与它所对应的中断服务程序入口地址见表6-3所示。,6.2.4 中断响应,-中断服务程序的入口地址,06:43,42,由于MCS-51系列单片机的相邻中断源中断服务程序入口地址相距只有8个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址中放一条长跳转指令LJMP,这样就可以转到64KB的任何可用区域。若在2KB范围内转移,则可存放AJMP指令。,6.2.4 中断响应,-中断服

25、务程序部署,06:43,43,电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片8255的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。 边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为MCS-51单片机的中断输入。,6.2.4 中断响应,-中断信号的极性,06:43,44,ORG0000H AJMPMAIN ORG 0003H LJMPINT0 ORG0100H MAIN: ,6.2.4 中断响应,例6-5 设外部中断0提出申请,且主程

26、序中需对累加器A、DPTR、R0和R1进行保护,则程序如下:,ORG1000H;1000H为中断入口地址 INT0:PUSHACC PUSHDPH PUSHDPL PUSHR0 PUSHR1 POPR1 POPR0 POPDPL POPDPH POPACC RETI,-保护现场,06:43,45,在中断服务程序中,PUSH指令与POP指令必须成对使用,否则不能正确返回断点。而且最后一条指令必须为中断返回指令RETI,RETI的具体功能是: 1) 将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序; 2) 将相应中断优先级状态触发器清0,通知中断系统,中断服

27、务程序已执行完毕。 如果有多个中断源,就对应有多个“ORG 中断入口地址”,且这多个“ORG 中断入口地址”必须依次由小到大排列。,6.2.4 中断响应,06:43,46,3中断响应时间,所谓中断响应时间是指CPU检测到中断请求信号到转入中断服务程序入口所需要的机器周期数。 MCS-51单片机响应中断的最短时间为3个机器周期。若CPU检测到中断请求信号时间正好是一条指令的最后一个机器周期,则不需等待就可以立即响应。 所谓响应中断就是由内部硬件执行一条长调用指令,需要2个机器周期,加上检测需要1个机器周期,一共需要3个机器周期才开始执行中断服务程序。,6.2.4 中断响应,06:43,47,中断

28、响应的最长时间由下列情况所决定:若中断检测时正在执行RETI或访问IE或IP指令的第一个机器周期,这样包括检测在内需要2个机器周期(以上三条指令需两个机器周期);若紧接着要执行的指令恰好是执行时间最长的乘除法指令,其执行时间均为4个机器周期;再用2个机器周期执行一条长调用指令才转入中断服务程序。这样,总共需要8个机器周期。,6.2.4 中断响应,06:43,48,如果已经在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间,这种情况下,响应时间就无法计算。 因此,在1个单一中断的系统里,MCS-51单片机对外部中断请求的响应时间为38个机器周期。,6.2.4 中

29、断响应,06:43,49,6.3 中断应用举例,中断系统虽然是硬件系统,但中断系统的应用需要硬件系统和软件系统相互配合才能正确使用。在设计中断服务程序时需要注意以下几个问题。,06:43,50,6.3.1 中断服务程序设计,1) 设置中断允许控制寄存器IE,允许相应的中断源请求中断。 2) 设置中断优先级寄存器IP,确定并分配所使用的中断源的优先级。 3) 若是外部中断源,还要设置中断请求的触发方式IT1或IT0,以决定采用电平触发方式还是边沿触发方式。 4) 编写中断服务程序,处理中断请求。 一般将前3条都放在主程序的初始化程序段中。,1中断服务程序设计的基本任务,06:43,51,(1)现

30、场保护和现场恢复 (2)开中断和关中断 (3)中断返回,6.3.1 中断服务程序设计,2中断服务程序的流程,06:43,52,6.3.2 中断服务程序应用,假设允许外部中断0和1中断,并设定外部中断0为高级中断,外部中断1为低级中断,外部中断0采用边沿触发方式,外部中断1采用电平触发方式。对应的主程序中程序段如下: SETBEA;CPU开中断 SETBET0;允许外中断0产生中断 SETBET1;允许外中断1产生中断 SETBPX0;外中断0为高级中断 CLRPX1;外中断1为低级中断 SETBIT0;外中断0为跳沿触发方式 CLRIT1;外中断0为电平触发方式,例6-6 中断初始化程序,06

31、:43,53,图6-11为采用单外部中断源的数据采集系统示意图。将P1口设置成数据输入口,外围设备每准备好一个数据时,发出一个选通信号(正脉冲),使D触发器Q端置1,产生中断请求信号, P3.0用于撤除中断请求信号,从而清除IE0标志。,6.3.2 中断服务程序应用,例6-7 单外部中断源示例,06:43,54,ORG 0000H START: LJMP MAIN ;跳转到主程序 ORG 0003H LJMP INT0 ;转向中断服务程序 ORG 0030H ;主程序 MAIN: CLR IT0 ;设为电平触发方式 SETB EA ;CPU开放中断 SETB EX0 ;允许INT0中断 MOV

32、 DPTR, #1000H ;设置数据区地址指针 ,6.3.2 中断服务程序应用,06:43,55,ORG 0200H;中断服务程序 INT0: PUSHPSW;保护现场 PUSH ACC CLRP3.0;由P3.0输出0,使/Q变为1,撤除中断请求信号 SETBP3.0;由P3.0输出1,使D触发器能够工作 MOVA, P1 ;输入数据 MOVX DPTR, A ;存入数据存储器 INCDPTR ;修改数据指针,指向下一个单元 POPACC;恢复现场 POPPSW RETI;中断返回,6.3.2 中断服务程序应用,06:43,56,将T0、T1设置为计数方式,初值为FFH。一旦外部信号从计数

33、器引脚输入一个负跳变信号,计数器加1,产生溢出中断,从而可以转去处理该外部中断源的请求。因此可以把P3.4、P3.5作为外部中断请求输入线,而溢出标志相当于外部中断请求标志置初值。 下面程序为采用定时/计数器T0在方式2下作为外中断源的方法。,6.3.2 中断服务程序应用,例6-8 定时/计数器作为外部中断源的方法,06:43,57,汇编语言程序代码如下: MOV TMOD, #60H ;T0方式2 MOV TH1, #0FFH MOV TL1, #0FFH ;置初值 SETB TR0 ;启动计数器 SETB EA ;CPU中断开放 SETB ET0 ;允许T0中断,6.3.2 中断服务程序应

34、用,采用定时/计数器T0在方式2下作为外中断源,06:43,58,当连在P3.5上的外部输入线发生负跳变时,TL1加1溢出,TF1置1,向CPU发出中断申请。同时TH1的内容送TL1,即恢复计数初值0FFH。这样,P3.4引脚上的每次负跳变都将TF1置1,向CPU发出中断请求,CPU响应中断请求时,转去执行外部中断服务程序,其入口地址为001BH,此时P3.5相当于边沿触发的外中断源输入线。,6.3.2 中断服务程序应用,06:43,59,当外部中断源多于两个时,可以采用硬件申请与软件查询方法,把多个中断源通过硬件“线或”或者经或非门引入外部中断源输入端(或),同时又连到某I/O口。这样,每个

35、“源”都可能引起中断,但在中断服务程序中通过软件查询,便可确定哪一个是正在申请的中断源,其查询的次序则由中断源优先级决定。这样就可实现多个外部中断源的扩展。,6.3.2 中断服务程序应用,例6-9 中断和查询结合的方法扩展多个外中断源,06:43,60,图6-12中的中断线可实现系统的故障显示。当系统的各部分工作正常时,四个故障源输入端全为低电平,显示灯全熄灭。只有当某部分出现故障时,则对应的输入线由低电平变为高电平,从而引起8051的中断,在中断服务中通过查询即可判断故障源,并进行相应的LED显示。,6.3.2 中断服务程序应用,06:43,61,;*主程序* ORG0000H ;复位入口地

36、址 AJMPST ;转主程序 ORG0003H ;外部0中断入口 AJMPSER ;转中断服务程序 ORG0100H ST:MOVSP, #40H MOVIE, #81H MOVIP, #01H MOVTCON, #00H MOVA, #01H ;ACC初始化,6.3.2 中断服务程序应用,06:43,62,RES:MOVP1, A;显示 RLA;循环移位 LCALL DEL;延时保持 SJMPRES;循环 ; *中断服务程序* ORG1000H SER:PUSHACC;存当前的ACC值 MOV30H, R1;存延时程序的计数值 MOV31H, R2 MOVP1, #00H;把二极管熄灭 MOVR3, #10;保持,6.3.2 中断服务程序应用,06:43,63,LOOP:LCALLDEL DJNZR3, LOOP MOVR1, 30H ;取延时程序的计数值 MOVR2, 31H POPACC ;取当前的ACC值 MOVP1, ACC RETI ;中断返回 DEL:MOVR1, #123 ;延时程序 D

温馨提示

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

评论

0/150

提交评论