Inhaltsverzeichnis
PIC16F87x Einführung
Der bekannteste und noch immer weit verbreitete PIC ist immer noch der PIC16F84. Es gibt, besonders im englischsprachigen Raum, zahllose Anwendungs-Beispiele in vielen Foren und Homepages.
Hier soll eine Gruppe der (grösseren) Nachfolge-Modelle vorgestellt werden, der
- PIC16F873
- PIC16F876
- PIC16F874
- PIC16F877
Sie sind in den üblichen Bauformen PDIP, SOIC, PLCC und QFP im Handel und unterscheiden sich in der Ausstattung, haben aber im Wesentlichen die gleichen Eigenschaften. (Es gibt nur ein Datasheet für alle 4). Es können alle Programm-Sourcen, die für den PIC16F84 geschrieben wurden, mit einer einfachen Compilierung sofort lauffähig gemacht werden (man muss natürlich der Prozessortyp geändert werden).
Peripheral Features
- Timer0: 8-bit timer/counter with 8-bit prescaler
- Timer1: 16-bit timer/counter with prescaler, can be incremented during SLEEP vie external crystal/clock
- Timer2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler
- Two Capture, Compare, PWM Modules
- Capture is 16-bit, max. resolution is 12.5 nS
- Compare is 16-bit, max. resolution is 200 nS
- PWM max resolution is 10-bit
- 10-bit multi-channel Analog-to-Digital converter
- Synchronous Serial Port (SSP) with SPI tm (Master mode) and I2Ctm (Master/Slave)
- Universale Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-bit address detection
- Parallel Slave Port (PSP) 8 -bits wide, with external /RD, /WR and /CS controls (40/44-pin only)
- Brown-out detection circuitry for Brown-out Reset (BOR)
PC16F876
Pinout PC16F877
OSC1/CLKIN | Quartz Input oder Input für externe Clock-Source. |
OSC2/CLKOUT | Quartz Output. Im RC-Mode kann hier 1/4 Frequenz von OSC1 entnommen werden. |
/MCLR /Vpp | Reset oder Programmierspannung (+12 V oder +5V). |
RA0 / AN0 | PORTA Bit 0 (TTL) oder Analog Input 0. |
RA1 / AN1 | PORTA Bit 1 (TTL) oder Analog Input 1. |
RA2 / AN2 / Vref- | PORTA Bit 2 (TTL), Analog Input 2 oder Referenzspannung - |
RA3 / AN3 / Vref+ | PORTA Bit 3 (TTL), Analog Input 3 oder Referenzspannung + |
RA4 / T0CKI / Vref- | PORTA Bit 4 (TTL mit ST), oder Clock-In für Timer0 timer/counter. Wenn Output, dann Open drain |
RA5 / /SS / AN4 | PORTA Bit 5 (TTL), Analog Input 4 oder Slave Select für SSP |
RB0 / INT | PORTB Bit 0 (TTL) mit Schmitt-Trigger, wenn INT |
RB1 | PORTB Bit 1 (TTL) |
RB2 | PORTB Bit 2 (TTL) |
RB3 / PGM | PORTB Bit 3 (TTL) Bei Low-Voltage-Programming ist dieser Pin besetzt |
RB4 | PORTB Bit 4 (TTL) Interrupt-on-change möglich |
RB5 | PORTB Bit 5 (TTL) Interrupt-on-change möglich |
RB6 / PGC | PORTB Bit 6 (TTL) Interrupt-on-change möglich. CLOCK beim Programmieren u. Debug |
RB7 / PGD | PORTB Bit 7 (TTL) Interrupt-on-change möglich. DATA beim Programmieren u. Debug |
RC0 / T1OSO/ T1CKI | PORTC Bit 0 (TTL/ST) Timer1 oscillator output oder clock input |
RC1 / T1OSI/ CCP2 | PORTC Bit 1 (TTL/ST) Timer1 oscillator input oder CAP2 input od. COMP2/PWM2 output |
RC2 / CCP1 | PORTC Bit 2 (TTL/ST) CAP1 input od. COMP1/PWM1 output |
RC3 / SCK / SCL | PORTC Bit 3 (TTL/ST) Clock in / Out für SSP oder I2C |
RC4 / SDI / SDA | PORTC Bit 4 (TTL/ST) Data in (SSP) oder DATA für I2C |
RC5 / SDO | PORTC Bit 5 (TTL/ST) Data out (SSP) |
RC6 / TX / CK | PORTC Bit 6 (TTL/ST) USART-Async TX oder USART-Sync Clock |
RC7 / RX / DT | PORTC Bit 7 (TTL/ST) USART-Async RX oder USART-Sync Data |
RD0 / PSP0 | PORTD Bit 0 (TTL/ST) Parallel Slave Port |
RD1 / PSP1 | PORTD Bit 1 (TTL/ST) Parallel Slave Port |
RD2 / PSP2 | PORTD Bit 2 (TTL/ST) Parallel Slave Port |
RD3 / PSP3 | PORTD Bit 3 (TTL/ST) Parallel Slave Port |
RD4 / PSP4 | PORTD Bit 4 (TTL/ST) Parallel Slave Port |
RD5 / PSP5 | PORTD Bit 5 (TTL/ST) Parallel Slave Port |
RD6 / PSP6 | PORTD Bit 6 (TTL/ST) Parallel Slave Port |
RD7 / PSP7 | PORTD Bit 7 (TTL/ST) Parallel Slave Port |
RE0 / /RD / AN5 | PORTE Bit 0 (TTL/ST) Parallel Slave Port READ oder analog 5 |
RE1 / /WR / AN6 | PORTE Bit 1 (TTL/ST) Parallel Slave Port WRITE oder analog 6 |
RE2 / /CS / AN7 | PORTE Bit 2 (TTL/ST) Parallel Slave Port SELECT oder analog 7 |
Autor: PicNick