l对中断的开放和关闭实现两级控制。 有一个总的开关中断控制位EA(E7位 EA=0时,所有的中断请求被屏蔽; EA=1时,开放中断,但6个中断源的中断请求是否允许,还 要由中的低6位所对应的6个中断请求允许控制位的状态来决 定(图4-6)。 正中各位功能如下: (1)EA一中断允许总开关控制位。 EA=0,所有的中断请求被屏蔽。 EA=1,所有的中断请求被开放。 (2)Es——串行口中断允许位。 ES=0,禁止串行口中断
17 IE对中断的开放和关闭实现两级控制。 有一个总的开关中断控制位EA(IE.7位), EA=0时,所有的中断请求被屏蔽; EA=1时,开放中断,但6个中断源的中断请求是否允许,还 要由IE中的低6位所对应的6个中断请求允许控制位的状态来决 定(图4-6)。 IE中各位功能如下: (1)EA—中断允许总开关控制位。 EA=0,所有的中断请求被屏蔽。 EA=1,所有的中断请求被开放。 (2)ES——串行口中断允许位。 ES=0,禁止串行口中断。 17
ES=1,允许串行口中断。 (3)ET1——定时器计数器T的溢出中断允许位。 ET1=0,禁止T溢出中断。 ET1=1,允许T溢出中断。 (4)EX1——外部中断1中断允许位。 EX1=0,禁止外部中断1中断。 EX1=1,允许外部中断1中断。 (5)ET0—定时器计数器T0的溢出中断允许位。 ET0=0,禁止T0溢出中断。 ET0=1,允许T0溢出中断
18 ES=1,允许串行口中断。 (3)ET1——定时器/计数器T1的溢出中断允许位。 ET1=0,禁止T1溢出中断。 ET1=1,允许T1溢出中断。 (4)EX1——外部中断1中断允许位。 EX1=0,禁止外部中断1中断。 EX1=1,允许外部中断1中断。 (5)ET0——定时器/计数器T0的溢出中断允许位。 ET0=0,禁止T0溢出中断。 ET0=1,允许T0溢出中断。 18
(6)EX0——外部中断0中断允许位。 EX0=0,禁止外部中断0中断。 EX0=1,允许外部中断0中断。 (7)EX0—外部中断0中断允许位。 EX0=0,禁止外部中断0中断。 EX0=1,允许外部中断0中断。 AT89S52复位以后,旧被清“0”,所有的中断请求被禁止。 中与各个中断源相应的位可用指令置“1”或清“0”,即可允 许或禁止各中断源的中断申请。若使某一个中断源被允许中
19 (6)EX0——外部中断0中断允许位。 EX0=0,禁止外部中断0中断。 EX0=1,允许外部中断0中断。 (7)EX0——外部中断0中断允许位。 EX0=0,禁止外部中断0中断。 EX0=1,允许外部中断0中断。 AT89S52复位以后,IE被清“0”,所有的中断请求被禁止。 IE中与各个中断源相应的位可用指令置“1”或清“0”,即可允 许或禁止各中断源的中断申请。若使某一个中断源被允许中
断,除了相应的位被置“1外,还必须使EA位置“1”,即 EA位置“1为中断请求的必要条件。 改变旧的内容,可由位操作指令来实现(即 seTB bit; clr bit),也可用字节操作指令实现。AT89s51复位以后, 正被清“0”,所有中断请求被禁止。正中与各个中断源相应 的位可用指令置“1”或清“0
20 断,除了IE相应的位被置“1”外,还必须使EA位置“1”,即 EA位置“1”为中断请求的必要条件。 改变IE的内容,可由位操作指令来实现(即SETB bit; CLR bit),也可用字节操作指令实现。 AT89S51复位以后, IE被清“0”,所有中断请求被禁止。IE中与各个中断源相应 的位可用指令置“1”或清“0”。 20
【例4-1】若允许片内2个定时器计数器T1、T0中断,并禁 止其他中断请求,请编写设置E的相应程序段。 (1)用位操作指令 CLR ES ;禁止串行口中断 CLR EXO ;禁止外部中断0中断 CLR EX1 ;禁止外部中断1断 CLR ET2 ;禁止定时器计数器T2中断 SETB ETO ;允许定时器计数器T0中断 SETB ET1 ;允许定时器计数器T1中断 SETB EA ;总中断开关位开放 (2)用字节操作指令 MOV E, 8AH 上述两段程序对的设置是相同的
21 【例4-1】 若允许片内2个定时器/计数器T1、T0中断,并禁 止其他中断请求,请编写设置IE的相应程序段。 (1)用位操作指令 CLR ES ;禁止串行口中断 CLR EX0 ;禁止外部中断0中断 CLR EX1 ;禁止外部中断1中断 CLR ET2 ;禁止定时器/计数器T2中断 SETB ET0 ;允许定时器/计数器T0中断 SETB ET1 ;允许定时器/计数器T1中断 SETB EA ;总中断开关位开放 (2)用字节操作指令 MOV IE,#8AH 上述两段程序对IE的设置是相同的。 21