电路-中断系统_第1页
电路-中断系统_第2页
电路-中断系统_第3页
电路-中断系统_第4页
电路-中断系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、中断系统是计算机的重要指标之一中断系统是计算机的重要指标之一。一、一、 中断概念中断概念某人看书某人看书 执行主程序执行主程序 日常事务日常事务电话铃响电话铃响 中断信号中断信号INT=0INT=0 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点电话谈话电话谈话 执行执行I/I/O程序程序 中断服务中断服务继续看书继续看书 返回主程序返回主程序 中断返回中断返回日常事务程序日常事务程序中断服务程序中断服务程序 在程序的执行过程中,由于某种外界在程序的执行过程中,由于某种外界的原因,必须终止当前执行

2、的程序,而的原因,必须终止当前执行的程序,而去执行相应的处理程序,待处理结束后,去执行相应的处理程序,待处理结束后,再回来继续执行被终止的程序。这个过再回来继续执行被终止的程序。这个过程叫程叫中断中断。中断是通过硬件来改变。中断是通过硬件来改变CPU程序运行方向的一种技术,它既和硬件程序运行方向的一种技术,它既和硬件有关,也和软件有关。有关,也和软件有关。中断的概念 执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回中断源中断源n1.外部设备中断源 计算机的输入/输出设备,如:键盘、打印机等n2故障源 产生故障信息的来源。分为内部和外部。n3控制对象中断源 实时控制时的

3、被控对象,如电压、电流温度等超过其上限或下限n4定时/计数脉冲中断源 定时/计数器的溢出中断请求中断请求RETI主程序主程序中断服务子程序中断服务子程序返主程序返主程序中断请求中断请求低级中断请求低级中断请求RETI主程序主程序高级中断服务子程序高级中断服务子程序返主程序返主程序高级中断请求高级中断请求返低级中断返低级中断RETI低级中断服务子程序低级中断服务子程序低级中断服务子程序低级中断服务子程序 8.2 AT89S51单片机的中断系统 8.2.1 中断系统的结构 AT89S51的中断系统主要由几个中断源、中断控制、中断允许、中断优先级和顺序查询逻辑电路等组成。 定时中断 定时/计数器溢出

4、时,置相应的中断标志位串行口中断 每当串行口由TXD端发送完1个完整的串行帧数据,或从RXD端接收完1个完整的串行帧数据时,会使内部中断相应的标志位置1,请求中断。中断源自然优先级中断入口地址INT0中断T0中断INT1中断T1中断串口发送/接收中断最高最低0003H000BH0013H001BH0023H8.3 8.3 中断响应和中断返回中断响应和中断返回我们人可以响应外界的事件,是因为我们有多种我们人可以响应外界的事件,是因为我们有多种“传感器传感器“眼、耳可以接受不同的信息,计算机是如何做到这眼、耳可以接受不同的信息,计算机是如何做到这点的呢?点的呢?80C51工作时,在每个机器周期中都

5、会去查询工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是一下各个中断标记,看他们是否是“1“,如果是,如果是1,就说,就说明有中断请求了,所以所谓中断,其实也是查询,不过是明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。是不是有人按门铃,是否有电话。 CPU CPU响应中断的条件:响应中断的条件:(1)有中断源发出中断申请;(2)中断总允许位EA1,

6、即CPU允许所有中断源申请 中断;(3)申请中断的中断源的中断允许位为1 。以上是CPU响应中断的基本条件。若满足,CPU一般会响应中断,但如果有下列任何一种情况存在,则中断响应会受到阻断。 (1)CPU正在执行一个同级或高一级的中断服务程序; (2)当前的机器周期不是正在执行指令的最后一个周期; (3)正在执行的指令是返回(RETI)指令或者对专用寄存器IE、IP进行读写的指令,此时,在执行RETI或者读写IE或IP之后,不会马上响应中断请求 n中断响应中的中断响应中的CPUCPU自主操作:自主操作:(1) 置位响应的优先级状态寄存器,标明所响应中断的优先级别;(2) 中断源标志清零(TI、

7、RI 除外);(3) 中断断点地址压入堆栈保护(不保护PSW);(4) 中断入口地址送PC,程序转到中断入口地址处。nCPUCPU执行执行RETI RETI 指令时的自主操作:指令时的自主操作:(1) 优先级状态寄存器清零;(2) 断点地址从堆栈中弹出至PC,程序返回到断点处继续执行。2.中断处理 n在编写中断服务程序时需注意的主要事项是:n(1)注意保护现场和恢复现场 n(2)在中断入口地址单元处存放一条无条件转移指令 n(3)如果要禁止更高优先级中断源中断,应先关闭CPU中断,或屏蔽更高级中断源的中断,在中断返回前再开放中断。 n(4)在保护现场和恢复现场时,为了不使现场数据受到破坏或者造

