Académique Documents
Professionnel Documents
Culture Documents
asm
;-----------------------------------------------------------------; READ FROM EEPROM TABLE AND SHOW STATUS IN PORTB,PORTC AND PORTD
; PROGRAMMAR- SYED TASWAR MAHBUB
; CLOCK- 20MHZ
;------------------------------------------------------------------PROCESSOR
INCLUDE
__CONFIG
PIC16F877A
"P16F877A.INC"
H'3F71'
0X00
INIT
;-----------------------------------------------------------------------DELAY
;500 MILLISEC DELAY
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
0X16
D1
0X74
D2
0X06
D3
DECFSZ
GOTO
DECFSZ
GOTO
DECFSZ
GOTO
RETLW
D1,F
$+2
D2,F
$+2
D3,F
DELAY_0
0X00
DELAY_0
READ_EE
MOVF
BANKSEL
MOVWF
BANKSEL
BCF
BSF
BANKSEL
MOVF
BANKSEL
LOCATION,W
EEADR
EEADR
EECON1
EECON1,7
EECON1,0
EEDATA
EEDATA,W
PORTD
F:\latest 877a\eeprom-table003\eeprom_tab3.asm
;RETURN TO WHERE CALLED FROM
RETURN
;-----------
INIT
BANKSEL
CLRF
CLRF
CLRF
BANKSEL
TRISD
TRISB
TRISC
TRISD
PORTD
;MOVE TO BANK
;PORTB SET AS
;PORTC SET AS
;PORTD SET AS
;FALL BACK TO
1.
OUTPUT.
OUTPUT.
OUTPUT.
BANK 0.
CLRF
CLRF
CLRF
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
PORTB
PORTC
PORTD
0X08
INDEX
0X00
LOCATION
KHELA
;PORTB CLEARED.
;PORTC CLEARED.
;PORTD CLEARED.
;B'00001000' MOVED TO W.
;W VALUE SEND TO INDEX.
;W CLEARED.
;W VALUE MOVED INTO LOCATION.
;MOVE TO KHELA.
CLRF
CALL
MOVWF
CALL
CLRF
INCF
DECFSZ
GOTO
PORTB
READ_EE
PORTB
DELAY
PORTB
LOCATION,F
INDEX,F
KHELA
NOP
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
0X08
INDEX
0X00
LOCATION
KHELA_TWO
START
KHELA
;READ ROUTINE CALLED.
;W VALUE MOVED TO PORTB.
;DELAY SUBROUTINE CALLED.
;LOCATION VALUE INCREASED BY 1.
;INDEX VALUE DECREASED TILL INDEX VALUE 0.
;MOVE TO KHELA_TWO.
KHELA_TWO
CLRF
CALL
MOVWF
CALL
CLRF
INCF
DECFSZ
GOTO
NOP
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
PORTC
READ_EE
PORTC
DELAY
PORTC
LOCATION,F
INDEX,F
KHELA_TWO
CLRF
CALL
MOVWF
CALL
CLRF
INCF
DECFSZ
GOTO
CLRF
CALL
PORTD
READ_EE
PORTD
DELAY
PORTD
LOCATION,F
INDEX,F
NEW_KHELA
PORTD
DELAY
NOP
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
0X08
INDEX
0X07
LOCATION
KHELA_KHELA
0X08
INDEX
0X00
LOCATION
NEW_KHELA
;MOVE TO NEW_KHELA.
NEW_KHELA
F:\latest 877a\eeprom-table003\eeprom_tab3.asm
KHELA_KHELA
CLRF
CALL
MOVWF
CALL
CLRF
DECF
DECFSZ
GOTO
CLRF
PORTD
READ_EE
PORTD
DELAY
PORTD
LOCATION,F
INDEX,F
KHELA_KHELA
PORTD
NOP
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
0X08
INDEX
0X07
LOCATION
KHELA_THREE
;MOVE TO KHELA_THREE.
KHELA_THREE
CLRF
CALL
MOVWF
CALL
CLRF
DECF
DECFSZ
GOTO
PORTC
READ_EE
PORTC
DELAY
PORTC
LOCATION,F
INDEX,F
KHELA_THREE
NOP
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
0X08
INDEX
0X07
LOCATION
LAST_KHELA
;MOVE TO LAST_KHELA.
LAST_KHELA
CLRF
CALL
MOVWF
CALL
CLRF
DECF
DECFSZ
GOTO
NOP
CLRF
CALL
GOTO
PORTB
READ_EE
PORTB
DELAY
PORTB
LOCATION,F
INDEX,F
LAST_KHELA
PORTB
DELAY
START
;MOVE TO START.
;---------------------------------------------------------------ORG
0X2100
;EERPROM RESET VECTOR.
DE
0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80
;---------------------------------------------------------------END
;PROGRAM FINISHED.
;----------------------------------------------------------------