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

下载本文档

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

文档简介

单片机中断系统单片机中断系统1主要内容:7.1中断概述7.2中断源和中断控制寄存器7.3中断处理过程主要内容:2单片机中断系统课件3单片机中断系统课件4二、为什么要设置中断?

⑴提高CPU工作效率⑵具有实时处理功能⑶具有故障处理功能⑷实现分时操作中断功能强弱是计算机性能优劣的重要标志二、为什么要设置中断?中断功能强弱是计算机性能优劣的重要标5①中断源②中断申请③开放中断④保护现场⑤中断服务⑥恢复现场⑦中断返回三、中断涉及的几个环节①中断源三、中断涉及的几个环节6

CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。四、CPU识别中断申请的依据:CPU在每个机器周期的S5P2期间,会自动查询各个7一、中断源

中断源是指能发出中断请求,引起中断的装置或事件。80C51单片机的中断源共有5个,其中2个为外部中断源,3个为内部中断源:一、中断源中断源是指能发出中断请求,引起中断的装置或8⑴ INT0:外部中断0,中断请求信号由P3.2输入。⑵ INT1:外部中断1,中断请求信号由P3.3输入。⑶T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。⑷T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。⑸串行中断:包括串行接收中断RI和串行发送中断TI。⑴ INT0:外部中断0,中断请求信号由P3.2输入。9中断请求:定时和外中断控制寄存器TCON;

串行控制寄存器SCON;中断允许控制寄存器IE;中断优先级控制寄存器IP。二、中断控制寄存器

80C51单片机中涉及中断控制的有3个方面4个特殊功能寄存器:中断请求:定时和外中断控制寄存器TCON;二、中断控制寄存10INT0、INT1、T0、T1中断请求标志放在TCON中串行中断请求标志放在SCON中。1.中断请求控制寄存器TCON8FH8EH8DH8CH8BH8AH89H88H位名称TF1—TF0—IE1IT1IE0IT0功能T1

中断标志—T0中断标志—

中断标志

触发方式

中断标志触发方式(1)TCON的结构、位名称、位地址和功能如下:INT0、INT1、T0、T1中断请求标志放在TCON中1.11

TCON位功能:①TF1——T1溢出中断请求标志

T1计数溢出后,TF1=1②TF0——T0溢出中断请求标志

T0计数溢出后,TF0=1TF0/TF1:定时器溢出中断申请标志位:=0:定时器未溢出;=1:定时器溢出申请中断,进中断后自动清零。TCON位功能:12③IE1——外中断中断请求标志

当P3.3引脚信号有效时,IE1=1④IE0——外中断中断请求标志

当P3.2引脚信号有效时,IE0=1IE0/IE1:外部中断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。③IE1——外中断中断请求标志13⑤IT1——外中断触发方式控制位

IT1=1,边沿触发方式;

IT1=0,电平触发方式。⑥IT0——外中断触发方式控制位其意义和功能与IT1相似。IT0/IT1:外部中断请求的触发方式选择位:=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效.⑤IT1——外中断触发方式控制位IT0/IT1:外部中14CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位CPU主程序INT0INT1T0T1串口IE0TF0IE1T15(2)串行控制寄存器SCONTCON——————99H98H位名称——————TIRI功能——————串行发送中断标志串行接收中断标志①TI——串行口发送中断请求标志②RI——串行口接收中断请求标志(2)串行控制寄存器SCONTCON——————99H98H16

80C51对中断源的开放或关闭由中断允许控制寄存器IE控制。2.中断允许控制寄存器IEIE的结构、位名称和位地址如下:IEAFH——ACHABHAAHA9HA8H位名称EA——ESET1EX1ET0EX0中断源CPU——串行口T1T080C51对中断源的开放或关闭由中断17①EA——CPU中断允许控制位(总开关)

EA=1,CPU开中;

EA=0,CPU关中,且屏蔽所有5个中断源。②EX0——外中断INT0中断允许控制位

EX0=1,INT0开中;EX0=0,INT0关中。③EX1——外中断INT1中断允许控制位

EX1=1,INT1开中;EX1=0,INT1关中。④ET0——定时/计数器T0中断允许控制位

ET0=1,T0开中;ET0=0,T0关中。⑤ET1---定时/计数器T1中断允许控制位

ET1=1,T1开中;ET1=0,T1关中。⑥ES——串行口中断(包括串发、串收)允许控制位

