PIC18 Mikrocontroller in C programmieren – Schritt-für-Schritt-Anleitung (MikroC)
PIC18 Mikrocontroller in C programmieren – Schritt-für-Schritt mit MikroC (Bildbeispiele)
Mikrocontroller-Programmierung – Grundlagen
Programmierung = C/Assembler-Code in IDE schreiben → Kompilieren → Hex-File erzeugen → per Programmer (Hardware) in Flash des MCU brennen. Hex-File enthält maschinenlesbare Instruktionen.
Hardware zum Brennen: Programmer (z. B. PICkit 3/4/5, ICD 4) per USB an PC → Software überträgt Hex-File in MCU-Flash. Danach arbeitet MCU autonom laut Programm.
PIC-Familien Überblick (Microchip)
- 8-bit: PIC10, PIC12, PIC16, PIC18
- 16-bit: PIC24, dsPIC30, dsPIC33
- 32-bit: PIC32 (MIPS-Kern)
Microchip: #2 Halbleiterhersteller, Gehäuse von 6 bis 144 Pins.
Zielcontroller: PIC18F452 (repräsentativ für PIC18)
- 8-bit, 40 Pins, 32 KB Flash, bis 40 MHz
- 25 mA Source/Sink pro Pin → LED direkt ansteuerbar (kein Treiber nötig)
- 3 externe Interrupts, 2× 16-Bit-Timer, 1× 8-Bit-Timer
- Capture/Compare/PWM-Modul, Komparator, 10-bit ADC onboard
- Kommunikation: USART (RS-232), I²C, 1-Wire, Parallel Slave Port
- Ideal für Einsteiger, Hobby, Profi-Projekte
Entwicklungsumgebung: MikroC PRO for PIC
Voll ausgestattete IDE mit vielen Bibliotheken (LCD, UART, SPI, I²C, Delay, ADC …), Rechnern (Hex/Dec/Bin), einfacher Syntax. Hinweis: MikroC ist kostenpflichtig. Alternative: MPLAB X IDE + XC8 Compiler (kostenlos, Microchip-offiziell, viele kostenlose Libraries). Als Designer empfehle ich MikroC für Einsteiger (lesbarere Syntax, mehr Built-ins), langfristig aber MPLAB X.
Neues Projekt in MikroC anlegen
- MikroC starten → Startfenster
- Menü Project → New Project
- „Next“ → Ziel-MCU wählen (PIC18F452), Taktfrequenz (z. B. 8 MHz), Projektname & Ordner vergeben
- Weitere Dialoge mit „Next“ überspringen → Code-Editor öffnet sich
C-Code für PIC18 schreiben – Wichtige Konzepte
Ports als Ein-/Ausgang konfigurieren (TRIS-Register)
Jeder Port hat ein TRISx-Register (x = A, B, C, D, E).
0 = Ausgang, 1 = Eingang.
Beispiel: TRISB = 0x00 → ganz Port B Ausgang.
TRISB = 0x09 → RB0 & RB3 Eingang (Bit 0 & 3 = 1), Rest Ausgang.
Delay-Funktion (Bibliothek)
Delay-Library eingebunden → Delay_ms(1000) wartet 1000 ms. Kein eigenes Timer-Setup nötig.
Erstes Beispiel: Port B toggeln (alle Pins blinken)
void main() {
TRISB = 0x00; // Port B als Ausgang
while (1) { // Endlosschleife
PORTB = 0x00; // Alle Pins LOW
Delay_ms(500); // 500 ms warten
PORTB = 0xFF; // Alle Pins HIGH
Delay_ms(500); // 500 ms warten
}
}
Kompilieren & Brennen
Button Build All (oder F9) → Kompilierung → Hex-File im Projektordner.
Hex-File mit PICkit (oder anderem Programmer) in PIC18F452 brennen. Oder in Proteus simulieren.
Weiterführende Themen
- Unterschied Mikroprozessor vs. Mikrocontroller
- 8085 vs. 8086 Vergleich
- MAX232: Aufbau, Betrieb, Typen, Anwendung
- RS-232 Protokoll & Funktion
- Clap-Switch mit 555-Timer
- 10+ Online Design- & Simulationstools
- SMD-Widerstandscodes lesen
- Arduino-Programmierung (Alternative für Einsteiger)
- ATMega Mikrocontroller & LED-Projekt
Industrietechnik
- Entwicklung eines robusten elektrischen Wartungsprogramms: Ein praktischer Leitfaden
- Reliability-Programm starten: Ein bewährter Fahrplan
- Erfolgreiches Fertigungs-Ausbildungsprogramm starten: Ein praktischer Leitfaden
- Robustes Instandhaltungsprogramm aufbauen: Stillstandszeiten minimieren
- Aluminiumschweißen meistern: Experten-Leitfaden für TIG, MIG & mehr
- Expertenrat zum Schweißen von Gusseisen: Bewährte Techniken für starke, dauerhafte Verbindungen
- Aluminiumlöten meistern: Expertentechniken & praktische Anleitung
- Aluminiumhartlöten meistern: Expertentechniken & Praxisleitfaden
- Expertenrat zum Kupferschweißen: Techniken, Tipps & Best Practices
- Elektrische Instandhaltungsprogramme: Sicherheit & Produktion steigern