7-Segmentanzeige mit Mikrokontroller Intel 8051 zum blinken birngen

OP #2723020
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.
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
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.
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:
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
Gast
>>ü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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.