ES=1,串行口开中;ES=0,串行口关中①EA——CPU中断允许控制位(总开关)18说明:80C51对中断实行两级控制,总控制位是EA,每一中断源还有各自的控制位。首先要EA=1,其次还要自身的控制位置“1”。说明:80C51对中断实行两级控制,总控制位是EA,每一中193.中断优先级控制寄存器IP

80C51有5个中断源,划分为2个中断优先级:高优先级和低优先级。

(1)IP的结构、位名称和位地址如下:IE———BCHBBHBAHB9HB8H位名称———PSPT1PX1PT0PX0中断源———串行口T1INT1T0INT03.中断优先级控制寄存器IPIE———BCHBBHBAHB920①

PX0:INT0中断优先级控制位。PX0=1,为高优先级;PX0=0,为低优先级;②

PX1:INT1中断优先级控制位。控制方法同上。③PT0:T0中断优先级控制位。控制方法同上。④PT1:T1中断优先级控制位。控制方法同上。⑤PS:串行口中断优先级控制位。控制方法同上。①PX0:INT0中断优先级控制位。PX0=1,为高优先21(2)中断优先级的控制原则:1.低优先级中断请求不能打断高优先级的中断服务,反之可以;2.一个中断一但响应,与它同级的中断请求不能中断它。3.如果同级的多个中断请求同时出现,则按CPU的查询次序。CPU的查询次序:外部中断0-定时/计数器0-外部中断1-定时/计数器1-串行中断(2)中断优先级的控制原则:22(3)中断嵌套

当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。

中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。(3)中断嵌套当CPU正在执行某个中断服务程序时23单片机中断系统课件24

中断处理过程大致可分为四步:

中断请求、中断响应、中断服务、中断返回一、中断响应的条件

CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。

1.中断响应条件:①首先要有中断源发出中断申请②中断总开关打开EA=1③请求中断已经也打开中断处理过程大致可分为四步:1.中断响应条件:25

2.中断受阻的可能:

①CPU正在执行同级或更高级的中断;②当前的机器周期不是正在执行的指令的最后一个机器周期;③正在执行的指令是RETI或者是访向IE、IP的指令,则执行完该指令后,必须再另外执行一条指令后才能响应。

26

3.

中断响应操作

CPU响应中断后,进行下列操作:①保护断点地址;②将相应中断的入口地址送入PC;③撤除该中断源的中断请求标志;④关闭同级中断

80C51五个中断入口地址:

INT0:0003H; T0:000BH;INT1:0013H; T1:001BH;

串行口:0023H3.中断响应操作274.中断请求的撤除

CPU响应中断后,必须清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。4.中断请求的撤除28①对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响应中断时就用硬件自动清除了相应的中断请求标志。②对外中断电平触发方式,需要采取软硬结合的方法消除后果。③对串行口中断,用户应在串行中断服务程序中用软件清除TI或RI①对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响29例:硬件电路如图所示。当外部设备有中断请求时,中断请求信号经反相,加到锁存器CP端,作为CP脉冲。由于D端接地为0,Q端输出低点平,触发

INT0生中断。当CPU响应中断后,应在该中断服务程序中按排两条指令:

CLRP1.0:SETBP1.0

从而撤消引起重复中断的INT0低电平信号。

因此一般来说,对外中断INT0、INTl,应尽量采用边沿触发方式,以简化硬件电路和软件程序。

例:硬件电路如图所示。当外部设备有中断请求时,中断请求信号经305.中断响应等待时间

若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为:

3~8个机器周期5.中断响应等待时间

若排除CPU正在响应同级或更高31单片机中断系统课件32二、

执行中断服务程序中断服务程序应包含以下几部分:⑴保护现场⑵执行中断服务程序主体,完成相应操作⑶恢复现场三、中断返回在中断服务程序最后,必须安排一条中断返回指令RETI,当CPU执行RETI指令后,自动完成下列操作:恢复断点地址。

二、执行中断服务程序33一、中断主程序初始化

1.设置堆栈指针SP2.定义中断优先级

3.定义外中断触发方式

4.开放中断

5.安排好等待中断或中断发生前主程序应完成的操作内容。二、中断服务子程序

中断服务子程序内容要求:

1.在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。一、中断主程序初始化中断服务子程序内容要求:34

由于80C51相邻两个中断入口地址间只有8B的空间,8B只能容纳一个有3~8条指令的极短程序,一般情况中断服务程序均大大超出8B长度。因此,必须跳转到其他合适的地址空间。跳转指令可用SJMP、AJMP或LJMP指令,SJMP、AJMP均受跳转范围影响,建议用LJMP指令,则可将真正的中断服务程序不受限制地安排在64KB任何地方。

单片机中断系统课件352.根据需要保护现场。

保护现场不是中断服务程序的必需部分。通常是保护Acc、PSW和DPTR等特殊功能寄存器中的内容。若中断服务程序中不涉及Acc、PSW,DPTR,则不需保护,也不需恢复。例如:累加器A是最常用的特殊功能寄存器,主程序中不可能不用到A。而发生中断又是随机的,可能正好发生在对A进行操作、A中的数据还有用时进入中断,而在中断服务程序中又涉及到A,改变了A中的内容,则在进入中断服务程序对A操作前应对原A中数据进行保护,以便中断返回后恢复A中原来数据

需要指出的是,保护现场数据越少越好,数据保护越多,堆栈负担越重,堆栈深度设置应越深。2.根据需要保护现场。363.中断源请求中断服务要求的操作。4.恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。5.中断返回,最后一条指令必须是RETI。3.中断源请求中断服务要求的操作。37【例7-1】

利用定时器T0定时,在P1.0端输出一方波,方波周期为20ms,已知晶振为12MHZ。主程序:

ORG0000HLJMP2000HT0的中断服务程序ORG000BHAJMP70H【例7-1】利用定时器T0定时,在P1.0端输出一方波,方38ORG70HMOVTL0,#0F0HMOVTH0,#0D8HCPLP1.0RETIORG2000HMOVTMOD,#01HMOVTL0,#0F0HMOVTH0,#0D8HMOVIE,#82HSETBTR0HERE:SJMPHEREORG70H39【例6-2】出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断INT0(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。解:编程如下:

ORG 0000H ;复位地址

LJMP STAT ;转初始化

ORG 0003H ;中断入口地址

LJMP INT ;转中断服务程序【例6-2】出租车计价器计程方法是车轮每运转一圈产生一个负40

ORG0100H ;初始化程序首地址STAT:MOVSP,#60H ;置堆栈指针

SETBIT0 ;置边沿触发方式

MOVIP,#01H ;置高优先级

MOVIE,#81H ;开中

MOV30H,#0 ;里程计数器清0

MOV31H,#0 ;MOV32H,#0 ;LJMPMAIN ;转主程序,并等待中断

ORG0200H ;中断服务子程序首地址INT:PUSHAcc ;保护现场

PUSHPSW ; MOVA,30H ;读低8位计数器

ADDA,#2 ;低8位计数器加2m MOV30H,A ;回存

CLRA ; ADDCA,31H ;中8位计数器加进位

MOV31H,A ;回存

CLRA ; ADDCA,32H ;高8位计数器加进位

MOV32H,A ;回存

PUSHPSW ;恢复现场

PUSHAcc ; RETI ;中断返回MAIN主程序可以处理循环显示等任务。ORG0100H ;初始化程序首地址MAI41【例6-3】现有5个外中断源EX1、EX20、EX21、EX22和EX23,高电平时表示请求中断,要求执行相应中断服务程序,试编制程序。

解:ORG 0000H ;复位地址LJMP MAIN

;转主程序ORG 0003H ;中断入口地址LJMP PINT0

;转中断服务程序ORG 0013H ;中断入口地址LJMP PINT1

;转中断服务程序【例6-3】现有5个外中断源EX1、EX20、EX21、EX42

ORG 0100H

;主程序首地址MAIN:MOV SP,#60H ;置堆栈指针

ORL TCON,#05H ;置INT0、INT1为边沿触发方式

SETB PX0 ;置为高优先级

MOV IE,#0FFH ;全部开中 … ;主程序内容

ORG1000H

;中断服务程序首地址

PINT0:PUSH Acc ;中断,保护现场

LCALLWORK1 ;调用EX1服务子程序

POP Acc ;恢复现场

RETI ;中断返回

ORG 2000H

;中断服务程序首地址PINT1:CLR EA ;CPU禁中

PUSH Acc ;中断保护现场

PUSH DPH ;PUSH DPL ;SETB EA ;CPU开中ORG 0100H ;主程序首地43

JBP1.0,LWK20;P1.0=1,EX20请求中断

JBP1.1,LWK21;P1.1=1,EX21请求中断

JBP1.2,LWK22;P1.2=1,EX22请求中断

LCALLWORK23;P1.3=1,调用EX23服务子

