www.mikrocontroller.net

Forum: Projekte & Code einfache Uhr (AVR, BCD-7-Segment-Decoder)


Autor: Philz S. (philz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein erstes komplett selbst programmiertes Programm.
Eine einfache Uhr mit 24-Stundenanzeige.
Es werden nur Stunden und Minuten angezeigt (ist aber leicht 
erweiterbar) und als jede Sekunde blinkt eine LED.

Mir kam es v.a. auf einen geringen Verbrauch an Registern an und die 
allgemeine Codegröße an.
Weniger als 6 Register habe ich nicht geschafft, obwohl sowahl die Zeit 
selbst, als auch die Vergleichswerte (siehe Quellcode) im SRAM liegen.

Die Codegröße beträgt laut AVR-Studio 188Byte.

Extras, wie Sommerzeit usw. sind nicht berücksichtigt, ebensowenig wie 
die Möglichkeit, die Uhr zu stellen 8ausser per Voreinstellung im 
Quellcode)

Zur Hardware: Atmega8. Multiplex-Transistoren werden über PB0-PB4 
angesteuert (invertierend) und die Zahlenübertragung erfolg über PC0-PC4 
an einen BCD-zu-7-Segment-Decoder.

Kommentare und Verbesserungsvorschläge sind willkommen :)

Autor: Maddin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Philz S.,

eine Uhr die eigentlich selbstständig läuft und sich nicht selbtständig 
stellen lässt ist doch weniger sinnvoll, oder!?

Hast du dich mal mit der genauigkeit beschäftigt, das allein kann eine 
herausforderung sein.

m.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philz S. wrote:

> Kommentare und Verbesserungsvorschläge sind willkommen :)

Naja, Multiplexen per Delay macht man höchstens zum Lernen, in der 
Praxis ist sowas nicht verwendbar.

Selbst bei einfachen Programmen sind Helligkeitsunterschiede durch die 
Rechenzeit bemerkbar.
Ganz abgesehen von dem riesigen Performanceverlust durch die Delays.

Multiplexen gehört in den Timerinrterrupt.


Und externe Dekoderchips nimmt man schon lange nicht mehr.
Der MC ärgert sich sonst, daß er so winzige Aufgaben (6 Zyklen, 10 
Words) nicht selber machen darf.


Peter

Autor: dani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Und externe Dekoderchips nimmt man schon lange nicht mehr.
Der MC ärgert sich sonst, daß er so winzige Aufgaben (6 Zyklen, 10
Words) nicht selber machen darf."

Wenn ich alle 4 Ziffern mit dem µC multiplexe habe ich nur noch 1/4 der 
Hellgkeit, oder ist das jetzt ein Denkfehler?

Deshalb verwende ich auch den 4511.
Allerdings wird die decodiert  "6" ohne das obere Segment "a" und die 
"9" ohne das untere Segmet "d" angezeigt. Ist das bei allen BCD-7Segment 
Wandlern so?

Dani

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn ich alle 4 Ziffern mit dem µC multiplexe habe ich nur noch 1/4 der
> Hellgkeit, oder ist das jetzt ein Denkfehler?

Das ist im Prinzip richtig. Allerdings kannst du bei LEDs im gepulsten 
Betrieb den Strom und damit die Helligkeit erhöhen. Außerdem brauchst du 
nur noch einen Decoder bzw. sparst Ausgänge am uC.

> Allerdings wird die decodiert  "6" ohne das obere Segment "a" und die
> "9" ohne das untere Segmet "d" angezeigt. Ist das bei allen BCD-7Segment
> Wandlern so?

Es gibt auch welche mit:

Beitrag "Datenblatt  V40511 HEX zu 7-Segment"

Ich habe noch einen Decoder für LCD gefunden (CD4055). Ansonsten scheint 
so ein Verhalten eher rar zu sein.

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4543 hat noch ordentliche 6 und 9. Jedenfalls die von Philips/NXP
http://www.nxp.com/acrobat/datasheets/HEF4543B_CNV_3.pdf

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.