Transcript 16F877A

16F877A
Timer 0
•
•
The Timer0 module timer/counter has the
following
features:
–
–
–
–
–
–
•
•
•
8-bit timer/counter
Readable and writable
8-bit software programmable prescaler
Internal or external clock select
Interrupt on overflow from FFh to 00h
Edge select for external clock
Figure 5-1 is a block diagram of the Timer0 module
and the prescaler shared with the WDT.
Timer mode is selected by clearing bit T0CS
(OPTION_REG<5>). In Timer mode, the Timer0
module will increment every instruction cycle
(without prescaler). If the TMR0 register is
written, the increment is inhibited for the
following two instruction cycles. The user can
work around this by writing an adjusted value to
the TMR0 register.
TIMER 1 MODULE
• The Timer1 module is a 16-bit timer/counter consisting
of two 8-bit registers (TMR1H and TMR1L) which are
readable and writable.
• The TMR1 register pair (TMR1H:TMR1L) increments from
0000h to FFFFh and rolls over to 0000h.
• The TMR1 interrupt, if enabled, is generated on
overflow which is latched in interrupt flag bit, TMR1IF
(PIR1<0>). This interrupt can be enabled/disabled by
setting/clearing TMR1 interrupt enable bit, TMR1IE
(PIE1<0>).
• Timer1 can operate in one of two modes:
• As a Timer
• As a Counter
TIMER 1 MODULE
• Counter mode is selected by
setting bit TMR1CS. In this
mode, the timer increments
on every rising edge of clock
input on pin RC1/T1OSI/CCP2
when bit T1OSCEN is set, or
on pin RC0/T1OSO/T1CKI
when bit T1OSCEN is cleared.
• If T1SYNC is cleared, then the
external clock input is
synchronized with internal
phase clocks.
• If control bit T1SYNC
(T1CON<2>) is set, the
external clock input is not
synchronized.
TIMER 2 MODULE
• Timer 2 is an 8-bit timer
with a prescaler and a
postscaler. It can be used
as the PWM time base for
the PWM mode of the
CCP module(s). The TMR2
register is readable and
writable and is cleared
on any device Reset.
CAPTURE/COMPARE/PWM MODULES
• Each Capture/Compare/PWM (CCP) module contains a
16-bit register which can operate as a:
• 16-bit Capture register
• 16-bit Compare register
• PWM Master/Slave Duty Cycle register
• In Capture mode, CCPR1H:CCPR1L captures the 16-bit
value of the TMR1 register when an event occurs on pin
RC2/CCP1. An event is defined as one of the following:
• Every falling edge
• Every rising edge
• Every 4th rising edge
• Every 16th rising edge
CAPTURE/COMPARE/PWM MODULES
• In Compare mode, the 16-bit CCPR1 register value is
constantly compared against the TMR1 register pair
value. When a match occurs, the RC2/CCP1 pin is:
• Driven high
• Driven low
• Remains unchanged
• In Pulse Width Modulation mode, the CCPx pin produces
up to a 10-bit resolution PWM output. Since the CCP1
pin is multiplexed with the PORTC data latch, the
TRISC<2> bit must be cleared to make the CCP1 pin an
output.
– Note: Clearing the CCP1CON register will force the CCP1 PWM
output latch to the default low level. This is not the PORTC I/O
data latch.
Master SSP (MSSP) Module
• The Master Synchronous Serial Port (MSSP) module is a serial
interface, useful for communicating with other peripheral or
microcontroller devices. These peripheral devices may be serial
EEPROMs, shift registers, display drivers, A/D converters, etc. The
MSSP module can operate in one of two modes:
•
•
–
–
Serial Peripheral Interface (SPI)
Inter-Integrated Circuit (I2C)
Full Master mode
Slave mode (with general address call)
• The I2C interface supports the following modes in hardware:
• Master mode
• Multi-Master mode
• Slave mode
ADDRESSABLE UNIVERSAL SYNCHRONOUS
ASYNCHRONOUS RECEIVER TRANSMITTER (USART)
• The Universal Synchronous Asynchronous Receiver
Transmitter (USART) module is one of the two serial I/O
modules. (USART is also known as a Serial
Communications Interface or SCI.)
• The USART can be configured as a full-duplex
asynchronous system that can communicate with
peripheral devices, such as CRT terminals and personal
computers, or
• it can be configured as a half-duplex synchronous
system that can communicate with peripheral devices,
such as A/D or D/A integrated circuits, serial EEPROMs,
etc.
ANALOG-TO-DIGITAL CONVERTER (A/D)
MODULE
• The Analog-to-Digital (A/D)
Converter module has five
inputs for the 28-pin devices
and eight for the 40/44-pin
devices. The conversion of an
analog input signal results in a
corresponding 10-bit digital
number. The A/D module has
high and low-voltage
reference input that is
software selectable to some
combination of VDD, VSS, RA2
or RA3.
COMPARATOR MODULE
• The comparator module contains two analog
comparators. The inputs to the comparators are
multiplexed with I/O port pins RA0 through RA3, while
the outputs are multiplexed to pins RA4 and RA5. The
on-chip voltage reference (Section 13.0 “Comparator
Voltage Reference Module”) can also be an input to the
comparators.
• Comparator Configuration
– There are eight modes of operation for the comparators. The
CMCON register is used to select these modes. Figure 12-1
shows the eight possible modes. The TRISA register controls the
data direction of the comparator pins for each mode. If the
Comparator
Port A
•
•
•
•
•
Some pins for these I/O ports are multiplexed with
an alternate function for the peripheral features
on the device. In general, when a peripheral is
enabled, that pin may not be used as a general
purpose I/O pin.
Additional information on I/O ports may be found
in the PICmicro™ Mid-Range Reference Manual
(DS33023).
4.1 PORTA and the TRISA Register
PORTA is a 6-bit wide, bidirectional port. The
corresponding data direction register is TRISA.
Setting a TRISA bit (= 1) will make the
corresponding PORTA pin an input (i.e., put the
corresponding output driver in a
High-Impedance mode). Clearing a TRISA bit (= 0)
will make the corresponding PORTA pin an output
(i.e., put the contents of the output latch on the
selected pin).
Port A
•
•
•
The write operation is read-modify-write
For Port A if the next value of PORTA depends on the previous value of PORTA, analog inputs should be selected on ADC
RA4 needs Pull-up
Port B
• In general as the ports might be different, in case of
problem check the port architecture
RESET
•
•
•
•
•
•
•
14.4 MCLR. PIC16F87XA devices have a noise filter in the MCLR Reset path. The filter will detect and
ignore small pulses.
14.6 Power-up Timer (PWRT). The Power-up Timer provides a fixed 72 ms nominal time-out on powerup only from the POR. The Powerup Timer operates on an internal RC oscillator. The chip is kept in
Reset as long as the PWRT is active. The PWRT’s time delay allows VDD to rise to an acceptable level.
14.7 Oscillator Start-up Timer (OST). The Oscillator Start-up Timer (OST) provides a delay of 1024
oscillator cycles (from OSC1 input) after the PWRT delay is over (if PWRT is enabled). This helps to
ensure that the crystal oscillator or resonator has started and stabilized.
14.8 Brown-out Reset (BOR). The configuration bit, BODEN, can enable or disable the Brown-out Reset
circuit. If VDD falls below VBOR (parameter D005, about 4V) for longer than TBOR (parameter #35,
about 100 µS), the brown-out situation will reset the device. If VDD falls below VBOR for less than
TBOR, a Reset may not occur. Once the brown-out occurs, the device will remain in Brown-out Reset
until VDD rises above VBOR.
14.13 Watchdog Timer (WDT). The Watchdog Timer is a free running, on-chip RC
oscillator which does not require any external components. This RC oscillator is separate from the RC
oscillator of the OSC1/CLKI pin. During normal operation, a WDT time-out generates a device Reset
(Watchdog Timer Reset). If the device is in Sleep mode, a WDT time-out causes the device to wake-up
and continue with normal operation (Watchdog
Timer Wake-up).