中断的引入

        中断系统是为使CPU具有对外界紧总事件的实时处理能力而设置的

        当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中断源。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU总是先响应优先级别最高的中断请求。

        当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系统,没有中断嵌套功能的中断系统称为单级中断系统。

        STC89C51RC/RD+系列单片机提供了8个中断请求源,它们分别是:外部中断0(INTO)、定时器0中断、外部中断1(INTI)、定时器1中断、串(UART)中断、定时器2中断、外部中断2(INT2)、外部中断3(INT3)。所有的中断都具有4个中断优先级。用户可以用关总中断允许位(EAE.7)或相应中断的允许位来屏蔽所有的中断请求,也可以用打开相应的中断允许位来使CPU响应相应的中断申请:每一个中断源可以用软件独立地控制为开中断或关中断状态:每个中断的优先级别均可用软件设置。高优先级的中断请求可以打断低优先级的中断,反之,低优先级的中断请求不可以打断高优先级及同优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来决定系统先响应哪个中断。

 

中断查询次序
中断源中断向量地址相同优先级内的查询次序中断优先级设置(IPH,IP)优先级0(最低)优先级1优先级2优先级3中断请求标志位中断允许控制位

INT0

(外部中断0)

0003H0(highest)PX0H,PX00,00,11,01,1IE0EX0/EA
Timer 0000BH1PT0H,PT00,00,11,01,1TF0ET0/EA

INT1

(外部中断1)

0013H2PX1H,PX10,00,11,01,1IE1EX1/EA
Timer 1001BH3PT1H,PT10,00,11,01,1TF1ET1/EA
UART0023H4PSH,PS0,00,11,01,1RI+TI
Timer 2002BH5PT2H,PT20,00,11,01,1TF2+EXF2(ET2)/EA

INT2

(外部中断2)

0033H6PX2H,PX20,00,11,01,1IE2EX2/EA

INT3

(外部中断3)

003BH7(lowest)PX3H,PX30,00,11,01,1IE3EX3/EA

         通过设置新增加的特殊功能寄存器IPH中的相应位,可将中断优先级设为四级,如果只设置IP或XICON,那么中断优先级就只有两级,与传统8051单片机两级中断优先级完全兼容。

        如果使用C语言编程,中断查询次序号就是中断号,例如:

voidInt0_Routine(void)interrupt 0
voidTimer0_Rountine(void)interrupt 1
voidIntl_Routine(void)interrupt 2
voidTimer1_Rountine(yoid)interrupt 3
voidUART_Routine(void)interrupt 4
voidTimer2 Routine(yoid)interrupt 5
voidInt2 Routine(void)interrupt 6
voidint3 Routine(void)interrupt 7x

中断允许寄存器EE和XICON
STC89C51RC/RD+系列单片机CPU对中斯源的开放或屏蔽,每一个中断源是否被允许中断,是由内部的中断允许寄存器E(地址为A8H)和XICON(地址为C0H)控制的,寄存器IE的格式如下:

EA:  CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请,EA的作用是使中断允许形成两级控制。即各中断源首先受EA控制:其次还受各中断源自己的中断允许控制位控制。

ET2:  定时/计数器T2的溢出中断允许位。ET2=1,允许T2中断: ET2=0,禁止T2中断。

ES:  串行口1中断允许位。ES=1,允许串行口1中断: ES=0,禁止串行口1中断。

ET1:  定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断:ET1=0,禁止T1中断。

EX1:  外部中断1中断允许位。EX1=1,允许外部中断1中断:EX1=0,禁止外部中断1中断,

ET0:  T0的溢出中断允许位,ET0=1,允许T0中断;ET0=0禁止T0中断

EX0:  外部中断0中新允许位。EX0=1,允许中断;EX0=0禁止中断。

CPU 能响应定时器 0 中断的条件:需要配置 IE 寄存器的  bit1: ET0   bit7:EA
1. ET0中断允许要置一 ET0 = 1
2. EA总中断要置一      EA = 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值