单片机第中断系统资料讲解

上传人:yulij****0329 文档编号:266351346 上传时间:2022-03-15 格式:PPT 页数:21 大小:718.50KB
返回 下载 相关 举报
单片机第中断系统资料讲解_第1页
第1页 / 共21页
单片机第中断系统资料讲解_第2页
第2页 / 共21页
单片机第中断系统资料讲解_第3页
第3页 / 共21页
单片机第中断系统资料讲解_第4页
第4页 / 共21页
单片机第中断系统资料讲解_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机第中断系统资料讲解》由会员分享,可在线阅读,更多相关《单片机第中断系统资料讲解(21页珍藏版)》请在金锄头文库上搜索。

1、第5章 MCS-51的中断系统 实时测控,单片机能及时地响应和处理单片机外部事件或内部事件所提出的中断请求。中断的概念 CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。 CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。 处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。 CPU处理事件的过程,称为CPU的中断响应过程。对事件的整个处理过程,称为中断处理(或中断服务)。MCS-51及其5l子系列的其它成员都具有相同的中断结构。 8051有5个中断源2个外部中断源INT0和INT1,2个片内定时器计数器溢出中断源,1个片内串行口中断源。

2、 分为两级高级中断和低级中断。其中任何一个中断源的优先级均可由软件设定为高级或低级,能实现两级中断服务程序嵌套 。都是可屏蔽的,由软件设定。MCS-51的中断系统概述中断允许寄存器IE控制中断优先级寄存器IP控制中断触发方式位IT控制2.中断请求标志 (1)TCON的中断标志 TCON是专用寄存器,字节地址为88H,它锁存了外部和的中断请求标志及T0和T1的溢出中断请求标志TCON 88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0 1)IT0:选择外部中断0(INT0)触发方式控制位。 IT0=0 INT0为电平触发方式。 2)IE0:外部中断0请求标志位

3、。IE01,外部中断0向CPU申请中断。 3)IT1:选择外部中断1(INT1)触发方式控制位。 4)1E1:外部中断1请求标志位。IE11时,外部中断1向CPU申请中断。 5)TF0:片内定时器T0溢出中断请求标志。T0被启动后,从初始值开始进行加1计数,当最高位产生溢出时置TF01,向CPU申请中断,直到CPU响应该中断时,才由硬件自动将TF0清0,也可由软件查询该标志,并用软件清0。 6)TF1:片内定时器T1溢出中断请求标志,其操作功能与TF0类同。 SCON是串行口控制寄存器,与中断有关的是它的低两位TI和RI。1) TI(SCON.1):串行口发送中断标志位。每发送完一个串行帧,由

4、硬件置位TI。CPU响应中断时,不能清除TI,TI必须由软件清除。 2)RI(SCON.0):串行口接收中断标志位,当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。TIRISCON2)SCON的中断标志(98H)二、MCS51的中断控制 1、中断允许寄存器IE(0A8H)中断的允许与开放2中断优先级寄存器IP (0B8H)中断优先级控制内部自然优先级:入口地址INT0高0003HT0000BHINT10013HT1001BHTI/RI底0023Hn由软件可改变各中断源的中断优先级。 nMCS-51的中断系统有两个不可寻址的“优先级激活触发器”: n一个用来

5、指示某高优先级的中断正在执行,所有后来的中断均被阻止。n另一个用来指示某低优先级的中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。n在同时收到几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。查询顺序如下:n 中断源 中断级别n外部中断0最高nT0溢出中断n外部中断1nT1溢出中断n串行口中断最低n例5-2 设置IP寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级。n(1)用位操作指令 SETB PX0 ;2个外中断为高优先级n SETB PX1 n CLR PS ;串口为低优先级中断CLR PT0 ;2个定时器/计数器低优先级中断CLR

6、PT1 (2)用字节操作指令 MOV IP,#05H 或: MOV 0B8H,#05H ;B8H为IP寄存器的字节地址两级中断嵌套概念n当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,这时,CPU就暂时中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去响应优先级更高的中断请求,并为它服务。待服务结束,再继续执行原来较低级的中断服务程序。该过程称为中断嵌套。该中断系统称为多级中断系统。返 回两级中断嵌套流程返 回CPU在执行主程序低级中断请求响应低级中断请求CPU执行低级中断服务程序高级中断请求响应高级中断请求CPU执行高级中断服务程序返回低级中断程序返回主程序

7、MCS-51中断系统结构MCS51系列单片机上集成有中断系统,从使用者的角度出发,MCS51的中断系统就是一些SFR,如IE、IP、TCON、SCON。 返回INT0定时器1串行口外设外设0INT10IE0IE1TF0TF1定时器0TCONRITISCONEX0EX1ET0ET1ESIEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高低中断源MCS-51中断源MCS51单片机有5个中断源。5个中断源分为2种:2个外中断(由P3.2和P3.3引入)和3个内中断(T0、T1和串口)。每

8、个中断源对应一个中断标志位,当某个中断源有中请时,相应的中断标志位置1,各个中断源的中断标志位在TCON和SCON中。返回INT0定时器1串行口外设外设0INT10IE0IE1TF0TF1定时器0TCONRITISCONEX0EX1ET0ET1ESIEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高低中断源中断处处理过过程一般分为为三个阶阶段,即中断响应应、中断处处理和中断返回。 三、响应应中断的条件及过过程 1.中断响应(1)中断响应的条件 1)有中断源发出请求信号2)中断是开放

