7-Segmentanzeige mit Mikrokontroller Intel 8051 zum blinken birngen

OP #2723020
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.
#2723037
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.
OP #2723068
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.
#2723117
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.
Angehängte Dateien:
#2723360
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren