12.3.3 Reading the Data EEPROM Memory

To read a Data EEPROM memory location, the user must write the address to the NVMADR register, clear NVMREG control bits to select Data EEPROM locations and then set the RD control bit. The data is available on the very next instruction cycle; therefore, the NVMDAT register can be read by the next instruction. NVMDAT will hold this value until another read operation, or until it is written to by the user (during a write operation).

The basic process is shown in the following flowchart.

Figure 12-11. Data EEPROM Read Flowchart

Data EEPROM Read

; Data Memory Address to read
        BCF     NVMCON1, NVMREG0        ; Setup Data EEPROM Access
        BCF     NVMCON1, NVMREG1        ; Setup Data EEPROM Access
        MOVF    EE_ADDRL, W             ;
        MOVWF   NVMADRL                 ; Setup Address low byte
        MOVF    EE_ADDRH, W             ;
        MOVWF   NVMADRH                 ; Setup Address high byte (if applicable)
        BSF     NVMCON1, RD             ; Issue EE Read
        MOVF    NVMDAT, W               ; W = EE_DATA