您好,欢迎访问三七文档
第四章:51单片机中断系统本讲重点:中断系统的基本组成;与中断系统相关的寄存器;中断处理过程;中断系统举例;数据的输入/输出传送方式查询传送方式(LOOKUP):传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待中断传送方式(IRQ):一方通过申请中断的方式与另一方进行数据传送无条件传送方式:一方对另一方来说总是准备好的直接存储器存取方式(DMA):双方直接通过总线传送数据,不经CPU中转数据传送的双方平时各自做自己的工作,一旦甲方要求与乙方进行数据传送,就主动发出信号提出申请,乙方接到申请后若同意传送,安排好当前的工作,再响应与甲方发生数据传送。服务完后,回去继续做打断前的工作。中断功能强弱是计算机性能优劣的重要标志提高CPU效率解决速度矛盾实现并行工作应付突发事件……中断传送方式特点①中断源②中断申请③开放中断④保护现场⑤中断服务⑥恢复现场⑦中断返回中断涉及的几个环节(前面提到的甲方)(甲方发出信号提出申请)(乙方同意传送)(安排好当前的工作)(响应乙方的要求)(服务完后,回去……)(继续做打断前的工作)单片机的中断源及TCONCPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。51子系列允许5个(52子系列6个)中断源:2个外部中断请求:INT0,INT12个片内定时器/计数器T0和T1中断请求:TF0,TF1,(TF2——52子系列有T2)1个串行口中断请求:TI/RICPU识别中断申请的依据:单片机的中断源及TCONCPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。CPU识别中断申请的依据:TcTsTmTmTc=1/foscTs=2TcTm=12Tc=6TsS5S6S4S3S2S5S6S4S3S2S1定时器控制寄存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0TCONTF0/TF1:定时器溢出中断申请标志位:=0:定时器未溢出;=1:定时器溢出申请中断,进中断后自动清零。TR0/TR1:定时器运行启停控制位:=0:定时器停止运行;=1:定时器启动运行。TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断)定时器控制寄存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0TCONIE0/IE1:外部中断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。IT0/IT1:外部中断请求的触发方式选择位:=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效.TCON:Timer控制寄存器,低4位管理外部中断在CPU已经开放了外部中断允许的前提下:在INT0/INT1引脚输入一个负脉冲或低电平,TCON寄存器中的IE0/IE1标志位自动变“1”,CPU检测到IE0/IE1变“1”后,将自动跳转到0003H(/0013H)执行中断服务程序,并将IE0/IE1标志位自动清“0”,以备下次申请。外部中断(INT0,INT1)申请过程单片机的中断矢量与优先级中断矢量:51单片机的5个中断源分别对应有各自的中断服务程序入口地址——中断矢量000BHTF0定时/计数器0(T0)002BHTF2定时/计数器2(T2)0023HRI/TI串行口接收/发送001BHTF1定时/计数器1(T1)0013HIE1外部中断1(INT1)0003HIE0外部中断0(INT0)中断优先级中断矢量申请标志中断源最高优先级最低优先级——PT2PSPT1PX1PT0PX0IPPX0/PX1:INT0/1优先级控制位:=0时属低优先级;=1时属高优先级。PT0/PT1/PT2:T0/1/2中断优先级控制位:=0时属低优先级;=1时属高优先级。PS:串行口中断优先级控制位:=0时属低优先级;=1时属高优先级。中断优先级控制寄存器IP(0B8H)对同时发生多个中断申请时:☞不同优先级的中断同时申请(很难遇到)——先高后低☞相同优先级的中断同时申请(很难遇到)——按序执行☞正处理低优先级中断又接到高级别中断——高打断低☞正处理高优先级中断又接到低级别中断——高不理低中断优先级处理原则☞没有同级的中断或更高级别的中断正在处理;在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件:☞正在执行的指令必须执行完最后1个机器周期;☞若正在执行RETI,或正在访问IE或IP寄存器,须执行完上述指令和下一条指令以后方能响应中断。EA—ET2ESET1EX1ET0EX0IE中断允许寄存器IE(0A8H)EX0/EX1/ET1/ET0/ES位:分别是INT0/1,Timer0/1,串行口的中断允许控制位:=0时禁止中断;=1时允许中断。ET2:T2中断允许控制位(仅52子系列有)=0时禁止中断;=1时允许中断。EA:总的中断允许控制位(总开关):=0时禁止全部中断;=1时允许中断。中断系统硬件结构注:各中断允许控制位=0,开关断开;=1,开关接通IE0EX0TF0IE1TF1TIESET1EX1ET0外部中断请求0外部中断请求1内部定时器0内部定时器1内部串行口TRRIIE寄存器EA位IP寄存器各单路开关总开关中断源标志位查询机构高中断级中断请求低中断级中断请求中断入口中断源标志位INT0INT1中断入口中断源标志位中断应用前后要做的几项工作中断前开中断允许:必须选择优先级:根据需要选择,可有/可无设置控制位:INTx—触发方式(ITx)Tx—TCON,TMOD,TRx,初值……RI/TI—SCON,REN,RB8,TB8,……中断后进入中断服务后:保护现场,关中断,……退出中断服务前:恢复现场,开中断,设Tx的初值,清TI/RI,……中断服务程序的最后一条指令必是RETI编写中断服务程序时应注意的几点:1)各中断源的入口矢量地址之间,只相隔8个单元,一般中断服务程序是容纳不下的,因而最常用的方法是将中断服务程序放置在程序存储器的其它空间,而在中断入口矢量地址单元处存放一条无条件转移指令,转至该服务程序。2)若要在执行当前中断程序时禁止更高优先级中断,应采用软件来关闭CPU中断,或屏蔽更高级中断源的中断,在中断返回前再开放这些中断。3)现场通常用到PSW、工作寄存器和专用寄存器等。如果在中断服务程序中要用这些寄存器,则在中断服务前应将它们的内容保护起来称保护现场,同时在RETI指令前应恢复现场。4)在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,一般情况下,应关CPU中断,使CPU暂不响应新的中断请求。因此在编写中断服务程序时,保护现场之前要关中断,在保护现场之后若允许高优先级中断源中断它,则应开中断。同样在恢复现场之前也应关中断,恢复之后再开中断。编写中断服务程序时应注意的几点:五、中断系统的应用举例从软件角度看,使用中断时需要做两个方面的任务:(1)按人们的意志对中断源进行管理和控制。中断源管理和控制(初始化程序)程序一般都包含在主程序中,根据需要通过几条指令来完成。在编写中断管理与控制程序时应考虑以下项目:1)CPU开中断与关中断;2)某个中断源中断请求的允许或屏蔽;3)各中断源优先级别的设定;4)外部中断请求的触发方式。(2)编制中断服务程序。中断服务程序是一种具有特定功能的独立程序段,根据中断源的具体要求进行服务的。中断应用程序举例:例:通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。已知:(B)=01h,要求采用边沿触发,低优先级。此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。中断应用程序举例:例:通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。已知:(B)=01h,要求采用边沿触发,低优先级。此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。P1.0P1.7INT1300+5VORG0000HLJMPMAINORG0013H;中断矢量LJMPINTMAIN:SETBEA;开总中断允许“开关”SETBEX1;开分中断允许“开关”CLRPX1;0优先级(也可不要此句)SETBIT1;边沿触发MOVB,#01H;给B寄存器赋初值MOVP1,BHERE:SJMPHERE;原地等待中断申请INT:MOVA,B;自B寄存器中取数RLA;左环移一次MOVB,A;存回B,备下次取用MOVP1,A;输出到P1口RETI;中断返回中断服务程序利用做一个计数器。当有脉冲时,A的内容加1。并且当A的内容大于或等于100时将P1.0置位.ORG0000hLjmpMIN0ORG0003hLjmpINTB0ORG000bhretiORG0013hretiORG001bhretiORG0023hretiORG0030hMin0:movsp,#30hSetbIT0SetbEX0CLRPX0SETBEAMova,#00Min1:NOPljmpMin1Org0100hINTB0:PushpswAddA,#01Cjnea,#100,INTB1LjmpINTB2INTB1:jcINTB3INTB2:setbP1.0INTB3:POPPSWRETI补充:中断请求的撤除中断源发出中断请求后,相应的中断请求标志位置“1”,而CPU响应中断后,必须及时清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。有关中断请求标志撤除有如下4种情况:(1)定时/计数器T0、T1中断,CPU响应中断时就用硬件自动清除了相应的中断请求标志TF0、TF1。(2)对采用边沿触发方式的外部中断,CPU响应中断时,硬件也会自动清除相应的中断请求标志IE0或IE1。(3)对采用电平触发方式的外部中断,CPU响应中断时,虽也用硬件自动清除相应的中断请求标志IE0或IE1,但相应引脚(P3.2或P3.3)的低电平信号若继续保持下去中断请求标志IE0或IE1就无法清零,也会发生上述重复响应中断的情况。(4)对串行口中断(包括串发TI、串收RI),CPU响应中断后并不能自动清除相应的中断请求标志TI或RI,因此在响应串行口中断请求后,必须由用户在中断服务程序的相应位置通过指令将其清除(复位)。人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。
本文标题:第四章+中断介绍
链接地址:https://www.777doc.com/doc-3976041 .html