第5章 MCS-51中断系统_第1页
第5章 MCS-51中断系统_第2页
第5章 MCS-51中断系统_第3页
第5章 MCS-51中断系统_第4页
第5章 MCS-51中断系统_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第5章MCS-51的中断系统中断的特点继续执行主程序主程序响应中断请求返回主程序中断服务程序中断概念:指CPU正在执行原程序(主程序)时,被意外事情打断,转去执行新程序(中断服务程序)。CPU执行新程序结束后,又返回到原程序中继续执行原程序。几个与中断有关的名词中断源:发出申请的根源或引起中断的原因;中断请求:中断源向CPU提出的请求处理断点:主程序被打断的位置中断响应过程:从主程序转到新程序的过程中断处理:执行新程序的处理过程中断返回:处理完毕后返回断点中断系统:完成以上功能的部件1有几个中断源2CPU识别中断申请的依据3有中断申请是否就能响应4有两个或多个中断申请时响应哪个思考一.中断系统硬件结构(P.101)注:各中断允许控制位=0,开关断开;=1,开关接通IE0EX0TF0IE1TF1TIESET1EX1ET0外部中断请求0外部中断请求1内部定时器0内部定时器1内部串行口TRRIIE寄存器EA位IP寄存器各单路开关总开关中断源标志位查询机构高中断级中断请求低中断级中断请求中断入口中断源标志位INT0INT1中断入口中断源标志位PX0PT0PX1PT1PS10中断源1、INT0——外部中断0请求,低电平有效。通过P3.2引脚输入。2、INT1——外部中断1请求,低电平有效。通过P3.3引脚输入。3、TF0——定时器/计数器T0溢出中断请求。4、TF1——定时器/计数器T1溢出中断请求。5、TI/RI——串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。单片机的中断源P.102P3口第二功能表(P.29表2-5)引脚第二功能P3.0RxD:串行口接收数据输入端P3.1TxD:

串行口发送数据输出端P3.2INT0:

外部中断申请输入端0P3.3INT1:

外部中断申请输入端1P3.4T0:

外部计数脉冲输入端0P3.5T1:外部计数脉冲输入端1P3.6WR:

写外设控制信号输出端P3.7RD:

读外设控制信号输出端CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。CPU识别中断申请的依据:TcTsTmTmTc=1/foscTs=2TcTm=12Tc=6TsS5S6S4S3S2S5S6S4S3S2S1——此图见P.33二.单片机的中断源中断控制。在MCS-51系列单片机中,涉及到中断管理控制的有4个特殊功能寄存器,分别是:(1)TCON:定时/计数器控制寄存器;(2)SCON:串行口控制寄存器;(3)IE:中断允许寄存器;(4)IP:中断优先级寄存器。3.定时器控制寄存器TCON(88H)TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0TCON(1)TF0/TF1:定时器溢出中断申请标志位:

=0:定时器未溢出;

=1:定时器溢出申请中断,进中断后自动清零。(2)TR0/TR1:定时器运行启停控制位:

=0:定时器停止运行;

=1:定时器启动运行。TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断)3.定时器控制寄存器TCON(88H)TF1TR1TF0TR0

IE1

IT1

IE0

IT0TCON(3)IE0/IE1:外部中断申请标志位:

=0:没有外部中断申请;

=1:有外部中断申请。(4)IT0/IT1:外部中断请求的触发方式选择位:

=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效.TCON:Timer控制寄存器,低4位管理外部中断SCON(5)RI/TI:串行口收/发数据申请中断标志位=1申请中断;=0不申请中断SCON:串行口控制寄存器4.串行口控制寄存器SCON(98H)P.103SM0SM1SM2RENTB8RB8

TIRI

EA

ET2ESET1EX1ET0EX0IE5.中断允许寄存器IE(0A8H)

(1)EX0/EX1/ET1/ET0/ES位:分别是INT0/1,Timer0/1,串行口的中断允许控制位:

=0时禁止中断;=1

时允许中断。(2)ET2:T2中断允许控制位(仅52子系列有)

=0时禁止中断;=1

时允许中断。(3)EA:总的中断允许控制位(总开关):

=0时禁止全部中断;=1

时允许中断。—

EA

—ET2ESET1EX1ET0EX05.中断允许寄存器IE(0A8H)

IE对中断的开放和关闭实现2级控制。系统复位时,IE被清0,所有中断请求被禁止。若允许其中一个中断源被允许,除了相应位置1外,EA=1。

SETBEA CLREA MOVIE,#data ORLIE,#data MOVIE,A

位操作字节操作—

EA

—ET2ESET1EX1ET0EX05.中断允许寄存器IE(0A8H)

如:若允许片内2个定时器/计数器中断,禁止其他中断源的中断请求。写出相应程序段(1)位操作指令CLRESCLREX1CLREX0SETBET0SETBET1SETBEA(2)用字节指令

MOVIE,#8AH—

PT2PSPT1

PX1

PT0PX0IP6.中断优先级控制寄存器IP(0B8H)(1)PX0/PX1:INT0/1优先级控制位:

=0

