📄 ex0901.asm
字号:
;
; MOVING LEDS
;
LIST P=16F877, R=DEC
#INCLUDE P16F877.INC
CBLOCK 0X20
ENDC
;
; define RAM
;
CBLOCK
R0, USRFLAG
ENDC
;
;
DRCT EQU 0 ; USRFLAG,DRCT=1(LEFT)/0(RIGHT)
;
;
ORG 0
NOP
GOTO MAIN ; reset vector
;
ORG 4 ;
BTFSS USRFLAG,DRCT
GOTO INT01
BCF USRFLAG,DRCT
GOTO INT02
INT01:
BSF USRFLAG,DRCT
INT02:
BTFSS PORTB,0
GOTO INT02
BCF INTCON,INTF
RETFIE ; return + (bsf INTCON,GIE)
;
;................................
;
MAIN:
BANKSEL TRISD
MOVLW 0
MOVWF TRISD
BANKSEL PORTD
;
BSF INTCON,GIE
BSF INTCON,INTE
BCF INTCON,INTF ; reset interrupt FLAG
MOVLW B'11111100'
MOVWF R0
BCF USRFLAG,DRCT ; default = left rotating
MAIN1:
MOVF R0,W
MOVWF PORTD
CALL DLY0_2S
BTFSC USRFLAG,DRCT
GOTO RIGHT
LEFT:
CLRC
BTFSC R0,7
SETC
RLF R0,F
GOTO MAIN1
RIGHT:
CLRC
BTFSC R0,0
SETC
RRF R0,F
GOTO MAIN1
;
;
#INCLUDE <DLY0_2S.INC>
;
;
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -