|
|
|
Fachthema
Der PIC16F877 Controller |
|
 |
|
|
Der
PIC16F877 Controller
1. Einführung
Die folgende Grundlagenserie vermittelt grundlegende Funktionen sowie Programmiertechniken in PIC-Assembler des
PIC16F877 Controllers von Microchip.
Der PIC16F877 Mikrocontroller ist ein 8-Bit CMOS FLASH Mikrocontroller mit einer RISC Architektur und ist in einem 40
Pin PDIP- und in einem 44 Pin PLCC-Gehäuse lieferbar. Microchips PICmicro Controller zeichnen sich nicht nur durch eine einfache
Programmierung über ein serielles Interface (In-Circuit Serial
ProgrammingTM) aus, sondern bestechen im
Preis-Leistungsverhältnis. Der hier beschriebene PIC-Controller kostet bei
Reichelt Elektronik [http://www.reichelt.de] von
6,00 bis maximal 8,00 EUR - je nach Gehäuse und Systemtakt.

Datenblatt
der PIC16F87x Familie downloaden
Wie bereits gesagt, zeichnet sich die gesamte Palette der Microchip PICmirco Produkte durch ihre einfache Programmierbarkeit
aus. Die 8-Bit Flash-Controller lassen sich mit nur 35 Befehlen (single
words) programmieren. Zur Speicherung und Programmierung
des PIC16F877 Bausteins steht dem Entwickler ein 8K x 14 words FLASH-Programmspeicher zur Verfügung. Selbst der Datenspeicher
(RAM) ist mit 368 x 8 Bytes und das interne EEPROM mit 256 x 8 Bytes mehr als ausreichend dimensioniert.
An dieser Stelle möchte ich nicht alle Eigenschaften dieses Bausteins
aufzählen, sondern nur die wichtigsten Features des PIC16F877 nennen, die dem Entwickler von Embedded-Systemen sowie dem
Einsteiger in die PICmicro Familie den Einsatz dieses Controllers schmackhafter machen. Im späteren Teil dieser Serie gehe ich noch
ausführlicher auf die technische Dimensionierung sowie auf die programmiertechnische Umsetzung der einzelnen Funktionen im
Speziellen ein.
| Weitere
Features |
Peripherie |
| 14 interne/externe Interruptquellen |
5 separate I/O Ports |
| 8-Lever Hardware Stack |
zwei 8-Bit Timer und einen 16-Bit Timer |
| Power-On-Reset |
2
Capture/Compare/PWM-Module |
| Power-Up-Timer und Oszillator Start-Up Timer |
MSSP,
USART, PSP |
| Watchdog Timer |
acht 10-Bit AD-Wandler |
| stromsparender SLEEP-Modus |
|
| 5V Programmierspannung |
|
| Betriebsspannung von 2.0-5.5 V |
|
| Taktfrequenz bis
20 MHz |
|
2.1 Der Programmspeicher
Die Adressierung des PIC16F877 Programmspeichers erfolgt über
einen 13-Bit Programmzähler (PC). Der FLASH-Programmspeicher ist in 8K x 14 Bit aufgeteilt, d.h. es lassen sich 8K Befehle ablegen.
Der Reset Vektor hat im Programmspeicher die Adresse 0000h und der Interrupt Vektor die Adresse 0004h.
2.2 Der Datenspeicher
Der Datenspeicher des PIC16F877 Controllers teilt sich in 4 Bänke
(Bank 0 bis Bank 3) auf. Jede Bank verfügt über 128 Bytes. In jeder Bank dienen die unteren 32 Bytes der Steuerung des
Controllers und die oberen Bytes stehen der Datenspeicherung zur Verfügung. Die Bits RP1 und RP0 des STATUS-Registers
legen die aktuelle Bank fest.
| RP1 |
RP0 |
|
| 0 |
0 |
Bank0 aktiv |
| 0 |
1 |
Bank1 aktiv |
| 1 |
0 |
Bank2 aktiv |
| 1 |
1 |
Bank3 aktiv |
RP1 = Bit 6 und RP0 = 5 des
STATUS-Registers
|
|
|
|
|
| Service |
| Homepage
automatisch zu den Favoriten hinzufügen. |
|
|
|
|