C51单片机的中断_第1页
C51单片机的中断_第2页
C51单片机的中断_第3页
C51单片机的中断_第4页
C51单片机的中断_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

第5章单片机的定时与中断系统中断系统:包含中断源、中断方式、中断控制寄存器、中断响应和中断请求的撤除。本章主要内容定时/计数器:包含定时/计数器的定时和计数功能、定时/计数器的控制寄存器、工作方式及其应用。单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,这一要求应该怎么实现呢?通过中断可以实现多个任务的资源共享。

MCS-51的中断系统看书电话铃响接电话继续看书中断响应中断返回中断请求中断的基本概念主程序断点执行中断服务(或处理)子程序继续执行程序中断响应中断返回中断请求中断的基本概念所谓的中断就是,当CPU正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求CPU暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程称作中断。中断的定义实现这种功能的部件称为中断系统(中断机构)。产生中断的请求源称为中断源。中断过程中又有中断发生称为中断嵌套。中断执行的程序称为中断服务子程序。中断功能强弱是计算机性能优劣的重要标志提高CPU效率解决速度矛盾实现并行工作实时处理应付突发事件……中断源是指在计算机系统中向CPU发出中断请求的来源。

MCS-51的中断系统——中断源8051单片机有5个中断源:外部中断源:外部中断0(INT0)外部中断1(INT1)内部中断源:定时/计数中断0(T0)定时/计数中断1(T1)串行中断

1.外部中断源

外部中断0(INT0):来自引脚P3.2

外部中断1(INT1):来自引脚P3.3外部中断请求两种方式:电平触发方式(低电平有效)下降沿触发方式(脉冲的下降沿有效,至少要维持一个机器周期)

2.内部中断源定时/计数中断0(T0):定时/计数发生溢出时,产生中断请求。定时/计数中断1(T1):定时/计数发生溢出时,产生中断请求。

串行中断:为完成串行数据传送而设置。单片机完成接受或发送一组数据时,产生中断请求。说明:外部中断源中断请求需设置,而内部中断源中断请求不需设置,

自动产生。

MCS-51的中断系统——中断标志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。

MCS-51的中断系统——中断允许CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位

EA——总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断;某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁止相应中断源的中断。中断允许ESET0EX0EX1ET1EA

MCS-51的中断系统——中断优先级CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断标志位

单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。中断允许ESET0EX0EX1ET1EA自然优先级高低优先控制PSPT0PX0PX1PT1IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级矢量地址高级中断请求自然优先级矢量地址低级中断请求PX0PT0PX1PT1PSIEIPMCS-51的中断系统结构图中断标志位中断源允许总允许中断优先级表5.18051中断源定时器控制寄存器(TCON)串行口控制寄存器(SCON)中断允许控制寄存器(IE)中断优先级控制寄存器(IP)中断控制寄存器(4个):TF1

TF0

IE1IT1IE0IT0TCONT1溢出中断标志(TCON.7):T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。765432101.定时器控制寄存器(TCON)计数溢出标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。TF1

TF0

IE1IT1IE0IT0TCON88H外部中断INT1中断标志位(TCON.3):IE1=1,外部中断1向CPU申请中断外部中断INT1触发方式控制位(TCON.2):

IT1=0,电平触发方式

IT1=1,下降沿触发方式76543210IE0和IE1——外中断请求标志位

当CPU采样到INT0(或INT1)端出现有效中断请求时,IE0(或IE1)位由硬件置“1”。当中断响应完成转向中断服务程序时,由硬件把IE0(或IE1)清零。

返回

TI(SCON.1)——串行发送中断标志。

RI(SCON.0)——串行接收中断标志。

TIRISCON98H76543210注意:该寄存器可以位寻址。2.SCON寄存器

TI——串行口发送中断请求标志位当发送完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”。

RI——串行口接收中断请求标志位当接收完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”。

串行中断请求由TI和RI的逻辑或得到。其中与中断有关的控制位共2位:

IEA8H

EA

ESET1EX1ET0EX0例:允许定时器T0中断:SETBEASETBET0或MOVIE,#82H76543210(3)中断允许寄存器IE(4)中断优先级控制寄存器(IP)MCS-51有两个优先级,1为高,0为低字节地址:B8H位地址:0BFH~0B8H

