Datasheet

2001-2013 Microchip Technology Inc. DS39598F-page 29
PIC16F818/819
EXAMPLE 3-4: ERASING A FLASH PROGRAM MEMORY ROW
BANKSEL EEADRH ; Select Bank of EEADRH
MOVF ADDRH, W ;
MOVWF EEADRH ; MS Byte of Program Address to Erase
MOVF ADDRL, W ;
MOVWF EEADR ; LS Byte of Program Address to Erase
ERASE_ROW
BANKSEL EECON1 ; Select Bank of EECON1
BSF EECON1, EEPGD ; Point to PROGRAM memory
BSF EECON1, WREN ; Enable Write to memory
BSF EECON1, FREE ; Enable Row Erase operation
;
BCF INTCON, GIE ; Disable interrupts (if using)
MOVLW 55h ;
MOVWF EECON2 ; Write 55h
MOVLW AAh ;
MOVWF EECON2 ; Write AAh
BSF EECON1, WR ; Start Erase (CPU stall)
NOP ; Any instructions here are ignored as processor
; halts to begin Erase sequence
NOP ; processor will stop here and wait for Erase complete
; after Erase processor continues with 3rd instruction
BCF EECON1, FREE ; Disable Row Erase operation
BCF EECON1, WREN ; Disable writes
BSF INTCON, GIE ; Enable interrupts (if using)