版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 中断系统45.1 5.1 微机的输入微机的输入/ /输出方式输出方式45.2 5.2 中断的概念中断的概念45.3 89C515.3 89C51中断系统结构及中断控制中断系统结构及中断控制45.4 5.4 中断响应及处理过程中断响应及处理过程 45.5 5.5 中断程序举例中断程序举例1返 回5.1 微机的输入/输出方式45.1.1 5.1.1 无条件传送方式无条件传送方式45.1.2 5.1.2 查询传送方式查询传送方式45.1.3 5.1.3 直接存储器存取(直接存储器存取(DMADMA)方式)方式2返 回5.1.1 无条件传送方式 4CPU总是认为外设在任何时刻都处于总是认为外设
2、在任何时刻都处于“准备好准备好”的状的状态。态。4这种传送方式不需要交换状态信息,只需在程序中加这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。入访问外设的指令,数据传送便可以实现。4此种方法很少使用。此种方法很少使用。 3返 回 5.1.2 查询传送方式(条件传送) 一、什么是查询传送方式一、什么是查询传送方式 二、查询方式程序流程图二、查询方式程序流程图 三、查询方式的过程三、查询方式的过程 四、查询方式的特点四、查询方式的特点4返 回 一、什么是查询传送方式+在输入时,需要查询外设的输入数据是否准备好;在输入时,需要查询外设的输入数据是否准备好;+在输
3、出时,需要查询外设是否把上一次在输出时,需要查询外设是否把上一次CPU输出的数输出的数据处理完毕。据处理完毕。+查询传送方式:通过查询外设的状态信息,确信外设查询传送方式:通过查询外设的状态信息,确信外设已处于已处于“准备好准备好”,计算机才发出访问外设的指令,计算机才发出访问外设的指令,实现数据的传送。实现数据的传送。+状态信息:一般为状态信息:一般为1位二进制码。位二进制码。5返 回二、查询方式程序流程图 6输入状态信息准备好?传送数据返 回三、查询方式的过程 7启动外设设备传送数据延迟查询方式的过程:查询方式的过程:查询查询等待等待数据传送,待到数据传送,待到下一次数据传送时则重复上述过
4、程。下一次数据传送时则重复上述过程。返 回四、查询方式的特点+优点:通用性好,可以用于各类外设和CPU间的数据传送。+缺点:CPU在完成一次数据传送后要等待很长时间才能进行下一次的传送。在等待过程中,CPU不能进行其他操作,所以效率比较低。8返 回/DMA:Direct Memory Access/CPU让出数据总线(悬浮状态)让出数据总线(悬浮状态) ,使外设和存储,使外设和存储器之间直接传送(不通过器之间直接传送(不通过CPU)数据的方式。)数据的方式。/适用于外设和存储器之间有大量的数据需要传送适用于外设和存储器之间有大量的数据需要传送及外设工作速度很快的情况。及外设工作速度很快的情况。
5、95.1.3 直接存储器存取(直接存储器存取(DMA)方式)方式返 回5.2 中断的概念一、中断一、中断二、中断系统二、中断系统三、中断源三、中断源四、中断请求四、中断请求五、中断响应过程五、中断响应过程六、中断服务六、中断服务七、中断返回七、中断返回八、中断方式的特点八、中断方式的特点10返 回一、中断4当当CPU正在处理某事件的时候,外部发正在处理某事件的时候,外部发生的某一事件请求生的某一事件请求CPU迅速去处理,于迅速去处理,于是是CPU暂时中止当前的工作,转去处理暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件所发生的事件。中断服务处理完该事件后,再返回到原来被中止的地
6、方继续原后,再返回到原来被中止的地方继续原来的工作,这样的过程称为中断。来的工作,这样的过程称为中断。4中断流程如图中断流程如图5-2所示。所示。11返 回图5-2 中断流程12主程序响应中断请求中断服务程序返回主程序继续执行主程序断点返 回二、中断系统4实现中断功能的部件称为中断系统,又实现中断功能的部件称为中断系统,又称中断机构。称中断机构。13返 回三、中断源4产生中断的请求源称为中断源。产生中断的请求源称为中断源。14返 回四、中断请求4中断源向中断源向CPU提出的处理请求,称为中提出的处理请求,称为中断请求或中断申请。断请求或中断申请。15返 回五、中断响应过程4CPU暂时中止自身的
7、事物,转去处理事暂时中止自身的事物,转去处理事件的过程,称为件的过程,称为CPU的中断响应过程的中断响应过程16返 回六、中断服务4对事件的整个处理过程,称为中断服务对事件的整个处理过程,称为中断服务(或中断处理)。(或中断处理)。17返 回七、中断返回4中断处理完毕,在返回到原来被中止的中断处理完毕,在返回到原来被中止的地方,称为中断返回地方,称为中断返回18返 回八、中断方式的特点41 1、中断方式消除了、中断方式消除了CPUCPU在查询方式中的在查询方式中的等待现象,大大提高了等待现象,大大提高了CPUCPU的工作效率。的工作效率。42 2、将从现场采集的数据通过中断方式及、将从现场采集
8、的数据通过中断方式及时传送给时传送给CPUCPU,经过处理后可立即作出反,经过处理后可立即作出反应,实现现场控制。采用查询方式很难应,实现现场控制。采用查询方式很难做到及时采集,实时控制。做到及时采集,实时控制。19返 回5.3 89C51中断系统结构及中断控制45.3.1 89C515.3.1 89C51中断系统结构中断系统结构45.3.2 89C515.3.2 89C51中断源中断源45.3.3 5.3.3 中断控制中断控制20返 回5.3.1 89C51中断系统结构4一、中断系统结构一、中断系统结构4二、中断技术实现的功能二、中断技术实现的功能21返 回一、中断系统结构4中断系统的结构如
9、中断系统的结构如 图图5-3所示。所示。22返 回23二、中断技术实现的功能41、分时操作、分时操作42、实时处理、实时处理43、故障处理、故障处理24返 回1、分时操作4计算机的中断系统可以使CPU与外设同时工作。4CPU在启动外设后,便继续执行主程序;而外设被启动后,开始进行准备工作。当外设准备就绪时,就向CPU发出中断请求,CPU响应该中断请求并为其服务完毕后,返回原来的断点处继续运行主程序。外设在得到服务后,也继续进行自己的工作。4因此,CPU可以使多个外设同时工作,并分时为各外设提供服务,从而提高了CPU的利用率和输入和输出的速度。25返 回2、实时处理4当计算机用于实时控制时,请求
10、当计算机用于实时控制时,请求CPU提提供服务时随机发生的。有了中断系统,供服务时随机发生的。有了中断系统,CPU就可以立即响应并加以处理。就可以立即响应并加以处理。26返 回3、故障处理4计算机在运行时往往会出现一些故障,计算机在运行时往往会出现一些故障,如断电、存储器奇偶校验出错、运算溢如断电、存储器奇偶校验出错、运算溢出等。出等。4有了中断系统,当出现上述情况时,有了中断系统,当出现上述情况时,CPU可及时转去执行故障处理程序,自可及时转去执行故障处理程序,自行处理故障而不必停机。行处理故障而不必停机。27返 回5.3.2 89C51中断源4一、一、89C51中断系统的五个中断源中断系统的
11、五个中断源4二、通常情况的中断源二、通常情况的中断源28返 回一、89C51中断系统的五个中断源1、INT0外部中断外部中断0请求,低电平有效。通过请求,低电平有效。通过P3.2引脚输入。引脚输入。2、INT1外部中断外部中断1请求,低电平有效。通过请求,低电平有效。通过P3.3引脚输入。引脚输入。3、T0定时器定时器/计数器计数器0溢出中断请求。溢出中断请求。4、T1定时器定时器/计数器计数器1溢出中断请求。溢出中断请求。5、TX/RX串行口中断请求。当串行口完成一帧数串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。据的发送或接收时,便请求中断。29返 回二、通常情况的中断源
12、41、I/O外设外设42、硬件故障、硬件故障43、实时时钟、实时时钟44、为调试程序而设定的中断源、为调试程序而设定的中断源30返 回5.3.3 中断控制4一、中断请求标志一、中断请求标志4二、中断允许控制二、中断允许控制4三、中断优先级控制三、中断优先级控制31返 回一、中断请求标志1、定时器控制寄存器、定时器控制寄存器TCON中的中断中的中断标志位标志位2、串行口控制寄存器、串行口控制寄存器SCON中的中断标中的中断标志位志位32返 回1、TCON中的中断标志位&TCON为定时器为定时器/计数器计数器T0和和T1的控制的控制器,同时也锁存器,同时也锁存T0和和T1的溢出中断标的溢出中断标志
13、及外部中断志及外部中断0和和1的中断标志等。的中断标志等。&与中断有关的位如与中断有关的位如图图5-4所示。所示。&各控制位的含义。各控制位的含义。33返 回 图5-4 TCON中的中断标志位34TF1TF0IE1IT1IE0IT0 TCON(88H)8FH 8EH 8DH 8CH 8BH 8AH 89H 88H返 回各控制位的含义1、TF1:定时器:定时器/计数器计数器T1溢出中断请求标志位。溢出中断请求标志位。 当启动当启动T1计数后,计数后,T1从初值开始加从初值开始加1计数,计计数,计数器最高位数器最高位产生溢出产生溢出时,由硬件使时,由硬件使TF1置置1,并向并向CPU发出中断请求。
14、当发出中断请求。当CPU响应中断响应中断时,时,硬件将自动对硬件将自动对TF1清清0。2、TF0:定时器:定时器/计数器计数器T0溢出中断请求标志位。溢出中断请求标志位。 含义与含义与TF1类同。类同。 35各控制位的含义3、IE1:外部中断外部中断1的中断请求标志的中断请求标志。 INT1(P3.3)。)。 当检测到外部当检测到外部中断引脚中断引脚1 上存在有效的上存在有效的中断请求中断请求信号信号时,由硬件使时,由硬件使IE1置置1。当。当CPU响应中断响应中断请请求时,由硬件使求时,由硬件使IE1清清0。 4、IE0:外部中断:外部中断0的中断请求标志。的中断请求标志。INT0(P3.2
15、)。)。 其含义与其含义与IE1类同。类同。 36各控制位的含义5、IT1:外部中断:外部中断1的中断触发方式控制位。的中断触发方式控制位。 IT1=0时,外部中断时,外部中断1程控为电平触发方式。程控为电平触发方式。 CPU在每一个机器周期在每一个机器周期S5P2期间采样外期间采样外部中断请求引脚的输入电平。若外部部中断请求引脚的输入电平。若外部中断中断1请求为请求为低电平低电平,则使,则使IE1置置1;若;若为为高电平高电平,则使,则使IE1清清0。 37各控制位的含义5、IT1:外部中断:外部中断1的中断触发方式控制位。的中断触发方式控制位。 IT1=1时,外部中断时,外部中断1程控为边
16、沿触发方式。程控为边沿触发方式。 CPU在每一个机器周期在每一个机器周期S5P2期间采样外部期间采样外部中断请求引脚的输入电平。如果在相继的两中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,个机器周期采样过程中,一个机器周期一个机器周期采样采样到外部中断到外部中断1请求引脚为请求引脚为高电平高电平,接着的,接着的下一下一个机器周期个机器周期采样到为采样到为低电平低电平,则使,则使IE1置置1。直到直到CPU响应该中断时响应该中断时,才由硬件使才由硬件使IE1清清0。 38各控制位的含义6、IT0:外部中断:外部中断0的中断触发方式控制位。的中断触发方式控制位。 其含义与其含义与IT
17、1类同。类同。 39返 回2、SCON中的中断标志位4SCON为串行口控制寄存器,其低为串行口控制寄存器,其低2位锁位锁存串行口的接收中断和发送中断标志存串行口的接收中断和发送中断标志RI和和TI。4SCON中中TI和和RI的格式如图的格式如图5-5所示。所示。4其控制位的含义其控制位的含义40返 回图5-5 SCON中的中断标志位41TIRI SCON(98H)9FH 9EH 9DH 9CH 9BH 9AH 99H 98H返 回SCON中控制位的含义1、TI:串行口发送中断请求标志。:串行口发送中断请求标志。 CPU将一个数据写入发送缓冲器将一个数据写入发送缓冲器SBUF时,就启动发送。时,
18、就启动发送。每发送完一帧串每发送完一帧串行数据后行数据后,硬件置位硬件置位TI。但。但CPU响应中响应中断时,并不清除断时,并不清除TI,必须在中断服务程必须在中断服务程序中由软件对序中由软件对TI清清0。42SCON中控制位的含义2、RI:串行口接收中断请求标志。:串行口接收中断请求标志。 在串行口允许接收时,在串行口允许接收时,每接收完每接收完一个串行帧一个串行帧,硬件置位硬件置位RI。同样,。同样,CPU响应中断时不会清除响应中断时不会清除RI,必必须在中断服务程序中由软件对须在中断服务程序中由软件对RI清清0。43返 回二、中断允许控制1、中断允许寄存器、中断允许寄存器IE的格式。的格
19、式。2、中断允许寄存器、中断允许寄存器IE中各位的含义。中各位的含义。3、例、例5-144返 回1、中断允许控制寄存器IE45EAESET1EX1ET0EX0 IE(A8H)AFH AEH ADH ACH ABH AAH A9H A8H返 回2、IE中各位的含义。EA中断允许总控制位。中断允许总控制位。 EA=0,屏蔽屏蔽所有的中断请求;所有的中断请求; EA=1,CPU开放开放中断。对各中断源的中中断。对各中断源的中断请求是否允许,还要取决于各断请求是否允许,还要取决于各中断源的中断允许控制位的状态。中断源的中断允许控制位的状态。这就是所谓的两级控制。这就是所谓的两级控制。462、IE中各位
20、的含义。ES串行口中断允许位。串行口中断允许位。 ES=0,禁止串行口禁止串行口中断;中断; ES=1,允许串行口允许串行口中断。中断。472、IE中各位的含义ET1定时器定时器/计数器计数器T1的溢出中断允许的溢出中断允许位。位。 ET1=0,禁止禁止T1中断;中断; ET1=1,允许允许T1中断。中断。482、IE中各位的含义。EX1外部中断外部中断1的溢出中断允许位。的溢出中断允许位。 EX1=0,禁止外部中断禁止外部中断1中断;中断; EX1=1,允许外部中断允许外部中断1中断。中断。492、IE中各位的含义。ET0定时器定时器/计数器计数器T0的溢出中断允许的溢出中断允许位。位。 E
21、T0=0,禁止禁止T0中断;中断; ET0=1,允许允许T0中断。中断。502、IE中各位的含义。EX0外部中断外部中断0的溢出中断允许位。的溢出中断允许位。 EX0=0,禁止外部中断禁止外部中断0中断;中断; EX0=1,允许外部中断允许外部中断0中断。中断。51返 回例5-1假设允许片内定时器假设允许片内定时器/计数器中断,计数器中断,禁止其他中断。试根据假设条件设置禁止其他中断。试根据假设条件设置IE的相应值。的相应值。解解:(:(IE)=10001010B=8AH(a)用字节操作指令)用字节操作指令MOV IE,#8AH;或;或 MOV A8H,#8AH;(b)用位操作指令)用位操作指
22、令SETB ET0;定时器;定时器/计数器计数器0允许中断允许中断SETB ET1;定时器;定时器/计数器计数器1允许中断允许中断SETB EA ;CPU开中断开中断52返 回三、中断优先级控制1、89C51的中断优先级的中断优先级2、中断优先级寄存器、中断优先级寄存器IP3、中断优先级排列顺序、中断优先级排列顺序4、中断优先级控制实现的功能、中断优先级控制实现的功能5、例、例5-253返 回1、89C51的中断优先级89C51有两个中断优先级。有两个中断优先级。每个中断请求源均可编程为高优先级中断或低优先级每个中断请求源均可编程为高优先级中断或低优先级中断。中断。中断系统中有两个不可寻址的中
23、断系统中有两个不可寻址的“优先级生效优先级生效”触发器,触发器,分别指出分别指出CPU正在执行的高、低优先级的中断服务程正在执行的高、低优先级的中断服务程序。当其为序。当其为1时则分别屏蔽所有的中断请求。时则分别屏蔽所有的中断请求。54返 回2、中断优先级寄存器IP中断优先级寄存器中断优先级寄存器IP的格式的格式中断优先级寄存器中断优先级寄存器IP各控制位的含义各控制位的含义55返 回中断优先级寄存器IP的格式56PSPT1PX1PT0PX0 IP(B8H) BCH BBH BAH B9H B8H返 回中断优先级寄存器IP各控制位的含义1PS串行口中断优先级控制位串行口中断优先级控制位1PT1
24、定时器定时器/计数器计数器T1中断优先级控制位中断优先级控制位1PX1外部中断外部中断1中断优先级控制位中断优先级控制位1PT0定时器定时器/计数器计数器T0中断优先级控制位中断优先级控制位1PX0外部中断外部中断0中断优先级控制位中断优先级控制位1若某控制位为若某控制位为1,则相应的中断源规定为高级中断;,则相应的中断源规定为高级中断;反之,为反之,为0,则相应的中断源规定为低级中断。,则相应的中断源规定为低级中断。57返 回3、中断优先级排列顺序4当同时接收到几个同一优先级的中断请当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬求时,响应哪个中断源则取决于内部硬件查询顺
25、序。件查询顺序。4其优先级顺序排列如其优先级顺序排列如 图图5-8所示。所示。58返 回图5-8 优先级排列顺序中断源中断源同级内的中断优先同级内的中断优先级级外部中断外部中断0中断中断 高级高级定时器定时器/计数器计数器T0溢出中断溢出中断外部中断外部中断1定时器定时器/计数器计数器T1溢出中断溢出中断串行口中断串行口中断 低级低级59返 回4、中断优先级控制实现的功能4(1)按内部查询顺序排队)按内部查询顺序排队4(2)实现中断嵌套)实现中断嵌套60返 回(1)按内部查询顺序排队4当数个中断源同时向当数个中断源同时向CPU发出中断请求发出中断请求时,时,CPU根据设计者事先确定的中断源根据
26、设计者事先确定的中断源顺序号的次序,一次响应其中断请求。顺序号的次序,一次响应其中断请求。61返 回(2)实现中断嵌套n当当CPU正在处理一个中断请求时,又出现了另一正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,这时,个优先级比它高的中断请求,这时,CPU就暂时就暂时中止执行对原来优先级较低的中断源的服务程序,中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去响应优先级更高的中断请求,保护当前断点,转去响应优先级更高的中断请求,并为它服务。待服务结束,再继续执行原来较低级并为它服务。待服务结束,再继续执行原来较低级的中断服务程序。该过程称为中断嵌套。该中断系的中断服
27、务程序。该过程称为中断嵌套。该中断系统称为多级中断系统。统称为多级中断系统。n二级中断嵌套的中断过程如二级中断嵌套的中断过程如 图图5-9 所示所示。62返 回图5-9 二级中断嵌套63返 回CPU在执行主程序在执行主程序低级中低级中断请求断请求响应低级中断请求响应低级中断请求CPU执行低级执行低级中断服务程序中断服务程序高级中高级中断请求断请求响应高级中断请求响应高级中断请求CPU执行高级执行高级中断服务程序中断服务程序返回低级中断程序返回低级中断程序返回主程序返回主程序例例5-25-2 设设8031的片外中断为高优先级,的片外中断为高优先级,片内中断为低优先级。设置片内中断为低优先级。设置
28、IP相应值。相应值。解:(解:(IP)=00000101B=05H(a)用字节操作指令用字节操作指令 MOV IP,#05H;或;或 MOV 0B8H,#05H;(b)用为操作指令用为操作指令 SETB PX0 SETB PX1 CLR PS CLR PT0 CLR PT164返 回5.4 中断响应及处理过程45.4.1 5.4.1 中断处理过程的三个阶段中断处理过程的三个阶段45.4.2 5.4.2 中断响应中断响应45.4.3 5.4.3 中断处理中断处理45.4.4 5.4.4 中断返回中断返回 65返 回5.4.1 中断处理过程的三个阶段4中断处理过程可分为:中断处理过程可分为:4中断
29、响应中断响应4中断处理中断处理 4中断返回中断返回 4中断处理的大致流程如中断处理的大致流程如 图图 5-10所示。所示。66返 回图5-10 中断处理的大致流程67返 回主程序主程序保护现场保护现场为外设服务为外设服务恢复现场恢复现场NKN+mK+1返回返回中中 断断 处处 理理5.4.2 中断响应4一、一、中断响应条件中断响应条件4二、中断响应操作过程二、中断响应操作过程4三、中断响应时间三、中断响应时间68返 回一、中断响应条件有中断源发出中断请求。有中断源发出中断请求。中断总允许位中断总允许位EA=1,即,即CPU中断。中断。申请中断的中断源的中断允许位为申请中断的中断源的中断允许位为
30、1,即中断,即中断没有被屏蔽。没有被屏蔽。无同级或更高级中断正在被服务。无同级或更高级中断正在被服务。当前的指令周期已经结束。当前的指令周期已经结束。若现行指令为若现行指令为RETI或是访问或是访问IE或或IP指令时,指令时,该指令以及紧接着的另一条指令已执行完。该指令以及紧接着的另一条指令已执行完。69返 回二、中断响应操作过程41、中断响应操作过程中断响应操作过程42 2、各中断源及其对应的矢量地址、各中断源及其对应的矢量地址70返 回1、中断响应操作过程 把当前把当前PC值压入堆栈,保护断点。值压入堆栈,保护断点。 将相应的中断服务程序的入口地址将相应的中断服务程序的入口地址送入送入PC
31、。 对有些中断源,对有些中断源,CPU会自动清除中会自动清除中断标志。断标志。 执行中断服务程序。执行中断服务程序。 执行到返回指令执行到返回指令RETI,中断服务程,中断服务程序结束,将堆栈内容弹出到序结束,将堆栈内容弹出到PC,返,返回到原来断点继续执行。回到原来断点继续执行。71返 回2、各中断源及其对应的矢量地址中断源中断矢量外部中断 0(INT0)0003H定时器 T0 中断000BH外部中断 1(INT1)0013H定时器 T1 中断001BH串行口中断0023H72返 回三、中断响应时间4CPUCPU不是在任何情况下都对中断请求予不是在任何情况下都对中断请求予以响应,而不同的情况
32、下对中断响应的以响应,而不同的情况下对中断响应的时间是不同的。时间是不同的。4对于顺利的中断响应,其最短的响应时对于顺利的中断响应,其最短的响应时间为间为3 3个机器周期。个机器周期。4对于受阻的中断响应,则响应时间会更对于受阻的中断响应,则响应时间会更长一些。长一些。4若中断系统只有一个中断源,则响应时若中断系统只有一个中断源,则响应时间为间为3 38 8个机器周期之间。个机器周期之间。73返 回5.4.3 中断处理4一、什么是中断处理一、什么是中断处理4二、中断处理包括的内容二、中断处理包括的内容4三、编写中断服务程序时的注意问题三、编写中断服务程序时的注意问题74返 回一、什么是中断处理
33、4CPU响应中断后即转入中断服务程序的响应中断后即转入中断服务程序的入口,执行中断服务程序。从入口,执行中断服务程序。从中断服务中断服务程序的第一条指令程序的第一条指令开始到开始到返回指令返回指令为止,为止,这个过程称为中断处理或中断服务这个过程称为中断处理或中断服务。75返 回二、中断处理包括的内容4不同的中断源服务的内容及要求各不相同,其处理过不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况,中断处理包括两部分内程也就有所区别。一般情况,中断处理包括两部分内容:容:41、保护现场:、保护现场:如在中断服务程序中要用到PSW、工作寄存器和SFR等寄存器时,则在进入中断服
34、务之前应将它们的内容保护起来,在中断结束、执行RETI指令前应恢复现场。42、为中断源服务:、为中断源服务:针对中断源的具体要求进行相应的处理。76返 回三、编写中断服务程序时的注意问题在中断矢量地址单元处放一条无条件转移指令,使中断服务程序可灵活地安排在64KB ROM的任何空间。在中断服务程序中,应注意用软件保护现场,以免中断返回后丢失原来寄存器、累加器中的信息。若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断。77返 回5.4.4 中断返回4在中断服务程序中,最后一条指令必须为中断返回在中断服务程序中,最后一条指令必须为中断
35、返回指令指令RETI。4CPU执行该指令时,一方面清除中断响应时所置位执行该指令时,一方面清除中断响应时所置位的的“优先级生效优先级生效”触发器,另一方面从当前栈顶弹触发器,另一方面从当前栈顶弹出断点地址送入程序计数器出断点地址送入程序计数器PC,从而返回住程序。,从而返回住程序。4注意在中断服务程序中,注意在中断服务程序中,PUSH和和POP指令必须成对指令必须成对使用,否则,不能正确返回断点。使用,否则,不能正确返回断点。78返 回5.5 外部中断扩展方法489C51单片机有两个外部中断亲求请求输入端(INT0和INT1)。实际应用中,若外部中断源有两个以上,则需要扩展外部中断源。5.5.
36、1 5.5.1 利用定时器扩展外部中断源利用定时器扩展外部中断源5.5.2 5.5.2 中断加查询扩展外部中断源中断加查询扩展外部中断源79返 回5.5.1 利用定时器扩展外部中断源利用定时器扩展外部中断源489C51单片机有两个定时器,多具有两个内部中断标志和外部计数输入引脚。4当定时器设置为计数方式时,计数初值设置为满量程FFH。一旦外部信号从计数器引脚输入一个负跳变信号,计数器加1产生溢出中断,从而转去处理该外部中断源的请求。4将外部中断源信号接至T0或T1引脚;该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序。80返 回5.5.2 中断加查询扩展外部中断源中断
37、加查询扩展外部中断源4每一根中断输入线可以通过每一根中断输入线可以通过“线或线或”的的关系连接多个外部中断源,同时利用输关系连接多个外部中断源,同时利用输入端口线作为各个中断源的识别线。入端口线作为各个中断源的识别线。4具体线路如具体线路如 图图5-11所示。所示。4有关中断服务程序的片段有关中断服务程序的片段81返 回82图图511 多个外部中断源连接法多个外部中断源连接法INT1INT0P1.3P1.2P1.1P1.089C51装置装置1装置装置2装置装置3装置装置4+5V返 回 DV1: 装置1的中断服务程序 AJMP EXIT DV2: 装置2的中断服务程序 AJMP EXIT DV3
38、: 装置3的中断服务程序 AJMP EXIT DV4: 装置4的中断服务程序 AJMP EXIT83 ORG 0003H LJMP INTRP;INT0中断服务程序入口 ORG 1000H INTRP:PUSHPSW ;INT0中断服务程序是一个中断查询程序服务程序 PUSHA JBP1.0, DV1 JBP1.1, DV1 JBP1.2, DV1 JBP1.3, DV1 EXIT: POP A POP PSW RETI返 回5.6 中断程序举例45.6.1 5.6.1 主程序主程序45.6.2 5.6.2 中断服务程序中断服务程序45.6.3 5.6.3 中断服务程序举例中断服务程序举例84
39、返 回5.6.1 主程序1、主程序、主程序的起始地址的起始地址2、主程序的初始化内容、主程序的初始化内容85返 回1、主程序的起始地址4MCS-51系列单片机系列单片机复位复位后,后,(PC)=0000H4而而0003H002BH分别为各分别为各中断源的入中断源的入口地址口地址。4编程时应在编程时应在0000H处写一条处写一条跳转指令跳转指令(一般为长跳转指令),(一般为长跳转指令),主程序是以跳主程序是以跳转的目标地址作为起始地址开始编写转的目标地址作为起始地址开始编写,一般从一般从003H开始,如开始,如 图图5-12所示。所示。86返 回870000HLJMP00300030H主程序主程
40、序图图5-12 主程序地址主程序地址返 回2、主程序的初始化内容4初始化:将用到的内部部件或扩展芯片进行初始工作状态设定。4单片机复位后,特殊功能寄存器IE、IP内容均为00H,所以应对所以应对IE、IP进行初始进行初始化编程,以开放中断,允许某些中断源化编程,以开放中断,允许某些中断源中断和设置中断优先级等中断和设置中断优先级等。88返 回5.6.2 中断服务程序4当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入堆栈进行保护,然后转入响应的中断服务程序入口处执行。1、中断服务程序的起始地址、中断服务程序的起始地址2、中断服务程序编制中的注意事项、中断服务程序编制中的注意事项
41、89返 回1、中断服务程序的起始地址4中断系统对五个中断源分别规定了各自的入口地址,中断系统对五个中断源分别规定了各自的入口地址,但这些入口地址相距很近(但这些入口地址相距很近(8个字节)。个字节)。4如中断服务程序的指令代码少于如中断服务程序的指令代码少于8个字节,则可从规定个字节,则可从规定的中断服务程序入口地址开始,直接编写中断服务程的中断服务程序入口地址开始,直接编写中断服务程序;序;4如中断服务程序的指令代码大于如中断服务程序的指令代码大于8个字节,则应采用与个字节,则应采用与主程序相同的方法,在相应的入口处写一条跳转指令,主程序相同的方法,在相应的入口处写一条跳转指令,并以跳转指令
42、的目标地址作为中断服务程序的起始地并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。址进行编程。901、中断服务程序的起始地址4以以INT0为例,中断矢量地址为为例,中断矢量地址为0003H,中断服务程序从中断服务程序从0200H开始。如开始。如 图图5-13所示。所示。91返 回920003HLJMP02000200H中断服中断服务程序务程序图图5-13 中断服务程序地址中断服务程序地址返 回2、中断服务程序编制中的注意事项 视需要确定是否保护现场。 及时清除那些不能被硬件自动清除的中断请求标志,以免产生错误的中断。 中断服务程序中的压栈与弹栈指令必须成对使用,以确保中断服务程序的正
43、确返回。 主程序和中断服务程序之间的参数传递与主程序和子程序的参数传递方式相同。93返 回5.6.3 中断服务程序举例4例例5-3外部中断实验外部中断实验4例例5-4 利用中断显示系统故障利用中断显示系统故障94返 回例5-3 外部中断实验 如如 图图5-14所示,将所示,将P1口的口的P1.4P1.7作为作为输入输入位,位, P1.0P1.3作为作为输出输出位。位。 要求要求: (1) 利用利用8031将开关所设的数据读入单片机将开关所设的数据读入单片机内,并依次通过内,并依次通过P1.0P1.3输出,驱动发光二极输出,驱动发光二极管,以检查管,以检查P1.4P1.7输入的电平情况(若输入输入的电平情况(若输入为高电平则相应的为高电平则相应的LED亮)。亮)。 (2) 采用中断边沿触发方式,每中断一次,采用中断边沿触发方式,每中断一次,完成一次读完成一次读/写操作。写操作。 95返 回96P1.7P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- XX建筑工程有限公司保安主管岗位职责
- 安全防灾管理指南讲解
- 加油站消防安全新规
- 安全规程制度手册讲解
- 门诊常规指导
- 材料测控设备就业方向
- 2026年中国稀土集团招聘笔试模拟题
- 2026年咖啡师中级笔试模拟题
- AI在殡葬服务与管理中的应用
- 2026年春学期高二物理教科版(2019)第11周周末小测卷
- 全科医学科慢性病管理指导
- 中粮集团秋招面试题及答案
- 【普通高中数学课程标准】日常修订版-(2017年版2025年修订)
- 土木工程施工课后习题答案
- ISO9001-2026质量管理体系中英文版标准条款全文
- 《土木工程智能施工》课件 第3 章 土方工程-土方开挖与填筑
- 2025向量化与文档解析技术加速大模型RAG应用
- T-JWEA 0001-2025 水利水电工程施工图审查技术导则
- 2025年职业资格碳排放管理员碳排放交易员-碳排放咨询员参考题库含答案解析
- 智慧健康养老服务与管理专业教学标准(高等职业教育专科)2025修订
- Unit 8 Once upon a Time Section B 1a-1d(The Ugly Duckling) 课件 2024-2025学年英语人教版7年级下册
评论
0/150
提交评论