资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章 中断系统,中断是指CPU在正常执行程序的过程中,由于某种随机发生的事件使它暂停当前正在执行的程序,转而去执行另外的一段程序(中断服务程序),在这段程序完成后自动返回被打断的程序处继续执行的过程。 中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断 发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。,单片机中断系统结构,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。,随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点: 分时操作。CPU可以分时为多个I/O设备服务,提 高了计算机的利用率; 实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强; 可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,中断功能强弱是计算机性能优劣的重要标志 提高CPU效率 解决速度矛盾 实现并行工作 应付突发事件 ,中断源 中断申请 开放中断 保护现场 中断服务 恢复现场 中断返回,中断涉及的几个环节,(前面提到的甲方) (甲方发出信号提出申请) (乙方同意处理) (安排好当前的工作) (响应乙方的要求) (完事后,回去) (继续做打断前的工作),(1)中断申请,(2)中断响应,(3)中断处理,(4)中断返回,8031 的中断源 1、外中断:通过8031的INT0和INT1输入引脚,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式输入中断请求信号。 2、定时器溢出中断:定时器T0/T1在定时脉冲作用下从全“1”到“0”时可以自动向CPU提出溢出中断请求,以 表明定时器T0/T1的定时时间已到。 3、串行口中断:串行口中断分为发送中断和接收中断,每当串行口发送/接收完一组串行数据时,自动向CPU发出串行口中断请求,1.中断源,2.中断标志,中断标志寄存器,中断优先级,与中断有关的特殊功能寄存器,中断响应的条件,1.开中断,2.CPU未响应同级或更高优先级的中断,3.执行完毕正在执行的指令,4.RETI 或访问IE/IP的指令需再执行一条指令后才响应中断,中断优先级处理原则,对同时发生多个中断申请时: 不同优先级的中断同时申请 先高后低(很难遇到) 相同优先级的中断同时申请 按序执行(很难遇到) 正处理低优先级中断又接到高级别中断 高打断低 正处理高优先级中断又接到低级别中断 高不理低,80C51单片机中断处理过程,中断响应条件和时间,一、中断响应条件 中断源有中断请求; 此中断源的中断允许位为1; CPU开中断(即EA=1)。 中断优先级满足相应条件。 CPU才有可能响应中断。,二、中断服务的进入: CPU执行程序过程中,在每个机器周期的S5P2期间,中断系统对各个中断源进行采样。这些采样值在下一个机器周期内按优先级和内部顺序被依次查询。 如果某个中断标志在上一个机器周期的S5P2时被置成了1,那么它将于现在的查询周期中及时被发现。接着CPU便执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。,三、中断入口地址表,四、中断响应时间,响应时间-从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。 (1)最快响应时间 以外部中断的电平触发为最快。 从查询中断请求信号到中断服务程序需要三个机器周期: 1个周期(查询)2个周期(长调用LCALL) (2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。,五、中断响应过程,将相应的优先级状态触发器置1(以阻断后来的同级或低级的中断请求)。 执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC。 执行中断服务程序。,中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用户编写程序来完成。,六、中断返回,RETI指令的具体功能是: 将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序; 将相应中断优先级状态触发器清0,通知中断系统,中断服务程序已执行完毕。,注意,不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点 。,七、中断请求的撤除,定时器溢出中断:中断得到响应后,由硬件自动清除 串行口中断:需在中断服务程序中,软件清除 外部中断:负边沿触发由硬件自动清除,电平触 发需由软件配合外部电路进行清除,若外部中断定义为边沿触发方式,在相继连续的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在IE0或IE1中将锁存一个逻辑1。即便是CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期(若晶振为12MHz时,为1微秒)。 边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为80C51的中断输入。,若外部中断定义为电平触发方式,中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的低电平保持到请求获得响应时为止,不然就会漏掉;而在中断服务程序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将再次产生中断。,中断系统初始化,1.开相应中断源的中断,开总中断(IE),2.设置所用中断的中断优先级( IP),3.若使用外部中断,需选择中断的触发方式(TCON的IT0或IT1),注意,不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点 。,例1: MAIN:MOVA,#01H MOV30H,#03H 在此处中断 ADDA,30H LJMPMAIN,中断服务程序 AAA1: MOVA,#08H MOV30H,#02H RETI,修改后中断服务程序 AAA1:PUSHAPUSH30H MOVA,#08H LD30H,#02H POP30H POPA RETI,中断服务程序的数据保护,第三章 中断系统,中断服务程序的数据保护,例2: MAIN:MOVA,#80H MOV30H,#8FH 在此处中断 ADDA,30H JCLOOP1 MOVA,#04H LOOP1:MOVA,#02H LJMPMAIN,中断服务程序 AAA1:NOP MOVA,#03H MOV30H,#08H ADDA,30H RETRETI,修改后中断服务程序 AAA1:PUSHPSWMOVA,#03H MOV30H,#08H POPPSW RETI,中断服务程序的数据保护,规则: 1、若主程序和中断服务程序有对同一地址的数据的操作,中断服务程序可能改变这些地址中的内容,若想保持主程序中的数据不变,在中断服务程序中对这些数据进行保护。 2、若中断服务程序的指令可能影响PSW的标志位,可能影响主程序中的条件判断指令,应在中断服务程序中对PSW保护。,第三章 中断系统,中断程序的嵌套,中断嵌套:是指当CPU正在执行某一中断程序时,当有优先级高的中断发生后,停止当前的中断执行,去响应优先级别高的中断,当优先级别高的中断执行完后,接着相应低级中断的情况。 8031允许发生两级的中断嵌套(因为8031有高低两级中断优先级)。 当CPU响应中断后,会自动清除EA位,这时不管是否有高级中断都不会发生中断嵌套,若想相应高级中断必须在中断服务程序内加入开中断的指令。 若是同级中断是不能产生中断嵌套的。,80C51单片机的中断处理的原则:,CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。 正在进行的低优先级中断服务,能被高优先级中断请求所中断。,中断应用举例:,统计脉冲信号的个数,累计到100个脉冲时使P1.0口的状态改变一次,主程序与中断子程序的流程图:,程序设计:,ORG0000H AJMPMAIN ORG0003H AJMPEXINT0,MAIN:MOVSP,#60H SETBIT0 SETBEX0 SETBEA MOVR3,#00H CLRP1.0,HERE: SJMP HERE,EXINT0:INCR3 CJNER3,#64H,NEXT MOVR3,#00H CPLP1.0 NEXT:RETI,作业:8031的P1口分别接8个LED,在INT0上输入周期为100HZ的方波,每100个脉冲有一个LED熄灭,熄灭的LED循环移位。,ORG0000H LJMPMAIN ORG0003H LJMPEXINT0 ORG1000H MAIN:MOVSP,#60H SETBIT0 SETBEX0 SETBEA MOVR4,#00H MOVR3,#00H MOVP1,#0FFH LOOP:LCALLCHECKANJ LJMPLOOP,EXINT0:INCR4 CJNER4,#64H,EXEND MOVR4,#00H INCR3 CJNER3,#1,EXLOOP1 MOVP1,#0FEH LJMPEXEND EXLOOP1:CJNER3,#2,EXLOOP2 MOVP1,#0FDH LJMPEXEND EXLOOP2:CJNER3,#3,EXLOOP3 MOVP1,#0FBH LJMPEXEND EXLOOP3:CJNER3,#4,EXLOOP4 MOVP1,#0F7H LJMPEXEND EXLOOP4:CJNER3,#5,EXLOOP5 MOVP1,#0EFH LJMPEXEND EXLOOP5:CJNER3,#6,EXLOOP6 MOVP1,#0DFH LJMPEXEND,EXLOOP6:CJNER3,#7,EXLOOP7 MOVP1,#0BFH LJMPEXEND EXLOOP7:MOVP1,#07FH MOVR3,#00H EXEND:RETI,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号