智能车制作

标题: 中断 [打印本页]

作者: 火0车0头    时间: 2010-10-13 18:25
标题: 中断
6.1 中断系统
51单片机   2009-07-21 08:43   阅读60   评论0   字号: 大大  中中  小小 6.1.3  80C51的中断系统的总体结构
80C51单片机有5个中断源2个优先级,这5个中断源是外部中断 、 ,定时计数器中断T0、T1,串行中断RI/TI,如图6-2左边所示 。每个中断源可用中断允许寄存器IE中的各位开放或禁止其中断,如图2中间部分所示。2个中断优先级是高优先级与低优先级,每个中断源可由中断优先权寄存器IP中各位设置其优先级。如图2右边所示,每个中断源的开放、禁止及优先级可以用软件设置。

1.中断请求标志
(1)中断标志寄存器TCON
TCON为特殊功能寄存器,其地址为88H,TCON中8位含义及位地址如图6-3所示。TCON的低4位用于外部中断 、 ,其中:IT0与IT1为外部中断方式的选择位,IE0、IE1为外部中断触发标志位。高4位用于定时计数器T1、T0,其中TF0、TF1为定时中断触发标志位,TR0与TR1为定时器运行控制位。因为TCON可位寻址操作,所以可用SETB与CLR指令将TCON各位清零或置1。

(2)外部中断
外部中断 有2种,即低电平与负脉冲方式。IT0=0 ; 引脚输入低电平产生中断。 IT0=1 ;由 引脚输入负脉冲使IE0置1。
当CPU响应中断时,由硬件自动将IE0清零,以避免重复中断。
与 中断请求方式是相同,
例6-1 将 设置为低电平中断, 将 设置为负脉冲中断。
解:   CLR        IT0
       SETB      IT1
(3)定时器中断
80C51单片机有2个定时器T0与T1。T0与T1是通过其内部加1计数器溢出后将定时器中断标志TF0(或TF1)置1来向CPU请求中断的。
①定时器T0
定时器中断标志TF0:当T0的加1计数器发生溢出时,将TF0置1(T0的加1计数器将在定时器一节中介绍)。
TF0=1 ;表示T0向CPU发中断请求。
TF0=0 ;表示T0未向CPU发中断请求。
②定时器T1(与T0类同)
(4)串行中断:在串行通讯时,接收到一帧信息后串行口将接收中断标志RI置1,发送完一帧信息后串行口将发送中断标志TI置1,以此来向CPU发中断请求。
注意:RI、TI必须硬件清零。
2.中断控制
(1)中断允许控制寄存器IE
EA

×

×

ES

ET1

EX1

ET0

EX0


位地址  AF     AE    AD   AC    AB    AA    A9   A8
①CPU中断允许位EA
  EA=1 :CPU允许中断;  EA=0 :CPU禁止中断。
②各中断源中断允许位
IE寄存器中ES为串行中断允许位,ET1与ET0为定时器T1与T0的中断允许位,EX1与EX0为外部中断 与 的中断允许位。各位取1时允许中断,取0时禁止中断。
(2)中断优先级的设置寄存器IP
  ×

×

×

PS

PT1

PX1

PT0

PX0


    位地址  BF      BE       BD       BC     BB       BA       B9      B8
  IPi= 1     ;表示第i个中断源为高优先级。
      IPi=0      ;表示第i个中断源为低优先级。
例6-2 设置:外部中断 为负脉冲请求中断,高优先级,开中断。外部中断 为低电平请求中断,低优先级,开中断。
解:   SETB         IT0             ;设置 为负脉冲中断
           SETB         PX0             ;设置高优先级
           SETB         EX0             ;开中断
       CLR          IT1             ;设置 低电平中断
       CLR          PX1             ;设置低优先级
       SETB         EX1             ;开中断
       SETB         EA              ;CPU开中断
(3)优先级处理原则
① 不同级同时申请:先高后低。即先响应高优先级中断请求,然后再响应低优先级中断。
②处理低级中断又收到高级中断:停低转高。即:暂停低优级中断,执行高优级中断。
③处理高级中断又收到低级中断:高不睬低。即:继续执行高优先级中断。
④同级同时申请:按 →T0→ →T1→TI/RI次序响应。
<>
中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。80C51系列单片机各中断源的入口地址由硬件事先设定,分配如下:
                    中断源           入口地址
                    外部中断0          0003H
                    定时器0中断        000BH
                    外部中断1          0013H
                    定时器1中断        001BH
                    串行口中断         0023H
       将定时器1中断,其中断服务程序入口地址地址跳转到CONT的指令为:
                     ORG              001BH                ;定时器1中断入口
                     LJMP             CONT                 ;转向中断服务程序
<>
一般包括两部分内容:一是保护现场,二是完成中断源请求的服务。
<>
中断返回是指中断服务完后,计算机返回原来断开的位置(即断点)。继续执行原来的程序。中断返回由中断返回指令RETI来实现。该指令的功能是把断点地址从堆栈中弹出,送回到程序计数器PC,此外,还通知中断系统己完成中断处理,并同时清除优先级状态触发器,特别要注意不能用“RET”指令代替“RETI”指令。
参考资料:http://blog.163.com/liuyunfeng484/blog/static/6683171520096218436461/
4回答者: aleda
作者: 吴铭鸿    时间: 2011-8-7 02:47
哇》》》》》




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2