C单片机中断系统实用教案

上传人:汽*** 文档编号:569238452 上传时间:2024-07-28 格式:PPT 页数:67 大小:1.53MB
返回 下载 相关 举报
C单片机中断系统实用教案_第1页
第1页 / 共67页
C单片机中断系统实用教案_第2页
第2页 / 共67页
C单片机中断系统实用教案_第3页
第3页 / 共67页
C单片机中断系统实用教案_第4页
第4页 / 共67页
C单片机中断系统实用教案_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《C单片机中断系统实用教案》由会员分享,可在线阅读,更多相关《C单片机中断系统实用教案(67页珍藏版)》请在金锄头文库上搜索。

1、5.1 5.1 微机的输入微机的输入(shr)/(shr)/输出方式输出方式5.1.1 5.1.1 无条件传送方式无条件传送方式5.1.2 5.1.2 查询查询(chxn)(chxn)传送方式传送方式5.1.3 5.1.3 直接存储器存取(直接存储器存取(DMADMA)方式)方式第1页/共66页第一页,共67页。 无条件传送(chun sn)方式4CPUCPU总是认为外设在任何时刻都处于总是认为外设在任何时刻都处于“准备好准备好”的状态。的状态。4这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以

2、实现。送便可以实现。4这种方法这种方法(fngf)(fngf)很少使用。很少使用。4 4 第2页/共66页第二页,共67页。5.1.2 5.1.2 查询传送方式查询传送方式(fngsh)(fngsh)(条件传送)(条件传送)一、什么是查询传送一、什么是查询传送(chun sn)方式方式在输入时,需要查询外设的输入数据是否准备好;在输入时,需要查询外设的输入数据是否准备好;在输出时,需要查询外设是否把上一次在输出时,需要查询外设是否把上一次CPUCPU输出的数据处理完毕。输出的数据处理完毕。查询传送方式:通过查询外设的状态查询传送方式:通过查询外设的状态(zhungti)(zhungti)信息,

3、确信外设已处于信息,确信外设已处于“准备准备好好”,计算机才发出访问外设的指令,实现数据的传送。,计算机才发出访问外设的指令,实现数据的传送。状态状态(zhungti)(zhungti)信息:一般为信息:一般为1 1位二进制码。位二进制码。第3页/共66页第三页,共67页。二、查询方式二、查询方式(fngsh)程序流程图程序流程图输入输入(shr)状态信息状态信息准备准备(zhnbi)好?好?传送数据传送数据启动外设设备启动外设设备传送数据传送数据延时延时YESNO(a)(b)第4页/共66页第四页,共67页。四、查询四、查询(chxn)方式的特点方式的特点优点:通用性好,可以用于各类外设和优

4、点:通用性好,可以用于各类外设和CPUCPU间的数据传送。间的数据传送。缺点:缺点:CPUCPU在完成一次数据传送后要等待很长时间才能在完成一次数据传送后要等待很长时间才能(cinng)(cinng)进行下一次的传送。在等待过程中,进行下一次的传送。在等待过程中,CPUCPU不能不能进行其他操作,所以效率比较低。进行其他操作,所以效率比较低。三、查询三、查询(chxn)方式的过方式的过程程查询方式的过程:查询方式的过程:查询查询等待等待数据传送数据传送,待到下一次数据传送时则重,待到下一次数据传送时则重复上述过程。(外设的工作速度比复上述过程。(外设的工作速度比CPU慢得多)慢得多)第5页/共

5、66页第五页,共67页。DMADMA:Direct Memory AccessDirect Memory AccessCPUCPU让出数据让出数据(shj)(shj)总线(悬浮状态),使外设和存储器之间直接传送(不通过总线(悬浮状态),使外设和存储器之间直接传送(不通过CPUCPU)数据)数据(shj)(shj)的方式。的方式。适用于外设和存储器之间有大量的数据适用于外设和存储器之间有大量的数据(shj)(shj)需要传送及外设工作速度很快的情需要传送及外设工作速度很快的情况。况。5.1.3 5.1.3 直接直接(zhji)(zhji)存储器存取(存储器存取(DMADMA)方式)方式第6页/共

6、66页第六页,共67页。 中断(zhngdun)的概念一、中断一、中断二、中断系统二、中断系统三、中断源三、中断源四、中断请求四、中断请求五、中断响应过程五、中断响应过程六、中断服务六、中断服务(fw)七、中断返回七、中断返回八、中断方式的特点八、中断方式的特点第7页/共66页第七页,共67页。一、中断一、中断(zhngdun)当当CPUCPU正在处理某事件正在处理某事件(shjin)(shjin)的时候,外部发的时候,外部发生的某一事件生的某一事件(shjin)(shjin)请请求求CPUCPU迅速去处理,于是迅速去处理,于是CPUCPU暂时中止当前的工作,暂时中止当前的工作,转去处理所发生

7、的事件转去处理所发生的事件(shjin)(shjin)。中断服务处理。中断服务处理完该事件完该事件(shjin)(shjin)后,再后,再返回到原来被中止的地方返回到原来被中止的地方继续原来的工作,这样的继续原来的工作,这样的过程称为中断。过程称为中断。中断流程如右图所示。中断流程如右图所示。主主程程序序响应中断请求响应中断请求中中断断服服务务程程序序返回主程序返回主程序继继续续执执行行主主程程序序断点断点第8页/共66页第八页,共67页。二、中断二、中断(zhngdun)系统系统实现中断实现中断(zhngdun)功能的部件称为中断功能的部件称为中断(zhngdun)系统,又称中断系统,又称中

