PIC16F872-E/SS Microchip Technology, PIC16F872-E/SS Datasheet - Page 186

no-image

PIC16F872-E/SS

Manufacturer Part Number
PIC16F872-E/SS
Description
IC,MICROCONTROLLER,8-BIT,PIC CPU,CMOS,SSOP,28PIN,PLASTIC
Manufacturer
Microchip Technology
Series
PIC® 16Fr

Specifications of PIC16F872-E/SS

Rohs Compliant
YES
Core Processor
PIC
Core Size
8-Bit
Speed
20MHz
Connectivity
I²C, SPI
Peripherals
Brown-out Detect/Reset, POR, PWM, WDT
Number Of I /o
22
Program Memory Size
3.5KB (2K x 14)
Program Memory Type
FLASH
Eeprom Size
64 x 8
Ram Size
128 x 8
Voltage - Supply (vcc/vdd)
4 V ~ 5.5 V
Data Converters
A/D 5x10b
Oscillator Type
External
Operating Temperature
-40°C ~ 125°C
Package / Case
28-SSOP
Package
28SSOP
Device Core
PIC
Family Name
PIC16
Maximum Speed
20 MHz
Operating Supply Voltage
5 V
Data Bus Width
8 Bit
Number Of Programmable I/os
22
Interface Type
I2C/SPI
On-chip Adc
5-chx10-bit
Number Of Timers
3
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
PICmicro MID-RANGE MCU FAMILY
DS31012A-page 12-6
Example 12-2
in
Example 12-2:
Writing a 16-bit value to the 16-bit TMR1 register is straight forward. First the TMR1L register is
cleared to ensure that there are many Timer1 clock/oscillator cycles before there is a rollover into
the TMR1H register. The TMR1H register is then loaded, and finally the TMR1L register is loaded.
Example 12-3
Example 12-3:
; All interrupts are disabled
;
; TMR1L may have rolled over between the read of the high and low bytes.
; Reading the high and low bytes now will read a good value.
;
; Re-enable the Interrupt (if required)
CONTINUE
; All interrupts are disabled
; Re-enable the Interrupt (if required)
CONTINUE
Example
MOVF
MOVWF
MOVF
MOVWF
MOVF
SUBWF
BTFSC
GOTO
MOVF
MOVWF
MOVF
MOVWF
CLRF
MOVLW
MOVWF
MOVLW
MOVWF
12-1. This is useful if the timer cannot be stopped.
shows a routine to read the 16-bit timer value with experiencing the issues shown
shows this:
TMR1H, W
TMPH
TMR1L, W
TMPL
TMR1H, W
TMPH,
STATUS,Z
CONTINUE
TMR1H, W
TMPH
TMR1L, W
TMPL
TMR1L
HI_BYTE
TMR1H, F
LO_BYTE
TMR1H, F
Reading a 16-bit Free-Running Timer
Writing a 16-bit Free Running Timer
W
; Read high byte
;
; Read low byte
;
; Read high byte
; Sub 1st read with 2nd read
; Is result = 0
; Good 16-bit read
; Read high byte
;
; Read low byte
;
; Continue with your code
; Clear Low byte, Ensures no
;
; Value to load into TMR1H
; Write High byte
; Value to load into TMR1L
; Write Low byte
; Continue with your code
rollover into TMR1H
1997 Microchip Technology Inc.

Related parts for PIC16F872-E/SS