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

下载本文档

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

文档简介

1、第六章第六章 中断系统中断系统第六章 中断系统l 中断的概念l 8051中断系统的结构 中断源 中断控制 中断处理l 中断系统举例第六章 中断系统l 中断的概念l 8051中断系统的结构 中断源 中断控制 中断处理l 中断系统举例第六章 中断系统中断的概念l CPU在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。l CPU中止当前的工作,转到中断服务处理程序处理事件。 然后,回到原来被中止的地方,继续工作,称为中断(Interrupt)。l CPU处理事件的过程,称为CPU的中断响应过程(Interrupt Response)。第六章 中断系统日常生活的中断中断举例单片机的

2、中断第六章 中断系统日常生活中的中断示图做记号接电话看书继续看书第六章 中断系统中断服务中断服务中断请求中断请求中断源向CPU提出的处理请求,称为中断请求(或中断申请)。对事件的整个处理过程,称为中断处理(或中断服务)。能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源第六章 中断系统单片机中的中断示图主主程程序序继继续续执执行行主主程程序序中断请求中断请求响应中断响应中断中断返回中断返回断点地址断点地址入口地址入口地址中中断断服服务务程程序序第六章 中断系统分时操作实时操作故障及时处理第六章 中断系统l 中断的概念l MCS-51中断系统的结构 中断源 中断控制 中断处理

3、l 中断系统举例第六章 中断系统8051 的中断系统l 5个中断源,具有二个中断优先级,可实现二级中断服务程序的嵌套。l 有关的特殊功能寄存器(SFR)有:中断允许寄存器IE中断优先级控制寄存器IP中断源寄存器(TCON、SCON中的有关位)注:均可位寻址。均可位寻址。第六章 中断系统 中断系统结构示意图第六章 中断系统第六章 中断系统1 1、中断源、中断源(Interrupt Source)(Interrupt Source) 向向CPUCPU发出中断请求的地方,称之为发出中断请求的地方,称之为中断源中断源。80518051单片机有单片机有5 5个中断请求源。个中断请求源。l 外部中断源(2

4、个) 外部中断0和1,对应引脚 和l 内部中断源(3个) 定时器/计数器 和 溢出中断;串行口发送/接收中断(共用)。 0INT1INT0T1T第六章 中断系统中断入口地址中断入口地址中断入口地址是指中断服务程序的入口地址。5个中断源的中断入口地址:外部中断外部中断0定时器定时器T0外部中断外部中断1定时器定时器T1串行口串行口0003H000BH0013H001BH0023H第六章 中断系统2 2、中断控制、中断控制中断请求中断请求(1)中断源发出中断请求(2)中断是否允许(3)中断优先权排队第六章 中断系统SCONSCON (S Serial Port ConControl Registe

5、r )为串行口控制寄存器,字节地址为98H。TCON TCON(T Timer/Counter ConControl Register)为定时器/计数器的控制寄存器,字节地址为88H。(1 1)中断请求)中断请求中断请求中断请求l 五个中断请求源的中断请求分别由特殊功能寄存器TCON和SCON的相应位锁存。第六章 中断系统中断请求标志l 定时器控制寄存器TCON中的中断请求标志包括:T0和T1的溢出中断请求标志位TF1TF1和和TF0TF0外部中断请求标志位IE1IE1与与IE0IE0。第六章 中断系统外部中断请求外部中断请求0 0、1 1触发方式触发方式标志位。清零为脉冲触发方式,置位为电平

6、触发方式。外部中断请外部中断请求求0 0、1 1的中断请求标志位。清零时无中断请求,置位时有中断请求。定时器定时器/ /计数器计数器T0T0、T1T1溢出中溢出中断请求断请求标志。置位时有中断请求,中断响应后自动清零。注意:注意:TCONTCON可位寻址。复位后,可位寻址。复位后,TCON=00HTCON=00H。TCON各标志位的功能IT0IT0、IT1IT1IE0IE0、IE1IE1TF0TF0、TF1TF1第六章 中断系统例:CLR TI或ANL SCON,#0FDHl 串行口控制寄存器串行口控制寄存器SCONSCON中的中断请求标志:中的中断请求标志:TI/RI:串行口发送/接收中断请

7、求标志。串行发送/接收完一帧后自动置位,请求中断。需要再次发送/接收时,应通过指令清零。注意:注意:SCONSCON可位寻址。复位后,可位寻址。复位后,SCON=00HSCON=00H。第六章 中断系统u 中断请求的撤消中断请求的撤消1 1定时器定时器/ /计数器中断请求计数器中断请求的撤消 中断请求被响应后。硬件会自动清TF0或TF1。2 2外部中断请求外部中断请求的撤消(1)边沿触发边沿触发方式外部中断请求的撤消是自动撤消的。(2)电平触发电平触发方式外部中断请求的撤消: 除了标志位清“0”之外,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平,如下图。第六章 中断系统 只要P1