8、成混乱,一般规定此时CPU不响应新的中断请求。 3 中断返回 n中断返回由专门的中断返回指令RETI 实现 4 中断请求的撤除 n对定时器0或1溢出中断标志TF0或TF1,还有边沿触发的外部中断标志IE0或IE1 ,在CPU响应中断后,是硬件自动撤除的。n对于串行口中断标志TI、RI ,CPU响应中断后,不能用硬件清除,而要靠软件来清除相应的标志。n只有对于电平激活的外部中断,撤除方法较复杂。要通过硬件,再配合软件来解决。 5 中断响应时间 n不同的情况对中断响应的时间是不同的。 n一般情况可不考虑响应时间,但在精确定时的场合需要考虑此问题。 6 扩充外中断源 n1. 利用定时器扩展外中断源法

9、n2. 中断和查询结合法 ;T0计数方式,自动装载计数方式,自动装载;置计数初值;置计数初值;T0开中断开中断;CPU开中断开中断;启动;启动T0工作工作n2. 中断和查询结合法 多外部中断源连接方法 图8-6 中断处理过程流程图(a) 主程序框图 (b)硬件自动完成框图 (c)中断服务程序框图8.4 中断程序的设计与应用 841 中断程序的一般设计方法 从编程的角度看,中断控制实质上就是对4个与中断有关的特殊功能寄存器TCON、 SCON、IE和IP进行管理和控制,它包括:nCPU中断的允许与禁止;n某中断源中断请求的允许与禁止(屏蔽);n各中断源优先级别的设定(即中断源优先级排队);n外部

10、中断请求的触发方式设置。 中断管理与控制程序一般不独立编写,而是包含在主程序中,根据需要通过几条指令来实现。 n1主程序中的中断初始化n (l)CPU开中断与关中断;n (2)某中断源中断请求的允许和禁止(屏蔽);n (3)各中断源优先级别的设定;n (4)外部中断请求的触发方式。n 此外还有,各中断源的初始化和堆栈指针的设置。n2中断服务程序n8 84 42 2 中断程序应用举例中断程序应用举例例1、利用定时器T0定时,在P1. .1端输出一周期为2ms的方波。已知晶振频率为6MHz。 解:利用T0定时中断功能,对P1.1端口定时求反操作,定时时间1ms。T0中断服务程序入口地址为000BH

11、。 源程序如下: ORG 0000H LJMP 200H ORG 000BH AJMP 70H ORG 70H MOV TL0,# 0F0H ;重赋初值 MOV TH0,# 0D8H CPL P1.0 ;输出取反 RETI ORG 200H MOV TMOD,01H ;设置T0为方式1定时 MOV TL0,0FOH MOV TH0,OD8H MOV IE,82H ;CPU开中断,T0开中断 SETB TR0 ;启动T0HERE:SJMP HERE ;循环等待定时时间要求每次按动按键,使外接发光二极管要求每次按动按键,使外接发光二极管LEDLED改变一次亮灭状态。改变一次亮灭状态。解:解:INT

12、0INT0输入按键信号,输入按键信号,P P1.01.0输出改变输出改变LEDLED状态。状态。1 1跳变触发跳变触发:每次跳变引起一次中断请求。:每次跳变引起一次中断请求。 ORGORG 0000H 0000H;复位入口复位入口 AJMP MAINAJMP MAINORGORG0003H0003H;中断入口中断入口AJMPAJMPPINT0PINT0ORGORG0100H0100H;主程序主程序MAINMAIN:MOV SPMOV SP,#40H#40H;设栈底设栈底SETBSETBEAEA;开总允许开关开总允许开关SETBSETBEX0EX0;开开INT0INT0中断中断SETBSETBI

13、T0IT0;负跳变触发中断负跳变触发中断H H:SJMPSJMPH H ;执行其它任务执行其它任务ORGORG0200H0200H;中断服务程序中断服务程序PINT0PINT0:CPL P1.0CPL P1.0;改变改变LEDLEDRETIRETI;返回主程序返回主程序单片机单片机INT0P1.01+5V例例2、处理外部中断、处理外部中断 ORGORG 0000H 0000H;复位入口复位入口 AJMP MAINAJMP MAINORGORG0003H0003H;中断入口中断入口AJMPAJMPPINT0PINT0ORGORG0100H0100H;主程序主程序MAINMAIN:MOV SPMO

14、V SP,#40H#40H;设栈底设栈底SETBSETBEAEA;开总允许开关开总允许开关SETBSETBEX0EX0;开开INT0INT0中断中断CLRCLRIT0IT0;低电平触发中断低电平触发中断H H:SJMPSJMPH H ;执行其它任务执行其它任务ORGORG0200H0200H;中断服务程序中断服务程序PINT0PINT0:CPL P1.0CPL P1.0;改变改变LEDLEDWAITWAIT:JNBJNBP3.2P3.2,WAITWAIT;等按键释放等按键释放RETIRETI;返回主程序返回主程序1 1软件等待按键释放。软件等待按键释放。2 2硬件清除中断信号。硬件清除中断信号

