📄 nightm01.asm
字号:
;---------------------------------------------------------------------------
;PROJECT NAME :KNIGHT BIKE LIGHT DATE : 2002-04-25
;---------------------------------------------------------------------------
;PROCESSOR : PIC 12F629 NAME : LODIE
;---------------------------------------------------------------------------
;PROGRAM FUNCTION : 5 SUPER BRIGHT LED DRIVER FOR REAR BIKE LIGHT
;---------------------------------------------------------------------------
;HARDWARE:
;GP0 = L.E.D 1
;GP1 = L.E.D 2
;GP2 = L.E.D 3
;GP3 = PUSH BUTTON
;GP4 = L.E.D 4
;GP5 = L.E.D 5
;
;---------------------------------------------------------------------------
;EQUATES
;---------------------------------------------------------------------------
;
STATUS EQU 03
GPIO EQU 05
REG0 EQU 07
REG1 EQU 20
REG2 EQU 21
REG3 EQU 22
REG4 EQU 23
REG5 EQU 24
REG6 EQU 25
REG7 EQU 26
REG11 EQU 27
REG12 EQU 28
REG13 EQU 29
VALUE1 EQU B'00100000'
VALUE2 EQU B'01001111'
;
;---------------------------------------------------------------------------
;LABEL COMMAND OPERAND COMMENTS
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;
ORG 0
;
;---------------------------------------------------------------------------
;PORT SETUP (CONFIGURE PORT FOR INPUT (1) OR OUTPUT (0)
;---------------------------------------------------------------------------
;
MOVLW B'00001000' ;GP0=OUT,GP1=OUT
; ;GP2=OUT ,GP3=OUT
; ;GP4=OUT ,GP5=OUT
;
BSF STATUS,5 ;cHANGE TO BANK1
MOVWF GPIO ;CONFIGURE GPIO
BCF STATUS,5 ;CHANGE TO BANK0
GOTO START
;
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;SUB ROUTINES FOR TIME DELAY
;---------------------------------------------------------------------------
;
;---------------------------------------------------------------------------
;TIME DELAY +/- 500 ms 0.5 SECOND
;---------------------------------------------------------------------------
;
TIME MOVLW VALUE1
NOP
MOVWF REG3
N3 MOVWF REG2
N2 MOVWF REG1
NOP
N1 NOP
DECFSZ REG1,1
GOTO N1
DECFSZ REG2,1
GOTO N2
DECFSZ REG3,1
GOTO N3
NOP
NOP
RETURN
;
;---------------------------------------------------------------------------
;TIME DELAY +/- 1 s
;---------------------------------------------------------------------------
;
TIME2 CALL TIME
CALL TIME
NOP
RETURN
;
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;SUBROTINES FOR LED ON AND OFF
;---------------------------------------------------------------------------
;
;---------------------------------------------------------------------------
;LED1 ON
;---------------------------------------------------------------------------
;
LED1 MOVLW B'00000001' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED2 ON
;---------------------------------------------------------------------------
;
LED2 MOVLW B'00000010' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED3 ON
;---------------------------------------------------------------------------
;
LED3 MOVLW B'00000100' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED4 ON
;---------------------------------------------------------------------------
;
LED4 MOVLW B'00010000' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED5 ON
;---------------------------------------------------------------------------
;
LED5 MOVLW B'00100000' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED RED ON
;---------------------------------------------------------------------------
;
LEDR MOVLW B'00100001' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED YELLOW ON
;---------------------------------------------------------------------------
;
LEDY MOVLW B'00010100' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;;---------------------------------------------------------------------------
;LED ALL ON
;---------------------------------------------------------------------------
;
LEDA MOVLW B'00110111' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED RED & BLUE ON
;---------------------------------------------------------------------------
;
LEDRB MOVLW B'00100011' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;LED YELLOW & BLUE ON
;---------------------------------------------------------------------------
;
LEDYB MOVLW B'00010110' ;LED1 CONFIGURE
MOVWF GPIO ;LED ON
CALL TIME ;WAIT 500 ms
CLRF GPIO ;ALL LED's OFF
CALL TIME ;WAIT 500 ms
RETURN ;BACK TO MAIN ROUTINE
;
;---------------------------------------------------------------------------
;START MAIN ROUTINE
;---------------------------------------------------------------------------
;
START CLRF GPIO ;RESET PORT GPIO ALL OFF
CALL LED2
CALL LEDR
CALL LEDY
CALL LEDR
CALL LEDY
CALL LED2
CALL TIME
CALL LED2
CALL TIME
CALL LED2
CALL LED1
CALL LED4
CALL LED5
CALL LED3
CALL LED1
CALL LED4
CALL LED5
CALL LED3
CALL LED1
CALL TIME
CALL LEDRB
CALL LEDYB
CALL LEDRB
CALL LEDYB
CALL LEDRB
CALL TIME
CALL LEDA
CALL TIME
CALL LEDA
CALL TIME
CALL LEDA
CALL TIME
GOTO START
;
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
END
;---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -