⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rb0int.asm

📁 1
💻 ASM
字号:
#include  P16f877a.inc        ;定义所用的单片机头文件

;变量保护,放在RAM的共享区,0X70为ICD2占用,某些MCU,0x71也为ICD2占用
;为保证代码移值性,从0x72单元开始安排
_WREG      	EQU  0X72	
_STATUS    	EQU  0X73
_PCLATH		
LIGHTNUM   	EQU  0X20


   org  0x00
   NOP;
   movlw	HIGH Start
   movwf	PCLATH 
   goto  	Start

    org  0X04

    bcf  INTCON,GIE	;清总中断

INT_SAVE
    movwf 	_WREG		; 存 WREG状态
    swapf 	STATUS,W	; 存 STATUS
    movwf 	_STATUS
	SWAPF	PCLATH,W;
 	MOVWF	_PCLATH;
	CLRF	PCLATH;
    
CHANGE						;本中断程序仅用于演示,不做按键去抖动处理
	BTFSS	INTCON,INTF;	为INT中断,跳一行
	GOTO	INT_BACK;		非INT中断,不处理,返回
    BCF   INTCON,INTF;
    COMF  LIGHTNUM,F;
	MOVF  LIGHTNUM,W
    MOVWF PORTA;			直接用"COMF PORTA" "读-修改-写"指令 对端口在某些情况会发生异常,尤其是20PIN以下MCU
    
INT_BACK
	SWAPF	_PCLATH,W
	MOVWF	PCLATH;

    swapf  _STATUS,W	; Restore STATUS
    movwf  STATUS
	
    swapf  _WREG,F	; Restore WREG w/o
    swapf  _WREG,W	; affecting STATUS    
    bsf    INTCON,GIE;
    RETFIE;

Start
   clrf   INTCON
   clrf   _WREG
   CLRF   _STATUS
   MOVLW  0XF3;
   MOVWF  LIGHTNUM;
   
   
   
   BSF    	STATUS,RP0;
   movlw	0x0
   movwf	TRISA;
   MOVLW  	B'0000001';RB0 INPUT
   MOVWF  	TRISB;
   MOVLW  	0X07;
   MOVWF  	ADCON1;MAKE SURE RA4-RA0 IS DIGITAL PORT;
   
   BCF    	STATUS,RP1;
   BCF    	STATUS,RP0;
   MOVF   	LIGHTNUM,W
   MOVWF  	PORTA;A口LED变化,RA3-RA0接LED
  
   BSF    	INTCON,INTE;  
   BSF    	INTCON,GIE;  
   GOTO   $;

   END


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -