Programs & References: Chapter - 3
Programs & References: Chapter - 3
Page | 33
PROGRAMS:- CALL DELAY
LISTP=PIC16F877A
CALL DELAY
# INCLUDE<P16F877A.INC>
DECFSZ COUNT,1
GOTO $-3
_CONFIG_CP_OFF&WDT_OFF&_PWRTE_
ON&_XT_OSC GOTO $-8
BANKSEL PORTB
MOVLW 0X04
Page | 34
#INCLUDE<P16F877A.INC> MOVWF PORTC
CLRF PORTC
MOVLW 0XFE
MOVWF ADCON1
CLRF PORTC
Page | 36
MOVLW 0X0C CLRF PORTD
CALL INT
GOTO SCAN
MOVWF MOTOR1
START: SCAN
Page | 37
XORWF MOTOR1,0 CALL TABLE
MOVLW 0X00 M4
M2 GOTO M5
MOVLW 0X01 M5
M3 GOTO SCAN
MOVLW 0X02
Page | 38
TABLE CLRF TRISB
BTFSC PORTB,0
CALL CLOCKWISE
Page | 39
MOVWF PORTD DECFSZ DEL2,1
CALL DELAY
MOVWF PORTD
GOTO START
DELAY: ENDC
Page | 40
START
MOVWF TEMP
BANKSEL ADCON1
CALL WRITE
MOVLW B'00001110'
MOVWF TEMP
BANKSEL PORTA ;INBANK
0 CALL WRITE
MOVLW 0X06
;INCREMENT CURSER ,SHIFT IT TO
BANKSEL
RIGHT
EEADR
MOVWF TEMP
MOVLW 0X00
CALL WRITE
MOVWF
EEADR
Page | 41
MOVLW 0X80 ;FORCE CALL DELAY
CURSER TO THE BEGINNING OF THE
BANKSEL EEADR
FIRST LINE
INCF EEADR,1
MOVWF TEMP
GOTO READ
CALL WRITE
WRITE
BANKSEL PORTA
BANKSEL PORTA
BSF PORTA,3
SWAPF TEMP,0
READ
MOVWF PORTD
BANKSEL
CALL ENABLE
EECON1
MOVF TEMP,W
BCF
EECON1,EEPGD MOVWF PORTD
MOVF ENABLE
EEDATA,W
BANKSEL PORTA
BANKSEL
BSF PORTA,1
TEMP
NOP
MOVWF
TEMP NOP
BANKSEL NOP
PORTA
NOP
CALL
NOP
WRITE
Page | 42
NOP ENDC
GLOW
TIMER RETURN
Page | 44
CBLOCK 0X20 MOVLW .40
Page | 45
AVG ENDC
MOVWF PORTB
MOVWF INDF
INCF FSR,1
MOVLW 0X22
MOVWF FSR
MOVF INDF,W
MOVWF MAX
MOVLW 0X04
MOVWF COUNT
INCF FSR,1
MOVF INDF,W
SUBWF MAX,W
BTFSSSTATUS,0
CALL CHANGE
DECFSZ COUNT,1
GOTO $-6
MOVF MAX,W
MOVWF PORTB
NOP
GOTO $-1
Page | 47