LRET: CLR EA ;CPU禁中

POP DPL ;恢复现场

POP DPH ;POP Acc ;SETB EA ;CPU开中

RETI ;中断返回LWK20:LCALLWORK20 ;P1.0=1,调用EX20服务子程序

SJMPLRET;转中断返回LWK21:LCALLWORK21 ;P1.1=1,调用EX21服务子程序

SJMPLRET ;转中断返回LWK22:LCALLWORK22;P1.2=1,调用EX22服务子程序

SJMPLRET ;转中断返回

JBP1.0,LWK20;P1.0=44单片机中断系统课件45【例7-4】通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。已知:(B)=01h,要求采用边沿触发,低优先级。此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。

P1.0P1.7INT1300【例7-4】通过外部中断1,在中断服务中将B寄存器里的内容左46

ORG0000H

LJMPMAIN

ORG0013H;中断矢量

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

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

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

SETBIT1;边沿触发

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

RLA;左环移一次

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

MOVP1,A;输出到P1口

RETI;中断返回中断服务程序ORG0000HINT:MO47单片机中断系统单片机中断系统48主要内容:7.1中断概述7.2中断源和中断控制寄存器7.3中断处理过程主要内容:49单片机中断系统课件50单片机中断系统课件51二、为什么要设置中断?

⑴提高CPU工作效率⑵具有实时处理功能⑶具有故障处理功能⑷实现分时操作中断功能强弱是计算机性能优劣的重要标志二、为什么要设置中断?中断功能强弱是计算机性能优劣的重要标52①中断源②中断申请③开放中断④保护现场⑤中断服务⑥恢复现场⑦中断返回三、中断涉及的几个环节①中断源三、中断涉及的几个环节53

CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。四、CPU识别中断申请的依据:CPU在每个机器周期的S5P2期间,会自动查询各个54一、中断源

中断源是指能发出中断请求,引起中断的装置或事件。80C51单片机的中断源共有5个,其中2个为外部中断源,3个为内部中断源:一、中断源中断源是指能发出中断请求,引起中断的装置或55⑴ INT0:外部中断0,中断请求信号由P3.2输入。⑵ INT1:外部中断1,中断请求信号由P3.3输入。⑶T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。⑷T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。⑸串行中断:包括串行接收中断RI和串行发送中断TI。⑴ INT0:外部中断0,中断请求信号由P3.2输入。56中断请求:定时和外中断控制寄存器TCON;

串行控制寄存器SCON;中断允许控制寄存器IE;中断优先级控制寄存器IP。二、中断控制寄存器

80C51单片机中涉及中断控制的有3个方面4个特殊功能寄存器:中断请求:定时和外中断控制寄存器TCON;二、中断控制寄存57INT0、INT1、T0、T1中断请求标志放在TCON中串行中断请求标志放在SCON中。1.中断请求控制寄存器TCON8FH8EH8DH8CH8BH8AH89H88H位名称TF1—TF0—IE1IT1IE0IT0功能T1

中断标志—T0中断标志—

中断标志

触发方式

中断标志触发方式(1)TCON的结构、位名称、位地址和功能如下:INT0、INT1、T0、T1中断请求标志放在TCON中1.58

TCON位功能:①TF1——T1溢出中断请求标志

T1计数溢出后,TF1=1②TF0——T0溢出中断请求标志

T0计数溢出后,TF0=1TF0/TF1:定时器溢出中断申请标志位:=0:定时器未溢出;=1:定时器溢出申请中断,进中断后自动清零。TCON位功能:59③IE1——外中断中断请求标志

当P3.3引脚信号有效时,IE1=1④IE0——外中断中断请求标志

当P3.2引脚信号有效时,IE0=1IE0/IE1:外部中断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。③IE1——外中断中断请求标志60⑤IT1——外中断触发方式控制位

IT1=1,边沿触发方式;

IT1=0,电平触发方式。⑥IT0——外中断触发方式控制位其意义和功能与IT1相似。IT0/IT1:外部中断请求的触发方式选择位:=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效.⑤IT1——外中断触发方式控制位IT0/IT1:外部中61CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位CPU主程序INT0INT1T0T1串口IE0TF0IE1T62(2)串行控制寄存器SCONTCON——————99H98H位名称——————TIRI功能——————串行发送中断标志串行接收中断标志①TI——串行口发送中断请求标志②RI——串行口接收中断请求标志(2)串行控制寄存器SCONTCON——————99H98H63

