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

下载本文档

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

文档简介

第六章中断系统中断的概念8051中断系统的结构

★★

中断源中断控制中断处理中断系统举例主要内容

中断的概念8051中断系统的结构★★

中断源中断控制中断处理中断系统举例主要内容中断的概念CPU在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。CPU中止当前的工作,转到中断服务处理程序处理事件。然后,回到原来被中止的地方,继续工作,称为中断(Interrupt)。CPU处理事件的过程,称为CPU的中断响应过程(InterruptResponse)。日常生活的中断中断举例单片机的中断日常生活中的中断示图做记号接电话看书继续看书中断服务中断请求中断源向CPU提出的处理请求,称为中断请求(或中断申请)。对事件的整个处理过程,称为中断处理(或中断服务)。能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源单片机中的中断示图主程序继续执行主程序中断请求响应中断中断返回断点地址入口地址中断服务程序分时操作实时操作故障及时处理中断的优点中断的概念

MCS-51中断系统的结构

★★

中断源中断控制中断处理中断系统举例主要内容★★8051的中断系统5个中断源,具有二个中断优先级,可实现二级中断服务程序的嵌套。有关的特殊功能寄存器(SFR)有:中断允许寄存器IE中断优先级控制寄存器IP中断源寄存器(TCON、SCON中的有关位)注:均可位寻址。

中断系统结构示意图1、中断源(InterruptSource)

向CPU发出中断请求的地方,称之为中断源。8051单片机有5个中断请求源。外部中断源(2个)

外部中断0和1,对应引脚和内部中断源(3个)

定时器/计数器和溢出中断;串行口发送/接收中断(共用)。

中断入口地址

中断入口地址是指中断服务程序的入口地址。 5个中断源的中断入口地址:外部中断0定时器T0外部中断1定时器T1串行口0003H000BH0013H001BH0023H2、中断控制中断请求(1)中断源发出中断请求…(2)中断是否允许…(3)中断优先权排队…SCONSCON

(SerialPortControlRegister

)为串行口控制寄存器,字节地址为98H。TCONTCON(Timer/CounterControlRegister)为定时器/计数器的控制寄存器,字节地址为88H。(1)中断请求中断请求五个中断请求源的中断请求分别由特殊功能寄存器TCON和SCON的相应位锁存。中断请求标志定时器控制寄存器TCON中的中断请求标志包括:T0和T1的溢出中断请求标志位TF1和TF0外部中断请求标志位IE1与IE0。TCON各标志位的功能外部中断请求0、1触发方式标志位。清零为脉冲触发方式,置位为电平触发方式。外部中断请求0、1的中断请求标志位。清零时无中断请求,置位时有中断请求。定时器/计数器T0、T1溢出中断请求标志。置位时有中断请求,中断响应后自动清零。注意:TCON可位寻址。复位后,TCON=00H。TCON各标志位的功能IT0、IT1IE0、IE1TF0、TF1例:CLRTI或ANLSCON,#0FDH串行口控制寄存器SCON中的中断请求标志:TI/RI:串行口发送/接收中断请求标志。串行发送/接收完一帧后自动置位,请求中断。需要再次发送/接收时,应通过指令清零。注意:SCON可位寻址。复位后,SCON=00H。中断请求的撤消1.定时器/计数器中断请求的撤消中断请求被响应后。硬件会自动清TF0或TF1。2.外部中断请求的撤消(1)边沿触发方式外部中断请求的撤消是自动撤消的。(2)电平触发方式外部中断请求的撤消:

除了标志位清“0”之外,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平,如下图。只要P1.0端输出一个负脉冲就可以使D触发器置“1”,从而撤消了低电平的中断请求信号。所需的负脉冲可用两条指令得到:

ANLP1,#0FEH ;P1.0为“0”ORLP1,#01H ;P1.0为“1”

电平触发方式的外部中断请求信号的完全撤消,是通过软硬件相结合的方法来实现的。3.串行口中断请求的撤消响应串行口的中断后,内部硬件没有自动清除TI或RI,所以串行口中断请求的撤消只能用软件清除。 CLRTI;清TI标志位 CLRRI;清RI标志位CPU对中断源的开放或屏蔽(中断的允许和禁止),由IE(interruptenableregister)控制。字节地址为A8H,可位寻址。格式如下:(2)中断允许EA:中断允许总控制位(总开关)

0:CPU屏蔽所有的中断请求(CPU关中断);

1:CPU开放所有中断(CPU开中断)。ES:串行口中断允许位

0:禁止串行口中断;

1:允许串行口中断。ET1\ET0

:定时器/计数器T1的溢出中断允许位

