PROCESSOR 12F675
INCLUDE "D:INCFILE12F675.inc"
; User Register Definition
CNT EQU 33h
DELAYCNT0 EQU 34h
DELAYCNT1 EQU 35h
CNT0 EQU 36h
DELAYCNT2 EQU 37h
;##### Program Reset Vector
ORG 0x00
GOTO START
;#####Main Program Start Here
START:
; PIC Initialization
CALL PIC_INIT
MAIN_LOOP:
CLRWDT
MOVLW 0FEh
MOVWF GPIO
MOVLW 03h
MOVWF CNT
INNER_LOOP:
CALL DELAY
BSF STATUS,C
RLF GPIO,F
DECFSZ CNT,F
GOTO INNER_LOOP
MOVLW 0EFh
MOVWF GPIO
MOVLW 02h
MOVWF CNT
INNER_LOOP0:
CALL DELAY
BSF STATUS,C
RLF GPIO,F
DECFSZ CNT,F
GOTO INNER_LOOP0
MOVLW 0EFh
MOVWF GPIO
CALL DELAY
MOVLW 0FBh
MOVWF GPIO
MOVLW 02h
MOVWF CNT
INNER_LOOP1:
CALL DELAY
BSF STATUS,C
RRF GPIO,F
DECFSZ CNT,F
GOTO INNER_LOOP1
GOTO MAIN_LOOP
;##### PIC Initialize
PIC_INIT:
CLRF INTCON
BCF STATUS,RP0
CLRF GPIO
MOVLW 07h
MOVWF CMCON0
BSF STATUS,RP0
CLRF ANSEL
MOVLW 0C0h
MOVWF TRISIO
BCF STATUS,RP0
RETURN
; Software Control Delay
DELAY:
MOVLW 0FFh
MOVWF DELAYCNT0
MOVWF DELAYCNT1
MOVLW 003h
MOVWF DELAYCNT2
DELAY0:
DECFSZ DELAYCNT0,F
GOTO DELAY0
DECFSZ DELAYCNT1,F
GOTO DELAY0
DECFSZ DELAYCNT2,F
GOTO DELAY0
END
程式內容如上
我只用GPIO<5,4,2,1,0>做跑馬燈功能,但只要有用到RRF的指令就會亂掉,我就一直搞不懂為什麼,可是改為RLF時只是方向相反,但功能卻是正常的,誰能幫我解答嗎? 真的是搞不懂為什麼?????????