-
-
Erfahrener Benutzer
Roboter Genie
Ich glaube, das ist auch nicht so, wie die anderen es meinten.
Du hast 3 7-Segment Anzeigen, die jeweils in der gleichen Folge an einem Port angeschlossen sind.
Dann kannst du die 3 Stellen doch separat setzen.
Hier hast du die Segmente für die Zahlen von 0-9 angegeben:
1: Portb = &B00110000
2: Portb = &B01101101
3: Portb = &B01111001
4: Portb = &B00110011
5: Portb = &B01011011
6: Portb = &B01011111
7: Portb = &B01110000
8: Portb = &B01111111
9: Portb = &B01111011
0: Portb = &B01111110
Diese schreibst du dir jetzt in ein Array. Etwa so:
Dim seg_array(10) As Byte
seg_array(1)= &B00110000
seg_array(2) = &B01101101
seg_array(3) = &B01111001
seg_array(4) = &B00110011
seg_array(5) = &B01011011
seg_array(6) = &B01011111
seg_array(7) = &B01110000
seg_array(8) = &B01111111
seg_array(9) = &B01111011
seg_array(10) = &B01111110
Dabei wirst du bemerken, dass die 0 tatsächlich im Array Element 10 steht. Das liegt daran, dass der Array Index bei 1 beginnt, die 0 also nicht in seg_array(0) geschrieben werden kann. Daher musst du die 0 später gesondert behandeln.
Wenn du jetzt den Wert 357 auf deiner 7-Segment Anzeige darstellen willst, dann soll die 3 (die Segmente dafür stehen in seg_array(3)) auf den PortD (deine Hunderter Stelle) gesetzt werden. Also
PORTD = Seg_array(3)
PORTC = Seg_array(5) und
PORTB = Seg_array(7)
Wie du später feststellen wirst, gibt es elegantere Wege an die einzelnen Ziffern zu kommen, aber für den Anfang kannst die Variable Test durch 100 teilen, um so die 3 zu bekommen. Entsprechend für die Zehner und die Einer.
Versuche dies mal so zu programmieren und melde dich, wenn du nicht weiterkommst.
Gruß
Rolf
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen