单片机源程序如下:
- ORG 0000H ;在0000H单元存放转移指令,从零开始
- LJMP START ;转移到主程序
- ORG 0003H ;外部中断0入口
- LJMP EXT0;转移到外部中断0的中断服务程序
- ORG 0013H;外部中断1入口
- LJMP EXT1;转移到外部中断1的中断服务程序
- ORG 0030H;主程序从0030H开始存放
- START: MOV IE, #10000101B;CPU INTO共轭 INT1共轭 开放中断
- MOV IP, #00000100B;INT1共轭高优先级中断
- MOV TCON, #00000101B;INT0 共轭 INT1共轭为下降沿触发
- MOV SP, #3FH;重置堆栈
- LOOP: MOV P2, #03H;点亮2只LED
- AJMP LOOP;等待中断
- EXT0: PUSH ACC;保护现场
- PUSH PSW;
- MOV R2, #0AH;闪烁19次
- LOOP1: MOV P2, #00H;使LED0 LED1熄灭
- LCALL DELAY;
- MOV P2, #01H;使LED0亮
- LCALL DELAY;
- DJNZ R2, LOOP1;循环10次
- POP PSW;
- POP ACC;
- RETI
- EXT1: PUSH ACC;保护现场
- PUSH PSW;
- MOV R3, #0AH;闪烁10次
- LOOP2: MOV P2, #00H;使LED0 LED1灯灭
- LCALL DELAY;
- MOV P2, #02H;使LED1亮
- LCALL DELAY;
- DJNZ R3, LOOP2;循环10次
- POP PSW;
- POP ACC;
- RETI;中断返回
- DELAY: MOV R5, #20;延时程序
- DLY1: MOV R6, #200;
- DLY2: MOV R7, #200;
- DJNZ R7, $;
- DJNZ R6, DLY2;
- DJNZ R5, DLY1;
- RET;中断返回
- END;汇编结束
复制代码
所有资料51hei提供下载:
两级中断.zip
(18.77 KB, 下载次数: 20)
|