第05章:中断系统PPT幻灯片.ppt_第1页
第05章:中断系统PPT幻灯片.ppt_第2页
第05章:中断系统PPT幻灯片.ppt_第3页
第05章:中断系统PPT幻灯片.ppt_第4页
第05章:中断系统PPT幻灯片.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、2020/8/15,1,第5章 中断系统,单片机原理与应用系统设计 电子工业出版社 , 2009.7,2020/8/15,2,本章主要内容,中断的概念 89S51的中断系统结构与控制 中断应用举例,2020/8/15,3,5.1 中断的概念,在执行程序的过程中,由于某种外界的原因,必须尽快终止当前的程序执行,而去执行相应的处理程序,待处理结束后,再回来继续执行被终止的程序。这个过程叫中断。,2020/8/15,4,日常生活中中断的例子,返回,你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。,正在 看书,看书,继续看书,页码,电话铃响,听到电话铃声,

2、接电话,回到书桌,2020/8/15,5,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,单片机中的中断概念,2020/8/15,6,提高CPU的效率 提高实时数据的处理时效 故障处理,中断技术的优点,2020/8/15,7,中断系统相关的概念,主程序 中断源 中断请求 中断响应 中断服务程序 断点 中断返回 中断优先级 中断嵌套,2020/8/15,8,5.2 89S51的中断系统结构与控制,5个中断源:INT0、INT1 、T0 、T1、串行口 具有二个中断优先级,可实现二级中断服务程序的嵌套。每个中断源均可软件编程为高优先级或低优先级中断,允许或

3、禁止向CPU请求中断。,CPU 在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。,2020/8/15,9,中断系统结构图,2020/8/15,10,中断矢量,2020/8/15,11,中断控制,与中断控制有关的特殊功能寄存器(SFR)有: 定时器/计数器控制寄存器TCON(涉及其中6位) 串行口控制寄存器SCON(涉及其中2位) 中断允许寄存器IE 中断优先级控制寄存器IP 注:均可位寻址。,2020/8/15,12,定时器控制寄存器TCON (88H),TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TCON,IE0/IE1:

4、外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。,IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效.,TCON:Timer控制寄存器,低4位管理外部中断,2020/8/15,13,定时器控制寄存器TCON (88H),TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TCON,TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。,TR0/TR1:定时器运行启停控制位: =0:定时器停止运行; =

5、1:定时器启动运行。,TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断),2020/8/15,14,在CPU已经开放了外部中断允许的前提下: 在INT0/INT1引脚输入一个负脉冲或低电平, TCON寄存器中的IE0/IE1标志位自动变“1”, 检测到IE0/IE1变“1”后,将产生指令: LCALL 0003H(/0013H)执行中断服务程序, 并将IE0/IE1标志位自动清“0”,以备下次申请。,外部中断(INT0,INT1)申请过程,2020/8/15,15,串行口控制寄存器SCON (98H),SM0 SM1 SM2 REN TB8 RB8 TI RI,S

6、CON,串行口中断:发送中断TI和接收中断RI逻辑或后,做为内部的一个中断源。,注意:响应串行口中断后,CPU并不清零中断标志位,必须软件清零。(SCON的低两位。),低2位为串行口中断请求标志,2020/8/15,16,中断响应后,TCON或SCON中的中断请求标志应及时清除。 否则就意味着中断请求仍然存在。 1、定时中断硬件自动撤除定时: 中断响应后,硬件自动把标志位(TF0/TF1)清0,因此 定时中断的中断请求是硬件自动撤除的。不需要用户 干预。 2、串行中断请求的撤除:由软件方法完成 串行中断的标志位是TI和RI,但对这两个中断标志不进行自动清0。因为在中断响应后还需测试这两个标志位

7、的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行中断请求的撤除也应使用软件方法,在中断服务程序中进行。需由用户完成。 如:CLR TI ;TI标志位清0 CLR RI ;RI标志位清0,2020/8/15,17,3、脉冲方式外部中断请求的撤消:硬件自动撤除 外部中断的撤消包括两项内容: (1)中断标志位的置“0”:中断响应后由硬件电路自动完成; (2)外中断请求信号的撤消:随脉冲信号过后消失随即自动撤消。 4、电平方式外部中断请求的撤消:自动与强制撤除 通过硬件自动地使标志位(IE0或IE1)清0。电平请求方式光靠清除中断标志,并不能彻底解决中断请求的撤除问题。需在中断响应后把中断

8、请求输入端从低电平强制改为高电平。,2020/8/15,18,外部低电平中断的撤除,外来的低电平反相CP端产生上跳沿 D端的“0”锁存到Q端申请中断,INTx,P1.0,CP,S,Q,D,外来中断申请信号(低电平),MCS-51,74LS74,S=0 则 Q=1,中断返回前对P1.0送“0” 令Q端变为“1” 指令如下: ORL P1,#01H ;令S端置“1” ANL P1,#0FEH = CLR P1.0 ;令Q端置“1” ORL P1, #01H = SETB P1.0 ;令S端置“1”,以免下次中断来时Q端不能变“0”,2020/8/15,19,EA ES ET1 EX1 ET0 EX