8、断(zhngdun)机构。机构。三、中断三、中断(zhngdun)源源产生中断的请求源称为中断源。产生中断的请求源称为中断源。四、中断请求四、中断请求中断源向中断源向CPUCPU提出的处理请求,称为中断请求或中断申请。提出的处理请求,称为中断请求或中断申请。五、中断响应过程五、中断响应过程CPUCPU暂时中止自身的事务,转去处理事件的过程,称为暂时中止自身的事务,转去处理事件的过程,称为CPUCPU的中的中断响应过程。断响应过程。第9页/共66页第九页,共67页。六、中断六、中断(zhngdun)服务服务对事件的整个处理过程,称为中断服务对事件的整个处理过程,称为中断服务(fw)(或中断处(或

9、中断处理)。理)。七、中断七、中断(zhngdun)返回返回中断处理完毕,再回到原来被中止的地方,称为中断返回。中断处理完毕,再回到原来被中止的地方,称为中断返回。八、中断方式的特点八、中断方式的特点1 1、中断方式消除了、中断方式消除了CPUCPU在查询方式中的等待现象,大大在查询方式中的等待现象,大大提高了提高了CPUCPU的工作效率的工作效率。2 2、将从现场采集的数据通过中断方式及时传送给、将从现场采集的数据通过中断方式及时传送给CPUCPU,经过,经过处理后可立即作出反应,实现现场控制。采用查询方式很难做处理后可立即作出反应,实现现场控制。采用查询方式很难做到及时采集,实时控制。到及

