单片机8051中断系统课件_第1页
单片机8051中断系统课件_第2页
单片机8051中断系统课件_第3页
单片机8051中断系统课件_第4页
单片机8051中断系统课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章中断系统中断是指CPU在正常执行程序的过程中,由于某种随机发生的事件使它暂停当前正在执行的程序,转而去执行另外的一段程序(中断服务程序),在这段程序完成后自动返回被打断的程序处继续执行的过程。中断的概念

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);

CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。

单片机中断系统结构执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:

分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。中断功能强弱是计算机性能优劣的重要标志

提高CPU效率

解决速度矛盾

实现并行工作

应付突发事件……①中断源②中断申请③开放中断④保护现场⑤中断服务⑥恢复现场⑦中断返回中断涉及的几个环节(前面提到的甲方)(甲方发出信号提出申请)(乙方同意处理)(安排好当前的工作)(响应乙方的要求)(完事后,回去……)(继续做打断前的工作)8031的中断源1、外中断:通过8031的INT0和INT1输入引脚,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式输入中断请求信号。2、定时器溢出中断:定时器T0/T1在定时脉冲作用下从全“1”到“0”时可以自动向CPU提出溢出中断请求,以表明定时器T0/T1的定时时间已到。3、串行口中断:串行口中断分为发送中断和接收中断,每当串行口发送/接收完一组串行数据时,自动向CPU发出串行口中断请求1.中断源2.中断标志中断标志寄存器与中断有关的特殊功能寄存器SCON(98H)RITIIP(B8H)PX0PT0PX1PT1PSEX0ET0EX1ET1ESEAIE(A8H)TCON(88H)IT0IE0TF1TF0IE1IT1中断响应的条件1.开中断2.CPU未响应同级或更高优先级的中断3.执行完毕正在执行的指令4.RETI或访问IE/IP的指令需再执行一条指令后才响应中断

80C51单片机中断处理过程

中断响应条件和时间

一、中断响应条件中断源有中断请求;此中断源的中断允许位为1;

CPU开中断(即EA=1)。中断优先级满足相应条件。

CPU才有可能响应中断。二、中断服务的进入:

CPU执行程序过程中,在每个机器周期的S5P2期间,中断系统对各个中断源进行采样。这些采样值在下一个机器周期内按优先级和内部顺序被依次查询。如果某个中断标志在上一个机器周期的S5P2时被置成了1,那么它将于现在的查询周期中及时被发现。接着CPU便执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。

三、中断入口地址表五、中断响应过程

将相应的优先级状态触发器置1(以阻断后来的同级或低级的中断请求)。执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC。执行中断服务程序。

中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用户编写程序来完成。

六、中断返回RETI指令的具体功能是:将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序;将相应中断优先级状态触发器清0,通知中断系统,中断服务程序已执行完毕。

注意,不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点。七、中断请求的撤除定时器溢出中断:中断得到响应后,由硬件自动清除串行口中断:需在中断服务程序中,软件清除外部中断:负边沿触发由硬件自动清除,电平触发需由软件配合外部电路进行清除

若外部中断定义为电平触发方式,中断标志位的状态随CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高CPU对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的低电平保持到请求获得响应时为止,不然就会漏掉;而在中断服务程序结束之前,中断源又必须撤消其有效的低电平,否则中断返回之后将再次产生中断。中断系统初始化1.开相应中断源的中断,开总中断(IE)2.设置所用中断的中断优先级(IP)3.若使用外部中断,需选择中断的触发方式(TCON的IT0或IT1)

注意,不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点。中断服务程序的数据保护规则:1、若主程序和中断服务程序有对同一地址的数据的操作,中断服务程序可能改变这些地址中的内容,若想保持主程序中的数据不变,在中断服务程序中对这些数据进行保护。2、若中断服务程序的指令可能影响PSW的标志位,可能影响主程序中的条件判断指令,应在中断服务程序中对PSW保护。第三章中断系统中断程序的嵌套中断嵌套:是指当CPU正在执行某一中断程序时,当有优先级高的中断发生后,停止当前的中断执行,去响应优先级别高的中断,当优先级别高的中断执行完后,接着相应低级中断的情况。8031允许发生两级的中断嵌套(因为8031有高低两级中断优先级)。当CPU响应中断后,会自动清除EA位,这时不管是否有高级中断都不会发生中断嵌套,若想相应高级中断必须在中断服务程序内加入开中断的指令。若是同级中断是不能产生中断嵌套的。80C51单片机的中断处理的原则:CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。中断应用举例:

统计脉冲信号的个数,累计到100个脉冲时使P1.0口的状态改变一次INT08031系统P1.0主程序与中断子程序的流程图:开始外部中断初始化清0计数寄存器R3P1.0初始化输出等待计数寄存器+1是否计满100个数取反P1.0清0R3中断返回YN程序设计:ORG 0000HAJMP MAINORG 0003HAJMP EXINT0MAIN: MOV SP,#60H SETB IT0 SETB EX0 SETB EA MOV R3,#00H CLR P1.0HERE:SJMP HEREEXINT0: INC R3 CJNE R3,#64H,NEXT MOV R3,#00H CPL P1.0NEXT: RETI 作业:8031的P1口分别接8个LED,在INT0上输入周期为100HZ的方波,每100个脉冲有一个LED熄灭,熄灭的LED循环移位。 ORG 0000H LJMP MAIN ORG 0003H LJMP EXINT0 ORG 1000HMAIN: MOV SP,#60H SETB IT0 SETB EX0 SETB EA MOV R4,#00H MOV R3,#00H MOV P1,#0FFHLOOP: LCALL CHECKANJ LJMP LOOPEXINT0: INC R4 CJNE R4,#64H,EXEND MOV R4,#00H INC R3 CJNE R3,#1,EXLOOP1 MOV P1,#0FEH LJMP EXENDEXLOOP1: CJNE R3,#2,EXLOOP2 MOV P1,#0FDH LJMP EXENDEXLOOP2: CJNE R3,#3,EXLOOP3 MOV P1,#0FBH LJMP EXENDEXLOOP3: CJNE R3,#4,EXLOOP4 MOV P1,#0F7H LJMP EXENDEXLOOP4: CJNE R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论