9、0,IE,中断允许寄存器IE (0A8H),EX0/EX1/ET1/ET0/ES 位: 分别是INT0/1,Timer0/1,串行口的中断允 许控制位: =0 时禁止中断; =1 时允许中断。 EA:总的中断允许控制位(总开关): =0 时禁止全部中断;=1 时允许中断。,2020/8/15,20,例5.2 若允许片内两个定时器/计数器溢出中断,同时屏蔽其他中断源,请编程设置IE。 (1)用位操作指令编程如下 CLR ES ;禁止串行口中断 CLR EX1 ;禁止外部中断1中断 CLR EX0 ;禁止外部中断0中断 SETB ET1 ;允许定时器/计数器T1溢出中断 SETB ET0 ;允许定

10、时器/计数器T0溢出中断 SETB EA ;CPU开中断 (2)用字节操作指令编程如下 MOV IE, #8AH 或 MOV 0A8H, #8AH ; IE的字节地址为A8H,中断优先级控制寄存器IP (字节地址B8H,位地址B8HBFH),IP,()51单片机有两个中断优先级高级和低级。 相应位为1,对应的中断源被设置为高优先级 相应位为0,对应的中断源被设置为低优先级 ()系统复位时,均为低优先级 ()中断优先级是为中断嵌套服务的,原则是: 低优先级中断请求不能打断高优先级的中断服务,反之则 可以,从而实现中断嵌套。 若一个中断请求已被响应,则同级的其他中断响应被禁止。 如果同级的多个中断

11、请求同时出现,则按照自然优先级顺序确定优先级别, 从高到低依次为: 外部中断0定时器中断0 外部中断1定时器中断1串行中断,21,2020/8/15,22, PT2 PS PT1 PX1 PT0 PX0,IP,PX0/PX1:INT0/1优先级控制位: =0 时属低优先级; =1 时属高优先级。 PT0/PT1/PT2:T0/1/2中断优先级控制位: =0 时属低优先级; =1 时属高优先级。 PS1:串行口中断优先级控制位: =0 时属低优先级; =1 时属高优先级。,中断优先级控制寄存器IP (0B8H),2020/8/15,23,对同时发生多个中断申请时: 不同优先级的中断同时申请 先高

12、后低 相同优先级的中断同时申请 按序执行 正处理低优先级中断又接到高级别中断 高打断低 正处理高优先级中断又接到低级别中断 高不理低,中断优先级处理原则,2020/8/15,24,没有同级的中断或更高级别的中断正在处理;,在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件:,正在执行的指令必须执行完最后 1个机器周期;,若正在执行RETI,或正在访问IE或IP寄存器,须执行完上述指令和下一条指令以后方能响应中断。,2020/8/15,25,例5.3 若要求设置89S51的片外中断为高优先级,片内中断为低优先级,请编程设置IP (1)用位操作指令编程如下。 SETB P

13、X0 SETB PX1 CLR PS CLR PT0 CLR PT1 (2)用字节操作指令编程如下 MOV IP , #05H 或 MOV 0B8H, #05H ;IP的字节地址为B8H,2020/8/15,26,中断系统的编程,开相应中断源的中断;(IE) 设定中断优先级;(IP) 若为外部中断,设定外部中断的触发方式(TCON)。 在相应的中断入口处写入中断程序。 中断子程序的最后一条指令为RETI。,2020/8/15,27,中断应用程序举例:,通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。 已知: (B)=01h,要求采用边沿触发,低优先级。,例:在INT1引脚接一个按钮开

14、关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。,P1.0 P1.7,INT1,300,2020/8/15,28,ORG 0000H LJMP MAIN ORG 0013H ;中断矢量 LJMP INT MAIN:SETB EA ;开总中断允许“开关” SETB EX1 ;开分中断允许“开关” CLR PX1 ;0 优先级(也可不要此句) SETB IT1 ;边沿触发 MOV B,#01H ;给 B 寄存器赋初值 HERE:SJMP HERE ;原地等待中断申请,INT:MOV A,B ;自B寄存器中取数 RL A ;左环移一次 MOV B,A ;存回B,备下次取用

15、MOV P1,A ;输出到P1口 RETI ;中断返回,中断服 务程序,2020/8/15,29,例5.5 图5.9给出了一个 采用外部中断源的数据采集系统示意图。将89S51的P1口设置成数据输入口,外围设备每准备好一个数据时,发出一个选通信号(负脉冲),经D触发器74LS74送给单片机引脚INT1,通知CPU进行处理。试编写主程序及中断服务程序。,INT1,P3.0,CLK,S,Q,D,外来中断申请信号(低电平),89S51,74LS74,S=0 则 Q=1,P1.0,数据输入,2020/8/15,30,解:(1)主程序如下: ORG 0000H LJMP MAIN ;跳转至主程序 ORG 0013H LJMP INT1 ;跳转至外部中断1的中断服务程序 ORG 0030H MAIN: CLR IT1 ;外部中断1设置为电平触发方式 SETB EA ;CPU开中断 SETB EX1 ;外部中断1允许中断 MOV DPTR, #1000H ;设置数据缓冲区地址指针 ,2020/8

温馨提示

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

最新文档

评论

0/150

提交评论