mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zähler programmieren mit AT89C5131


Autor: Christian Becker (karl92)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Seit einer Woche befasse ich mich mit Mikrocontrollertechnik und komme 
bei dieser Aufgabe mit bestem Willen nicht weiter.
Verwende einen Atmel AT89C5131 und Programmiere mit Raisonance, Ride7!
Die Aufgabe lautet:

Bei Programmstart soll ein Zähler 0-9 gestartet werden. Hierzu wird ein 
Zähler so schnell zählen, dass die Zahlen für das Auge nicht zu 
differenzieren sind.
Die Ausgabe der Zahl soll auf der 7 Segment-Anzeige sowie dem LCD, Zeile 
2 angezeigt werden. Auf der Zeile 1 steht folgender Text „Zähler“.
Wird die Taste S2 gerückt, so wird die Würfelzahl in beiden Ausgaben 
angezeigt, so lange die Taste gedrückt bleibt.

Könntet ihr mir da bitte weiterhelfen ?

Danke euch

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist das Problem?

sbit KEY_S2 = P1^1;          // the wanted port pin
#define KEY_PRESS 0          // low active

int main()
{
  unsigned char i = '0';

  lcd_init();
  lcd_puts( "any text" );
  for(;;){
    if( i == '9' )
      i = '0';
    else
      i++;
    lcd_xy( the_wanted_position );
    lcd_putchar( i );
    if KEY_S2 == KEY_PRESS ){
      delay_ms( 1000 );
      while( KEY_S2 == KEY_PRESS );
    }
  }
}

Da ich Deine IDE nicht kenne, können die Funktionen abweichend heißen.


Peter

Autor: Christian Becker (karl92)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
danke nochmals für deine Hilfe aber ich komm selbst nochnicht richtig 
drauf!
hab hier mal 2 Bilder... des eine ist ein beispiel für den umgang mit 
dem lcd und des andere ist mein aktueller stand in ride7.
könntet ihr mir vl noch ein kleines bisschen bei der umsetzung helfen?



dankeschön

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Musterbeispiel (das auf dem Papier) ist doch schon fast soweit, 
dass man es zu einem Würfel umfunktionierten könnte!
Dein Musterbeispiel zählt nur dann 1 weiter, wenn die Taste gedrückt 
wird. Und jetzt soll eben dauernd gezählt werden. Und zwar nicht 
beliebig hoch sondern immer von 1 bis 6, wenn der Zähler auf 7 
weitergezählt wurde, dann wird er wieder auf 1 zurück gesetzt. Wobei 
deine Angabe da etwas widersprüchlich ist. Auf der einen Seite ist von 
einem Würfel die Rede, welcher bekanntlich 1 bis 6 Augen haben kann, auf 
der anderen Seite ist von einem Zähler 0 bis 9 die Rede. Aber das ist 
nicht wirklich wichtig, das sind im Programm nur 2 Zahlenwerte.

Faktum ist, dass man aus der Musterlösung mit ein paar Änderungen das 
Gewünschte erhalten kann (wenn man die 7-Segment Anzeige mal beiseite 
legt). Wenn man seine Grundlagen verstanden hat.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.