Cblock 0x20
EEAddress, NewData
endc
NEW equ h'74' ;EEPROM locations
OLD equ h'75'
org 0x000
goto main
read
banksel EECON1 ; Select Bank of EECON1
btfsc EECON1, WR ; Wait for any writes
goto $-1 ; to complete (KCHRISTE)
banksel EEAddress ;Select Bank of EEAddress
movf EEAddress, W ; <---KCHRISTE FIXED THIS
banksel EEADR ;Select Bank of EEADR
movwf EEADR ; Data Memory Address to
banksel EECON1 ; Select Bank of EECON1
bcf EECON1, EEPGD ; Point to Data memory
bsf EECON1, RD ; EE Read
banksel EEDATA ; Select Bank of EEDATA
movf EEDATA, W ; <---KCHRISTE FIXED THIS
return ;On return EEPROM data is in W
;_________________________________________________
write
banksel EECON1 ; Select Bank of EECON1
btfsc EECON1, WR ; Wait for any write
goto $-1 ; to complete
banksel EEAddress
movf EEAddress, W ; <---KCHRISTE FIXED THIS
banksel EEADR ; Select Bank of EEADR
movwf EEADR ;DATA Address to write
banksel NewData
movf NewData, W ;
banksel EEDATA
movwf EEDATA ; DATA Value to write
banksel EECON1 ; Select Bank of EECON1
bcf EECON1, EEPGD ; Point to DATA memory
bsf EECON1, WREN ; Enable writes
bcf INTCON, GIE ; Disable INTs.
movlw 55h
movwf EECON2 ; Write 55h
movlw h'AA'
movwf EECON2 ; Write AAh
bsf EECON1, WR ; Set WR bit to begin write
bsf INTCON, GIE ; Enable INTs.
bcf EECON1, WREN ; Disable writes
return
main
movlw NEW ; EEprom address
movwf EEAddress
movlw 0x47 ; Data to write.
movwf NewData
call write
nop ;Just filler feel free to delete
call read ; EEProm data is in W
nop ;Just filler feel free to delete