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

📄 raout.asm

📁 pic控制的led灯的循环点亮模式
💻 ASM
字号:
#INCLUDE <P16f877a.INC>
;演示RA流水灯,以及跨页调用子程序的方法,以及GOTO指令标准的使用方法
;本文件以传统的单片机绝对定位的风格书写,不需要在项目中添加LKR文件。
COUNT    	EQU  0X20 
COUNT1   	EQU  0x21
COUNT2   	EQU  0x22
#DEFINE   IOX   PORTA          ;定义A口
#DEFINE   TIOX  TRISA          ;
ORG 0X0;
NOP					;使用ICD2,复位地址,必须加此指令
GOTO MAIN


ORG 0X30
MAIN;流水灯,RA口
  
  BCF		STATUS,RP1;
  BSF   	STATUS,RP0; 	切换到BANK1 
  CLRF  	TIOX;
  MOVLW 	0X07;
  MOVWF 	ADCON1;
  MOVLW		0X07
  MOVWF		CMCON;

  BCF		STATUS,RP1;
  BCF   	STATUS,RP0;		切换到BANK0
  
  
  MOVLW 0X01;          传送立即数至w    第一个灯赋值    RA0
  MOVWF IOX;           传送w至f
  NOP;                 空操作
  MOVLW	HIGH DELAY;     
  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH
  CALL DELAY;          调子程序
    
  MOVLW 0X02;            第二个灯赋值      RA1
  MOVWF IOX;
  NOP
  MOVLW	HIGH DELAY;
  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH
  CALL DELAY;

  MOVLW 0X04;            第三个灯赋值      RA2                 
  MOVWF IOX;
  NOP
  MOVLW	HIGH DELAY;
  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH
  CALL DELAY;

  MOVLW 0X08      ;     第四个灯赋值      RA3   
  MOVWF IOX;
  NOP
  MOVLW	HIGH DELAY;
  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH
  CALL DELAY
 
;  MOVLW 0X10;           第五个灯赋值     RA4    
;  MOVWF IOX;
;  NOP; 
;  MOVLW	HIGH DELAY;
;  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH         
 ; CALL DELAY;     RA4,开漏输出,另外测试



  MOVLW 0X20;           第六个灯赋值     RA5    
  MOVWF IOX;
  NOP; 
  MOVLW	HIGH DELAY;
  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH         
  CALL DELAY;      RA4,开漏输出,另外测试


  MOVLW 0X2F;           全部灯赋值     RA5    
  MOVWF IOX;
  NOP; 
  MOVLW	HIGH DELAY;
  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH         
  CALL DELAY;      RA4,开漏输出,另外测试

 MOVLW 0X2A;           全部灯赋值     RA5    
  MOVWF IOX;
  NOP; 
  MOVLW	HIGH DELAY;
  MOVWF	PCLATH;			DELAY的高地址送送入PCLATH         
  CALL DELAY;      RA4,开漏输出,另外测试

  movlw high MAIN
  movwf	PCLATH;					
  GOTO  MAIN;			标准GOTO,要注意PCLATH,并做改变。



ORG 0X800	;BANK1子程序
DELAY                  ; 0.5s延时子程序		
	clrf	COUNT      ;
	clrf	COUNT1     ; 
	movlw	0x03       ; 
	movwf	COUNT2     ; 
LDloop		
	decfsz	COUNT,f    ; 
	goto	LDloop     ; 
	decfsz	COUNT1,f
	goto	LDloop
	decfsz	COUNT2,f
	goto	LDloop
	return
	
	END						;程序结束,以END为标记。

	

⌨️ 快捷键说明

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