第6章中断系统_第1页
第6章中断系统_第2页
第6章中断系统_第3页
第6章中断系统_第4页
第6章中断系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

6.1中断的基本概念6.2MCS-51的中断系统6.3中断的应用,第章中断系统,本章内容,SingleChipMicrocomputer,6,6.1中断的基本概念,日常生活中断的例子单片机中的中断概念,日常中断的例子,返回,你正在专心看书,突然电话铃响,于是你记下正在看书的页数,去接电话,接完电话后再回来接着看书。,6.1中断的基本概念,电话铃响,记页数,计算机中的中断概念,6.1中断的基本概念,保护断点,中断请求,中断:是指由于某种随机事件的发生,计算机暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。,计算机中的中断概念,6.1中断的基本概念,中断源:能发出中断请求信号的设备或某种事件。主程序:CPU现行运行的程序。中断服务程序:处理随机事件的程序。断点:主程序被断开的位置。,6.2MCS-51中断系统,中断源中断标志中断允许中断优先级MCS-51中断系统结构中断寄存器,MCS-51的中断系统中断源,8051单片机有5个中断请求源:,单片机,6.2MCS-51中断系统,MCS-51的中断系统中断标志,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中断源,中断标志位,每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。,6.2MCS-51中断系统,MCS-51的中断系统中断允许,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中断源,中断标志位,EA总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断;某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁止相应中断源的中断。,中断允许,ES,ET0,EX0,EX1,ET1,EA,6.2MCS-51中断系统,MCS-51的中断系统中断优先级,CPU,主程序,INT0,INT1,T0,T1,串口,IE0,TF0,IE1,TF1,中断源,中断标志位,单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。,中断允许,ES,ET0,EX0,EX1,ET1,EA,自然优先级,优先控制,PS,PT0,PX0,PX1,PT1,6.2MCS-51中断系统,IE0,TCON,SCON,TF0,IE1,TF1,T0,T1,TI,RI,TXD,RXD,ES,ET0,EX0,EX1,ET1,EA,自然优先级,高级中断请求,自然优先级,低级中断请求,PX0,PT0,PX1,PT1,PS,IE,IP,MCS-51的中断系统结构图,中断标志位,中断源允许,总允许,中断优先级,6.2MCS-51中断系统,CPU,主程序,TCON寄存器T0和T1控制寄存器,TCON,T1溢出中断标志(TCON.7):T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。TF0与TF1一致!,6.2MCS-51中断系统,TR1,TR0,TCON88H,外部中断INT1中断标志位(TCON.3):IE11,外部中断1向CPU申请中断,外部中断INT1触发方式控制位(TCON.2):IT1=0,电平触发方式IT1=1,下降沿触发方式,TCON寄存器T0和T1控制寄存器,注意:该寄存器可以位寻址。,6.2MCS-51中断系统,TR1,TR0,返回,TI(SCON.1)串行发送中断标志。RI(SCON.0)串行接收中断标志。,SCON寄存器串行口控制寄存器,SCON98H,注意:该寄存器可以位寻址。,6.2MCS-51中断系统,IE寄存器中断允许寄存器,IEA8H,例:允许定时器T0中断:EA=1;ET0=1;或IE=82H,注意:该寄存器可以位寻址。,6.2MCS-51中断系统,51单片机有两个中断优先级高级和低级专用寄存器IP为中断优先级寄存器,用户可用软件设定相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级系统复位时,均为低优先级该寄存器可以位寻址,IP寄存器中断优先级寄存器,IPB8H,6.2MCS-51中断系统,中断处理过程,中断处理过程包括中断响应和中断处理两个阶段。,6.2MCS-51中断系统,1.中断响应,中断响应:指CPU对中断源中断请求的响应。CPU响应中断的条件:(1)有中断源发出中断请求;(2)中断总允许位EA置1;(3)申请中断的中断源允许位置1。,2.中断处理过程:就是自动调用并执行中断函数的过程。,C51中断函数的定义形式为:void函数名()interruptn其中n为中断类型号,6.2MCS-51中断系统,INT0:外部中断0,INT1:外部中断1,T0:定时器0,T1:定时器0,串行口,0,1,2,3,4,中断源,中断类型号n,中断请求的撤除,CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TF0或TF1,即中断请求是自动撤除的。外部中断:CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0或IE1。串行口中断:CPU响应中断后,没有用硬件清除T1、R1,故这些中断不能自动撤除,而要靠软件来清除相应的标志。,6.2MCS-51中断系统,IE0,TCON,SCON,TF0,IE1,TF1,T0,T1,TI,RI,TXD,RXD,ES,ET0,EX0,EX1,ET1,EA,自然优先级,高级中断请求,自然优先级,低级中断请求,PX0,PT0,PX1,PT1,PS,IE,IP,MCS-51的中断系统结构图,中断标志位,中断源允许,总允许,中断优先级,回顾:,CPU,主程序,例1通过P1.0P1.7控制发光二极管,主程序实现发光二级管间隔1秒循环全亮全灭。利用外部中断0,实现8个灯间隔1秒依次亮起一次。,6.3中断系统的应用,程序如下:,#include,voiddelay1s()unsignedchari;TMOD=0 x10;for(i=0;i20;i+)TH1=0 x3c;TL1=0 xb0;TR1=1;while(!TF1);TF1=0;,/外部中断0服务程序voidint0()interrupt0unsignedcharj;for(j=0;j8;j+)P1=(0 x01j);delay1s();,voidmain()EA=1;EX0=1;IT0=1;while(1)P1=0 x00;delay1s();P1=0 xff;delay1s();,例1通过P1.0P1.7控制发光二极管,主程序实现发光二级管间隔1秒循环全亮全灭。利用外部中断0,实现8个灯间隔1秒依次亮起一次。,硬件原理图,例2通过P1.0P1.7控制发光二极管,主程序实现实现8个灯间隔1秒依次亮起,循环显示。利用外部中断1,实现发光二级管间隔1秒全亮全灭一次。,#include,voiddelay1s()unsignedchari;TMOD=0 x10;for(i=0;i20;i+)TH1=0 x3c;TL1=0 xb0;TR1=1;while(!TF1);TF1=0;,/外部中断1服务程序voidint1()interrupt2P1=0 x00;delay1s();P1=0 xff;delay1s();,/主程序voidmain()unsignedcharj;EA=1;EX1=1;IT1=1;while(1)for(j=0;j8;j+)P1=(0 x01j);delay1s();,程序设计:,例2通过P1.0P1.7控制发光二极管,主程序实现实现8个灯间隔1秒依次亮起,循环显示。利用外部中断1,实现发光二级管间隔1秒全亮全灭一次。,例3主程序实现发光二级管间隔1秒循环全亮全灭。利用外部中断0,实现8个灯间隔1秒依次亮起,循环2次后返回;利用外部中断1,实现8个灯间隔1秒依次熄灭,循环2次后返回。,#include,voiddelay1s()unsignedchari;TMOD=0 x10;for(i=0;i20;i+)TH1=0 x3c;TL1=0 xb0;TR1=1;while(!TF1);TF1=0;,/外部中断0服务程序voidint0()interrupt0unsignedchari,j;for(i=0;i2;i+)for(j=0;j8;j+)P1=(0 x01j);delay1s();,/外部中断1服务程序voidint1()interrupt2unsignedchari,j;for(i=0;i2;i+)for(j=0;j8;j+)P1=0 x01j;delay1s();,例3主程序实现发光二级管间隔1秒循环全亮全灭。利用外部中断0,实现8个灯间隔1秒依次亮起,循环3次后返回;利用外部中断1,实现8个灯间隔1秒依次熄灭,循环3次后返回。,/主程序voidmain()EA=1;EX0=1;IT0=1;EX1=1;IT1=1;while(1)P1=0 x00;delay1s();P1=0 xff;delay1s();,练习,利用外部中断0向CPU申请中断,中断服务程序实现将P1口8个灯全亮。,#include,/外部中断0服务程序voidint0()interrupt0P1=0 x00;,voidmain()EA=1;EX0=1;IT0=1;while(1);,外部中断0,实现8个灯间隔1秒依次亮起。,练习,利用外部中断1,实现8个灯间隔1秒依次熄灭。,外部中断0,实现8个灯间隔1秒依次亮起。,#include,voiddelay1s()unsignedchari;TMOD=0 x10;for(i=0;i20;i+)TH1=0 x3c;TL1=0 xb0;TR1=1;while(!TF1);TF1=0;,/外部中断0服务程序voidint0()interrupt0unsignedcharj;for(j=0;j8;j+)P1=(0 x01i);delay1s();,/主程序voidmain()EA=1;EX0=1;IT0=1;while(1);,练习,利用外部中断1,实现8个灯间隔1秒依次熄灭。,#include,voiddelay1s()unsignedchari;TMOD=0 x10;for(i=0;i20;i+)TH1=0 x3c;TL1=0 xb0;TR1=1;while(!TF1);TF1=0;,/外部中断1服务程序voidint1()interrupt2unsignedcharj;for(j=0;j8;j+)P1=0 x01i;delay1s();,/主程序voidmain()unsignedcharj;EA=1;EX1=1;IT1=1;while(1);,练习,练习:通过P1.0P1.7控制发光二极管,主程序实现8个灯正向依次点亮,反向两两点亮,时间间隔都为0.5s。利用外部中断1,实现发光二级管间隔1秒全亮全灭一次。,#include,voiddelay_t(unsignedchart)unsignedchari;TMOD=0 x10;for

温馨提示

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

评论

0/150

提交评论