AT89C51 Mikrocontroller: Übersicht, Pinout, Programmierung & Alternativen
Die Atmel AT89-Serie (heute Microchip) gehört zur 8051-kompatiblen 8-Bit-Mikrocontroller-Familie. Vorteile: Kostengünstig, hohe Flexibilität, breite Werkzeugunterstützung, industrieerprobt. Bekannte Vertreter: AT89C2051 (20 Pin), AT89C51 (40 Pin), AT89S52 (ISP-fähig). Dieser Artikel fokussiert den AT89C51.
Was ist der AT89C51?
Der AT89C51 ist ein CMOS 8-Bit-Mikrocontroller mit 4 KB Flash-Speicher (In-System Programmable, ISP), 128 Byte RAM, 32 I/O-Leitungen, zwei 16-Bit-Timern, UART, 6 Interrupt-Quellen. Er basiert auf der MCS-51-Architektur (Intel 8051), ist pin- und instruktionskompatibel. Gefertigt in Atmels High-Density-Nonvolatile-Technologie. Typische Taktfrequenz: 0–24 MHz (externer Oszillator).
Pinout (40-Pin DIP / PLCC / TQFP)
Wichtige Pins (Kurzübersicht):
- P1.0–P1.7 (Pins 1–8): Port 1 (I/O, keine Alternativfunktionen)
- RST (Pin 9): Reset (High-aktiv, min. 2 Maschinenzyklen)
- P3.0–P3.7 (Pins 10–17): Port 3 mit Alternativfunktionen: RXD, TXD, INT0, INT1, T0, T1, WR, RD
- XTAL2 (Pin 18), XTAL1 (Pin 19): Oszillator-Anschluss (Quarz/Keramik)
- GND (Pin 20): Masse
- P2.0–P2.7 (Pins 21–28): Port 2 (High-Byte Adressbus bei externem Speicher, sonst I/O)
- PSEN (Pin 29): Program Store Enable (Low beim Code-Fetch aus externem ROM)
- ALE/PROG (Pin 30): Address Latch Enable / Program Pulse (Flash-Programmierung)
- EA/VPP (Pin 31): External Access (Low = externer Code), Programmier-Spannung (12 V) beim Flashen
- P0.0–P0.7 (Pins 32–39): Port 0 (Multiplexed Adress/Datenbus extern, sonst I/O mit Open Drain – Pull-Ups nötig!)
- VCC (Pin 40): Versorgung 2,7–5,5 V (typ. 5 V)
Hauptmerkmale (Features)
- CPU: 8051 Kern, 12 Takte/Maschinenzyklus (Standard), 24 MHz → 2 MIPS
- Flash: 4 KB (Endurance: 1.000 Erase/Write Cycles)
- RAM: 128 Byte intern (0x00–0x7F), 128 Byte SFR (0x80–0xFF)
- I/O: 32 programmierbare Leitungen (4 Ports × 8 Bit)
- Timer: 2 × 16-Bit (Timer 0, Timer 1 – Mode 0/1/2/3)
- UART: 1 × Voll-Duplex (Mode 1/2/3, Baudrate über Timer 1)
- Interrupts: 6 Quellen (2 ext., 2 Timer, 1 UART, 1 Global), 2 Prioritäten
- Power Modes: Idle (CPU stoppt, Peripherie läuft), Power Down (Oszillator aus, nur RAM-Erhalt)
- Code-Schutz: 3-Level Lock Bits (Read/Write/Verify Schutz)
- Betriebsspannung: 2,7–5,5 V (Industrial: 4,5–5,5 V)
- Temperatur: –40 °C … +85 °C (Industrial), –55 °C … +125 °C (Military – selten)
- Gehäuse: 40-Pin DIP, 44-Pin PLCC, 44-Pin TQFP
Weitere Atmel/Microchip 8-Bit MCUs (AVR & 8051)
- AVR (moderner, effizienter): ATtiny88, ATmega8, ATmega32, ATmega328P (Arduino Uno), ATtiny45
- 8051 (ISP-fähig): AT89S52 (8 KB Flash, SPI-ISP), AT89LP51 (Low Power, 1 Takt/Zyklus)
Programmierung des AT89C51
Toolchain (klassisch):
- Compiler: Keil µVision (C51), SDCC (Open Source), IAR
- IDE: Keil µVision (Standard), VS Code + Extension
- Programmer: USBASP (ISP über SPI, benötigt EA=12 V), ATMEL FLIP (seriell/USB), Dedizierte 8051-Programmer (z. B. XGecu T48, MiniPro TL866)
- Hardware für serielle ISP: MAX232 (RS-232 Pegelwandler) für UART-Bootloader (falls im Chip), oder Parallel-Programmer für DIP
Workflow:
- C-Code → Compiler → HEX-Datei
- Simulation in Keil (Peripherie-Modelle) → Fehler früh finden
- HEX per Programmer in Flash brennen (ISP oder Parallel)
- Verifizieren → Reset → Lauf
Mikrocontroller-Auswahlkriterien (Atmel / Microchip)
Bei der Vielzahl an MCUs (AVR, SAM, PIC, 8051) helfen diese Kriterien:
- Kommunikation: Benötigte Protokolle (UART, SPI, I²C, CAN, USB, Ethernet) – Anzahl Module pro Protokoll?
- Peripherie: ADC (Auflösung, Kanäle, Sampling-Rate), DAC, PWM (Kanäle, Auflösung), Analog-Komparator, Touch, Crypto
- Gehäuse & Kosten: 8-Pin (ATtiny) billig & klein vs. 48/64-Pin für viele I/Os
- Betriebsspannung: 3,3 V System → 3,3 V MCU (Level-Shifter sparen). 5 V → 5 V MCU.
- Ökosystem & Support: Community, Libraries, Beispiele, Lieferbarkeit. ATmega328P, ATmega32U4, SAMD21, ESP32, RP2040, STM32 haben riesige Communities.
Anwendungen des AT89C51
- Ersatz für Arduino-Module (kostengünstiger, aber mehr Aufwand bei Entwicklung)
- Projekte mit vielen I/Os & Schnittstellen (Multiplex-Display, Tastaturmatrix, Relaiskarte)
- Fortgeschrittene A/D-Anwendungen (externer ADC nötig – AT89C51 hat kein internes ADC/DAC!)
- Lernplattform für 8051-Assembler/C
- DIY-Projekte (Temperaturregler, Zeitschaltuhren, einfache Roboter)
Fazit
Der AT89C51 ist ein klassischer 8051-Flash-Mikrocontroller, der seit Jahrzehnten in Bildung & Industrie etabliert ist. Er bietet 4 KB Flash, 32 I/O, UART, 2 Timer – aber kein ADC, kein DAC, kein EEPROM, kein ISP über USB. Für neue Projekte sind AVR (ATmega328P/4809), ARM Cortex-M (STM32, SAMD, RP2040) oder ESP32 meist bessere Wahl (Performance, Peripherie, Toolchain, Community). Für Legacy-Wartung & 8051-Lernen bleibt der AT89C51 relevant. Fragen? Kontaktieren Sie uns!
Industrietechnik
- USB-C Pinout & Features: Umfassender Leitfaden für Profis
- Arduino einfach erklärt: Was es ist und wie man es programmiert
- PWM mit Arduino meistern: Umfassender Leitfaden & wichtige Funktionen
- Entwicklung des CMMS: Vergangenheit, Gegenwart, Zukunft – Wie Technologie Wartungserfolg antreibt
- Effizienz maximieren: Funktionen & Vorteile von Inventarmanagement-Software
- Arduino Nano Pinout: Vollständiger Leitfaden zu Spezifikationen, Pin-Funktionen & Programmierung
- PIC18 Mikrocontroller: Eigenschaften, Performance & Programmierung
- 2N3771 NPN-Leistungstransistor: Pinout, Daten, Anwendungen & Alternativen
- HC-06 Bluetooth-Modul: Pinout, Features, Anwendungen & Funktionsweise
- DS18B20 1-Wire Temperatursensor: Pinout, Features & Praxis