标题: 单片机汇编语言两级中断Proteus仿真程序 闪烁灯 [打印本页]

作者: sgw666    时间: 2019-11-21 09:32
标题: 单片机汇编语言两级中断Proteus仿真程序 闪烁灯


单片机源程序如下:
  1. ORG 0000H                 ;在0000H单元存放转移指令,从零开始
  2. LJMP START                ;转移到主程序
  3. ORG 0003H   ;外部中断0入口
  4. LJMP EXT0;转移到外部中断0的中断服务程序
  5. ORG 0013H;外部中断1入口
  6. LJMP EXT1;转移到外部中断1的中断服务程序
  7. ORG 0030H;主程序从0030H开始存放
  8. START: MOV IE, #10000101B;CPU   INTO共轭   INT1共轭  开放中断
  9. MOV IP, #00000100B;INT1共轭高优先级中断
  10. MOV TCON, #00000101B;INT0 共轭  INT1共轭为下降沿触发
  11. MOV SP, #3FH;重置堆栈
  12. LOOP: MOV P2, #03H;点亮2只LED
  13. AJMP LOOP;等待中断
  14. EXT0: PUSH ACC;保护现场
  15. PUSH PSW;
  16. MOV R2, #0AH;闪烁19次
  17. LOOP1: MOV P2, #00H;使LED0 LED1熄灭
  18. LCALL DELAY;
  19. MOV P2, #01H;使LED0亮
  20. LCALL DELAY;
  21. DJNZ R2, LOOP1;循环10次
  22. POP PSW;
  23. POP ACC;
  24. RETI
  25. EXT1: PUSH ACC;保护现场
  26. PUSH PSW;
  27. MOV R3, #0AH;闪烁10次
  28. LOOP2: MOV P2, #00H;使LED0   LED1灯灭
  29. LCALL DELAY;
  30. MOV P2, #02H;使LED1亮
  31. LCALL DELAY;
  32. DJNZ R3, LOOP2;循环10次
  33. POP PSW;
  34. POP ACC;
  35. RETI;中断返回
  36. DELAY: MOV R5, #20;延时程序
  37. DLY1: MOV R6, #200;
  38. DLY2: MOV R7, #200;
  39. DJNZ R7, $;
  40. DJNZ R6, DLY2;
  41. DJNZ R5, DLY1;
  42. RET;中断返回
  43. END;汇编结束
复制代码

所有资料51hei提供下载:
两级中断.zip (18.77 KB, 下载次数: 20)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1