|
Programmierung des Mikrocontrollers mit C
Binärzahlen und Register:
Eine Lampe kann an oder aus sein - also 2 Zustände haben.
Jetzt sag bitte nicht, daß eine Lampe auch halbhell sein kann! Das kann
sie natürlich. Aber wir wollen hier digitale Ausgänge und digitale
Eingänge erklären und die sind eben entweder HIGH oder LOW. Was in
userem Falle bedeutet: sie führen 5V oder 0V.
Also nochmal:
- eine Lampe kann zwei Zustände haben
- zwei Lampen können bereits 4 Zustände haben
Lampe 1
|
Lampe 2
|
Zustand
|
aus
|
aus
|
1
|
aus
|
ein
|
2
|
ein
|
aus
|
3
|
ein
|
ein
|
4
|
- vier Lampen können 16 Zustände haben
- acht Lampen können 256 Zustände haben
Wenn man einem Computer das Zählen beibringen müßte, benutzte man
einfach die Vorstellung, daß in einem Draht Strom fließt oder kein
Strom fließt. (Ein bischen Strom gilt nicht!)
Wenn wir 4 Drähte benutzen, könnte der Computer von 0 bis 15 zählen
(also 16 Zahlen).
Das könnte man so darstellen (Strom fließt = 1 / Strom aus = 0):
1. Draht
|
2. Draht
|
3. Draht
|
4. Draht
|
Zahl
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
2
|
0
|
0
|
1
|
1
|
3
|
0
|
1
|
0
|
0
|
4
|
0
|
1
|
0
|
1
|
5
|
0
|
1
|
1
|
0
|
6
|
0
|
1
|
1
|
1
|
7
|
1
|
0
|
0
|
0
|
8
|
1
|
0
|
0
|
1
|
9
|
1
|
0
|
1
|
0
|
10
|
1
|
0
|
1
|
1
|
11
|
1
|
1
|
0
|
0
|
12
|
1
|
1
|
0
|
1
|
13
|
1
|
1
|
1
|
0
|
14
|
1
|
1
|
1
|
1
|
15
|
Register
Natürlich muß sich der Computer eine Zahl auch merken können. Dazu kann
man sie in einen Speicher hineinschreiben (z. B. in ein sogenanntes Register). Ein
Register mit 4 Zellen kapiert dann maximal die Zahlen 0 bis 15. Und ein
Register mit 8 Zellen versteht Zahlen von 0 bis 255.
Der Mensch benutzt für Zahlen gewöhnlich 10 Ziffern: 0, 1, 2, 3, 4, 5,
6, 7, 8 und 9.
Er benutzt also das Dezimalsystem.
Wenn wir gezwungen sind, nur Nullen und Einsen benutzen zu müssen,
nehmen wir eben das binäre
Zahlensystem.
Eine dezimale 13 wird binär zu 1101. Alles klar?
Eine dezimale 250 wird binär zu 11111010.
Eine dezimale 3 wird binär zu 11, wenn man die führenden Nullen
wegläßt.
In einem Register mit 8 Zellen sieht die 3 dann so aus: 00000011.
Diese Umrechnung kann jedes bessere Taschenrechnerprogramm in Deinem
Computer (z. B. gcalctool).
|