时属低优先级;=1

时属高优先级。(2)PT0/PT1/PT2:T0/1/2中断优先级控制位:

=0

时属低优先级;=1

时属高优先级。(3)PS:串行口中断优先级控制位:

=0

时属低优先级;=1

时属高优先级。P.106五.MCS-51单片机的中断矢量与优先级(P.105)1.中断矢量:MCS-51单片机的5个中断源分别对应有各自的中断服务程序入口地址——中断矢量最高优先级最低优先级000BHTF0定时/计数器0(T0)002BHTF2定时/计数器2(T2)0023HRI/TI串行口接收/发送001BHTF1定时/计数器1(T1)0013HIE1外部中断1(INT1)0003HIE0外部中断0(INT0)中断优先级中断矢量申请标志中断源P.107~108依CPU查询顺序确定的优先级三.MCS-51单片机的中断矢量与优先级(P.105)1.中断矢量:MCS-51单片机的5个中断源分别对应有各自的中断服务程序入口地址——中断矢量CPU执行主程序CPU执行低级中断服务程序CPU执行高级中断服务程序响应低级中断请求返回主程序低级中断请求高级中断请求响应高级中断请求返回低级中断程序RETIRETI对同时发生多个中断申请时:(1)不同优先级的中断同时申请

——先高后低(2)相同优先级的中断同时申请

——按序执行(3)正处理低优先级中断又接到高级别中断

——高打断低(4)正处理高优先级中断又接到低级别中断

——高不理低2.中断优先级处理原则三.MCS-51单片机的中断矢量与优先级(P.105)例5-2

设置IP寄存器的初始值,使得MCS-51的2个外中断请求为高优先级,其他中断为低优先级。(P.107)(1)位操作指令

SETBPX0 SETBPX1 CLRPS CLRPT0 CLRPT1(2)字节操作指令

MOVIP,#05H三.MCS-51单片机的中断矢量与优先级(P.107)

PT2PSPT1

PX1

PT0PX0IP或者MOV0B8H,#05H(1)没有同级的中断或更高级别的中断正在处理;3.在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件:(2)正在执行的指令必须执行完最后1个机器周期;(3)若正在执行RETI,或正在访问IE或IP寄存器,须执行完上述指令和下一条指令以后方能响应中断。三.MCS-51单片机的中断矢量与优先级(P.108)在CPU已经开放了外部中断允许的前提下:1.在INT0/INT1引脚输入一个负脉冲或低电平,2.TCON寄存器中的IE0/IE1标志位自动变“1”,3.检测到IE0/IE1变“1”后,将产生指令:

LCALL0003H(/0013H)执行中断服务程序,4.并将IE0/IE1标志位自动清“0”,以备下次申请。四.外部中断(INT0,INT1)申请过程五.中断请求的撤销

CPU响应中断请求,转向中断服务程序执行,在其执行中断返回指令(RETI)之前,中断请求信号必须撤除,否则将可能再次引起中断而出错三种撤销方式:(1)由单片机内部硬件自动复位。(2)应用软件清除相应标志位(3)既无硬件清除也无软件清除五.中断请求的撤销

(P.110)1.定时器/计数器中断请求的撤销

该中断被响应后,硬件自动将中断标志位(TF0、TF1)清0,是自动撤销的。2.外部中断请求的撤销外部中断请求包括2种方式:(1)电平触发(低电平触发)(2)跳沿方式(负脉冲触发)

由于触发方式不同,撤销也不同。2.外部中断请求的撤销(P.110)低电平/负脉冲→INT0/INT1引脚可触发中断TF1TR1TF0TR0IE1

IT1IE0IT0TCON(88H)IT0/IT1:INT0/1的触发方式选择位:

IT0/IT1=0

时,INT0/INT1是低电平有效;

IT0/IT1=1

时,INT0/INT1是负跳变有效。(2)低电平触发引脚上的低电平须持续到中断发生。若中断返回前仍未及时撤除低电平,将再次中断。(1)负脉冲触发CPU在前一机器周期采到INT0/INT1引脚为高,后一机器周期采到为低才认为是一次中断请求。CPU可记忆申请、可自动撤除中断申请。外来的低电平→反相→CLK端产生上跳沿→D端的“0”打到Q端→申请中断INTxP1.0CLKSDQD外来中断申请信号(低电平)MCS-5174LS74SD=0则Q=1中断返回前对P1.0送“0”

→令Q端变为“1”2.外部中断请求的撤销——(2)低电平触发

(P.110)

中断服务程序中增加指令如下:

ANLP1,#0FEH=CLRP1.0ORLP1,#01H=SETBP1.0;令S端置“1”,以免下次中断来时Q端不能变“0”,使触发器正常工作五.中断请求的撤销

(P.110)3.串行口中断请求的撤销只涉及标志位清0的问题。(1)串行口中断标志有两个:TI和RI,但串行中断只有一个,所以必须首先区分是接收中断还是发送中断,才能清除相应标志位。(2)只有用软件撤销办法

CLRTI CLRRI六.中断应用前后要做的几项工作1.中断前

