微机原理与应用-05 中断系统_第1页
微机原理与应用-05 中断系统_第2页
微机原理与应用-05 中断系统_第3页
微机原理与应用-05 中断系统_第4页
微机原理与应用-05 中断系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第5章MCS-51的中断系统主要内容中断的概念中断系统结构及中断控制中断处理过程外部中断源的应用§5-1中断的概念

1.输入输出方式无条件传送

不需要测试外部设备的状态,CPU可以根据需要随时进行数据传送操作查询传送CPU在传输数据之前进行查询DMA方式 直接存储器存取方式,CPU让出数据总线,使得外部设备和存储器之间直接传输。中断方式实现计算机对外界发生的事件进行及时实时处理。2.中断的概念计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务程序执行完了之后能自动回到原主程序处继续执行,这个过程叫做“中断”。某人看书 执行主程序 日常事务电话铃响 中断信号INT=0中断请求暂停看书

暂停执行主程序中断响应书中作记号当前PC入栈 保护断点电话谈话 执行I/O程序中断服务继续看书 返回主程序 中断返回2.中断的概念日常事务主程序中断服务程序中断系统:实现处理功能的硬件和软件系统中断源:产生中断的请求源中断请求:中断源向CPU提出处理要求断点:原来程序被中断的地方中断服务:对中断事件响应的处理过程中断返回:结束中断服务程序,返回被中断的主程序3.中断的产生I/O设备:I/O设备向CPU发出中断请求数据通道中的中断源:如磁盘、磁带等硬件故障:如电源掉电、存储出错等实时时钟与计数为调试程序而设置的中断4.中断的功能分时操作。在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急响应外设的中断请求;CPU可以分时为多个I/O设备服务,提高了计算机的利用率;

CPU与外部设备并行工作,以中断方式相联系,提高工作效率;实时响应。根据现场随时变化的各种参数、信息,做出实时监控;对突发事故,做出紧急处理;可靠性高。CPU具有处理设备故障及掉电等突发性事件的能力,从而使系统可靠性提高。§5-2中断系统的结构一.中断源信号2个外部中断请求:INT0、INT12个定时器计数器溢出中断请求:T0、T11个串行口1串行帧数据发送、接收结束中断请求:TI、RI二.中断允许控制总允许开关:EA源允许开关:ES、ET1、EX1、ET0、EX0三.2级中断优先级控制优先级选择开关:PS、PT1、PX1、PT0、PX0P3.2P3.3P3.4P3.5P3.0P3.1一.中断控制寄存器§5-3中断系统的控制

1.中断标志位TF1、TF0、IE1、IE0——TCON;RI、TI——SCON=1,有中断请求;=0,无中断请求。CPU响应中断后,中断标志位自动清零,但TI/RI标志位须软件清零。

2.外部中断触发方式选择位:IT0、IT1——TCON=1:负跳沿触发中断请求;=0:低电平触发中断请求。

3.中断允许控制位:EA、ES、ET1、EX1、ET0、EX0——IE=1开中断;=0关中断。

4.中断优先级控制位:PS、PT1、PX1、PT0、PX0——IP2级优先级:=1,为高优先级;=0,为低优先级。 同一优先级别按内部查询顺序排列优先级:

高INT0、T0、INT1、T1、RX/TX低。

5.单片机复位时TCON、SCON、IE、IP清0,所有中断请求被禁止,5个中断源均为低级中断,按中断系统硬件确定的自然优先级排列:高INT0、T0、INT1、T1、RX/TX低二.中断的嵌套CPU执行主程序CPU执行低级中断服务程序CPU执行高级中断服务程序CPU同一时间只能响应一个中断请求,同时多个中断申请时必须有先有后:☞不同优先级的中断同时申请——先高后低☞相同优先级的中断同时申请——按序执行☞正处理低优先级中断又接到高级别中断——高打断低☞正处理高优先级中断又接到低级别中断——高不理低§5-4中断的处理过程中断请求中断判优中断条件中断响应中断处理中断返回硬件自动完成用户编程完成1.中断请求被响应的条件一个中断源的中断请求被响应的基本条件:CPU开中断:EA=1,允许所有中断源申请中断;中断源的中断请求标志位为1;中断源的中断允许标志位为1;无同级或更高级的中断正在被服务;2.中断被封锁的情况CPU正在处理一个同级或更高级别的中断请求。因为此时相应的中断优先级状态触发器被置1

