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

下载本文档

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

文档简介

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

2、原因,必须终止当前执行的程序,而的原因,必须终止当前执行的程序,而 去执行相应的处理程序,待处理结束后,去执行相应的处理程序,待处理结束后, 再回来继续执行被终止的程序。这个过再回来继续执行被终止的程序。这个过 程叫程叫中断中断。中断是通过硬件来改变。中断是通过硬件来改变CPU 程序运行方向的一种技术,它既和硬件程序运行方向的一种技术,它既和硬件 有关,也和软件有关。有关,也和软件有关。 中断的概念 上页上页下页下页回目录回目录 执行主 程序 主程序 继续执行 主程序 断点 中断请求 中断响应 执行 中断 处理 程序 中断返回 中断源中断源 n1.外部设备中断源 计算机的输入/输出设备,如:键

3、盘、打印 机等 n2故障源 产生故障信息的来源。分为内部和外部。 n3控制对象中断源 实时控制时的被控对象,如电压、电流温 度等超过其上限或下限 n4定时/计数脉冲中断源 定时/计数器的溢出 中断请求中断请求 RETI 主程序主程序 中断服务子程序中断服务子程序 返主程序返主程序 上页上页下页下页回目录回目录 中断请求中断请求 低级中断请求低级中断请求 RETI 主程序主程序 高级中断服务子程序高级中断服务子程序 返主程序返主程序 高级中断请求高级中断请求 返返低级中断低级中断 上页上页下页下页回目录回目录 RETI 低级中断服务子程序低级中断服务子程序低级中断服务子程序低级中断服务子程序 8

4、.2 AT89S51单片机的中断系统 8.2.1 中断系统的结构 AT89S51的中断系统主要由几个中断源、中 断控制、中断允许、中断优先级和顺序查询逻 辑电路等组成。 上页上页下页下页回目录回目录 上页上页下页下页回目录回目录 定时中断 定时/计数器溢出时,置相应的中断标志位 串行口中断 每当串行口由TXD端发送完1个完整的串行帧数 据,或从RXD端接收完1个完整的串行帧数据时, 会使内部中断相应的标志位置1,请求中断。 中断源自然优先级中断入口地址 INT0中断 T0中断 INT1中断 T1中断 串口发送/接收中 断 最高 最低 0003H 000BH 0013H 001BH 0023H

5、上页上页下页下页回目录回目录 上页上页下页下页回目录回目录 上页上页下页下页回目录回目录 上页上页下页下页回目录回目录 上页上页下页下页回目录回目录 上页上页下页下页回目录回目录 上页上页下页下页回目录回目录 8.3 8.3 中断响应和中断返回中断响应和中断返回 我们人可以响应外界的事件,是因为我们有多种我们人可以响应外界的事件,是因为我们有多种“传感器传感器 “眼、耳可以接受不同的信息,计算机是如何做到这眼、耳可以接受不同的信息,计算机是如何做到这 点的呢?点的呢?80C51工作时,在每个机器周期中都会去查询工作时,在每个机器周期中都会去查询 一下各个中断标记,看他们是否是一下各个中断标记,

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

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

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

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

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

11、级别的设定(即中断源优先级排队); n外部中断请求的触发方式设置。 中断管理与控制程序一般不独立编写,而 是包含在主程序中,根据需要通过几条指令来 实现。 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端口定

12、时求反操 作,定时时间1ms。T0中断服务程序入口地址为000BH。 源程序如下: 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 ;启动T0 HERE:SJMP HERE ;循环等待定时时间 要求每次按动按键,使外接发光二极管要求每次按动按键,使外接发

13、光二极管LEDLED改变一次亮灭状态。改变一次亮灭状态。 解:解:INT0INT0输入按键信号,输入按键信号,P P1.0 1.0输出改变 输出改变LEDLED状态。状态。 1 1跳变触发跳变触发:每次跳变引起一次中断请求。:每次跳变引起一次中断请求。 ORGORG 0000H 0000H;复位入口复位入口 AJMP MAINAJMP MAIN ORGORG0003H0003H;中断入口中断入口 AJMPAJMPPINT0PINT0 ORGORG0100H0100H;主程序主程序 MAINMAIN:MOV SPMOV SP,#40H#40H;设栈底设栈底 SETBSETBEAEA;开总允许开关