15、。2. 电平触发:电平触发:避免一次按键引起多次中断响应。避免一次按键引起多次中断响应。单片机单片机INT0P1.01+5V例例3 图图53所示为一检测报所示为一检测报警电路,图中检测电路为无警电路,图中检测电路为无锁按钮开关,锁按钮开关,P1.0、P1.1分分别驱动声、光报警电路。别驱动声、光报警电路。P1.0、P1.1端线输出端线输出“”时报警电路工作。试设计一时报警电路工作。试设计一程序,每当按键按下一次后程序,每当按键按下一次后,P1.0,P1.1输出报警信号输出报警信号10秒钟,并使内部秒钟,并使内部RAM 55H单元数据加单元数据加1,10秒钟秒钟延时子程序为延时子程序为DELLA

16、Y10。解:解: 参考程序如下:参考程序如下: ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ;上电或复位后自动转向;上电或复位后自动转向主程序。主程序。 ORG 0003H ORG 0003H LJMP BJ LJMP BJ ;外中断;外中断0 0入口地址为入口地址为0003H0003H。 ORG 0030H ORG 0030H MAINMAIN:MOV 55HMOV 55H, #00H #00H ;计数器清零。;计数器清零。 CLR P1.0 CLR P1.0 ;关报警。;关报警。 CLR P1.1 CLR P1.1 MOV SP MOV SP, #30H

17、#30H ;设置堆栈指针。;设置堆栈指针。 SETB IT0 SETB IT0 ;选择边沿触发中断方式。;选择边沿触发中断方式。 SETB EA SETB EA ;允许总中断。;允许总中断。 SETB EX0 SETB EX0 ;允许;允许INT0INT0申请中断。申请中断。HEREHERE:SJMP HERE SJMP HERE ;等待中断;等待中断。 以下为中断服务子程序:以下为中断服务子程序: ORG 00A0HORG 00A0H BJ BJ:PUSH ACC PUSH ACC ;保护现场。;保护现场。 MOV AMOV A, #03H #03H MOV P1 MOV P1, A A ;

18、P1.0P1.0,P1.1P1.1置置1 1, ;即发出声光报警。;即发出声光报警。 LCALL DELAY10 LCALL DELAY10 ;延时;延时10S10S。 MOV AMOV A, #00H #00H MOV P1 MOV P1, A A ;清报警。;清报警。 INC 55H INC 55H ;计数器加;计数器加1 1。 POP ACC POP ACC ;现场恢复。;现场恢复。 RETI RETI ;中断返回。;中断返回。例例4 4 如图如图5454所示,当按键所示,当按键AN1AN1或或AN2AN2按下时,会产生中断按下时,会产生中断。试编程将。试编程将INT0INT0设为低优先

19、级设为低优先级,INT1INT1设为高优先级,主程序设为高优先级,主程序执行时循序点亮执行时循序点亮LEDLED;当;当INT0INT0产产生中断后,执行中断子程序生中断后,执行中断子程序1 1,此时此时8 8只只LEDLED全亮然后全暗,如全亮然后全暗,如此此1616次后,返回主程序;当次后,返回主程序;当INT1INT1产生中断后,执行中断子产生中断后,执行中断子程序程序2 2,此时,此时8 8只只LEDLED则为一次亮则为一次亮4 4只,然后亮另外只,然后亮另外4 4只,如此只,如此1616次后,返回主程序。次后,返回主程序。解:参考程序如下:解:参考程序如下:ORG 0000HORG

20、0000HAJMP MAINAJMP MAINORG 0003HORG 0003HAJMP INT0AJMP INT0ORG 0013HORG 0013HAJMP INT1 AJMP INT1 ORG 0030HORG 0030HMAINMAIN:MOV SPMOV SP, #30H #30H ;设堆栈指针。;设堆栈指针。 SETB PX1 SETB PX1 ;设外部中断;设外部中断1 1优先级为高。优先级为高。CLR PX0 CLR PX0 ;设外部中断;设外部中断0 0优先级为低。优先级为低。MOV TCONMOV TCON,#05H #05H ;设边沿触发。;设边沿触发。SETB EA SETB EA ;允许总中断。;允许总中断。SETB EX0 SETB EX0 ;允许;允许INT0INT0中断。中断。SETB EX1 SETB EX1 ;允许;允许INT1INT1中断。中断。MOV AMOV A, #01H #01H ;从;从P1.7P1.7至至P1.0P1.0循序亮一只。循序亮一

温馨提示

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

评论

0/150

提交评论