16F877A. Timer 0 The Timer0 module timer/counter has the following features: –8-bit timer/counter...
Embed Size (px)
Transcript of 16F877A. Timer 0 The Timer0 module timer/counter has the following features: –8-bit timer/counter...
Timer 0The Timer0 module timer/counter has the followingfeatures:8-bit timer/counterReadable and writable8-bit software programmable prescalerInternal or external clock selectInterrupt on overflow from FFh to 00hEdge select for external clockFigure 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). 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 MODULEThe 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). This interrupt can be enabled/disabled by setting/clearing TMR1 interrupt enable bit, TMR1IE (PIE1). Timer1 can operate in one of two modes: As a Timer As a Counter
TIMER 1 MODULECounter 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) is set, the external clock input is not synchronized.
TIMER 2 MODULETimer 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 MODULESEach 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 registerIn 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 MODULESIn 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 unchangedIn 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 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) ModuleThe 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 modeSlave 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) MODULEThe 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 MODULEThe 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 ConfigurationThere 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 ASome 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 RegisterPORTA 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 aHigh-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 AThe write operation is read-modify-writeFor Port A if the next value of PORTA depends on the previous value of PORTA, analog inputs should be selected on ADCRA4 needs Pull-up
Port BIn general as the ports might be different, in case of problem check the port architecture
RESET14.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 power-up 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 PWRTs 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 RCoscillator 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 (WatchdogTimer Wake-up).