80C51对中断源的开放或关闭由中断允许控制寄存器IE控制。2.中断允许控制寄存器IEIE的结构、位名称和位地址如下:IEAFH——ACHABHAAHA9HA8H位名称EA——ESET1EX1ET0EX0中断源CPU——串行口T1T080C51对中断源的开放或关闭由中断64①EA——CPU中断允许控制位(总开关)

EA=1,CPU开中;

EA=0,CPU关中,且屏蔽所有5个中断源。②EX0——外中断INT0中断允许控制位

EX0=1,INT0开中;EX0=0,INT0关中。③EX1——外中断INT1中断允许控制位

EX1=1,INT1开中;EX1=0,INT1关中。④ET0——定时/计数器T0中断允许控制位

ET0=1,T0开中;ET0=0,T0关中。⑤ET1---定时/计数器T1中断允许控制位

ET1=1,T1开中;ET1=0,T1关中。⑥ES——串行口中断(包括串发、串收)允许控制位

ES=1,串行口开中;ES=0,串行口关中①EA——CPU中断允许控制位(总开关)65说明:80C51对中断实行两级控制,总控制位是EA,每一中断源还有各自的控制位。首先要EA=1,其次还要自身的控制位置“1”。说明:80C51对中断实行两级控制,总控制位是EA,每一中663.中断优先级控制寄存器IP

80C51有5个中断源,划分为2个中断优先级:高优先级和低优先级。

(1)IP的结构、位名称和位地址如下:IE———BCHBBHBAHB9HB8H位名称———PSPT1PX1PT0PX0中断源———串行口T1INT1T0INT03.中断优先级控制寄存器IPIE———BCHBBHBAHB967①

PX0:INT0中断优先级控制位。PX0=1,为高优先级;PX0=0,为低优先级;②

PX1:INT1中断优先级控制位。控制方法同上。③PT0:T0中断优先级控制位。控制方法同上。④PT1:T1中断优先级控制位。控制方法同上。⑤PS:串行口中断优先级控制位。控制方法同上。①PX0:INT0中断优先级控制位。PX0=1,为高优先68(2)中断优先级的控制原则:1.低优先级中断请求不能打断高优先级的中断服务,反之可以;2.一个中断一但响应,与它同级的中断请求不能中断它。3.如果同级的多个中断请求同时出现,则按CPU的查询次序。CPU的查询次序:外部中断0-定时/计数器0-外部中断1-定时/计数器1-串行中断(2)中断优先级的控制原则:69(3)中断嵌套

当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。

中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。(3)中断嵌套当CPU正在执行某个中断服务程序时70单片机中断系统课件71

中断处理过程大致可分为四步:

中断请求、中断响应、中断服务、中断返回一、中断响应的条件

CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。

1.中断响应条件:①首先要有中断源发出中断申请②中断总开关打开EA=1③请求中断已经也打开中断处理过程大致可分为四步:1.中断响应条件:72

2.中断受阻的可能:

①CPU正在执行同级或更高级的中断;②当前的机器周期不是正在执行的指令的最后一个机器周期;③正在执行的指令是RETI或者是访向IE、IP的指令,则执行完该指令后,必须再另外执行一条指令后才能响应。

73

3.

中断响应操作

CPU响应中断后,进行下列操作:①保护断点地址;②将相应中断的入口地址送入PC;③撤除该中断源的中断请求标志;④关闭同级中断

80C51五个中断入口地址:

INT0:0003H; T0:000BH;INT1:0013H; T1:001BH;

串行口:0023H3.中断响应操作744.中断请求的撤除

CPU响应中断后,必须清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。4.中断请求的撤除75①对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响应中断时就用硬件自动清除了相应的中断请求标志。②对外中断电平触发方式,需要采取软硬结合的方法消除后果。③对串行口中断,用户应在串行中断服务程序中用软件清除TI或RI①对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响76例:硬件电路如图所示。当外部设备有中断请求时,中断请求信号经反相,加到锁存器CP端,作为CP脉冲。由于D端接地为0,Q端输出低点平,触发

INT0生中断。当CPU响应中断后,应在该中断服务程序中按排两条指令:

CLRP1.0:SETBP1.0

从而撤消引起重复中断的INT0低电平信号。

因此一般来说,对外中断INT0、INTl,应尽量采用边沿触发方式,以简化硬件电路和软件程序。

例:硬件电路如图所示。当外部设备有中断请求时,中断请求信号经775.中断响应等待时间

