- 15
- 0
- 约2.51千字
- 约 12页
- 2017-07-16 发布于四川
- 举报
* * 第5章 思考题与答案 若规定外部中断0为电平触发方式,高优先级,试写出有关的初始化程序。 解: SETB EA ;开中断 SETB EX0 ;允许外中断0中断 SETB PX0 ;外中断0定为高优先级 CLR IT0 ;电平触发 例 5.1 若规定外部中断1为边沿触发方式,低优先级,在中断服务程序中将寄存器B的内容左环移一位,B的初值设为01H。 试编写主程序与中断服务程序。 例 5.2 ORG 0000 H ;主程序 LJMP MAIN ;主程序转至MAIN处 ORG 0013H ;中断服务程序 LJMP INT ;中断服务程序转至INT处 MAIN:SETB E A ;开中断 SETB EX1 ;允许外中断1中断 CLR PX1 ;设为低优先级 SETB IT1 ;边沿触发 MOV B,# 01H ;设B的初值 HALT:SJMP HALT ;暂停等待中断 INT: MOV A ,B ;A←B R L A ;左环移一位 MOV B,A ;回送 RETI ;中断返回 参考程序 设在某8031单片机应用系统中,允许外部中断源 和 产生中断,并要求 为高优先级中断, 为低优先级中断。请写出该应用程序的基本结构。 分析: 需将设置 为高优先级中断,而将 设置为低优先级中断,即IP寄存器中的PX1=1、PX0=0 为了实现中断嵌套,中断服务程序中应注意保护有关寄存器 例 5.3 ORG 0000H AJMP MAIN ;转主程序 ORG 0003H LJMP EXINT0 ;转INT0中断服务程序 ORG 0013H LJMP EXINT1 ;转INT1中断服务程序 MAIN:MOV SP,#60H ;设置堆栈指针 MOV TCON, #05H ;置INT0、INT1为边沿触发方式 SETB PX1 ;设置INT1为高优先级,INT0上 电复位时被置为低优先级 SETB EX0 ;允许INT0中断 SETB EX1 ;允许INT1中断 SETB EA ;CPU开放中断 … ;主程序 参考程序(结构) EXINT0:PUSH PSW ;保护现场 PUSH Acc PUSH DPL PUSH DPH … ;INT0中断处理 POP DPH ;恢复现场 POP DPL POP Acc
原创力文档

文档评论(0)