9、的(总允许、源允许)3)没有封锁(受阻),受阻情况是: CPU正在执行同级或高一级的中断服务程序; 现行机器周期不是正在执行的指令的最后一个机器周期,即现行指令完成前不响应任何中断请求; 当前正在执行的是子程序返回指令RET,中断返回指令RETI或访问专用寄存器IE或IP的指令。也就是说,在执行RET, RETI或是访问IE、IP的指令后,至少需要再执行条其他指令,才会响应中断请求。 2)中断响应过程 进入中断响应周期。CPU在中断响应周期要完成下列操作: 1)根据中断请求源的优先级高低,使相应的优先级状态触发器置1。2)清相应中断请求标志位IE0、IE1、TF0或TF13)保留断点,把PC内

10、容压入堆保存。4)把被响应的中断源服务程序入口地址送入PC,输入相应中断服务程序。2.中断服务与返回 在编写中断服务程序时加注意的几点: 1)因各入口地址之间只相隔8个字节,一般的中断服务程序是存放不下的。所以通常在中断入口地址单元处存放条无条件转移指令,这样就可使中断服务程序灵活地安排在64KB程序存储器的任何空间。 2)若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭 CPU中断,或禁止某中断源中断,在中断返回前再开放中断。 3)注意在保护现场和恢复现场。 4)中断服务程序的最后一条是返回指令RETI,该指令将清除响应中断时被置位的优先级状态触发器,然后自动将断点地址从栈顶弹出,

11、装入程序计数器PC,使程序返回到被中断的程序断点处,继续向下执行。 3.中断请求的撤除CPU响应中断请求后,在中断返回(RETI)前,该中断请求信号必须撤除,否则会引起另外一次中断。注意:采用边沿触发的外部中断标志IE0或IEl和定时器中断标志TF0或TFl,CPU响应中断后能用硬件自动清除。但在电平触发时,IE0或IEl受外部引脚中断信号(或)的直接控制,CPU无法控制IE0或IEl,需要另外考虑撤除中断请求信号的措施,如通过外加硬件电路,并配合软件来解决;串行口中断请求标志TI和RI也不能由硬件自动清除,需要在中断服务程序中,用软件来清除相应的中断请求标志。 小结: 1、中断源 2、4大中

12、断控制寄存器 3、响应中断的条件及过程 4.2.3MCS-51中断系统的应用1、中断系统初始化 在使用MCS51单片机内部的中断系统时,需要对其初始化,89C51的中断系统的初始化包括:开中断、确定优先级、若是外中断,应确定触发方式。例设引脚P3.2接有一个开关,当开关按下并抬起时,产生一次中断,试对中断系统初始化。 MOVSP,#60HMOVIE,#81HSETBIT0 2、中断系统应用举例例1用中断实现如下功能:将30H60H单元的内容送微型打印机打印。例2用中断实现如下功能:2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。返回例1用中断实现如下功能:将30H

13、60H单元的内容送微型打印机打印。返回P1.0P1.1P1.2P1.3STBACKBUSY89C51D6D0D1D2D3D4D5P1.4P1.5P1.6P1.7微型打印机D7P2.0P3.2 ORG0000H;复位后入口地址LJMPMAIN;跳到主程序处ORG0003H;外部中断0入口地址LJMPAINT0;跳到中断服务程序处 MAIN :MOVSP,#60H;设堆栈指针SETBEA;开全局中断SETBEX0;开外部中断0SETBIT0;设外部中断0触发方式 MOV R0,#30H ;设指针初值 MOV P1,R0 ;送打印数据 SETB P2.0 ;P2.0拉高 CLR P2.0 ;P2.0

14、拉低 SJMP $ ;原地踏步注意:打印机忙时(BUSY)为低电平打印机不忙时(BUSY)为高电平AINT0:INCR0;调整打印数据指针MOVP1,R0;送打印数据SETBP2.0;P2.0拉高CLRP2.0;P2.0拉低CJNER0,#61H,AINT00;是否完 CLREA ;关全局中断CLREX0;关外部中断0AINT00:RETI例2:用中断实现如下功能:2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。返回P1.0P1.1P1.2P1.389C51P1.4P1.5P1.6P1.7COMabcdefg共阴极LEDK1K2P3.2P3.3+5V;每按键键一次

15、,数码显码显 示加1AINT0: INC R7 CJNE R7,#10,AINT01 MOV R7,#0AINT01:RETI;每按键一次,数码显示减1BINT1:DECR7CJNER7,#0FFH,BINT11MOVR7,#9BINT11:RETITAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;0-9段码表(ROM数据表格) ORG0000H;复位后入口地址LJMPMAIN;转主程序ORG0003H;外部中断0入口地址LJMPAINT0;跳到外中断0服务程序处ORG0013H;外部中断1入口地址LJMPBINT1;跳到外中断1服务程序处MAIN:MOVSP,#60HMOVIE,#83HSETBIT0SETBIT1MOVR7,#0UP:MOVA,R7MOVDPTR,#TABMOVCA,A+DPTRMOVP1,ASJMPUP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号