Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
asm
;-----------------------------------------------------------------; READ FROM EEPROM TABLE AND SHOW STATUS IN PORTB 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
RETURN
LOCATION,W
EEADR
EEADR
EECON1
EECON1,7
EECON1,0
EEDATA
EEDATA,W
PORTD
F:\latest 877a\eeprom-table002\eeprom_tab02.asm
;-----------MAIN PROGRAM STARTS HERE -------------------------------------------INIT
BANKSEL
CLRF
CLRF
BANKSEL
TRISD
TRISB
TRISD
PORTD
CLRF
CLRF
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
PORTB
PORTD
0X08
INDEX
0X00
LOCATION
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
NEW_KHELA
CLRF
CALL
MOVWF
CALL
INCF
DECFSZ
GOTO
CLRF
CALL
PORTD
READ_EE
PORTD
DELAY
LOCATION,F
INDEX,F
NEW_KHELA
PORTD
DELAY
NOP
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
0X08
INDEX
0X07
LOCATION
KHELA_KHELA
START
KHELA
NEW_KHELA
;CLEARING THE VALUE OF PORTD.
;CALLING READ_EE. INITIATES A READ CYCLE.
;MOVING THE VALUE OF W INTO PORTD.
;CALLING THE DELAY SUBROUTINE.
;INCREASING THE VALUE OF LOCATION BY 1
;MOVE TO NEW_KHELA.
;CLEARING PORTD VALUE.
;CALLING DELAY SUBROUTINE.
;PC DOES NOTHING.
;MOVE THE BINARY VALUE B'00001000' INTO W.
;MOVE THE VALUE OF W INTO INDEX.
;MOVING THE BINARY VALUE B'00000100' INTO W.
;MOVING THE VALUE OF W INTO LOCATION.
;MOVE TO KHELA_KHELA.
KHELA_KHELA
CLRF
CALL
MOVWF
CALL
DECF
DECFSZ
GOTO
CLRF
PORTD
READ_EE
PORTD
DELAY
LOCATION,F
INDEX,F
KHELA_KHELA
PORTD
NOP
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
0X08
INDEX
0X07
LOCATION
LAST_KHELA
CLRF
PORTB
;MOVE TO KHELA_KHELA.
;CLEARING THE VALUE OF PORTD.
LAST_KHELA
2
F:\latest 877a\eeprom-table002\eeprom_tab02.asm
CALL
MOVWF
CALL
DECF
DECFSZ
GOTO
NOP
CLRF
CALL
GOTO
READ_EE
PORTB
DELAY
LOCATION,F
INDEX,F
LAST_KHELA
PORTB
DELAY
START
;---------------------------------------------------------------------------------ORG
0X2100
;EEPROM RESET VECTOR.
DE
0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80
;--------------------------------------------------------------------------------END
;PROGRAM ENDS.
;---------------------------------------------------------------------------------