当前正执行指令,不是该指令的最后一个周期。当前正执行的指令是返回指令(RETI)(本次中断还没有处理完)或访问IP、IE寄存器(可能会开、关中断或改变中断的优先级)的指令,则CPU至少再执行一条指令才响应中断。CPU每个机器周期顺序检查每个中断源,当检测到有中断请求时,能否响应中断,还要看下述情况是否存在:存在上述情况之一,CPU不对中断进行响应。3.外部中断的响应时间外部中断响应时间:从CPU查询外部中断请求标志位到转入中断服务程序的入口地址所需的时间。对于1个单一中断:中断响应最短3个机器周期:恰在当前正执行指令的最后1个机器周期查询中断请求标志位+执行LCALL指令(响应中断时由硬件自动生成)需2个机器周期;中断响应最长8个机器周期:恰在当前正执行RETI或与IP、IE寄存器有关的指令需2个机器周期+4(再执行一条最长的乘、除法指令)+2(执行LCALL指令)4.外部中断的触发方式外部中断触发方式选择位:IT0、IT1=1:负跳沿触发中断请求;=0:低电平触发中断请求。低电平触发方式:外部中断请求触发器的状态随外部中断输入电平的变化而变化,适合外部中断以低电平输入且中断程序能使输入的低电平变为高电平的情况;负跳沿触发方式:CPU在前一机器周期采到INT0/INT1引脚为高,后一机器周期采到为低,则外部中断请求触发器被置1并锁存负跳变,适合以负脉冲(负脉冲宽度至少保持1个机器周期,持续到中断发生)形式输入的外部中断请求。5.中断的撤销CPU在中断返回前,把它响应的中断标志位(TCON、SCON中的IE0、IE1、TF0、TF1、TI、RI位)复位成“0”状态。中断源撤消中断标志的方法INT0/INT1负跳沿触发中断时,硬件置位,硬件复位。中断请求信号自动撤销。电平触发中断时,硬件置位,尽管CPU响应中断时可用硬件自动复位成“0”状态,但必须人为撤消中断请求信号(软硬件结合)T0/T1由硬件置位和复位(也可由软件清零),硬件自动撤消中断请求。RI/TI由硬件置位,必须由软件清零(CLRRI,CLRTI)电平方式外部中断请求信号的软硬件结合撤销(教材P110页)5.中断的撤销所需的负脉冲可通过在中断服务程序中增加3条指令得到:0RLP1,#01H;P1.0为1ANLP1,#0FEH;P1.0为0

┆0RLP1,#01H;P1.0为1利用D触发器的置位端SD实现中断请求的撤销6.中断的响应过程CPU自动完成:CPU在T机器的S5P2,查询中断源,设置中断标志位;判断中断响应条件满足,CPU响应中断;由硬件自动生成LCALL指令(例如对INT1的响应产生的LCALL指令为:LCALL0013H),自动把断点地址压入堆栈,并将对应中断入口地址装入PC,执行中断服务程序。用户必须完成:中断初始化:开相应中断源的中断(IE)、设定中断优先级(IP)、设定外部中断的触发方式;在中断入口地址存放跳转指令,使程序跳转到用户编写的中断服务程序起始地址;开发设计中断服务程序。1.主程序结构

ORG0000HAJMPMAINORG0003HLJMPINT1ORG000BHLJMPINT2┆ORG主程序入口地址MAIN:中断初始化程序┆HERE:SJMPHERE;原地等待中断申请(或:执行其它任务)ORG中断服务程序1入口地址

INT1:┆

RETI

ORG中断服务程序2入口地址

INT2:┆

RETI§5-5中断服务程序设计复位后,PC置成0000H,CPU从0000H单元开始执行指令,所以用无条件转移指令跳转到主程序。每个中断向量地址间隔8个单元,完成中断程序空间少,在中断处安排一个无条件转移指令中断源入口地址INT00003HT0000BHINT10013HT1001BHTI/RI0023H2.中断初始化§5-5中断服务程序设计例5-1设置IP寄存器的初始值,使得MCS-51的2个外中断请求为高优先级,其它中断请求为低优先级。

(1)用位操作指令SETBPX0;2个外中断为高优先级SETBPX1CLRPS;串行口、2个定时器/计数器为低优先级中断CLRPT0

CLRPT1(2)用字节操作指令

MOVIP,#05H或者用:

MOV0B8H,#05H;B8H为IP寄存器的字节地址MOVIP,#00000101B;例5-3假设允许外部中断0中断,并设定它为高级中断,其它中断源为低级中断,采用跳沿触发方式。在主程序中应有如下程序段:SETBEA;EA位置1,CPU开中断SETBEX0;EX0位置1,允许外部中断0产生中断SETBPX0;PX0位置1,外部中断0为高级中断SETBIT0;IT0位置1,外部中断0为跳沿触发方式

2.中断初始化§5-5中断服务程序设计§5-5中断服务程序设计SETBEACLREAPUSHPSWPUSHACCPUSHDPHPUSHDPL

POPDPLPOPDPHPOPACCPOPPSW3.中断服务程序保护现场:当前PC值,PSW、工作寄存器和SFR等。恢复现场:完成中断服务后,将保存在堆栈中的现场数据恢复。如果当前中断服务程序不允许被中断,则其前后的开中断和关中断2条指令可去掉。RETI可去掉响应过程:(假设已使某中断请求标志置1)(1)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用:1)硬件清零相应中断请求标志(TI、RI除外)2)将当前PC内容压入堆栈——保护断点;3)将中断服务子程序入口地址送PC——转移。返回过程:(RETI执行后)(1)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送PC——恢复断点。(3)CPU接着中断处继续执行原主程序。§5-5中断服务程序设计3.中断服务程序例5-4:中断举例用中断控制完成这一输入输出过程,每请求中断一次,完成一个读/写操作单片机读P1.0口的状态,把这个状态送到P1.7的指示灯去。当P1.0为高电平时指示灯亮,当P1.0为低电平时则指示灯不亮。RS触发器INT0+5VP1.7P1.0+5V+5V&&1KΩ1KΩ8051ORG0000HAJMPMAIN;上电自动转向主程序ORG0003H;INT0的入口地址AJMPWINT;指向中断服务程序子程序ORG0100H;主程序MAIN:SETBIT0;选择边沿触发方式SETBEX0;允许外部中断0SETBEA;允许总中断HERE:AJMPHERE;主程序踏步ORG0200HWINT:MOVA,#0FFH;

MOVP1,A;P1准双向口设定输入态MOVA,P1;取开关数RRA;P1.0送P1.7MOVP1,A;输出驱动灯泡发光RETI;中断返回END中断返回到何处?例5-5:中断举例通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。已知:(B)=01H,要求采用边沿触发,低优先级。此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是依次点亮八盏灯中的一盏P1.0P1.7INT13008051ORG0000HLJMPMAINORG0013H;中断矢量LJMPINTMAIN:SETBEA;开总中断允许“开关”SETBEX1;开外部中断1允许“开关”CLRPX1;0优先级(也可不要此句)SETBIT1;边沿触发MOVB,#01H;给B寄存器赋初值HERE:SJMPHERE;原地等待中断申请INT:MOVA,B;自B寄存器中取数RLA;左环移一次MOVB,A;存回B,备下次取用MOVP1,A;输出到P1口RETI;中断返回当外部中断源多于中断输入引脚时,可采取以下措施:1.用定时器计数输入信号端T0、T1作外部中断入口引脚;2.用串行口接收端RXD作外部中断入口引脚;3.用一个中断入口接受多个外部中断源,并加入中断查询

温馨提示

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

评论

0/150

提交评论