wuenas.. estoy intentando los valores 0x35,0x38,0x30,0x36,0x39,0x35,0x38,0x31. en las primeras 8 posiciones de la eeprom, es de decir, desde la direccion 0x00 hasta la 0x07.
el codigo no funciona y nose pq. Tengo la subrutina escriu_eeprom, que escribe en la eeprom el valor VALUE en la direccion ADDR, y si no hay ningun error esta copiada del datasheet.
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;El pic que farem servir es un 16F876
LIST P=16F876
;Afegim les llibreries necesaries
INCLUDE <P16F876.INC>
#DEFINE led PORTA,0
ADDR equ 0x21
VALUE equ 0x22
;Aquesta rutina escriu a la eeprom la dada VALUE a l'adreça ADDR
;Definim uns alias per els ports que utilitzarem, son directives per tant no generen codi
;#DEFINE WR PORTC,3
ORG 0x00
bcf led
banksel ADDR
movlw .0
movwf ADDR
movlw 0x35
movwf VALUE
call escriu_eeprom
banksel ADDR
movlw .1
movwf ADDR
movlw 0x38
movwf VALUE
call escriu_eeprom
banksel ADDR
movlw .2
movwf ADDR
movlw 0x30
movwf VALUE
call escriu_eeprom
banksel ADDR
movlw .3
movwf ADDR
movlw 0x36
movwf VALUE
call escriu_eeprom
banksel ADDR
movlw .4
movwf ADDR
movlw 0x39
movwf VALUE
call escriu_eeprom
banksel ADDR
movlw .5
movwf ADDR
movlw 0x35
movwf VALUE
call escriu_eeprom
banksel ADDR
movlw .6
movwf ADDR
movlw 0x38
movwf VALUE
call escriu_eeprom
banksel ADDR
movlw .7
movwf ADDR
movlw 0x31
movwf VALUE
call escriu_eeprom
goto fi
escriu_eeprom
bsf STATUS,RP1
bsf STATUS,RP0
btfsc EECON1,WR
goto $-1
bcf STATUS,RP0
movf ADDR, W
movwf EEADR
movf VALUE,w
movwf EEDATA
bsf STATUS,RP0
bcf EECON1,EEPGD
bsf EECON1,WREN
bcf INTCON,GIE
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
bsf INTCON,GIE
bcf EECON1,WREN
return
fi
bsf led
END
; Fi del programa.