(1)开中断允许:必须

(2)选择优先级:根据需要选择,可有/可无

(3)设置控制位:INTx—触发方式(ITx)

Tx—TCON(TRx),TMOD,初值……

RI/TI—SCON(REN,RB8,TB8)……2.中断后(1)进入中断服务后:保护现场,关中断,……(2)退出中断服务前:恢复现场,开中断,设Tx的初值,清TI/RI,……中断服务程序的最后一条指令必是RETI中断应用程序举例:例1:通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。

已知:(B)=01H,要求采用边沿触发,低优先级。此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。中断应用程序举例:例1:通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。

已知:(B)=01h,要求采用边沿触发,低优先级。P1.0P1.7INT1300+5V

ORG0000HLJMPMAIN

ORG0013H;中断矢量

LJMPINTMAIN:SETBEA;开总中断允许“开关”

SETBEX1;开分中断允许“开关”

CLRPX1;0优先级(也可不要此句)

SETBIT1;边沿触发

MOVB,#01H;给B

寄存器赋初值HERE:SJMPHERE;原地等待中断申请INT:MOVA,B;自B寄存器中取数

RLA;左环移一次

MOVB,A;存回B,备下次取用

RETI;中断返回中断服务程序(MOVP1,A);输出到P1口(MOVP1,B);输出到P1口

中断系统应用举例2.要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。1.跳变触发:每次跳变引起一次中断请求。

ORG 0000H;复位入口 AJMPMAIN ORG 0003H ;中断入口 AJMP PINT0 ORG 0100H ;主程序MAIN:MOVSP,#40H;设栈底

SETB EA ;开总允许开关

SETB EX0 ;开INT0中断

SETB IT0 ;负跳变触发中断H: SJMP H ;执行其它任务

ORG 0200H ;中断服务程序PINT0:CPLP1.0 ;改变LED

RETI ;返回主程序+5V单片机INT0P1.01

ORG 0000H;复位入口 AJMPMAIN ORG 0003H ;中断入口 AJMP PINT0 ORG 0100H ;主程序MAIN:MOVSP,#40H;设栈底

SETB EA ;开总允许开关

SETB EX0 ;开INT0中断

CLR IT0 ;低电平触发中断H: SJMP H ;执行其它任务

ORG 0200H ;中断服务程序PINT0:CPLP1.0 ;改变LEDWAIT:JNB P3.2,WAIT;等按键释放

RETI ;返回主程序1.软件等待按键释放。2.硬件清除中断信号。2.电平触发:避免一次按键引起多次中断响应。+5V单片机INT0P1.01中断应用程序举例:功能要求:

1.当压力报警信号发出时,要求排汽电磁阀通电,打开排汽阀门以减少蒸汽压力;

2.当低水位限位发出信号时,打开进水阀;

3.当高水位限位发出信号时,关闭进水阀;

4.当温度达到100oC时,关电加热丝;

5当温度低于95oC时,开电加热丝。进水高水位限低水位限J3~220V水龙头温度检测J2J1压力报警电加热丝中断应用程序举例:高水位限低水位限J3~220V水龙头温度检测J2J1压力报警电加热丝J2进水INT0P1.4P1.3P1.2P1.1P1.0P1.6P1.5P1.7≥1(1)(2)(3)(4)(5)(1)压力报警(2)高水位限位(3)低水位限位(4)100oC温度(5)95oC温度J1排气阀进水阀J3加热8051主程序流程图:开始结束打开外部中断打开总中断设置边沿触发等待

ORG0000H LJMPMAIN

ORG0013H LJMPINT0

ORG0100HMAIN:SETB

EX0 SETBEA SETBIT0 SJMP$;中断子程序名;主程序名中断应用程序举例:J2INT1P1.4P1.3P1.2P1.1P1.0P1.6P1.5P1.7≥1(1)(2)(3)(4)(5)(1)压力报警(2)高水位限位(3)低水位限位(4)100oC温度(5)95oC温度J1排气阀进水阀J3加热8051排气阀J1:1排气/0关闭进水阀J2:1进水/0出水加热丝J3:1加热/0不加热Y中断子程序流程图:进入中断中断返回压力报警了么?达到高水位?达到低水位?达到100oC?达到95oC?打开排汽阀压力仍报警么?关闭进水阀打开进水阀加电加热丝停电加热丝NNNNNYYYYYN关闭排汽阀中断应用程序举例:J2INT1P1.4P1.3P1.2P1.1P1.0P1.6P1.5P1.7≥1(1)(2)(3)(4)(5)(1)压力报警(2)高水位限位(3)低水位限位(4)100oC温度(5)95oC温度J1排气阀进水阀J3加热8051INT1:JBP1.0,PRESSL1:JBP1.1,HIGHJBP1.2,LOWL2:JBP1.3,HEATOFFJBP1.4,HEATONL3:RETIPRESS:SETBP1.5CLRP1.5SJMPL1JBP1.0,PRESS中断应用程序举例:J2INT1P1.4P1.3P1.2P1.1P1.

温馨提示

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

评论

0/150

提交评论