English
Language : 

PIC16F872_06 Datasheet, PDF (26/168 Pages) Microchip Technology – 28-Pin, 8-Bit CMOS Flash Microcontroller with 10-Bit A/D
PIC16F872
Write operations have two control bits, WR and WREN,
and two status bits, WRERR and EEIF. The WREN bit
is used to enable or disable the write operation. When
WREN is clear, the write operation will be disabled.
Therefore, the WREN bit must be set before executing
a write operation. The WR bit is used to initiate the write
operation. It also is automatically cleared at the end of
the write operation. The interrupt flag EEIF (located in
register PIR2) is used to determine when the memory
write completes. This flag must be cleared in software
before setting the WR bit. For EEPROM Data memory,
once the WREN bit and the WR bit have been set, the
desired memory address in EEADR will be erased fol-
lowed by a write of the data in EEDATA. This operation
takes place in parallel with the microcontroller continu-
ing to execute normally. When the write is complete,
the EEIF flag bit will be set. For program memory, once
the WREN bit and the WR bit have been set, the micro-
controller will cease to execute instructions. The
desired memory location pointed to by
EEADRH:EEADR will be erased. Then the data value
in EEDATH:EEDATA will be programmed. When com-
plete, the EEIF flag bit will be set and the microcontrol-
ler will continue to execute code.
The WRERR bit is used to indicate when the device
has been RESET during a write operation. WRERR
should be cleared after Power-on Reset. Thereafter, it
should be checked on any other RESET. The WRERR
bit is set when a write operation is interrupted by a
MCLR Reset or a WDT Time-out Reset during normal
operation. In these situations, following a RESET, the
user should check the WRERR bit and rewrite the
memory location if set. The contents of the data regis-
ters, address registers and EEPGD bit are not affected
by either MCLR Reset or WDT Time-out Reset during
normal operation.
REGISTER 3-1:
EECON1 REGISTER (ADDRESS 18Ch)
R/W-x
U-0
U-0
U-0
EEPGD
—
—
—
bit 7
R/W-x
WRERR
R/W-0
WREN
R/S-0
WR
R/S-0
RD
bit 0
bit 7
bit 6-4
bit 3
bit 2
bit 1
bit 0
EEPGD: Program/Data EEPROM Select bit
1 = Accesses Program memory
0 = Accesses data memory
(This bit cannot be changed while a read or write operation is in progress.)
Unimplemented: Read as '0'
WRERR: EEPROM Error Flag bit
1 = A write operation is prematurely terminated
(any MCLR Reset or any WDT Reset during normal operation)
0 = The write operation completed
WREN: EEPROM Write Enable bit
1 = Allows write cycles
0 = Inhibits write to the EEPROM
WR: Write Control bit
1 = Initiates a write cycle (The bit is cleared by hardware once write is complete. The WR bit
can only be set (not cleared) in software.)
0 = Write cycle to the EEPROM is complete
RD: Read Control bit
1 = Initiates an EEPROM read RD is cleared in hardware. The RD bit can only be set (not
cleared) in software.
0 = Does not initiate an EEPROM read
Legend:
S = Settable bit
R = Readable bit
U = Unimplemented bit, read as ‘0’
’1’ = Bit is set
’0’ = Bit is cleared
W = Writable bit
- n = Value at POR
x = Bit is unknown
DS30221C-page 24
© 2006 Microchip Technology Inc.