Hallo zusammen.
Wir benutzen gerade im Praktikum ein 8051-Board von Silicon.
Die Aufgabe ist: die 4 x 7-Segment-Anzeige mit Hilfe von
Zeitmultiplex-Verfahren zu steuern, also vonn 0000 bis 9999 hochzählen.
Der Quellcode soll in C geschrieben und sowohl auf Interrupt als auch
auf die delay-Funktion verzichtet werden.
Ich habe bißchen zu dem Thema Zeitmultiplex in Foren was durchgelesen.
Ich weiß nur, dass das menschliche optische Versagen dafür vrantwortlich
ist, aber verstanden, hab ich das Verfahren nicht.
Ich weiß, dass ich aufjeden Fall einen Zähler brauche, der von 0000 -
9999 hochzählen soll:
1 | if (cnt > 9999) cnt = 0;
|
1 | if (cnt < 0) cnt = 9999;
|
Dann habe ich einen Look up table für die jeweiligen Zahlen angelegt:
1 | unsigned char LUT[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
|
Als Hinweis steht, dass wir uns darübr Gedanken machen sollen, wie man
von einer 16-bit Zahl in dualer Darstellung einzelne Dezimalstellen
isolieren kann.
Da habe ich folgenden Ansatz:
tausender = Zahl / 1000;
hunderter = (Zahl % 1000)/100;
zehner = ((Zahl % 1000)%100)/10;
einser = (((Zahl % 1000)%100)%10);
Aber ich weiß nicht, wozu man es braucht?
Vielen Dank für Eure Antworten.