您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 盛贤君单片机原理及应用第3章中断
目录单片机课程大连理工大学电气工程学院第3章MCS-51的中断系统及应用3.1中断的基本概念3.2MCS-51的中断源3.3中断的控制3.4中断查询与响应3.5外部中断3.6中断请求的撤除3.7中断响应时间3.8外部中断编程练习目录单片机课程大连理工大学电气工程学院中断:CPU执行正常程序时,系统中出现特殊请求(中断申请),CPU暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕后,CPU自动返回原程序(中断返回)的过程。3.1中断的基本概念执行主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回目录单片机课程大连理工大学电气工程学院中断的作用①提高CPU的工作效率;②可使多项任务共享一个资源(CPU);③可及时处理突发事件,实现分时操作、实时处理;④解决CPU与外设之间的速度矛盾,使CPU高效率地对多个外部设备进行管理。3.1中断的基本概念目录单片机课程大连理工大学电气工程学院中断应用举例:打印机操作状态好?送一个字符NYCPU采用查询方式为打印机服务中断服务程序送一个字符中断返回CPU采用中断方式为打印机服务做某一工作主程序中断响应中断返回断点1断点2断点33.1中断的基本概念目录单片机课程大连理工大学电气工程学院•3.2.1MCS-51的中断系统结构•MCS-51有5个中断源:外部中断(2个)、定时器中断(2个)和串行口中断。中断标志寄存器中断允许寄存器IE/int0T0/int1T1ES中断源标识符高优先级中断请求中断矢量中断源标识符低优先级中断请求中断矢量源允许总允许EA中断优先级寄存器IP3.2MCS-51的中断源返回目录单片机课程大连理工大学电气工程学院T1的请求标志T0的请求标志/INT0的请求标志•3.2.2中断标志寄存器TF1TR1TF0TR0IE1IT1IE0IT01、控制寄存器TCON(SFR地址:88H)2、串行口控制寄存器SCON(SFR地址:98H)SM0SM1SM2RENTB8RB8TIRI3.2MCS-51的中断源/INT1的请求标志串行口接收请求标志串行口发送请求标志返回目录单片机课程大连理工大学电气工程学院•3.3.1中断的开放和关闭控制EA:总允许位(一级控制)ES:串行口中断允许位(二级控制)ES=1时,允许RI、TI引发中断,否则禁止串口中断。ET1、ET0:定时器T1、T0允许位(二级控制)EX1、EX0:外中断/int1、/int0允许位(二级控制)“1”——允许;“0”——禁止中断。EAXXESET1EX1ET0EX03.3中断的控制由中断允许寄存器IE实现两级控制(SFR地址:0A8H)返回结构图例如,要允许外部中断INT0开放,则可用下列指令:SETBEASETBEX0或movIE,#81H目录单片机课程大连理工大学电气工程学院•PS:串行口中断优先级设定位;•PT1、PT0:定时器T1、T0中断优先级设定位;•PX1、PX0:外中断int1、0中断优先级设定位;=1:高优先级,=0:为低优先级。XXXPSPT1PX1PT0PX0•3.3.2中断的优先级控制由中断优先级寄存器IP实现两级控制(SFR地址:0B8H)3.3中断的控制返回结构图目录单片机课程大连理工大学电气工程学院由于IP寄存器的设定,将5个中断源分为两个级别。对同时发生多个中断申请时,中断优先级的处理将遵循下面基本原则:•3.3.3中断的优先级排队☞不同优先级的中断同时申请(很难遇到)——先高后低☞相同优先级的中断同时申请(很难遇到)——按序执行(见图)☞正处理低优先级中断又接到高级别中断——高打断低☞正处理高优先级中断又接到低级别中断——高不理低3.3中断的控制目录单片机课程大连理工大学电气工程学院•举例:如何改变中断源的优先级顺序从中断系统的硬件结构图可以清楚地看出同一级别中5个中断源的查询顺序。很明显,要改变这种顺序只能通过IP的设置。例如:要想将串行口的级别设为最高时,将IP中的PS置1。setbip.4或mov0b8h,#10hIP寄存器3.3中断的控制XXXPSPT1PX1PT0PX0目录单片机课程大连理工大学电气工程学院3.4中断查询与响应在每个机器周期中,所有的中断源都要按照其顺序检查一遍。到S6状态时,就查找到所有被激活的中断申请并排好优先权。在下一个机器周期的S1状态,只要不受阻断,就开始响应高级中断。•如果发生下列情况,中断将被阻止:1、同级或高级中断正在执行时;2、当前的机器周期不是指令的最后一个机器周期;3、CPU正在执行的指令是RETI或访问IE、IP寄存器时,CPU是不会响应中断,而且要等到该指令的下一条指令执行完后中断才能响应。•3.4.1中断的查询返回目录单片机课程大连理工大学电气工程学院当满足中断条件时——1.CPU查询到某一中断源后,使相应的“优先级激活触发器”置位用以阻断同级或低级中断。2.在硬件控制下,自动将当时PC的内容(断点地址)进栈,以备返回;3.然后将相应的中断矢量装入PC,使CPU转向对应的中断服务程序。4.中断服务程序最后一条指令是RETI,它将清除“优先级激活触发器”,从堆栈中弹出断点地址并装入PC中,使CPU回到原来主程序断点处继续运行。3.4中断查询与响应(上电启动地址)(INT0中断入口)(T0中断入口)(INT1中断入口)(T1中断入口)(串口中断入口)0000H0003H000BH0013H001BH0023H•3.4.2中断的响应过程目录单片机课程大连理工大学电气工程学院3.5外部中断•在MCS-51引脚上有/INT0、/INT1两个外部的中断输入。作为外部事件的触发信号,其信号必须满足一定的要求,否则将不能正确地引发中断。MCS-51/INT0/INT1/INT0触发方式选择TF1TR1TF0TR0IE1IT1IE0IT0TCON(SFR地址:88H)•CPU在每个机器周期的S5P2期间对它们进行一次检测。•系统设定了两种触发方式:下降沿触发、低电平触发,由控制寄存器TCON中的IT0、IT1位来确定。/INT1触发方式选择IT=1时,下降沿触发;IT=0时,低电平触发。返回目录单片机课程大连理工大学电气工程学院1、边沿触发方式:在相邻的两个机器周期,如果第一次采集是高电平,第二次采集是低电平时,则TCON中的标志IE0或IE1置位。所以,在边沿触发方式时:外部设备发出的边沿信号(高电平和低电平)的时间应大于一个机器周期,否则信号将可能漏检。2、电平触发方式:CPU在每个机器周期的S5P2期间采集到INT0或INT1的引脚为低电平时将激活标志IE0或IE1。所以在这种触发方式中,外部的低电平至少应保留一个机器周期。MCS51对外部中断触发信号的要求3.5外部中断如果外电路的信号不能满足要求,可使用触发器等硬件电路解决。目录单片机课程大连理工大学电气工程学院3.6中断请求的撤除•以外中断电平触发为例:当CPU响应该中断进入到服务程序后,在执行RETI指令返回主程序前,必须将外部的低电平撤掉,否则当CPU返回主程序后,会因为外部过长的低电平信号而使其再次进入中断,这样不仅造成一次多余的错误操作,而且使主程序无法正常运行。•同理,其它中断源也存在类似的问题。所以在使用中断时必须清楚在返回主程序前时,其中断请求(标志)是否要撤除、如何撤除等问题。目录单片机课程大连理工大学电气工程学院一种解决外部电平请求信号过长的硬件方案外设(CP)触发器QP1.0此电路还可以解决外部脉冲过窄,不能正确引发中断的情况。中断服务程序MCS-51INTXP1.0DQCPS外部设备中服程序中完成撤消“1”“1”申请ANLP1,#FEHORLP1,#01HRETI服务程序主体CLRIE03.6中断请求的撤除目录单片机课程大连理工大学电气工程学院解决外部中断信号过长的软件方案•在中断处理程序的最后、返回主程序之前,对外中断信号进行判断、等待,只有当外信号消失后再返回主程序;•软件方案的一优点:简化硬件电路;缺点:降低了程序的运行速度,同时不能解决外部中断信号过窄的问题。•具体问题具体对待,选用哪种方案要根据具体情况综合考虑。中断服务程序RETI中断处理程序外信号撤出?NY3.6中断请求的撤除目录单片机课程大连理工大学电气工程学院MCS-51的中断请求的撤除方法中断源中断标志说明撤除方法INT0、INT1IE0、IE1外部边沿触发无影响INT0、INT1IE0、IE1外部电平触发电路、软件撤除T0、T1TF0、TF1定时计数器中断自动清除标志ESRI、TI串行口中断软件清除标志注:此表指使用中断服务程序来处理中断事件时的情况。如果采用查询的方法来处理事件时,都需要软件来清除标志。3.6中断请求的撤除目录单片机课程大连理工大学电气工程学院3.7中断响应时间(以INTx为例)•每个机器周期的S5P2时刻,INTx引脚的电平被锁存到内部寄存器中,待下一个周期查询。1、最短时间:中断请求有效,查询后在下一个周期便开始执行一条硬件的子程序的调用(时间是两个周期),然后开始执行服务程序的第一条指令。这样从锁存电平的周期到执行中断服务程序,中间相隔3个机器周期。C1C2C3C4C5返回前一次中断响应时间:从中断请求有效(外部中断请求标志置1)到转向中断入口地址所需要的响应时间执行入口地址中的指令电平锁存中断查询长调用,转向入口地址目录单片机课程大连理工大学电气工程学院2、最长时间:如果中断信号发生在前面所说的3种情况时,响应时间就要变长:(1)响应时间取决于正在执行的同级或高级中断的执行时间;(2)指当前CPU执行的指令是多周期指令,如乘除法指令(4个周期),最坏情况,还要等3个周期。这样响应周期变为3+3=6个周期;(3)CPU当前执行的指令是RETI或访问IE、IP寄存器时,本指令(1个周期)没有响应,且下一条指令执行完后才能响应,这样附加的等待时间最长不会超过5个周期(1+4)。整个响应为5+3=8个周期。这样,如果不考虑第1种情况,整个中断响应的时间范围应当是:3~8个机器周期。3.7中断响应时间(以INTx为例)目录单片机课程大连理工大学电气工程学院3.8外部中断编程练习【例】电路如图。要求编程实现:主程序将P1口的8个LED从上到下循环显示(间隔时间约1S),中断时(INT0)使8个LED同时闪烁5次(间隔时间约1S,设单片机晶振为6MHz)。+5VINT0P1.0MCS-51P1.1P1.2P1.3P1.4P1.5P1.6P1.774LS245R×8目录单片机课程大连理工大学电气工程学院(1)主程序ORG0000HLJMPSTARTSTART:MOVIE,#10000001B;允许INT0中断MOVIP,#00000001B;INT0中断优先MOVTCON,#01H;INT0边沿触发方式MOVSP,#70HMOVA,#80H;左移初值LOOP1:RLAMOVP1,ACALLDELAY;延时1sAJMPLOOP1程序可分为3个模块:主程序、中断服务程序、延时子程序3.8外部中断编程练习目录单片机课程大连理工大学电气工程学院ORG0003HLJMPEXT0EXT0:PUSHACCPUSHPSWSETBRS0CLRRS1MOVA,#0FFH;为使P1全亮MOVR2,#;闪烁5次LOOP3:MOVP1,ACALLDELAY;延时1sCPLADJNZR2,LOOP3POPPSWPOPACCRETI103.8外部中断编程练习(2)中断服务程序目录单片机课程大连理工大学电气工程学院(3)延时子程序(约1s)DELAY:MOVR5,#5D1:MOVR6,#200D2:MOVR7,#250D3:DJNZR7,D3;1msDJNZR6,D2;约0.2sDJNZR5,D1;约1sRET3.8外部中断编程练习目录单片机课程大连理工大学电气工程学院【例】故障诊断处理。当系统无故障时,4个故障源输入端全为低电平,显示灯全熄灭,只有当某部分出现故障,其相应的输入线才由低电平变为高电平从而引起中断。中断服务程序的任务就是判定故障源,并进行相应的灯光显示。(外中
本文标题:盛贤君单片机原理及应用第3章中断
链接地址:https://www.777doc.com/doc-3532767 .html