8、.0端输出一个负脉冲就可以使D触发器置“1”,从而撤消了低电平的中断请求信号。所需的负脉冲可用两条指令得到: ANL P1ANL P1,#0FEH#0FEH ;P1.0P1.0为为“0 0” ORL P1 ORL P1,#01H#01H ;P1.0P1.0为为“1 1” 电平触发方式的外部中断请求信号的完全撤消,是通过软硬件相结合的方法来实现的。第六章 中断系统3 3串行口中断请求串行口中断请求的撤消的撤消响应串行口的中断后,内部硬件没有自动清除TI或RI,所以串行口中断请求的撤消只能用软件清除。 CLR TI ;清TI标志位 CLR RI ;清RI标志位第六章 中断系统l CPU对中断源的开

9、放或屏蔽(中断的允许和禁止),由IE IE (interrupt enable register interrupt enable register )控制。字节地址为A8H,可位寻址。 格式如下:格式如下:(2 2)中断允许)中断允许第六章 中断系统l EAEA:中断允许总控制位(总开关)中断允许总控制位(总开关)0 0:CPUCPU屏蔽所有的中断请求屏蔽所有的中断请求( (CPUCPU关中断关中断) );1 1:CPUCPU开放所有中断开放所有中断( (CPUCPU开中断开中断) )。l ESES:串行口中断允许位串行口中断允许位0 0:禁止串行口中断;禁止串行口中断; 1 1:允许串行口

10、中断。允许串行口中断。第六章 中断系统l ET1ET0ET1ET0 :定时器:定时器/ /计数器计数器T1T1的溢出中断允许位的溢出中断允许位0 0:禁止禁止T1T0T1T0溢出中断;溢出中断; 1 1:允许允许T1T0T1T0溢出中断。溢出中断。l EX1EX0 EX1EX0 :外部中断外部中断1 1中断允许位中断允许位 0 0:禁止外部中断禁止外部中断1 100中断;中断; 1 1:外部中断外部中断1 100允许中断。允许中断。第六章 中断系统MCS-51复位后,IE清0,所有中断请求被禁止。若使某一个中断源被允许中断,除了IE相应的位的被置“1” ,还必须使EA位=1。改变IE的内容,可

11、由位操作指令来实现,即: SETB bit SETB bit; CLR bit CLR bit;第六章 中断系统课堂练习课堂练习1 1: :若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段.(1 1)用位操作指令来编写如下程序段:)用位操作指令来编写如下程序段:CLR ES ;禁止串行口中断 CLR EX1 ;禁止外部中断1中断CLR EX0;禁止外部中断0中断 SETB ET0 ;允许定时器/计数器T0中断 SETB ET1 ;允许定时器/计数器T1中断 SETB EA ;CPU开中断101010第六章 中断系统(2 2)用字节操作指令来编写:)用字节操作

12、指令来编写: MOV IE,#8AH 或者用: MOV 0A8H,#8AH ;A8H为IE寄存器字节地址101010第六章 中断系统l 两个中断优先级,可实现两级中断嵌套。如图:(3 3)中断优先权)中断优先权第六章 中断系统基本规则:基本规则:(1)低优先级可被高优先级中断,反之则不能。(2)同级中断不会被它的同级中断源所中断。(3)在同时收到几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。第六章 中断系统 中断源中断源 中断级别中断级别外部中断0最高T0溢出中断外部中断1T1溢出中断串行口中断最低同一优先级中,优先查询顺序如下:第六章 中断系统 中断优先级寄存器中断优

13、先级寄存器IPIP(Interrupt PriorityInterrupt Priority),其字节地址为B8H。l PS 串行口中断优先级控制位l PT1PT0定时器T1T0中断优先级控制位l PX1PX0外部中断10中断优先级控制位 1:高优先级中断; 0:低优先级中断。第六章 中断系统课堂练习课堂练习2:2:设置IP寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级。(1 1)用位操作指令)用位操作指令 SETB PX0 ;2个外中断为高优先级 SETB PX1 CLR PS ;串口为低优先级中断CLR PT0 ;2个定时器/计数器低优先级中断CLR PT111000第

14、六章 中断系统(2 2)用字节操作指令用字节操作指令 MOV IP,#05H 或: MOV 0B8H,#05H ;B8H为IP寄存器的字节地址11000第六章 中断系统3 3、中断处理、中断处理中断处理过程中断处理过程大致包含三个阶段:大致包含三个阶段:中断响应中断响应中断服务中断服务中断返回中断返回第六章 中断系统中断处理过程流程中断处理过程流程硬硬件件自自动动完完成成中中断断服服务务程程序序第六章 中断系统u中断响应中断响应 中断请求被响应,需满足以下必要条件:中断请求被响应,需满足以下必要条件:(1 1)允许中断)允许中断(2 2)无同级或更高级中断正在被服务。)无同级或更高级中断正在被

