Forum: Mikrocontroller und Digitale Elektronik 7-Segmentanzeige mit Mikrokontroller Intel 8051 zum blinken birngen


von p. p. (intergo)


Lesenswert?

Hallo zusammen, habe eine Frage bezüglich des der /-segmentanzeige die 
nahnd vom Intel 8051 angesteuert werden soll.

Ich soll einen Assemblercode realisieren, dass über port 2 und 3 ,3 
werte  einlesen soll und diese dann angezeigt werden. Für das Anzeigen 
habe ich 3 7-segmentanzeigen für jeweils einen eingelesenen Wert.

Es soll folgende Bedingung erfüllt werden: falls der eingelesene Wert > 
9 ist soll die Siebensegemntanzeige blinken für 5 sekunden mit einer 
Frequenz von 2Hz und danach soll das Programm wieder von neu Beginnen.
WICHTIG: Verwende den Timer 0 16 Bit

Merin Problem ist, dass ich nicht weiß, wie ich das Blinken mit einer 
Frequenz von 2 Hz für 5 sekunden realiseren kann mit Assembler, mir 
fehlt die grundidee.

Würde mich über einige Tipss freuen.

: Verschoben durch Moderator
von egbert (Gast)


Lesenswert?

Hier findest du alle für dich erforderlichen Informationen:

Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"

von Michael H. (michael_h45)


Lesenswert?

luigi la blunda schrieb:
> Merin Problem ist, dass ich nicht weiß, wie ich das Blinken mit einer
> Frequenz von 2 Hz für 5 sekunden realiseren kann mit Assembler, mir
> fehlt die grundidee.
Die hast du schon selber mitgeliefert:
> WICHTIG: Verwende den Timer 0 16 Bit

Jetzt musst du dich allerdings noch einlesen, wie der Timer 0 
funktioniert und mit welcher Funktion du dein Blinken umsetzen kannst.



egbert schrieb:
> Hier findest du alle für dich erforderlichen Informationen:
> Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"
naja... ein bisschen übertrieben.
er hat doch eine konkrete frage gestellt.

Allerdings hat er das komplett verkehrte Forum erwischt.

von p. p. (intergo)


Lesenswert?

Sorry bin neu im Forum, wo sollte ich es es posten?


!Ich verlange  keine Komplette Lösung, habe nur nach ein paar tipps 
gefragt.
!Bin auch kein fauler schüler ODER Student!
Mein gedanke war es: ich benutze einen 16 bit timer, dieser kann bis 
2^16 zählen, also bis 65636micorsekunden. Ich dachte, dann benutze ich 
einen 50ms timer d.h. 65536-50000=15536microsek. als anfangswert.
Diese lade ich in den Low und hiGT TEIL DES tIMER REIN:
Dann dachte ich. ok um die 2Hz hinzubekommen (umgerechnet 0,5sec) , sage 
ich ok 10*50ms=500ms=0,5sek und so hätte ich die Blinkfrequenz von 2Hz, 
d.h. würde den wert A in einem register vorladen. Um die Blinkdauer von 
5sek zu realisieren sage ich 100 durchläufe mal 50ms= 5000ms , das wären 
meine 5sek, die ich auch in einem register vorlade.
Doch jetzt habe ich das Problem. wie ich die beiden kombiniere, sodass 
wenn ein Wert>9 ist, dass die 7-Segmentanzeige bliken soll mit 2Hz und 5 
sekunden lang.

Das ist mein Problem.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael H. schrieb:
> Allerdings hat er das komplett verkehrte Forum erwischt.

Ich hab's verschoben.

von p. p. (intergo)


Lesenswert?

Danke , wo kann ich essehen ,wo es jetzt ist?

von Michael H. (michael_h45)


Angehängte Dateien:

Lesenswert?

luigi la blunda schrieb:
> ich ok 10*50ms=500ms=0,5sek und so hätte ich die Blinkfrequenz von 2Hz,
> d.h. würde den wert A in einem register vorladen. Um die Blinkdauer von
> 5sek zu realisieren sage ich 100 durchläufe mal 50ms= 5000ms , das wären
> meine 5sek, die ich auch in einem register vorlade.
Genau, soweit völlig richtig.

> Doch jetzt habe ich das Problem. wie ich die beiden kombiniere, sodass
> wenn ein Wert>9 ist, dass die 7-Segmentanzeige bliken soll mit 2Hz und 5
> sekunden lang.
Du kannst Timer 0 anhalten und zurücksetzen oder loslaufen lassen.
Und du brauchst eine Funktion, die dir alle Anzeigen einschaltet oder 
ausschaltet.
Der Rest ergibt sich sicher nach 10 Minuten ruhigem Nachdenken =)

luigi la blunda schrieb:
> Danke , wo kann ich essehen ,wo es jetzt ist?
Siehe Anhang.
Falls du eine e-Mail Adresse angegeben hast, hast du da auch eine 
Benachrichtigung bekommen.

von Bernd N. (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

luigi la blunda schrieb:
> Doch jetzt habe ich das Problem. wie ich die beiden kombiniere, sodass
> wenn ein Wert>9 ist, dass die 7-Segmentanzeige bliken soll mit 2Hz und 5
> sekunden lang.

Du solltest Dir einen Programmablaufplan erstellen (mit Worten).

Wenn die 5s um sind, hörst Du einfach auf mit Blinken:
1
  if( bit_5s == 0 ){
2
    if( bit_2Hz == 1 ){
3
      bit_2Hz = 0;
4
      toggle_display();
5
    }
6
  }


Peter

von p. p. (intergo)


Lesenswert?

Hi danke für alles, komme nicht weiter!

von Pieter (Gast)


Lesenswert?

>>über port 2 und 3 ,3 werte  einlesen soll

wie hast Du das realisiert ( erstmal nur in Worten). Welcher Natur sind 
die Werte?
Hast Du eine Vorstellung was ein Programmablaufplan ist?

Pieter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.