预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

单片机主中断原理有关中断的概念什么是中断我们从一个生活中的例子引入。你正在家中看书突然电话铃响了你放下书本去接电话和来电话的人交谈然后放下电话回来继续看你的书。这就是生活中的“中断”的现象就是正常的工作过程被外部的事件打断了。仔细研究一下生活中的中断对于我们学习单片机的中断也很有好处。第一、什么可经引起中断生活中很多事件可以引起中断:有人按了门铃了电话铃响了你的闹钟闹响了你烧的水开了….等等诸如此类的事件我们把可以引起中断的称之为中断源单片机中也有一些可以引起中断的事件8031中一共有5个:两个外部中断两个计数/定时器中断一个串行口中断。第二、中断的嵌套与优先级处理:设想一下我们正在看书电话铃响了同时又有人按了门铃你该先做那样呢?如果你正是在等一个很重要的电话你一般不会去理会门铃的而反之你正在等一个重要的客人则可能就不会去理会电话了。如果不是这两者(即不等电话也不是等人上门)你可能会按你通常的习惯去处理。总之这里存在一个优先级的问题单片机中也是如此也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况也发生在一个中断已产生又有一个中断产生的情况比如你正接电话有人按门铃的情况或你正开门与人交谈又有电话响了情况。考虑一下我们会怎么办吧。第三、中断的响应过程:当有事件产生进入中断之前我们必须先记住现在看书的第几页了或拿一个书签放在当前页的位置然后去处理不同的事情(因为处理完了我们还要回来继续看书):电话铃响我们要到放电话的地方去门铃响我们要到门那边去也说是不同的中断我们要在不同的地点处理而这个地点通常还是固定的。计算机中也是采用的这种方法五个中断源每个中断产生后都到一个固定的地方去找处理这个中断的程序当然在去之前首先要保存下面将执行的指令的地址以便处理完中断后回到原来的地方继续往下执行程序。具体地说中断响应可以分为以下几个步骤:1、保护断点即保存下一将要执行的指令的地址就是把这个地址送入堆栈。2、寻找中断入口根据5个不同的中断源所产生的中断查找5个不同的入口地址。以上工作是由计算机自动完成的与编程者无关。在这5个入口地址处存放有中断处理程序(这是程序编写时放在那儿的如果没把中断程序放在那儿就错了中断程序就不能被执行到)。3、执行中断处理程序。4、中断返回:执行完中断指令后就从中断处返回到主程序继续执行。究竟单片机是怎么样找到中断程序所在位置又怎么返回的呢?我们稍后再谈.MCS-51中断系统的结构:由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成包括5个中断请求源4个用于中断控制的寄存器IE、IP、ECON和SCON来控制中断类弄、中断的开、关和各种中断源的优先级确定。中断请求源:(1)外部中断请求源:即外中断0和1经由外部引脚引入的在单片机上有两个引脚名称为INT0、INT1也就是P3.2、P3.3这两个引脚。在内部的TCON中有四位是与外中断有关的。IT0:INT0触发方式控制位可由软件进和置位和复位IT0=0INT0为低电平触发方式IT0=1INT0为负跳变触发方式。这两种方式的差异将在以后再谈。IE0:INT0中断请求标志位。当有外部的中断请求时这位就会置1(这由硬件来完成)在CPU响应中断后由硬件将IE0清0。IT1、IE1的用途和IT0、IE0相同。(2)内部中断请求源TF0:定时器T0的溢出中断标记当T0计数产生溢出时由硬件置位TF0。当CPU响应中断后再由硬件将TF0清0。TF1:与TF0类似。TI、RI:串行口发送、接收中断在串口中再讲解。2、中断允许寄存器IE在MCS-51中断系统中中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。见下表EAxxESET1EX1ET0EX0其中EA是总开关如果它等于0则所有中断都不允许。ES-串行口中断允许ET1-定时器1中断允许EX1-外中断1中断允许。ET0-定时器0中断允许EX0-外中断0中断允许。如果我们要设置允许外中断1定时器1中断允许其它不允许则IE可以是EAxxESET1EX1ET0EX010001100即8CH当然我们也可以用位操作指令SETBEASETBET1SETBEX1来实现它。3、五个中断源的自然优先级与中断服务入口地址外中断0:0003H定时器0:000BH外中断1:0013H定时器1:001BH串口:0023H它们的自然优先级由高到低排列。写到这里大家应当明白为什么前面有一些程序一始我们这样写:ORG0000HLJMPSTARTORG0030HSTART:。。这样写的目的就是为了让出中断源所占用的向量地址。当然在程序中没用中断时直接从0000H开始写程序在原理上并没有错但在实际工作中最好不这样做。优先级:单片机采用了自然优先级和人工设置高、低优先级的策