《《单片机原理与实用技术》第6章.ppt》由会员分享,可在线阅读,更多相关《《单片机原理与实用技术》第6章.ppt(39页珍藏版)》请在三一办公上搜索。
1、第6章中断系统,莫海霞付晓光制作,6.1中断系统概述 6.1.1 中断的概念,所谓中断,就是打断正在进行的工作,转而去处理另外一种较紧急的事情,处理完毕后再转回来继续原来的工作。,1.实时控制 利用中断技术,各被控对象可根据需要随时向CPU发出中断申请,CPU根据情况及时处理,实现实时控制的需要。,2.分时操作 利用中断功能,CPU可以同进为多个对象服务,只有服务对象向CPU发出中断申请时,CPU才转而为之服务,这样大大提高了CPU的效率。,3.进行故障处理 对难以预料的情况或故障,如掉电、运算溢出、事故等,可以由故障向CPU请求中断。,6.1.2 中断源与为断优先级,1.中断源与中断请求信号
2、 引发中断的原因,或向CPU发出中断请求的来源称之为中断源。外中断的电平方式中断请求是低电平有效。外中断脉冲方式是脉冲的后沿负跳有效。,2.中断优先级 计算机系统中通常有多个中断源,它们的中断请求是随机提出的,有时会出现多个中断源同时提出中断请求的情况,即多中断源并发。,中断优先级控制原则是:当多个中断源同时申请中断时,CPU首先响应优先级最高的中断请求,在优先级最高的中断处理完以后,再响应级别较低的中断。当CPU正在处理中断时,若出现更高级的中断请求,CPU暂停正进行的中断处理程序,转去处理更高优先级的中断处理,处理完毕后再回到原中断程序。这种现象称中断嵌套。当CPU正在处理中断时,较低级别
3、的或同级的中断服务被禁止。当同级的多个中断请求同时出现时,则按CPU查询次序确定那个中断请求被响应。查询次序为:外部中断0定时中断0外部中断1定时中断1 串行中断,6.2 中断控制,向控制寄存器写入的内容称控制字,写入控制字的过程称初始化,而这些可以通过初始化写入控制字的端口、接口称可编程端口、接口。定时控制寄存器、中断允许控制寄存器、中断优先控制寄存器以及串行口控制寄存器。,6.2.1 断源请示标志与请求方式控制,1.定时器控制中断寄存器(TCON)寄存器地址为88H,位地址8FH88H。与中断有关的位如下:,2.串行控制寄存器(SCON)该寄存器地址98H,位地址9FH98H。各位名称如下
4、:,(1)TI为串行口发送中断请求标志位;(2)RI为串行口接收中断请求标志位。,中断允许控制,MCS-51对中断请求源的开放式屏蔽是由中断允许寄存器IE控制的。IE寄存器地址为0A8H,位地址0AFH0A8H。,各位含义如下:(1)EA为中断允许总控制位。当EA0时,中断总禁止,屏蔽所有中断请求;当EA1时,中断总允许,CPU开放中断,对各中断的中断申请是否允许,还要取决于各中断源的中断允许控制状态。(2)EX0和EX1为外部中断允许控制位。当EX0(EX1)0时,禁止外中断0(外中断0);当EX0(EX1)1时,允许外中断0(外中断1)。(3)ET0和ET1为定时/计数中断允许控制位。当E
5、T0(ET1)0时,禁止定时/计数中断;当ET0(ET1)1时,允许定时/计数中断。(4)ES串行中断允许控制位。当ES0时,禁止串行中断;当ES1时,允许串行中断。,中断优先级控制,MCS-51单片机中5个中断的优先级别由中断优先控制器IP进行设定。IP寄存器地址为0BFH0B8H。,(1)PX0和PX1外部中断0和1优先设定位(2)PT0和PT1定时中断0和1优先设定位(3)PS串行中断优先级设定位当为“0”时,该位优先级低;为“1”时该位优先级高。,图6-2MCS-51单片机中断系统,用户在使用中断时需要先通过设置以上寄存器以确定:中断方式、中断总允许、中断分允许、优先级等级,称中断初始
6、化。如我们要使用外部中断0,则需要做以下工作:SETB IT0(CLR IT0);设外中断0为脉冲(电平)触发方式SETB PX0;设外中断0为高优先级SETB EA;开中断总允许SETB EX0;开外中断0,6.3 中断响应6.3.1 中断响应,中断请求被CPU接受称中断响应。,1.中断响应条件CPU响应中断必须满足以下条件:有中断源提出中断请求;该中断未被屏蔽;无同级或高一级中断正在处理中;执行完当前指令,若当前指令为返回指令RET、IRET或访问IE、IP的指令,CPU须在执行完当前指令后,再继续执行一条指令,然后才响应中断。,2.中断响应过程CPU响应中断的过程如下:中断源发出中断申请
7、,相应中断标志位置位;封锁同级和低级中断,自动清除中断标志;将程序计数器PC的内容压入堆栈,并产生长调用指令LCALL,根据不同的中断源,把程序的执行转到相应的中断程序入口,各中断的入口地址如下表6-1所示;执行中断服务程序;当执行到RETI指令时,从堆栈中弹出栈顶的两个字节到程序计数器PC,CPU从原来的断点处重新执行被中断的程序,即中断返回。,2.中断响应过程CPU响应中断的过程如下:中断源发出中断申请,相应中断标志位置位;封锁同级和低级中断,自动清除中断标志;将程序计数器PC的内容压入堆栈,并产生长调用指令LCALL,根据不同的中断源,把程序的执行转到相应的中断程序入口,各中断的入口地址
8、如下表所示;执行中断服务程序;当执行到RETI指令时,从堆栈中弹出栈顶的两个字节到程序计数器PC,CPU从原来的断点处重新执行被中断的程序,即中断返回。,3.中断响应时间从中断响应条件的最后一条和中断响应过程可知中断的最短时间和最长时间。最短时间为了3个机器周期。若在执行一条指令的最后一个周期CPU查询到中断标志。不需等待,紧接响应中断执行长调用指令LCALL需要2个机器周期,加上查询的一个机器周期,共3个机器周期。最长的时间是8个机器周期,若查询到中断标志位时正好是执行RET、RETI或者访问IE或IP指令的第一个机器周期,则需再执行一条指令才能响应。而若再执行的一条指令是最长时间的机器周期
9、MUL或DIV指令,而有的访问IE或IP指令是双机器周期指令,再加上LCALL的两个机器周期,共8个机器周期。一般情况下,中断响应时间在38个机器周期,若已知单片机晶振频率,可计算出绝对时间。在一般情况下,中断响应时间无需考虑,只有在精确定时的应用场合才要精确计算。,4.中断请求的撤除(1)中断请求标志位的清除;(2)中断请求信号的撤除。,中断程序设计,1.中断初始化程序中断初始化内容主要包括:通过设置TCON、SCON、IE、IP等特殊功能寄存器以选择中断触发方式,开中断设置、中断优先等级。2.中断服务程序(1)中断处理程序的第一句常为跳转指令;(2)现场保护和现场恢复;(3)关中断和开中断
10、;(4)中断处理程序最后一条指令必须是中断返回指令RETI。,解参照图6-5,程序如下:ORG 0000H AJMP MAIN;转主程序 ORG 0003H;过热中断处理程序(中断0)HOT:SETB P1.6 RETI ORG 0013H;过冷中断处理程序(中断1)COOL:CLR P1.6 RETI ORG 0100H;主程序 MAIN:SETB IT0;设置中断为脉冲触发方式 SETB IT1 SETB EX0;开外中断 SETB EX1 SETB EA;开总中断允许 SJMP$END,6.4 中断系统应用实例 6.4.1 CPU与外部设备的数据传送方式,1.无条件传送方式 这种条件下,
11、CPU总认为外设处于准备好产状态,直接向外设输出数据,或从外设读入数据。例5-11所示的LED显示就是无条件传送方式,当外设的传输反应速度与CPU一样迅速时,可以直接使用无条件传送方式。比如LED的输出。大多数外设的速度较CPU慢得多,这时使用无条件传送方式交换数据时,要在输入/输出程序中加入延时指令。比如当CPU向速度较慢的外设输出数据时,每输出完一个数据,就要延时等待。延时时间要适中,时间太短,会出现数据传输错误;时间太长,降低效率。,2.查询传送方式 查询方式就是在数据传送前,CPU先对外设状态进行查询,在确定外设准备好后才输出或输出数据。,3.中断传送方式 所谓中断传送方式,就是CPU
12、在外设输出或输入数据的准备过程不理睬外设的工作,执行其它程序。,例6-2 将例5-3的门铃控制系统改用中断控制。,解按钮触发信号改与INT0相连,电路图如6-7所示。程序如下:主程序:MAIN:CLR IT0 MOV IE,81H SJMP&子程序:MOV DPTR,#0100H;以下为播放歌曲的中断 子程序内容与例5-3类同 MOV R0,#42 NEXT:CLR A;内容略 MOVC A,A+DPTR RETI;中断返回,6.4.2 中断源的扩展,1硬件请求与软件查询相结合扩展外中断源,例6-3 某汽车电子控制系统中,当冷却水温过高,冷却水温过低,燃油液面高度过低,润滑油液面过低以及和倒车
13、时都要发出报警,各报警情况如下:(1)水温过高时,要求启动冷却风扇,水温过热报警灯亮;(2)水温低时,风扇停转,水温报警灯灭;(3)燃油液面高度过低时,燃油报警灯亮;(4)润滑油面过低时,电喇叭鸣叫,润滑油指示灯。且该报警最优先;(5)倒车时,倒车指示灯亮。,编程如下:ORG 0000HLJMP MAINORG 0003H;润滑油面过低报警SETB P1.4SETB P1.3RETIORG 0013HLJMP INTORG 1000H;主程序 MAIN:ORL TCON,#00H;中断初始化MOV IE,#85HSETB PX1;省略部分为电子控制 系统的其它功能部分ORG 1100HJB P
14、0.0,INT0;查询中断源 JB P0.1,INT1JB P0.2,INT2JB P0.3,INT3,CLR EA POP ACC;恢复现场 POP PSW SETB EA RETI INT0:CLR EA;水温过热报警 SETB P1.0 SETB P1.5 SETB EA RETI INT1:CLR EA;水温过冷 CLR P1.0 CLR P1.5 SETB EA RETI INT2:CLR EA;燃油液面过低报警 SETB P1.1 SETB EA RETI INT3:CLR EA;倒车报警 SETB P1.2 SETB EA RET END,2使用优先编码器扩展外中断源,图6-10
15、 74LS148扩展外部中断电路图,6.4.3 键盘控制LED显示电路,程序如下:ORG 0000HSJMP MAINORG 0003HSJMP INT0ORG 30H MAIN:SETB EA;总中断允许SETB EX0;外中断0允许MOV DPTR,TAB;显示编码首址AGAIN:CLR AMOV R7,#10;09共10个数 CON:MOVC A,A+DPTR;查表取编码MOV P1,AACALL DELAY;延时INC ADJNE R7 CON;循环显示SJMP AGAIN;重新循环ORG 80H INT0:CLR EA;关中断 PUSH A;现场保护,PUSH R7SETB EA;开
16、中断MOV P0,#0FFHMOV A,P0;取数MOV R0,#0FFHGOON:RLC A;查询键入INC R0JNC GOON MOV A,R0 MOVC A,A+DPTRMOV P1,A;显示DEL:MOV R7,#10ACALL DELAYDJNE R7,DELCLR EA;关中断POP R7;中断恢复POP ASETB EA;开中断RETI;中断返回 DELAY:;1秒延时程序(略)TAB:DB;字符显示码表(略)END,6.4.4 MCS-51的单步工作方式 及断点工作方式,2.断点工作方式所谓断点工作方式就是计算机执行程序到某一指令时停止,以供程序员检查,该处称断点。待外来脉冲触发后再继续执行。断点工作方式设置方法如下:设置断点在程序中将外中断设计为脉冲触发方式,并开放外中断,在需要断开处使用软件方法将某一外中断标志位设置为“1”,人为地产生中断。如SETB、IE0,将中断程序设计为判断循环程序如下:JB P1.0,$RET设置外触发信号装置根据中的语句,将断点触发电路与P1.0输入端相连,如图6-13所示,当按下按键后,P1.0引脚为低电平,中断程序执行完毕,向断点继续执行原程序。,