14、开总允许开关 SETBSETBEX0EX0;开开INT0INT0中断中断 SETBSETBIT0IT0;负跳变触发中断负跳变触发中断 H H:SJMPSJMPH H ;执行其它任务执行其它任务 ORGORG0200H0200H;中断服务程序中断服务程序 PINT0PINT0:CPL P1.0CPL P1.0;改变改变LEDLED RETIRETI;返回主程序返回主程序 单片机单片机 INT0 P1.0 1 +5V 例例2、处理外部中断、处理外部中断 ORGORG 0000H 0000H;复位入口复位入口 AJMP MAINAJMP MAIN ORGORG0003H0003H;中断入口中断入口

15、AJMPAJMPPINT0PINT0 ORGORG0100H0100H;主程序主程序 MAINMAIN:MOV SPMOV SP,#40H#40H;设栈底设栈底 SETBSETBEAEA;开总允许开关开总允许开关 SETBSETBEX0EX0;开开INT0INT0中断中断 CLRCLRIT0IT0;低电平触发中断低电平触发中断 H H:SJMPSJMPH H ;执行其它任务执行其它任务 ORGORG0200H0200H;中断服务程序中断服务程序 PINT0PINT0:CPL P1.0CPL P1.0;改变改变LEDLED WAITWAIT:JNBJNBP3.2P3.2,WAITWAIT;等按键

16、释放等按键释放 RETIRETI;返回主程序返回主程序 1 1软件等待按键释放。软件等待按键释放。 2 2硬件清除中断信号。硬件清除中断信号。 2. 电平触发:电平触发:避免一次按键引起多次中断响应。避免一次按键引起多次中断响应。 单片机单片机 INT0 P1.0 1 +5V 例例3 图图53所示为一检测报所示为一检测报 警电路,图中检测电路为无警电路,图中检测电路为无 锁按钮开关,锁按钮开关,P1.0、P1.1分分 别驱动声、光报警电路。别驱动声、光报警电路。 P1.0、P1.1端线输出端线输出“” 时报警电路工作。试设计一时报警电路工作。试设计一 程序,每当按键按下一次后程序,每当按键按下

17、一次后 ,P1.0,P1.1输出报警信号输出报警信号 10秒钟,并使内部秒钟,并使内部RAM 55H单元数据加单元数据加1,10秒钟秒钟 延时子程序为延时子程序为DELLAY10。 解:解: 参考程序如下:参考程序如下: 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, #00

18、H #00H ;计数器清零。;计数器清零。 CLR P1.0 CLR P1.0 ;关报警。;关报警。 CLR P1.1 CLR P1.1 MOV SP MOV SP, #30H #30H ;设置堆栈指针。;设置堆栈指针。 SETB IT0 SETB IT0 ;选择边沿触发中断方式。;选择边沿触发中断方式。 SETB EA SETB EA ;允许总中断。;允许总中断。 SETB EX0 SETB EX0 ;允许;允许INT0INT0申请中断。申请中断。 HEREHERE:SJMP HERE SJMP HERE ;等待中断;等待中断。 以下为中断服务子程序:以下为中断服务子程序: ORG 00A0

19、HORG 00A0H BJ BJ:PUSH ACC PUSH ACC ;保护现场。;保护现场。 MOV AMOV A, #03H #03H MOV P1 MOV P1, A A ;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 ;中断

20、返回。;中断返回。 例例4 4 如图如图5 54 4所示,当按键所示,当按键 AN1AN1或或AN2AN2按下时,会产生中断按下时,会产生中断 。试编程将。试编程将INT0INT0设为低优先级设为低优先级 ,INT1INT1设为高优先级,主程序设为高优先级,主程序 执行时循序点亮执行时循序点亮LEDLED;当;当INT0INT0产产 生中断后,执行中断子程序生中断后,执行中断子程序1 1, 此时此时8 8只只LEDLED全亮然后全暗,如全亮然后全暗,如 此此1616次后,返回主程序;当次后,返回主程序;当 INT1INT1产生中断后,执行中断子产生中断后,执行中断子 程序程序2 2,此时,此时

21、8 8只只LEDLED则为一次亮则为一次亮 4 4只,然后亮另外只,然后亮另外4 4只,如此只,如此1616 次后,返回主程序。次后,返回主程序。 解:参考程序如下:解:参考程序如下: ORG 0000HORG 0000H AJMP MAINAJMP MAIN ORG 0003HORG 0003H AJMP INT0AJMP INT0 ORG 0013HORG 0013H AJMP INT1 AJMP INT1 ORG 0030HORG 0030H MAINMAIN: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 ;

温馨提示

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

评论

0/150

提交评论