若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为:

3~8个机器周期5.中断响应等待时间

若排除CPU正在响应同级或更高78单片机中断系统课件79二、

执行中断服务程序中断服务程序应包含以下几部分:⑴保护现场⑵执行中断服务程序主体,完成相应操作⑶恢复现场三、中断返回在中断服务程序最后,必须安排一条中断返回指令RETI,当CPU执行RETI指令后,自动完成下列操作:恢复断点地址。

二、执行中断服务程序80一、中断主程序初始化

1.设置堆栈指针SP2.定义中断优先级

3.定义外中断触发方式

4.开放中断

5.安排好等待中断或中断发生前主程序应完成的操作内容。二、中断服务子程序

中断服务子程序内容要求:

1.在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。一、中断主程序初始化中断服务子程序内容要求:81

由于80C51相邻两个中断入口地址间只有8B的空间,8B只能容纳一个有3~8条指令的极短程序,一般情况中断服务程序均大大超出8B长度。因此,必须跳转到其他合适的地址空间。跳转指令可用SJMP、AJMP或LJMP指令,SJMP、AJMP均受跳转范围影响,建议用LJMP指令,则可将真正的中断服务程序不受限制地安排在64KB任何地方。

单片机中断系统课件822.根据需要保护现场。

保护现场不是中断服务程序的必需部分。通常是保护Acc、PSW和DPTR等特殊功能寄存器中的内容。若中断服务程序中不涉及Acc、PSW,DPTR,则不需保护,也不需恢复。例如:累加器A是最常用的特殊功能寄存器,主程序中不可能不用到A。而发生中断又是随机的,可能正好发生在对A进行操作、A中的数据还有用时进入中断,而在中断服务程序中又涉及到A,改变了A中的内容,则在进入中断服务程序对A操作前应对原A中数据进行保护,以便中断返回后恢复A中原来数据

需要指出的是,保护现场数据越少越好,数据保护越多,堆栈负担越重,堆栈深度设置应越深。2.根据需要保护现场。833.中断源请求中断服务要求的操作。4.恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。5.中断返回,最后一条指令必须是RETI。3.中断源请求中断服务要求的操作。84【例7-1】

利用定时器T0定时,在P1.0端输出一方波,方波周期为20ms,已知晶振为12MHZ。主程序:

ORG0000HLJMP2000HT0的中断服务程序ORG000BHAJMP70H【例7-1】利用定时器T0定时,在P1.0端输出一方波,方85ORG70HMOVTL0,#0F0HMOVTH0,#0D8HCPLP1.0RETIORG2000HMOVTMOD,#01HMOVTL0,#0F0HMOVTH0,#0D8HMOVIE,#82HSETBTR0HERE:SJMPHEREORG70H86【例6-2】出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断INT0(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。解:编程如下:

ORG 0000H ;复位地址

LJMP STAT ;转初始化

ORG 0003H ;中断入口地址

LJMP INT ;转中断服务程序【例6-2】出租车计价器计程方法是车轮每运转一圈产生一个负87

ORG0100H ;初始化程序首地址STAT:MOVSP,#60H ;置堆栈指针

SETBIT0 ;置边沿触发方式

MOVIP,#01H ;置高优先级

MOVIE,#81H ;开中

MOV30H,#0 ;里程计数器清0

MOV31H,#0 ;MOV32H,#0 ;LJMPMAIN ;转主程序,并等待中断

ORG0200H ;中断服务子程序首地址INT:PUSHAcc ;保护现场

PUSHPSW ; MOVA,30H ;读低8位计数器

ADDA,#2 ;低8位计数器加2m MOV30H,A ;回存

CLRA ; ADDCA,31H ;中8位计数器加进位

MOV31H,A ;回存

CLRA ; ADDCA,32H ;高8位计数器加进位

MOV32H,A ;回存

PUSHPSW ;恢复现场

PUSHAcc ; RETI ;中断返回MAIN主程序可以处理循环显示等任务。ORG0100H ;初始化程序首地址MAI88【例6-3】现有5个外中断源EX1、EX20、EX21、EX22和EX23,高电平时表示请求中断,要求执行相应中断服务程序,试编制程序。

解:ORG 0000H ;复位地址LJMP MAIN

;转主程序ORG 0003H ;中断入口地址LJMP PINT0

;转中断服务程序ORG 0013H ;中断入口地址LJMP PINT1

;转

温馨提示

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

评论

0/150

提交评论