51单片机有两个中断优先级——高级和低级专用寄存器IP为中断优先级寄存器,用户可用软件设定相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级系统复位时,均为低优先级

PSPT1PX1PT0PX0

IPB8H

76543210对同时发生多个中断申请时:☞不同优先级的中断同时申请(很难遇到)——先高后低☞相同优先级的中断同时申请(很难遇到)——按序执行☞正处理低优先级中断又接到高级别中断——高打断低☞正处理高优先级中断又接到低级别中断——高不理低中断优先级处理原则自然优先级:INT0高T0INT1T1RI/TI低CPU正在执行低中断源高中断源RETIRETI中断控制寄存器汇总例如,某软件中对寄存器IE、IP设置如下:MOVIE,#00HMOVIE,#8FH(10001111B)MOVIP,#06H(00000110B)SETBEA;SETBEX0;SETBET0;SETBEX1;SETBET1;CLRES中断设计举例则此时该系统中:CPU中断允许;允许外部中断0、外部中断1、定时器/计数器0、定时器/计数器1提出的中断申请;允许中断源的中断优先次序为:

定时器/计数器0>外部中断1>外部中断0>定时器/计数器1。在中断服务程序编程时,首先要对中断系统进行初始化,也就是对几个特殊功能寄存器的有关控制位进行赋值。初始化的内容包括:(1)开总中断和相应中断源的中断(2)设置所用中断源的优先级;(3)若是外部中断,则应规定是低电平触发还是下降沿触发。中断初始化例1:若规定外部中断1为电平触发方式,高优先级,试写出有关的初始化程序。SETBEA;开中断SETBEX1;允许外中断1中断SETBPX1;外中断1定为高优先级CLRIT1;电平触发例2:使用外部中断0(INT0)和外部中断1(INT1),INT1为高优先级,电平触发方式,INT0为低优先级,下降沿触发方式。

则初始化程序如下:MOVIP,#04HMOVTCON,#01HMOV IE,#85HMOVIP,#04HMOVTCON,#01HSETBEA SETBEX0SETBEX1或使用位操作指令如下:中断处理过程中断处理过程分为三个阶段:中断响应、中断处理和中断返回。

中断响应中断处理(又称中断服务)

中断返回中断请求的撤除

中断响应中断返回中断响应条件:☞有中断源发出中断请求。☞中断总允许位EA=1。☞申请中断的中断源允许。满足以上基本条件,CPU一般会响应中断。a.CPU正在响应同级或高优先级的中断。b.当前指令未执行完。c.正在执行RETI中断返回指令或访问专用寄存器IE和IP的指令。但若有下列任何一种情况存在,则中断响应会受到阻断。一、中断响应过程CPU在每个机器周期的S5P2期间采样中断请求信号。1.采样:如果有中断请求,将中断请求信号锁定到相应的请求标志位(TCON中)。2.锁定:TF1

TF0

IE1IT1IE0IT0在S6P2状态按一定的顺序(INT0、T0、INT1、T1、RI/TI)查询请求标志,并将有效的中断请求按优先级次序排好。3.查询:如果查询到某标志位为“1”(在TCON中),硬件自动产生一条LCALL指令,转到相应的中断入口地址(也称中断向量或中断矢量)。4.产生LCALL指令:程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处存放一条跳转指令,使程序跳转到用户安排的中断服务子程序起始地址上去!中断源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023H特别注意:这些工作是硬件自动完成的!

如:ORG 0003H LJMP INTT0 INTT0: 中断服务子程序RETI5.中断入口地址安排跳转指令:二、中断处理中断服务程序从中断子程序入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。中断响应入口地址RETI中断处理INTT0:PUSHACC PUSHDPHPUSHDPLPUSHPSW 中断源服务POPPSWPOPDPLPOPDPHPOPACCRETI保护现场恢复现场三、中断返回中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RETI来实现。中断响应中断返回

RETI指令功能:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。特别注意:不能用RET指令代替RETI指令!中断响应中断返回程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH包含T0中断服务子程序的程序结构:

ORG0000H AJMPMAIN

ORG000BH AJMPINTT0

ORG0100HMAIN:...INTT0:...RETIENDAJMPMAINAJMPINTT0中断请求的撤销外中断包括:边沿触发方式和电平触发方式一、外部中断的撤销1.边沿触发方式(自动撤销)中断响应完由硬件自动将中断标志位(IE0或IE1)清0。电平触发外部中断撤除方法较复杂。因为在电平触发方式中,CPU响应中断时不会自动清除IE1或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。在硬件上,CPU对INT0和INT1引脚的信号不能控制,所以这个问题要通过硬件,再配合软件来解决。2.电平触发方式图撤除外部中断请求的电路当CPU响应中断后,可在中断服务程序中采用两条指令:CLRP1.0SETBP1.0(或ANLP1,#0FEH ORL P1,#01H)来撤除外部中断请求。即:定时中断标志位(TF0或TF1)清0(中断响应完由硬件自动清0。)二、定时中断的撤销(自动撤销)即:串行中断标志位(TI或RI)清0。三、串行中断的撤销中断响应后,还需测试这两个标志位的状态,以判定是接收操作还是发送操作,然后才能清除。串行中断请求的撤销使用软件方法,在中断服务子程序中进行。在中断服务程序编程时,首先要对中断系统进行初始化,也就是对几个特殊功能寄存器的有关控制位进行赋值。具体来说,就是要完成下列工作:(1)开中断和允许中断源中断(2)确定各中断源的优先级;(3)若是外部中断,则应规定是电平触发还是边沿触发。中断程序举例例1:若规定外部中断1为边沿触发方式,在中断服务程序中将寄存器B的内容左环移一位。试编写主程序与中断服务程序。ORG0000HLJMPMAINORG0013HLJMPINTT1;中断服务程序转至INTT1处MAIN:SETBEA;开中断SETBEX1;允许外中断1中断SETBIT1;边沿触发MOVB,#0FEH;设B的初值SJMP$;暂停等待中断INTT1:MOVA,B;A←BRLA;左环移一位MOVB,A;回送

(MOVP1,A);输出到P1口RETI;中断返回此例的实际意义:在INT1引脚接一个脉冲按钮,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。P1.0P1.7INT1300 ORG 0000HAJMPMAIN ORG0003HLJMPINTT0 ORG0013HLJMPINTT1例2:当外中断0响应时,由P1.2口输出点亮灯,当外中断1响应时,由P1.2口输出熄灭灯。 ORG 0030HMAIN:SETB EA SETB EX0SETBEX1 SETB IT0 SETBIT1SJMP $INTT0: CLRP1.2RETIINTT1: SETBP1.2RETI END ORG 0000HAJMPMAIN ORG0003HLJMPINTT0 ORG0013HLJMPINTT1例3:无中断时,灯全亮,当外中断0响应时,低四位灯亮,当外中断1响应时,高四位灯亮。 ORG 0030HMAIN: MOV SP,#60H MOV P1,#00H SETB EA SETB EX0SETBEX1 SETB IT0 SETBIT1SJMP $INTT0: PUSH P1 MOV P1,#0F0H POP P1RETIINTT1:PUSHP1MOV P1,#0FH POPP1 RETI END1.无中断时,灯循环亮,当外中断0响应时,低四位灯亮,当外中断1响应时,高四位灯亮。思考: ORG 0000HAJMPMAIN ORG0003HLJMPINTT0 ORG0013HLJMPINTT1 ORG 0100HMAIN:MOV P1,#FEH MOV R7,#07H MOV SP,#60HLOOP:MOVA,P1RLAMOVP1,A DJNZR7,LOOP

SETB IT0 SETB EA SETB EX0SETBEX1 SJMP $ ORG 1000HINTT0: PUSH P1 MOV P1,#0F0H ACALLDELAYPOP P1RETI INTT1:PUSHP1MOV P1,#0FH ACALLDELAY POPP1 RETI END注明:DELAY为延时程序。2.无中断时,奇偶灯每隔1S交替闪烁亮,当外中断0响应时,低四位灯亮,当外中

温馨提示

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

评论

0/150

提交评论