Write_Flash bsf STATUS,RP1 bcf STATUS,RP0 ;Selecciona el Banco 2 movf ADDRL,W ;Contenido d la variable a EEADR, movwf EEADR ;parte baja de la direccion. movf ADDRH,W ;Contenido d la variable a EEADRH, movwf EEADRH ;parte alta de la direccion. movf DATAL,W ;Se mueve la parte baja del dato mowf EEDATA ;a escribir en EEDATA. movf DATAH,W ;Se mueve la parte alta del dato mowf EEDATAH ;a escribir en EEDATAH. bsf STATUS,RP0 ;Selecciona Banco 3 bsf EECON1,EEPGD ;habilita acceso a la flash. bsf EECON1,WREN ;Habilita escritura en la FLASH bcf INTCON,GIE ;Deshabilita todas las interrupciones. movlw 0x55 ;Secuencia especial de 5 pasos movwf EECON2 ;para escribir en la flash movlw 0xAA ; movwf EECON2 ; bsf EECON1,WR ;Inicia la operacion de escritura. nop ;se esperan dos ciclos nop tal como especifica el datasheet bsf INTCON,GIE ;Habilita todas interrupciones generales bcf EECON1,WREN ;Deshabilita escritura en la FLASH return ;retorna de la interupcción