8051单片机外部中断编程实例
练习一下对外部中断有关的寄存器的控制,代码如下:
;==================================================================== ; Main.asm file generated by New Project wizard ; ; Created: 周日 4月 29 2018 ; Processor: AT89C51 ; Compiler: ASEM-51 (Proteus) ;==================================================================== $NOMOD51 $INCLUDE (8051.MCU) ;==================================================================== ; DEFINITIONS ;==================================================================== ;==================================================================== ; VARIABLES ;==================================================================== ;==================================================================== ; RESET and INTERRUPT VECTORS ;==================================================================== ; Reset Vector org 0000h jmp Start org 0003h ljmp INT0_ ;==================================================================== ; CODE SEGMENT ;==================================================================== org 0100h Start: ; Write your code here MOV A,#00H MOV SP,#50H LOOP1: MOV TCON,#01H MOV IE,#81H MOV P1,A INC A LCALL DELAY SJMP LOOP1 INT0_: PUSH ACC MOV B,#3 LOOP2: MOV P1,#0FFH LCALL DELAY MOV P1,#00H LCALL DELAY DJNZ B,LOOP2 POP ACC RETI DELAY: MOV R4,#0ffH DELAY2: MOV R3,#0ffH DELAY1: NOP NOP DJNZ R3,DELAY1 DJNZ R4,DELAY2 RET Loop: jmp Loop ;==================================================================== END
下面给出仿真设计的电路图。
编程中注意循环的操作以及现场保护和现场还原,否则在中断服务子程序执行完后,回不到当初的状态。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步