; Subrutina de escritura de EEPROM
;
; Entrada:
; - Direccion en el registro EEADR (Banco 2)
; - Dato en el registro EEDAT (Banco 2)
;
; Retorna:
; - Nada
EEPROM_ESCRITURA:
BANKSEL EECON1 ; banco 3
BCF EECON1,EEPGD ; limpio el bit EEPGD
BSF EECON1,WREN ; habilito la escritura
BCF INTCON,GIE ; deshabilito interrupciones
;secuencia requerida
MOVLW h'55'
MOVWF EECON2
MOVLW h'AA' ;AAh=170 en decimal o 10101010
MOVWF EECON2
BSF EECON1,WR
vacio
BTFSC EECON1,WR
GOTO vacio ; ENTRA AQUI SI aun no ha terminado de escribirse
;BSF INTCON,GIE ; habilito interrupciones si voy a utilizar
BCF EECON1,WREN ; debo limpiar el bit WREN
RETURN
; Subrutina de lectura de EEPROM
;
; Entrada:
; - Direccion en el registro EEADR (Banco 2)
;
; Retorna:
; - Valor de la EEPROM en W
EEPROM_LEER
BANKSEL EECON1 ;Banco 3
BCF EECON1,EEPGD
BSF EECON1,RD ;HABILITA EL BIT 0 (RD) DEL REGISTRO EECON1
BANKSEL EEDATA
MOVF EEDATA,W ;TRANSFIERE EL DATO EN EEDATA A W
RETURN