10、时采集,实时控制。第10页/共66页第十页,共67页。5.3 89C515.3 89C51中断中断(zhngdun)(zhngdun)系统结构及中断系统结构及中断(zhngdun)(zhngdun)控制控制5.3.1 89C515.3.1 89C51中断中断(zhngdun)(zhngdun)系统结构系统结构5.3.2 89C515.3.2 89C51中断中断(zhngdun)(zhngdun)源源5.3.3 5.3.3 中断中断(zhngdun)(zhngdun)控制控制第11页/共66页第十一页,共67页。5.3.1 89C515.3.1 89C51中断中断(zhngdun)(zhngdu

11、n)系统结构系统结构一、中断一、中断(zhngdun)系统结构系统结构中断系统中断系统(xtng)(xtng)的结构如图的结构如图5-35-3所示。(所示。(P115P115)二、中断技术实现的功能二、中断技术实现的功能1 1、分时操作、分时操作2 2、实时处理、实时处理3 3、故障处理、故障处理第12页/共66页第十二页,共67页。1 1、分时操作、分时操作(cozu)(cozu)计算机的中断系统可以使计算机的中断系统可以使CPUCPU与外设同时工作。与外设同时工作。CPUCPU在启动外设后,便继续在启动外设后,便继续(jx)(jx)执行主程序;而外设被执行主程序;而外设被启动后,开始进行准

12、备工作。当外设准备就绪时,就向启动后,开始进行准备工作。当外设准备就绪时,就向CPUCPU发出中断请求,发出中断请求,CPUCPU响应该中断请求并为其服务完毕响应该中断请求并为其服务完毕后,返回原来的断点处继续后,返回原来的断点处继续(jx)(jx)运行主程序。外设在运行主程序。外设在得到服务后,也继续得到服务后,也继续(jx)(jx)进行自己的工作。进行自己的工作。因此,因此,CPUCPU可以使多个外设同时工作,并分时为各外设提可以使多个外设同时工作,并分时为各外设提供服务,从而提高了供服务,从而提高了CPUCPU的利用率和输入的利用率和输入/ /输出的速度。输出的速度。第13页/共66页第

13、十三页,共67页。2 2、实时处理、实时处理当计算机用于实时控制时,需要当计算机用于实时控制时,需要CPUCPU提供服务的请求是随机发生提供服务的请求是随机发生的。有了中断系统,的。有了中断系统,CPUCPU就可以立即响应就可以立即响应(xingyng)(xingyng)并加以处并加以处理。理。3 3、故障、故障(gzhng)(gzhng)处理处理计算机在运行时往往会出现一些故障,如断电、存储器奇偶校计算机在运行时往往会出现一些故障,如断电、存储器奇偶校验出错、运算溢出等。验出错、运算溢出等。有了中断有了中断(zhngdun)(zhngdun)系统,当出现上述情况时,系统,当出现上述情况时,C

14、PUCPU可及时转可及时转去执行故障处理程序,自行处理故障而不必停机。去执行故障处理程序,自行处理故障而不必停机。第14页/共66页第十四页,共67页。5.3.2 89C515.3.2 89C51中断中断(zhngdun)(zhngdun)源源一、一、89C5189C51中断中断(zhngdun)(zhngdun)系统的五个中断系统的五个中断(zhngdun)(zhngdun)源源T0T0定时器定时器/ /计数器计数器0 0溢出中断请求。溢出中断请求。T1T1定时器定时器/ /计数器计数器1 1溢出中断请求。溢出中断请求。RXD/TXDRXD/TXD串行口中断请求。当串行口完成一帧数据串行口中

15、断请求。当串行口完成一帧数据(shj)(shj)的的接收接收 或发送时,便请求中断。或发送时,便请求中断。INT0INT0外部中断外部中断0 0请求,低电平有效。通过请求,低电平有效。通过P3.2P3.2引脚输入。引脚输入。INT1INT1外部中断外部中断1 1请求,低电平有效。通过请求,低电平有效。通过P3.3P3.3引脚输入。引脚输入。第15页/共66页第十五页,共67页。二、通常情况二、通常情况(qngkung)的中断源(的中断源(P116)1 1、I/OI/O外设(键盘、打印机、外设(键盘、打印机、A/DA/D转换器等)转换器等)2 2、硬件故障(如电源断电)、硬件故障(如电源断电)3

16、 3、实时时钟、实时时钟(shzhng)(shzhng)(用在定时检测和控制的场合)(用在定时检测和控制的场合)4 4、为调试程序而设定的中断源(设置断点、单步运行)、为调试程序而设定的中断源(设置断点、单步运行)第16页/共66页第十六页,共67页。5.3.3 5.3.3 中断中断(zhngdun)(zhngdun)控制控制一、中断一、中断(zhngdun)请求标志(请求标志(TCON、SCON)二、中断二、中断(zhngdun)允许控制(允许控制(IE)三、中断三、中断(zhngdun)优先级控制(优先级控制(IP)第17页/共66页第十七页,共67页。一、中断请求标志一、中断请求标志(b

17、iozh)1 1、定时器控制、定时器控制(kngzh)(kngzh)寄存器寄存器TCONTCON中的中断标志位中的中断标志位TCONTCON为定时器为定时器/ /计数器计数器T0T0和和T1T1的控制器,同时也锁存的控制器,同时也锁存T0T0和和T1T1的溢出中断标志的溢出中断标志(biozh)(biozh)及外部中断及外部中断0 0和外部中断和外部中断1 1的中断的中断标志标志(biozh)(biozh)等。等。与中断有关的位如图与中断有关的位如图5-45-4所示。所示。TF1TF0IE1IT1IE0IT0 TCON(88H)8FH 8EH 8DH 8CH 8BH 8AH 89H 88H8F

18、H 8EH 8DH 8CH 8BH 8AH 89H 88H 图图5-4 TCON5-4 TCON中的中断标志位中的中断标志位第18页/共66页第十八页,共67页。各控制各控制(kngzh)位的含义位的含义TF1TF1:定时器:定时器/ /计数器计数器T1T1溢出中断请求标志位。溢出中断请求标志位。 当启动当启动T1T1计数后,计数后,T1T1从初值开始从初值开始(kish)(kish)加加1 1计数,计计数,计数器最高位数器最高位 产生溢出时,由硬件使产生溢出时,由硬件使TF1TF1置置1 1,并向,并向CPUCPU发出中断请求。发出中断请求。 当当CPUCPU响应中断时,硬件将自动对响应中断

19、时,硬件将自动对TF1TF1清清0 0。TF0TF0:定时器:定时器/ /计数器计数器T0T0溢出中断请求标志位。溢出中断请求标志位。 含义与含义与TF1TF1类同。类同。IE1IE1:外部中断:外部中断1 1的中断请求标志。的中断请求标志。 INT1 INT1()。()。 当检测到外部中断引脚当检测到外部中断引脚1 1上存在有效的中断请求信号上存在有效的中断请求信号 时,由硬件使时,由硬件使IE1IE1置置1 1。当。当CPUCPU响应中断请求时,由硬件响应中断请求时,由硬件使使 IE1 IE1清清0 0。 IE0IE0:外部中断:外部中断0 0的中断请求标志。的中断请求标志。INT0INT

20、0()。()。 其含义与其含义与IE1IE1类同。类同。第19页/共66页第十九页,共67页。IT1IT1:外部中断:外部中断1 1的中断触发方式控制位。的中断触发方式控制位。IT1=0IT1=0时,外部中断时,外部中断1 1程控为电平触发方式。程控为电平触发方式。 CPU CPU在每一个机器周期在每一个机器周期S5P2S5P2期间采样外部中断请求引脚的期间采样外部中断请求引脚的输入电平。若外部中断输入电平。若外部中断1 1请求为低电平,则使请求为低电平,则使IE1IE1置置1 1;若为;若为高电平,则使高电平,则使IE1IE1清清0 0。IT1=1IT1=1时,外部中断时,外部中断1 1程控

21、为边沿触发方式。程控为边沿触发方式。 CPU CPU在每一个机器周期在每一个机器周期S5P2S5P2期间采样外部中断请求引脚输期间采样外部中断请求引脚输入电平。如果在相继的两个机器周期采样过程中,一个机入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断器周期采样到外部中断1 1请求引脚为高电平,接着的下一个请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使机器周期采样到为低电平,则使IE1IE1置置1 1。直到。直到CPUCPU响应该响应该中断时,才由硬件中断时,才由硬件(yn jin)(yn jin)使使IE1IE1清清0 0。IT0IT0:外部中断:外部中断0

22、0的中断触发方式控制位。的中断触发方式控制位。 其含义与其含义与IT1IT1类同。类同。 第20页/共66页第二十页,共67页。2 2、串行口控制、串行口控制(kngzh)(kngzh)寄存器寄存器SCONSCON中的中断标志中的中断标志位位SCONSCON为串行口控制寄存器,其低为串行口控制寄存器,其低2 2位锁存串行口的接收中断和发送位锁存串行口的接收中断和发送(f sn)(f sn)中中断标志断标志RIRI和和TITI。SCONSCON中中TITI和和RIRI的格式如图的格式如图5-55-5所示。所示。 SCON(98H)TIRI9FH 9EH 9DH 9CH 9BH 9AH 99H 9

23、8H9FH 9EH 9DH 9CH 9BH 9AH 99H 98H图图5-5 SCON5-5 SCON中的中断中的中断(zhngdun)(zhngdun)标志标志位位第21页/共66页第二十一页,共67页。SCONSCON中控制中控制(kngzh)(kngzh)位的含义位的含义TITI:串行口发送中断请求标志。:串行口发送中断请求标志。 CPU CPU将一个数据写入发送缓冲器将一个数据写入发送缓冲器SBUFSBUF时,就启动发送。每发送完一帧串行数据时,就启动发送。每发送完一帧串行数据后,硬件置位后,硬件置位TITI。但。但CPUCPU响应中断时,并不清除响应中断时,并不清除TITI,必须,必

24、须(bx)(bx)在中断服务程序在中断服务程序中由软件对中由软件对TITI清清0 0。RIRI:串行口接收中断请求标志。:串行口接收中断请求标志。 在串行口允许接收时,每接收完一个串行帧,在串行口允许接收时,每接收完一个串行帧, 硬件置位硬件置位RIRI。同样,。同样,CPUCPU响应中响应中断时不会清除断时不会清除RIRI,必须,必须(bx)(bx)在中断服务程序中由软件对在中断服务程序中由软件对RIRI清清0 0。第22页/共66页第二十二页,共67页。二、中断允许二、中断允许(ynx)控制控制1 1、中断允许、中断允许(ynx)(ynx)寄存器寄存器IEIE的格式。的格式。EAESET1

25、EX1ET0EX0 IE(A8H)AFH AEH ADH ACH ABH AAH A9H A8HAFH AEH ADH ACH ABH AAH A9H A8H2 2、中断、中断(zhngdun)(zhngdun)允许寄存器允许寄存器IEIE中各位的含义。中各位的含义。EAEA中断允许总控制位。中断允许总控制位。 EA=0EA=0,屏蔽所有的中断请求;,屏蔽所有的中断请求; EA=1EA=1,CPUCPU开放中断。对各中断源的中断请求开放中断。对各中断源的中断请求是否允许是否允许,还要,还要取决于各中断源的中断允许控制位的状态。这就取决于各中断源的中断允许控制位的状态。这就是所谓的是所谓的两级控

26、制两级控制。第23页/共66页第二十三页,共67页。ESES串行口中断串行口中断(zhngdun)(zhngdun)允许位。允许位。 ES=0 ES=0,禁止串行口中断,禁止串行口中断(zhngdun)(zhngdun); ES=1 ES=1,允许串行口中断,允许串行口中断(zhngdun)(zhngdun)。ET1ET1定时器定时器/ /计数器计数器T1T1的溢出中断的溢出中断(zhngdun)(zhngdun)允许位。允许位。 ET1=0 ET1=0,禁止,禁止T1T1中断中断(zhngdun)(zhngdun); ET1=1 ET1=1,允许,允许T1T1中断中断(zhngdun)(zh

27、ngdun)。EX1EX1外部中断外部中断1 1的溢出的溢出(y ch)(y ch)中断允许位。中断允许位。 EX1=0 EX1=0,禁止外部中断,禁止外部中断1 1中断;中断; EX1=1 EX1=1,允许外部中断,允许外部中断1 1中断。中断。第24页/共66页第二十四页,共67页。ET0ET0定时器定时器/ /计数器计数器T0T0的溢出的溢出(y ch)(y ch)中断允许位。中断允许位。 ET0=0 ET0=0,禁止,禁止T0T0中断;中断; ET0=1 ET0=1,允许,允许T0T0中断。中断。EX0EX0外部中断外部中断0 0的溢出的溢出(y ch)(y ch)中断允许位。中断允许

28、位。 EX0=0 EX0=0,禁止外部中断,禁止外部中断0 0中断;中断; EX0=1 EX0=1,允许外部中断,允许外部中断0 0中断。中断。第25页/共66页第二十五页,共67页。例例5-15-1假设允许假设允许(ynx)(ynx)片内定时器片内定时器/ /计数器中断,禁止其计数器中断,禁止其他中断。试根据假设条件设置他中断。试根据假设条件设置IEIE的相应值。的相应值。解:(解:(IEIE)=10001010B=8AH=10001010B=8AH(a a)用字节操作指令)用字节操作指令MOV IEMOV IE,#8AH#8AH;或;或 MOV A8H MOV A8H,#8AH#8AH;(

29、b b)用位操作指令)用位操作指令SETB ET0SETB ET0;定时器;定时器/ /计数器计数器0 0允许允许(ynx)(ynx)中断中断SETB ET1SETB ET1;定时器;定时器/ /计数器计数器1 1允许允许(ynx)(ynx)中断中断SETB EA SETB EA ;CPUCPU开中断开中断第26页/共66页第二十六页,共67页。三、中断三、中断(zhngdun)优先级控制优先级控制1 1、89C5189C51的中断的中断(zhngdun)(zhngdun)优先级优先级2 2、中断、中断(zhngdun)(zhngdun)优先级寄存器优先级寄存器IPIP3 3、中断、中断(zh

30、ngdun)(zhngdun)优先级排列顺序优先级排列顺序4 4、中断、中断(zhngdun)(zhngdun)优先级控制实现的功能优先级控制实现的功能5 5、例、例5-25-2第27页/共66页第二十七页,共67页。1 1、89C5189C51的中断的中断(zhngdun)(zhngdun)优先级优先级89C5189C51有两个中断优先级。有两个中断优先级。每个中断请求源均可编程为高优先级中断或低优先级中断。每个中断请求源均可编程为高优先级中断或低优先级中断。中断系统中有两个不可寻址的中断系统中有两个不可寻址的“优先级生效优先级生效(shng xio)”(shng xio)”触发器,分别指触

31、发器,分别指出出CPUCPU正在执行的高、低优先级的中断服务程序。当其为正在执行的高、低优先级的中断服务程序。当其为1 1时则分别屏蔽所有时则分别屏蔽所有的中断请求。的中断请求。第28页/共66页第二十八页,共67页。2 2、中断、中断(zhngdun)(zhngdun)优先级寄存器优先级寄存器IP IP (interruption priority )(interruption priority )中断中断(zhngdun)(zhngdun)优先级寄存器优先级寄存器IPIP的格式的格式 IP(B8H)PSPT1PX1PT0PX0 BCH BBH BAH B9H B8HPS PS 串行口中断优

32、先级控制位串行口中断优先级控制位PT1PT1定时器定时器/ /计数器计数器T1T1中断优先级控制位中断优先级控制位PX1PX1外部中断外部中断1 1中断优先级控制位中断优先级控制位PT0PT0定时器定时器/ /计数器计数器T0T0中断优先级控制位中断优先级控制位PX0PX0外部中断外部中断0 0中断优先级控制位中断优先级控制位若某控制位为若某控制位为1 1,则相应的中断源规定为高级,则相应的中断源规定为高级(goj)(goj)中断;中断;反之,反之,为为0 0,则相应的中断源规定为低级中断。,则相应的中断源规定为低级中断。第29页/共66页第二十九页,共67页。3 3、中断、中断(zhngdu

33、n)(zhngdun)优先级排列顺序优先级排列顺序当同时接收到几个同一优先级的中断请求时,响应哪当同时接收到几个同一优先级的中断请求时,响应哪个个(n ge)(n ge)中断源则取决于内部硬件查询顺序。中断源则取决于内部硬件查询顺序。中断源中断源同级内的中断优先级同级内的中断优先级外部中断外部中断0中断中断 高级高级定时器定时器/计数器计数器T0溢出中断溢出中断外部中断外部中断1中断中断定时器定时器/计数器计数器T1溢出中断溢出中断串行口中断串行口中断 低级低级第30页/共66页第三十页,共67页。4 4、中断、中断(zhngdun)(zhngdun)优先级控制实现的功能优先级控制实现的功能(

34、1 1)按内部查询顺序)按内部查询顺序(shnx)(shnx)排队排队当数个中断源同时向当数个中断源同时向CPUCPU发出中断请求时,发出中断请求时,CPUCPU根据设计者事根据设计者事先确定先确定(qudng)(qudng)的中断源顺序号的次序,依次响应各中断请的中断源顺序号的次序,依次响应各中断请求。求。(2 2)实现中断嵌套)实现中断嵌套l当当CPUCPU正在处理一个中断请求时,又出现了另一个优先级正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,这时,比它高的中断请求,这时,CPUCPU就暂时中止执行对原来优先级就暂时中止执行对原来优先级较低的中断源的服务程序,较低的中断源

35、的服务程序,保护当前断点保护当前断点,转去响应优先级,转去响应优先级更高的中断请求,并为它服务。待服务结束,再继续执更高的中断请求,并为它服务。待服务结束,再继续执行原来较低级的中断服务程序。该过程称为中断嵌套。行原来较低级的中断服务程序。该过程称为中断嵌套。该中断系统称为多级中断系统。该中断系统称为多级中断系统。l二级中断嵌套的中断过程如图二级中断嵌套的中断过程如图5-9 5-9 所示。所示。第31页/共66页第三十一页,共67页。图图5-9 5-9 二级中断二级中断(zhngdun)(zhngdun)嵌套嵌套CPU在执行(zhxng)主程序低级低级(dj)中断中断请求请求响应低级中断请求响

36、应低级中断请求CPU执行低级执行低级中断服务程序中断服务程序高级高级中断中断请求请求响应高级中断请求响应高级中断请求CPU执行高级执行高级中断服务程序中断服务程序返回低级中断程序返回低级中断程序返回主程序返回主程序第32页/共66页第三十二页,共67页。5 5、例、例5-25-2设设89C5189C51的片外中断的片外中断(zhngdun)(zhngdun)为高优先级,片内为高优先级,片内中断中断(zhngdun)(zhngdun)为低优先级。设置为低优先级。设置IPIP相应值。相应值。解:(解:(IPIP)=00000101B=05H=00000101B=05H(a)(a)用字节传送指令用字

37、节传送指令 MOV IP MOV IP,#05H#05H;或;或 MOV 0B8H MOV 0B8H,#05H#05H;(b)(b)用位操作指令用位操作指令 SETB PX0 SETB PX0 SETB PX1 SETB PX1 CLR PS CLR PS CLR PT0 CLR PT0 CLR PT1 CLR PT1第33页/共66页第三十三页,共67页。5.4 5.4 中断中断(zhngdun)(zhngdun)响应及处理过程响应及处理过程5.4.1 5.4.1 中断处理过程的三个阶段中断处理过程的三个阶段(jidun)(jidun)5.4.2 5.4.2 中断响应中断响应5.4.3 5.

38、4.3 中断处理中断处理5.4.4 5.4.4 中断返回中断返回 第34页/共66页第三十四页,共67页。5.4.1 5.4.1 中断中断(zhngdun)(zhngdun)处理过程的三个处理过程的三个阶段阶段中断中断(zhngdun)(zhngdun)处理过程可分为:处理过程可分为:中断中断(zhngdun)(zhngdun)响应响应中断中断(zhngdun)(zhngdun)处理处理 中断中断(zhngdun)(zhngdun)返回返回 保护保护(boh)现场现场为外设服务为外设服务恢复现场恢复现场主程序主程序NKN+mK+1返回返回中中断断处处理理中断响应中断响应第35页/共66页第三十

39、五页,共67页。5.4.2 5.4.2 中断中断(zhngdun)(zhngdun)响应响应一、中断响应一、中断响应(xingyng)条件条件有中断源发出中断请求。有中断源发出中断请求。中断总允许位中断总允许位EA=1EA=1,即,即CPUCPU开中断。开中断。申请中断的中断源的中断允许位为申请中断的中断源的中断允许位为1 1,即中断,即中断 没有被屏蔽。没有被屏蔽。无同级或更高级中断正在被服务。无同级或更高级中断正在被服务。当前的指令周期已经结束。当前的指令周期已经结束。若现行指令为若现行指令为RETIRETI或是访问或是访问IEIE或或IPIP指令时,指令时,该指令以及该指令以及(yj)(

40、yj)紧接着的下一条指令已执行完。紧接着的下一条指令已执行完。第36页/共66页第三十六页,共67页。二、中断二、中断(zhngdun)响应操作过程响应操作过程1 1、中断、中断(zhngdun)(zhngdun)响应操作过程响应操作过程 把当前把当前PCPC值压入堆栈,保护断点。值压入堆栈,保护断点。 将相应的中断服务程序的入口地址送入将相应的中断服务程序的入口地址送入PCPC。 对有些中断源,对有些中断源,CPUCPU会自动清除中断标志会自动清除中断标志(biozh)(biozh)。 执行中断服务程序。执行中断服务程序。 执行返回指令执行返回指令RETIRETI,中断服务程序结束,将堆栈内

41、容弹出到,中断服务程序结束,将堆栈内容弹出到PCPC,返回到原来,返回到原来断点继续执行。断点继续执行。第37页/共66页第三十七页,共67页。2 2、各中断源及其对应、各中断源及其对应(duyng)(duyng)的矢量地的矢量地址址ORG 0003HLJMP INTOPRAM第38页/共66页第三十八页,共67页。三、中断响应三、中断响应(xingyng)时间时间CPUCPU不是在任何情况下都对中断请求予以响应,而不不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。同的情况下对中断响应的时间是不同的。对于顺利的中断响应,其最短的响应时间为对于顺利的中断响应,其最短

42、的响应时间为3 3个机器个机器周期。周期。对于受阻的中断响应,则响应时间会更长一些。对于受阻的中断响应,则响应时间会更长一些。若中断系统若中断系统(xtng)(xtng)只有一个中断源,则响应时间为只有一个中断源,则响应时间为3 38 8个机器周期之间。个机器周期之间。第39页/共66页第三十九页,共67页。5.4.3 5.4.3 中断中断(zhngdun)(zhngdun)处理处理一、什么一、什么(shn me)是中断处理是中断处理CPUCPU响应中断后即转入中断服务程序的入口,执行中断响应中断后即转入中断服务程序的入口,执行中断服务程序。从中断服务程序的第一条指令开始到返回指服务程序。从中

43、断服务程序的第一条指令开始到返回指令为止,这个令为止,这个(zh ge)(zh ge)过程称为中断处理或中断服务。过程称为中断处理或中断服务。二、中断处理包括的内容二、中断处理包括的内容不同的中断源服务的内容及要求各不相同,其处理过程也就有所不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况,中断处理包括两部分内容:区别。一般情况,中断处理包括两部分内容:1 1、保护现场、保护现场:如在:如在中断服务程序中要用到中断服务程序中要用到PSWPSW、工作寄存器、工作寄存器和和SFRSFR等寄存器时等寄存器时,则在进入中断服务之前应将它们的内容保护,则在进入中断服务之前应将它们的

44、内容保护起来,在起来,在中断结束、执行中断结束、执行RETIRETI指令前指令前应恢复现场。应恢复现场。2 2、为中断源服务、为中断源服务:针对中断源的具体要求进行相应的处理。:针对中断源的具体要求进行相应的处理。第40页/共66页第四十页,共67页。三、编写中断服务程序时的注意三、编写中断服务程序时的注意(zhy)问题问题在中断矢量地址单元处放一条无条件转移指令,使在中断矢量地址单元处放一条无条件转移指令,使中断服务程序中断服务程序(chngx)(chngx)可灵活地安排在可灵活地安排在64KB ROM64KB ROM的任何空间。的任何空间。在中断服务程序在中断服务程序(chngx)(chn

45、gx)中,应注意用软件保护中,应注意用软件保护现场,以免中断返回后丢失原来寄存器、累加器中现场,以免中断返回后丢失原来寄存器、累加器中的信息。的信息。若要在执行当前中断程序若要在执行当前中断程序(chngx)(chngx)时禁止更高优时禁止更高优先级中断,可以先用软件关闭先级中断,可以先用软件关闭CPUCPU中断或禁止某中断中断或禁止某中断源中断,在中断返回前再开放中断。源中断,在中断返回前再开放中断。第41页/共66页第四十一页,共67页。5.4.4 5.4.4 中断中断(zhngdun)(zhngdun)返回返回在中断服务程序中,最后一条指令必须为中断返在中断服务程序中,最后一条指令必须为

46、中断返回指令回指令RETIRETI。CPUCPU执行该指令时,一方面清除中断响应时所置位执行该指令时,一方面清除中断响应时所置位的的“优先级生效优先级生效”触发器,另一方面从当前栈顶触发器,另一方面从当前栈顶弹出断点地址送入程序计数器弹出断点地址送入程序计数器PCPC,从而返回住程,从而返回住程序。序。注意注意(zh y)(zh y)在中断服务程序中,在中断服务程序中,PUSHPUSH和和POPPOP指指令必须成对使用,否则,不能正确返回断点。令必须成对使用,否则,不能正确返回断点。第42页/共66页第四十二页,共67页。5.5 5.5 外部外部(wib)(wib)中断扩展方法中断扩展方法89

47、C5189C51单片机有两个外部中断请求输入端(单片机有两个外部中断请求输入端(INT0INT0和和INT1INT1)。实际应用)。实际应用(yngyng)(yngyng)中,若外部中断源有中,若外部中断源有两个以上,则需要扩展外部中断源:两个以上,则需要扩展外部中断源: 利用定时器扩展外部中断源利用定时器扩展外部中断源 中断加查询扩展外部中断源中断加查询扩展外部中断源第43页/共66页第四十三页,共67页。5.5.1 5.5.1 利用定时器扩展利用定时器扩展(kuzhn)(kuzhn)外部中外部中断源断源89C5189C51单片机有两个定时器,都具有两个内部中断标志单片机有两个定时器,都具有

48、两个内部中断标志(biozh)(biozh)和外部计数输入引脚。和外部计数输入引脚。当定时器设置为计数方式时,计数初值设置为满量程当定时器设置为计数方式时,计数初值设置为满量程FFHFFH。一旦外部信号从计数器引脚输入一个负跳变信号,计数器一旦外部信号从计数器引脚输入一个负跳变信号,计数器加加1 1产生溢出中断,从而转去处理该外部中断源的请求。产生溢出中断,从而转去处理该外部中断源的请求。将外部中断源信号接至将外部中断源信号接至T0T0或或T1T1引脚;该定时器的溢出中断引脚;该定时器的溢出中断标志标志(biozh)(biozh)及中断服务程序作为扩充外部中断源的标及中断服务程序作为扩充外部中

49、断源的标志志(biozh)(biozh)和中断服务程序。和中断服务程序。第44页/共66页第四十四页,共67页。 DV1: 装置装置(zhungzh)1的中断服务程序的中断服务程序 AJMP EXIT DV2: 装置装置(zhungzh)2的中断服务程序的中断服务程序 AJMP EXIT DV3: 装置装置(zhungzh)3的中断服务程序的中断服务程序 AJMP EXIT DV4: 装置装置(zhungzh)4的中断服务程序的中断服务程序 AJMP EXIT ORG 0013H LJMP INTR1P;INT1中断服务程序入口 ORG 1000H INTR1P:PUSH PSW ;INT1中

50、断服务程序是一个(y )中断查询程序服务程序 PUSHA, DV1, DV1, DV1, DV1 EXIT: POP A POP PSW RETI有关中断有关中断(zhngdun)服务程序的片段服务程序的片段第46页/共66页第四十六页,共67页。5.6 5.6 中断中断(zhngdun)(zhngdun)程序举例程序举例5.6.1 5.6.1 主程序主程序5.6.2 5.6.2 中断中断(zhngdun)(zhngdun)服务程序服务程序5.6.3 5.6.3 中断中断(zhngdun)(zhngdun)服务程序举例服务程序举例第47页/共66页第四十七页,共67页。5.6.1 5.6.1

51、主程序主程序1 1、主程序的起始、主程序的起始(q sh)(q sh)地址地址MCS-51MCS-51系列单片机复位后,系列单片机复位后,(PCPC)=0000H=0000H而而0003H0003H002BH002BH分别分别(fnbi)(fnbi)为各中断源的入口为各中断源的入口地址。地址。编程时应在编程时应在0000H0000H处写一条跳处写一条跳转指令(一般为长跳转指令)转指令(一般为长跳转指令),主程序是以跳转的目标地,主程序是以跳转的目标地址作为起始地址开始编写,址作为起始地址开始编写,一般从一般从0030H0030H开始,如右图所开始,如右图所示。示。0000HLJMP003000

52、30H主程序第48页/共66页第四十八页,共67页。2 2、主程序的初始化内容、主程序的初始化内容(nirng)(nirng)初始化:将用到的内部部件或扩展芯片初始化:将用到的内部部件或扩展芯片(xn pin)(xn pin)进进行初始工作状态设定。行初始工作状态设定。单片机复位后,特殊功能寄存器单片机复位后,特殊功能寄存器IEIE、IPIP内容均为内容均为00H00H,所以应对,所以应对IEIE、IPIP进行初始化编程,以开放中断,允进行初始化编程,以开放中断,允许某些中断源中断和设置中断优先级等。许某些中断源中断和设置中断优先级等。第49页/共66页第四十九页,共67页。5.6.2 5.6

53、.2 中断中断(zhngdun)(zhngdun)服务程序服务程序当当CPUCPU接收到中断请求信号并予以响应后,接收到中断请求信号并予以响应后,CPUCPU把当前的把当前的PCPC内容压入堆栈进行内容压入堆栈进行(jnxng)(jnxng)保护,然后转入响应的中断保护,然后转入响应的中断服务程序入口处执行。服务程序入口处执行。1 1、中断服务程序的起始、中断服务程序的起始(q sh)(q sh)地址地址中断系统对五个中断源分别规定了各自的入口地址,但这些入口中断系统对五个中断源分别规定了各自的入口地址,但这些入口地址相距很近(地址相距很近(8 8个字节)。个字节)。如中断服务程序的指令代码少

54、于如中断服务程序的指令代码少于8 8个字节,则可从规定的中个字节,则可从规定的中断服务程序入口地址开始,直接编写中断服务程序;断服务程序入口地址开始,直接编写中断服务程序;如中断服务程序的指令代码大于如中断服务程序的指令代码大于8 8个字节,则应采用与主程个字节,则应采用与主程序相同的方法,序相同的方法,在相应的入口处写一条跳转指令,并以跳在相应的入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编转指令的目标地址作为中断服务程序的起始地址进行编程程。第50页/共66页第五十页,共67页。1 1、中断、中断(zhngdun)(zhngdun)服务程序的起始地址服务程序的

55、起始地址以以INT0INT0为例,为例,中断中断(zhngdun)(zhngdun)矢量地址为矢量地址为0003H0003H,中断,中断(zhngdun)(zhngdun)服务程序从服务程序从0200H0200H开始,开始,如右图所示。如右图所示。0003HLJMP02000200H中断服务程序第51页/共66页第五十一页,共67页。2 2、中断、中断(zhngdun)(zhngdun)服务程序编制中的注意事项服务程序编制中的注意事项 视需要确定是否保护现场。视需要确定是否保护现场。 及时清除那些不能被硬件自动清除的中断请求标志,及时清除那些不能被硬件自动清除的中断请求标志,以免产生以免产生(

56、chnshng)(chnshng)错误的中断。错误的中断。 中断服务程序中的压栈与弹栈指令必须成对使用,以中断服务程序中的压栈与弹栈指令必须成对使用,以确保中断服务程序的正确返回。确保中断服务程序的正确返回。 主程序和中断服务程序之间的参数传递与主程序和子主程序和中断服务程序之间的参数传递与主程序和子程序的参数传递方式相同。程序的参数传递方式相同。第52页/共66页第五十二页,共67页。例例5-3 5-3 外部中断外部中断(zhngdun)(zhngdun)实验实验例例5-35-3:如图:如图5-145-14所示,将所示,将P1P1口的作为口的作为(zuwi)(zuwi)输入位,输入位, 作为

57、作为(zuwi)(zuwi)输出位。要求利用输出位。要求利用89C5189C51将开关所将开关所设的数据读入单片机内,并依次通过输出,驱动设的数据读入单片机内,并依次通过输出,驱动发光二极管,以检查输入的电平情况(若输入为发光二极管,以检查输入的电平情况(若输入为高电平则相应的高电平则相应的LEDLED亮)。亮)。 现要求采用中断边沿触发方式,每中断一次,完成现要求采用中断边沿触发方式,每中断一次,完成一次读一次读/ /写操作。写操作。5.6.3 5.6.3 中断中断(zhngdun)(zhngdun)服务程序举例服务程序举例第53页/共66页第五十三页,共67页。P1.7P1.6P1.5P1

58、.4P1.3P1.2P1.1P1.0INT089C51 +5V+5V+5V+5V+5V12S1图图5 51 14 4 外外部部中中断断实实验验第54页/共66页第五十四页,共67页。例例5-35-3解:如图所示,采用外部中断解:如图所示,采用外部中断0 0,中断申请从,中断申请从INT0INT0输入,输入,并采用了去抖动电路。并采用了去抖动电路。 当的任何一位输出为当的任何一位输出为1 1时,相应的发光二极管就会时,相应的发光二极管就会发光。当开关发光。当开关(kigun)S1(kigun)S1来回拨动一次时,发出中来回拨动一次时,发出中断请求。中断服务程序的矢量地址为断请求。中断服务程序的矢

59、量地址为0003H0003H。源程序。源程序如下页。如下页。第55页/共66页第五十五页,共67页。例例5-35-3源程序如下源程序如下(rxi)(rxi): ORG 0000H ORG 0000H SJMP MAIN SJMP MAIN ;上电,转向主程;上电,转向主程序序 ORG 0003H ORG 0003H ;外部中断;外部中断0 0入口地入口地址址(dzh)(dzh) SJMP INSER SJMP INSER ;转向中断服务程;转向中断服务程序序 ORG 0030H ORG 0030H ;主程序;主程序MAINMAIN: SETB EX0 SETB EX0 ;允许外部中断;允许外部

60、中断0 0中中断断 SETB IT0 SETB IT0 ;选择边沿触发方;选择边沿触发方式式 SETB EA SETB EA ;CPUCPU开中断开中断HEREHERE: SJMP HERE SJMP HERE ;等待中断;等待中断第56页/共66页第五十六页,共67页。57例例5-35-3 ORG 0200H ORG 0200H ;中断服务程序;中断服务程序INSERINSER:MOV AMOV A,#0F0H #0F0H MOV P1 MOV P1,A A ;设为输入;设为输入 MOV A MOV A,P1 P1 ;取开关;取开关(kigun)(kigun)状态状态 SWAP A SWAP

61、 A ;A A的高、低四位互换的高、低四位互换 MOV P1 MOV P1,A A ;输出驱动;输出驱动LEDLED发光发光 RETI RETI ;中断返回;中断返回 END END第57页/共66页第五十七页,共67页。5.7 5.7 思考题与习题思考题与习题(xt)(xt)1 1、什么是中断和中断系统?其主要功能是什么?、什么是中断和中断系统?其主要功能是什么?2 2、试编写一段对中断系统初始化的程序,使之允许、试编写一段对中断系统初始化的程序,使之允许INT0INT0,INT1INT1,TOTO,串行口中断,且使,串行口中断,且使T0T0中断为高优先级中断。中断为高优先级中断。3 3、在

62、单片机中,中断能实现哪些功能?、在单片机中,中断能实现哪些功能?4 4、89C5189C51共有哪些中断源?对其中端请求如何进行控制?共有哪些中断源?对其中端请求如何进行控制?5 5、什么是中断优先级?中断优先处理的原则是什么?、什么是中断优先级?中断优先处理的原则是什么?6 6、说明外部中断请求的查询和响应过程。、说明外部中断请求的查询和响应过程。7 7、89C5189C51在什么条件在什么条件(tiojin)(tiojin)下可响应中断?下可响应中断? 8 8、简述、简述89C5189C51单片机的中断响应过程。单片机的中断响应过程。8 8、在、在89C5189C51内存中,应如何安排程序

63、区?内存中,应如何安排程序区?9 9、试述中断的作用及中断的全过程。、试述中断的作用及中断的全过程。第63页/共66页第六十三页,共67页。1010、当正在执行某一个中断源的中断服务程序时,如果有新、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?在什么情况下不能响应新的中断请求?1111、89C5189C51单片机有五个中断源,但只能设置两个中断优先级,单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制因此,在中断优先级安排

64、上受到一定的限制(xinzh)(xinzh)。试问以下几种中断优先顺序的安排(级别由高到低)是否试问以下几种中断优先顺序的安排(级别由高到低)是否可能:若可能,则应如何设置中断源的中断级别:否则,可能:若可能,则应如何设置中断源的中断级别:否则,请简述不可能的理由。请简述不可能的理由。 定时器定时器0 0,定时器,定时器1 1,外中断,外中断0 0,外中断,外中断1 1,串行口中断。,串行口中断。 串行口中断,外中断串行口中断,外中断0 0,定时器,定时器0 0,外中断,外中断1 1,定时器,定时器1 1。 外中断外中断0 0,定时器,定时器1 1,外中断,外中断1 1,定时器,定时器0 0,

65、串行口中断。,串行口中断。 外中断外中断0 0,外中断,外中断1 1,串行口中断,串行口中断, 定时器定时器0 0,定时器,定时器1 1。 串行口中断,定时器串行口中断,定时器0 0,外中断,外中断0 0,外中断,外中断1 1,定时器,定时器1 1。 外中断外中断0 0,外中断,外中断1 1,定时器,定时器0 0,串行口中断,定时器,串行口中断,定时器1 1。 外中断外中断0 0,定时器,定时器1 1,定时器,定时器0 0,外中断,外中断1 1,串行口中断。,串行口中断。第64页/共66页第六十四页,共67页。1212、简述、简述89C5189C51单片机的中断响应单片机的中断响应(xingy

66、ng)(xingyng)过程。过程。1313、89C5189C51单片机外部中断源有几种触发中断请求的方法?如何单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?实现中断请求?1414、以中断方法设计单片机秒、分脉冲发生器。假定每秒产生一、以中断方法设计单片机秒、分脉冲发生器。假定每秒产生一个机器周期的正脉冲,个机器周期的正脉冲, 每分钟产生一个机器周期的正脉冲。每分钟产生一个机器周期的正脉冲。第65页/共66页第六十五页,共67页。66感谢您的观看(gunkn)!第66页/共66页第六十六页,共67页。内容(nirng)总结5.1 微机的输入/输出方式。在输出时,需要查询外设是否把上一次CPU输出的数据处理完毕。缺点:CPU在完成一次数据传送后要等待很长时间才能进行下一次的传送。SCON中TI和RI的格式如图5-5所示。CPU将一个数据写入发送缓冲器SBUF时,就启动发送。解:(IE)=10001010B=8AH。解:(IP)=00000101B=05H。若现行指令为RETI或是(hu sh)访问IE或IP指令时,。感谢您的观看第六十七页,共67页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号