【例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 IE,#8AH 上述两段程序对E的设置是相同的。 16
16 【例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的设置是相同的。 16
4.3.2中断优先级寄存器P AT89S52的中断请求源有两个中断优先级,由软件分别设置 为高优先级中断或低优先级中断,可实现:两级中断嵌套 AT89S52正在执行低优先级中断的服务程序时,可被高优先级 中断请求所中断,待高优先级中断处理完毕后,再返回低优先级 中断服务程序。两级中断嵌套的过程如图4-7所示
17 4.3.2 中断优先级寄存器IP AT89S52的中断请求源有两个中断优先级,由软件分别设置 为高优先级中断或低优先级中断,可实现:两级中断嵌套 AT89S52正在执行低优先级中断的服务程序时,可被高优先级 中断请求所中断,待高优先级中断处理完毕后,再返回低优先级 中断服务程序。两级中断嵌套的过程如图4-7所示。 17
CPU执行主程序 CU执行低级 CPU执行高级 中断服务程序 中断服务程序 响应低级中断请求 高级 响应高级中断请求 中 中断 请求 返回主程序 返回低级中断程序 图4-7 两级中断嵌套的过程 18
18 图4-7 两级中断嵌套的过程
各中断源的中断优先级关系,可归纳为两条基本规则: ()低优先级可被高优先级中断,高优先级不能低优先 级中断。如果某一中断源被设置为高优先级中断,则不能被 任何其他的中断源的中断请求所中断。 (2)任何一种中断一旦得到响应,不会再被它的同级中 断源所中断。 中断优先级寄存器P,其字节地址为B8H,可位寻址。 只要用程序改变其内容,可进行各中断源中断优先级的设置, P寄存器的格式如图4-8所示。 19
19 各中断源的中断优先级关系,可归纳为两条基本规则: (1)低优先级可被高优先级中断,高优先级不能低优先 级中断。如果某一中断源被设置为高优先级中断,则不能被 任何其他的中断源的中断请求所中断。 (2)任何一种中断一旦得到响应,不会再被它的同级中 断源所中断。 中断优先级寄存器IP,其字节地址为B8H,可位寻址。 只要用程序改变其内容,可进行各中断源中断优先级的设置, IP寄存器的格式如图4-8所示。 19
D7 D6 D5 D4 D3 D2 D1 DO P PT2 PS PT1 PX1 PTO PXO B8H 位地址 BDH BCH BBH BAH B9H B8H 图4-8 IP寄存器的格式 中断优先级寄存器P各位的含义如下: (1)PT2一定时器T2中断优先级控制位 (2)PS一串行口中断优先级控制位 (3)PT1一定时器T1中断优先级控制位 (4)PX1一外部中断1中断优先级控制位 (5)PT0一定时器T0中断优先级控制位 (6)PX0一外部中断0中断优先级控制位 20
20 中断优先级寄存器IP各位的含义如下: (1)PT2—定时器T2中断优先级控制位 (2)PS—串行口中断优先级控制位 (3)PT1—定时器T1中断优先级控制位 (4)PX1—外部中断1中断优先级控制位 (5)PT0—定时器T0中断优先级控制位 (6)PX0—外部中断0中断优先级控制位 20 图4-8 IP寄存器的格式