0:禁止T1\T0溢出中断;1:允许T1\T0溢出中断。EX1\EX0:外部中断1中断允许位0:禁止外部中断1\0中断;1:外部中断1\0允许中断。MCS-51复位后,IE清0,所有中断请求被禁止。若使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。改变IE的内容,可由位操作指令来实现,即:

SETBbit;CLRbit;课堂练习1:若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段.(1)用位操作指令来编写如下程序段: CLRES ;禁止串行口中断 CLREX1 ;禁止外部中断1中断 CLREX0 ;禁止外部中断0中断SETBET0;允许定时器/计数器T0中断SETBET1;允许定时器/计数器T1中断SETBEA;CPU开中断101010(2)用字节操作指令来编写:

MOVIE,#8AH或者用:MOV0A8H,#8AH;A8H为IE寄存器字节地址101010两个中断优先级,可实现两级中断嵌套。如图:(3)中断优先权基本规则:(1)低优先级可被高优先级中断,反之则不能。(2)同级中断不会被它的同级中断源所中断。(3)在同时收到几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。

中断源中断级别

外部中断0 最高 T0溢出中断 外部中断1 T1溢出中断 串行口中断 最低同一优先级中,优先查询顺序如下:中断优先级寄存器IP(InterruptPriority),其字节地址为B8H。PS——串行口中断优先级控制位PT1\PT0——定时器T1\T0中断优先级控制位PX1\PX0——外部中断1\0中断优先级控制位

1:高优先级中断;

0:低优先级中断。课堂练习2:设置IP寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级。(1)用位操作指令 SETBPX0;2个外中断为高优先级 SETBPX1 CLRPS;串口为低优先级中断

CLRPT0;2个定时器/计数器低优先级中断 CLRPT111000(2)用字节操作指令 MOVIP,#05H 或: MOV0B8H,#05H;B8H为IP寄存器的字节地址110003、中断处理中断处理过程大致包含三个阶段:中断响应中断服务中断返回中断处理过程流程硬件自动完成中断服务程序中断响应中断请求被响应,需满足以下必要条件:(1)允许中断(2)无同级或更高级中断正在被服务。(3)当前正处于所执行指令的最后一个机器周期。(4)正在执行的指令不是RETI指令。中断响应的主要过程:首先由硬件自动生成一条长调用指令:LCALLaddr16CPU执行该指令,将PC的内容压入堆栈以保护断点,再将中断入口地址装入PC。各中断源服务程序的入口地址:

中断源入口地址

外部中断0 0003H定时器/计数器T0 000BH 外部中断1 0013H

定时器/计数器T1 001BH 串行口中断 0023H中断服务+中断返回主要是中断服务程序的设计,包括两部分:主程序部分(中断系统初始化)中断服务程序部分主程序部分(中断系统初始化)设置堆栈指针SP;若为外部中断,定义触发方式;根据需要给IP赋值,定义中断优先级;开放中断。在相应的中断入口地址设置一条跳转指令,转移到中断服务程序的实际入口处;根据需要保护现场;若为电平触发的外部中断,应有中断请求信号撤除操作;若是串行口中断,对TI、RI清0;安排中断服务所做的操作(中断服务程序的主体)恢复现场;中断返回(RETI)。中断服务程序部分常用的中断服务程序设计如下:

ORG0000H LJMPMAIN

ORG中断入口地址 LJMPINT

ORGXXXXHMAIN:主程序

INT:中断服务程序RETI课堂练习3:用T0的方式0产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波。采用中断方式,设系统时钟频率为6MHz。20ms

ORG0000H

LJMPMAIN

ORG000BH

LJMPINTORG0100HMAIN:MOVTMOD,#00HMOVTH0,#63HMOVTL0,#18HSETBET0SETBEASETBTR0

SJMP$

INT:CPLP1.0MOVTH0,#63HMOVTL0,#18HRETIEND程序如下:中断入口地址中断服务程序赋计数初值开中断;启动计时等待计数溢出中断中断的概念8051中断系统的结构

★★

中断源中断控制中断处理

中断系统举例主要内容中断系统举例程序分析实验结果

[举例]

设计一个外部中断应用系统。主程序将P1的8个LED作左移右移,中断时使P1的8个LED闪烁2次。硬件电路及程序:

ORG0000H;主程序

LJMPMAIN ORG0003H;外部中断0中断入口

LJMPINT0ORG1000HMAIN:MOVSP,#70H;初始化

SETBIT0;INT0为边沿触发

SETBEA;开放中断

SETBEX0程序如下:SHIFT:MOVA,#0FFH;左移初值

MOVR2,#8;左移8次

CLRC SL:RLCA;左移一次

MOVP1,A ;输出

LCALLDELAY;延时0.2秒

DJNZR2,SL;左移8次?

MOVR2,#7;右移7次

SR:RRCA;右移一次

温馨提示

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

评论

0/150

提交评论