; PIC TRAINING KIT PROGRAM #1
; JANG01.ASM
; OSC : XT
; WDT : NO
LIST P=PIC16F84 , F=INHX8M
;
; SYSTEM REGISTER
;
INDIR EQU 00H ;PAGE 0
RTCC EQU 01H
PC EQU 02H
STATUS EQU 03H
FSR EQU 04H
PORTA EQU 05H
PORTB EQU 06H
EEDATA EQU 08H
EEADR EQU 09H
PCLATH EQU 0AH
INTCON EQU 0BH
OPTIONR EQU 01H ;PAGE 1
TRISA EQU 05H
TRISB EQU 06H
EECON1 EQU 08H
;
; BIT DEFINITION
;
CF EQU .0 ;STATUS
DC EQU .1
ZF EQU .2
PD EQU .3
TO EQU .4
RP0 EQU .5
;
; MAIN ROUTINE
;
MOTOR EQU 31H
TEMP_0 EQU 32H
TEMP_1 EQU 33H
TEMP_2 EQU 34H
TEMP_3 EQU 35H
ORG 0
BSF STATUS,RP0
MOVLW B'00000111'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
BCF STATUS,RP0
MAIN
;-------------------------------------------
;-----------ÃʱâÈ °úÁ¤ --------------------
;-------------------------------------------
MOVLW B'00000000'
MOVWF PORTB
MOVLW .4
MOVWF TEMP_0
BCF STATUS,CF
JP_0 MOVLW B'00001000'
MOVWF PORTA
CALL DELAY_0
MOVLW B'00000000'
MOVWF PORTA
CALL DELAY_0
DECFSZ TEMP_0
GOTO JP_0
;--------------------------------------------
;------------¼¾¼ÀÔ·Â, ÆÇ´ÜºÎ----------------
;--------------------------------------------
START
MOVLW B'00000000'
MOVWF PORTB
BCF STATUS,CF
BTFSC PORTA,1
GOTO JUMP
BTFSC PORTA,0
CALL LEFT_GO
BTFSC PORTA,2
CALL RIGHT_GO
GOTO START
JUMP BTFSC PORTA,0
CALL LEFT_GO
BTFSC PORTA,2
CALL RIGHT_GO
CALL FORWARD_GO
;-------------------------------------------------
;------------- MOTOR -----------------------------
;-------------------------------------------------
LEFT_GO
MOVLW .4
MOVWF TEMP_0
MOVLW B'00000001'
CALL CONTROL
GOTO START
FORWARD_GO
MOVLW .4
MOVWF TEMP_0
MOVLW B'00010001'
CALL CONTROL
GOTO START
RIGHT_GO
MOVLW .4
MOVWF TEMP_0
MOVLW B'00010000'
CALL CONTROL
GOTO START
;------------------------------------------------------
;------------------MOTOR CONTROL-----------------------
;------------------------------------------------------
CONTROL
MOVWF MOTOR
MJP_1 MOVF MOTOR,W
MOVWF PORTB
RLF MOTOR,F
CALL DELAY_1
DECFSZ TEMP_0
GOTO MJP_1
RETURN
;-------------------------------------------------------
;--------------------TIME DELAY-------------------------
;-------------------------------------------------------
DELAY_0
MOVLW .2
MOVWF TEMP_1
MOVLW .255
MOVWF TEMP_2
MOVLW .255
MOVWF TEMP_3
DJP_1 DECFSZ TEMP_3
GOTO DJP_1
MOVWF TEMP_3
DECFSZ TEMP_2
GOTO DJP_1
MOVWF TEMP_2
DECFSZ TEMP_1
GOTO DJP_1
RETURN
DELAY_1
MOVLW .13
MOVWF TEMP_1
MOVLW .255
MOVWF TEMP_2
DJP_2 DECFSZ TEMP_2
GOTO DJP_2
MOVWF TEMP_2
DECFSZ TEMP_1
GOTO DJP_2
RETURN
END