?? rcout.asm
字號:
#INCLUDE <P16f877a.INC>
;演示RA流水燈,以及跨頁調用子程序的方法,以及GOTO指令標準的使用方法
;本文件以傳統的單片機絕對定位的風格書寫,不需要在項目中添加LKR文件。
COUNT EQU 0X20
COUNT1 EQU 0x21
COUNT2 EQU 0x22
#DEFINE IOX PORTC
#DEFINE TIOX TRISC ; 定義C口
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; 第五個燈賦值 RA5
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 0X40; 第七個燈賦值 RA5
MOVWF IOX;
NOP;
MOVLW HIGH DELAY;
MOVWF PCLATH; DELAY的高地址送送入PCLATH
CALL DELAY;
MOVLW 0X80; 第八個燈賦值 RA5
MOVWF IOX;
NOP;
MOVLW HIGH DELAY;
MOVWF PCLATH; DELAY的高地址送送入PCLATH
CALL DELAY;
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 + -