Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

PIC16F877(A) meistern: Features, Pinout, I/O-Ports & LED-Blink-Tutorial

Der PIC16F877A (verbesserte Version des PIC16F877) ist ein 8-Bit-Mikrocontroller von Microchip (heute Microchip Technology), der durch günstigen Preis, breite Verfügbarkeit, umfangreiche Peripherie und gute Tool-Unterstützung (MPLAB X, XC8 Compiler, PICkit) zu den beliebtesten Einstiegs- und professionellen Controllern zählt. Dieser Artikel gibt Überblick über Features, Pinbelegung, Port-Architektur und ein erstes LED-Blink-Projekt.

1. Überblick

2. Wichtigste Features

3. Pin-Diagramm (40-Pin DIP)

PinNameHauptfunktion
1MCLR/VPPMaster Clear (Reset, aktiv Low), Programmierspannung
2RA0/AN0Port A0 / ADC Ch0
3RA1/AN1Port A1 / ADC Ch1
4RA2/AN2/VREF-Port A2 / ADC Ch2 / VREF-
5RA3/AN3/VREF+Port A3 / ADC Ch3 / VREF+
6RA4/T0CKIPort A4 / Timer0 Clock Input
7RA5/AN4/SSPort A5 / ADC Ch4 / SPI Slave Select
8RE0/RD/AN5Port E0 / Read / ADC Ch5
9RE1/WR/AN6Port E1 / Write / ADC Ch6
10RE2/CS/AN7Port E2 / Chip Select / ADC Ch7
11VDDPositive Versorgung (5 V)
12VSSMasse
13OSC1/CLKINOszillator-Eingang / Externer Takt
14OSC2/CLKOUTOszillator-Ausgang
15RC0/T1OSO/T1CKIPort C0 / Timer1 Osc Out / Timer1 Clock
16RC1/T1OSI/CCP2Port C1 / Timer1 Osc In / CCP2
17RC2/CCP1Port C2 / CCP1 (PWM)
18RC3/SCK/SCLPort C3 / SPI Clock / I²C Clock
19RD0/PSP0Port D0 / Parallel Slave Port
20RD1/PSP1Port D1 / PSP
21RD2/PSP2Port D2 / PSP
22RD3/PSP3Port D3 / PSP
23RC4/SDI/SDAPort C4 / SPI Data In / I²C Data
24RC5/SDOPort C5 / SPI Data Out
25RC6/TX/CKPort C6 / USART TX / Sync Clock
26RC7/RX/DTPort C7 / USART RX / Sync Data
27RD4/PSP4Port D4 / PSP
28RD5/PSP5Port D5 / PSP
29RD6/PSP6Port D6 / PSP
30RD7/PSP7Port D7 / PSP
31VSSMasse
32VDDPositive Versorgung
33RB0/INTPort B0 / Externer Interrupt
34RB1Port B1
35RB2Port B2
36RB3Port B3
37RB4Port B4
38RB5Port B5
39RB6/PGCPort B6 / ICSP Clock
40RB7/PGDPort B7 / ICSP Data

4. I/O-Port-Architektur

Jeder Port hat zwei Register:

Port-Details

Wichtig: Nach Reset sind alle Pins (außer MCLR, VDD, VSS) als Eingänge konfiguriert (TRIS = 1). Analogfunktion an Port A/E standardmäßig aktiv → ADCON1 = 0x0F setzt alle auf Digital.

5. Praxis: LED an PORTD (RD2) blinken lassen

Hardware

Software (MPLAB X + XC8)

#pragma config FOSC = HS        // High-Speed Oszillator
#pragma config WDTE = OFF       // Watchdog aus
#pragma config PWRTE = ON       // Power-up Timer an
#pragma config BOREN = ON       // Brown-out Reset an
#pragma config LVP = OFF        // Low-Voltage Programming aus
#pragma config CPD = OFF        // Data EE Protect aus
#pragma config WRT = OFF        // Flash Write Protect aus
#pragma config CP = OFF         // Code Protect aus

#include <xc.h>
#define _XTAL_FREQ 16000000

void main(void) {
    // Port D als Ausgang
    TRISD = 0x00;   // Alle Pins Output
    PORTD = 0x00;   // Alle Low
    
    // ADC aus (Port A/E digital)
    ADCON1 = 0x0F;
    
    while (1) {
        PORTDbits.RD2 = 1;   // LED an
        __delay_ms(500);
        PORTDbits.RD2 = 0;   // LED aus
        __delay_ms(500);
    }
}

Erklärung

  1. Config-Bits: HS-Oszillator (16 MHz), WDT aus, PWRT an, BOR an.
  2. _XTAL_FREQ für __delay_ms() nötig.
  3. TRISD = 0 → ganz Port D Ausgang.
  4. ADCON1 = 0x0F → Port A/E digital (sonst Analog-Eingang, kein Digital-Out).
  5. Endlosschleife toggelt RD2 mit 500 ms Delay.

Fazit

Der PIC16F877A ist ein klassischer, robuster 8-Bit-Controller für Lernzwecke und industrielle Steuerungen. Die Port-Architektur (TRIS/PORT) ist einfach, die Peripherie deckt 90 % typischer Anwendungen ab. Mit MPLAB X IDE, XC8 Compiler und PICkit 4/5 ist die Entwicklungsumgebung professionell und kostenlos. Nächste Schritte: Timer-Interrupts, ADC-Nutzung, PWM-Motorschaltung, I²C-Sensoren, UART-Debugging.

Benötigen Sie ein Beispiel für ADC, PWM oder I²C? Kontaktieren Sie uns.

Industrietechnik

  1. E3.series 2021: Fortgeschrittene Kabel- & Kabelbaum-Funktionen & Gratis-Testversion
  2. Batterieverschaltung richtig wählen: Reihenschluss, Parallelschaltung & Reihenschluss-Parallelschaltung
  3. Spritzguss mit Auswerferstiften optimieren: Typen & Best Practices
  4. Fase vs. Fase: Wichtige Unterschiede, die jeder Designer kennen muss
  5. Effizienz maximieren: Funktionen & Vorteile von Inventarmanagement-Software
  6. PIC18 Mikrocontroller: Eigenschaften, Performance & Programmierung
  7. 2N3771 NPN-Leistungstransistor: Pinout, Daten, Anwendungen & Alternativen
  8. AT89C51 Mikrocontroller: Übersicht, Pinout, Programmierung & Alternativen
  9. Arduino Protoshield selbst bauen: Schritt-für-Schritt-Montageanleitung
  10. Schnellrücklaufmechanismus: Funktion, Anwendungen und Vorteile