15、服务。(3 3)当前正处于所执行指令的最后一个机器周期。)当前正处于所执行指令的最后一个机器周期。(4 4)正在执行的指令不是)正在执行的指令不是RETIRETI指令。指令。第六章 中断系统中断响应的主要过程:中断响应的主要过程: 首先由硬件自动生成一条长调用指令首先由硬件自动生成一条长调用指令: : LCALL addr16 LCALL addr16 CPUCPU执行该指令执行该指令, ,将将PCPC的内容压入堆栈以保护断点,再将中的内容压入堆栈以保护断点,再将中断入口地址装入断入口地址装入PCPC。各中断源服务程序的入口地址。各中断源服务程序的入口地址: : 中断源中断源 入口地址入口地址

16、 外部中断外部中断0 0 0003 0003H H 定时器定时器/ /计数器计数器T0 T0 000BH 000BH 外部中断外部中断1 1 0013 0013H H 定时器定时器/ /计数器计数器T1T1 001BH 001BH 串行口中断串行口中断 0023 0023H H第六章 中断系统u 中断服务中断服务+ +中断返回中断返回 主要是中断服务程序的设计,包括两部分:主要是中断服务程序的设计,包括两部分:主程序部分(中断系统初始化)主程序部分(中断系统初始化)中断服务程序部分中断服务程序部分第六章 中断系统l主程序部分(中断系统初始化)主程序部分(中断系统初始化)设置堆栈指针设置堆栈指针

17、SPSP;若为外部中断,定义触发方式;若为外部中断,定义触发方式;根据需要给根据需要给IPIP赋值,定义中断优先级;赋值,定义中断优先级;开放中断。开放中断。第六章 中断系统在相应的中断入口地址设置一条跳转指令,转移在相应的中断入口地址设置一条跳转指令,转移到中断服务程序的实际入口处;到中断服务程序的实际入口处;根据需要保护现场;根据需要保护现场;若为电平触发的外部中断,应有中断请求信号撤若为电平触发的外部中断,应有中断请求信号撤除操作;若是串行口中断,对除操作;若是串行口中断,对TITI、RIRI清清0 0;安排中断服务所做的操作(中断服务程序的主体)安排中断服务所做的操作(中断服务程序的主

18、体)恢复现场;恢复现场;中断返回(中断返回(RETIRETI)。l中断服务程序部分中断服务程序部分第六章 中断系统常用的中断服务程序设计如下:常用的中断服务程序设计如下: ORG 0000HORG 0000HLJMP MAINLJMP MAINORG ORG 中断入口地址中断入口地址LJMP INTLJMP INT ORG XXXXHORG XXXXH MAIN MAIN:主主 程程 序序 INT INT:中断服务程序中断服务程序 RETI RETI第六章 中断系统课堂练习课堂练习3:用T0的方式0产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波。采用中断方式,设系统时钟频率为6

19、 MHz。20ms第六章 中断系统 ORG 0000HORG 0000H LJMP MAINLJMP MAIN ORG 000BH ORG 000BH LJMP INTLJMP INT ORG 0100H ORG 0100H MAIN MAIN:MOV TMODMOV TMOD,#00H#00H MOV TH0 MOV TH0,#63H#63H MOV TL0 MOV TL0,#18H#18H SETB ET0 SETB ET0 SETB EA SETB EA SETB TR0 SETB TR0 SJMP $SJMP $ INT INT:CPL P1.0CPL P1.0 MOV TH0 MOV

20、 TH0,#63H#63H MOV TL0 MOV TL0,#18H #18H RETI RETI END END程序如下:程序如下:中断入口地中断入口地址址中断服务程中断服务程序序赋计数初赋计数初值值开中断;开中断;启动计时启动计时等待计数等待计数溢出中断溢出中断第六章 中断系统l 中断的概念l 8051中断系统的结构 中断源 中断控制 中断处理l 中断系统举例第六章 中断系统中断系统中断系统举例举例程序程序分析分析实验实验结果结果第六章 中断系统举例举例设计一个外部中断应用系统。主程序将P1的8个LED作左移右移,中断时使P1的8个LED闪烁2次。第六章 中断系统硬件电路及程序:硬件电路及程序:第六章 中断系统ORG0000H;主程序;主程序LJMPMAINORG0003H;外部中断;外部中断0中断入口中断入口LJMPINT0ORG1000HMAIN:MOVSP,#70H;初始化初始化SETBIT0;INT0为边沿触发为边沿触发SETBEA;开放中断;开放中断SETBEX0程序程序如下如下:第六章 中断系统SHIFT:MOVA,#0FFH;左移初值;左移初值MOVR2,#8;左移;左移8次次CLRCSL:RLCA;左移一次;左移一次MOVP1,A;输出;输出

温馨提示

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

评论

0/150

提交评论