You are on page 1of 5

#INCLUDE<P16F877A.

INC> ;ADDING HEADER FILE

FLAGS EQU 0X24 ;0x24 File Register=FLAGS

ORG 0X00 ; INITIAL STATE

GOTO BYPASS_IV

ORG 0x04

GOTO ALARM ;INTEREPT CALLING

BYPASS_IV:

BSF STATUS,RP0 ; SELECTING BANK 1

MOVLW 0x0f ;MAKING FIRST MSBS AS OUTPUT

MOVWF TRISB

MOVLW 0X00

MOVWF TRISC

MOVLW 0X00

MOVWF TRISD

BSF OPTION_REG,INTEDG

BCF STATUS,RP0

MOVLW 0X04

MOVWF PORTC

MOVLW 0X00

MOVWF FLAGS

MOVLW 0X01

MOVWF PORTD ;GREEN

BSF INTCON, GIE

BSF INTCON, INTE

BCF INTCON, INTF

BCF PORTB,RB4

BCF PORTB,RB5

BCF PORTB,RB6

BCF PORTB,RB7

MLOOP:

BTFSS PORTB,RB1
CALL

CALL LIGHT

BTFSC FLAGS,0

GOTO CC_DIR

MOTOR:

BCF PORTB, RB7

BSF PORTB, RB5

CALL DELAY

BCF PORTB, RB5

BSF PORTB, RB6

CALL DELAY

BCF PORTB, RB6

BSF PORTB, RB4

CALL DELAY

BCF PORTB, RB4

BSF PORTB, RB7

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2

GOTO DELAY2
GOTO DELAY2

GOTO CC_DIR

ALARM

BCF PORTC,RC2

RETURN

CC_DIR:

BCF PORTB, RB5

BSF PORTB, RB7

CALL DELAY

BCF PORTB, RB7

BSF PORTB, RB4

CALL DELAY

BCF PORTB, RB4

BSF PORTB, RB6

CALL DELAY

BCF PORTB, RB6

BSF PORTB, RB5

CALL DELAY

RETURN

CHANGE_DIR:

BTFSC FLAGS,0

MOVLW 0X00

BTFSS FLAGS,0

MOVLW 0X01

MOVWF FLAGS

CALL DELAY

BCF INTCON,INTF

RETFIE

LIGHT:

BCF PORTD, RD0

BSF PORTD, RD0


BCF PORTD, RD0

BSF PORTD, RD0

BCF PORTD, RD0

BSF PORTD, RD0

BCF PORTD, RD0

BSF PORTD, RD0

BCF PORTD, RD0

BSF PORTD, RD0

MOVLW 0X02

MOVWF PORTD

GOTO MOTOR

DELAY:

MOVLW 0XFF

MOVWF 0X21

LABEL:

MOVLW 0XFF

MOVWF 0X22

LABEL1:

DECFSZ 0X22,1

GOTO LABEL1

DECFSZ 0X21,1

GOTO LABEL

RETURN

DELAY2:

MOVLW 0XFF

MOVWF 0X23

LABEL2:

MOVLW 0XFF

MOVWF 0X24

LABEL3:

DECFSZ 0X22,1
GOTO LABEL3

DECFSZ 0X21,1

GOTO LABEL2

RETURN

END

You might also like