www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Binäre Codierung, Dezimal anzeigen


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute!
Habe eine Frage bezüglich eines Problemes!

Es ist ein Stecker gegeben wo ein 8 Bit Binärer Code geben ist. Ich will 
nun diesen Code aus 8 Pins einlesen und dann auf einem 3 Stelligen 
Display ausgeben. Wie kann man es am einfachsten realisieren!
Für 1 sind die Pins einfach kurzgeschloßen und für 0 frei!

Würde mich sehr freuen über eine schnelle Hilfe,
mfg
Alex

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

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> Es ist ein Stecker gegeben wo ein 8 Bit Binärer Code geben ist. Ich will
> nun diesen Code aus 8 Pins einlesen und dann auf einem 3 Stelligen
> Display ausgeben. Wie kann man es am einfachsten realisieren!
> Für 1 sind die Pins einfach kurzgeschloßen und für 0 frei!
>

Willst du einen Prozessor einsetzen oder kann das auch
ein normaler Digitial-IC sein (2 Hex-Decode an 2 Siebensegment und
gut ists).
Wenn Prozessor: welcher?
Welche Programmiersprache?
Was ist das für ein Display?
Kurzgeschlossen womit? Mit Vcc oder mit GND oder etwa gar
   untereinander?

Welchen Teil der Aufgabenstellung kannst du selbst lösen,
wobei brauchst du konkret Hilfe?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi du bist ja super schnell!
Display ist ziehmlich egal könnte auch ein Siebensegmentanzeige sein.
Die Kontakte sind miteinander verbunden. Es liegt dort keine Spannung 
an!
Hilfe brauch ich erstmal beim Konzept. Ich beherrsche Java (kein 
Script)ist ja ähnlich wie C bzw C++.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso.. es soll Dezimal ausgegeben werden.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> Hi Leute!
> Habe eine Frage bezüglich eines Problemes!
>
> Es ist ein Stecker gegeben wo ein 8 Bit Binärer Code geben ist.

Ist das jetzt der versprochene Codeschloss-Thread?
(Beitrag "Re: Hat jemand diese Schaltung schon mal nachgebaut?")

> Ich will
> nun diesen Code aus 8 Pins einlesen und dann auf einem 3 Stelligen
> Display ausgeben. Wie kann man es am einfachsten realisieren!

- Mikrocontroller nehmen, z.B. Mega8
- einen 8-Bit-Port als Eingang nehmen
- einen 8-Bit-Port über Segmentwiderstände an die Segmente des Displays
- drei Portpins eines weiteren Ports über Basiswiderstände an die
  Digit-Treiber-Transistoren
- Programm schreiben

Programm:
- Port einlesen
- eingelesenen Wert in drei BCD-Stellen zerlegen und ablegen
- Timer-Interrupt für Anzeige-Multiplexing einrichten

In der Timer-ISR:
- Treiber-Transistor aus
- Digit-Zähler hochzählen (oder runter) (0..2)
- BCD-Datenwert holen und als Index auf Lookup-Tabelle nutzen
- Bitmuster aus Lookup-Tabelle holen und an Segment-Port ausgeben
- Treibertransistor einschalten

> Für 1 sind die Pins einfach kurzgeschloßen und für 0 frei!

..geschlooooooßen iss gut... ;-)

Umgedreht ist üblich. Wenn aber Kurzschluss (L-Pegel, 0) eine 1 
verkörpern soll und offen (H-Pegel aufgrund des internen 
PullUp-Widerstands) eine 0, dann muss der Eingangswert noch invertiert 
werden. Auch kein Problem, nix iss unmöglich...

>
> Würde mich sehr freuen über eine schnelle Hilfe,

Ich hab's versucht, hoffentlich kannst Du was damit anfangen.

> mfg
> Alex

...

Autor: Rudi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sucht er sowas?
http://maven.smith.edu/~thiebaut/270/datasheets/sn...
Dann beachte er das er mit zwei dieser Bausteine den Wert hexadezimal 
anzeigt!
Ansonsten ist ein ROM (EPROM,EEPROM) auch eine Alternative; die unteren 
256 Einträge beinhalten dann die Kombination für die Anzeige (Anzeige 
über Treiber am Datenbus, 8-Bit-Wort an das untere Halbwort des 
Adreßbusses, oberes Halbwort per Pull-Down auf 0).
Ansonsten: den Decoder in Diodenlogik bauen.
Oder einen Kontroller mit 15 E/A-Anschlüssen verwenden. Eine 
Look-Up-Tabelle wird Dich als Informatiker ja nicht vor große 
Hindernisse stellen!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, schon mal dankeschön,
ich werde mich noch mal reinlesen und meld mich nochmal bei weiter 
Fragen.
ps. ist mein erster Thread hier.
Alex

Autor: maddin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@rudi,

nein sowas sucht er nicht, das ist nur die decodierung von bcd zu 
7segment.

zuvor benötigt er noch soetwas, ist aber kaum noch zu haben

74485 Binär-zu-BCD-Codeumsetzer, wenn er es in hardware machen will....

m.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi maddin,
genau so ein Teil brauch ich!
Am besten hardware mäßig realisieren, aber habe alle möglichen Kataloge 
durchgesucht und nichts gefunden, da es ja auch 8 Bits sind (Dezimal bis 
255) anzeigen sollte! und ich mich mit mikrokontroller sogut wie nicht 
auskenne ;(

???

mfg
Alex

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!!

Also habe da ein Logik-Baustein, der fast nirgenswo zu kriegen ist.
Jetzt meine Frage weiss einer von euch, ob es unterschiede zwischen den: 
SN 74184, SN 74185, bzw DM 74185 und DM 74185A

Und habt ihr schon Erfahrungen mit diesem Shop gemacht?
http://www.sr.jung-gbr.de  ??
Dort gibt es den SN 74184 und SN 74185!

Mfg
Alex

Autor: maddin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,

ich habe keine erfahrungen mit diesem Shop, aber das muss ja nichts 
heißen.

der unterschied zwischen -184 und -185 liegt ganz einfach in der 
"richtung"

-184 konvertiert von BCD zu binär und -185 von binär zu BCD, hier hilft 
auch das datenblatt.

bei diesen bausteinen handelt es sich um steinalte programmierte 
ROMs(74S371), zudem sind sie sehr teuer, und sehr stromintensiv, diese 
lösung lohnt sich also nur des lernens wegen, und um evtl. besser an 
ziehl zu kommen, wenn keine erfahrungen mit mikrokontrollern existieren 
und programmern existieren, und dich auch nicht interessieren.

für deine konstellation benötigst du zu alledem nicht nur einen dieser 
ttl ics um ans ziehl zu gelangen, siehe anhang.

evtl solltest du mal darüber nachdenken, wie es denn wäre wenn du ein 
eeprom  o.ä. dafür einsetzt....davon benötigst du dann nur eins, und es 
ist nicht so teuer, nur programmieren müsstest du es dann...wie rudi 
bereits erwähnt hat...ansonsten ist es dann 4 mal der SN 74185.

m.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Das ist gut, dann nehm ich den SN 74185.
Wegen Strom verbrauch brauch ich mich net kümmern da es ein Testgerät 
werden soll, der nur kurze Zeit den Code Dezimal anzeigen soll.
Da ich wenig Zeit habe, kann ich mich auch leider nicht mit epproms 
beschäftigen, aber bald ;)

So ich dachte das ich dann den SN 74185 (3x) direkt mit drei TIL 311 
(mit BCD dekodierung) Anzeigen direkt verbinde. Als versorgungsspannung 
nehme ich dann 5 Volt.
Muss ich da weitere Sachen beachten?


mfg
Alex

Autor: maddin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, wenn du nur bis 255 zählst dann sollte es mit dreien gehen.

die til311 haben latches, die musst du nat. enabeln - ttl kompatibel 
sind sie ja.

nimm 5V DC...

ansonsten würde ich die standard dinge beachten, wie kondensatoren an 
gewissen stellen usw....

viel erfolg.

m.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Maddin,

das ist auch mein Prob., ich habe da sogut wie keine Ahnung was ich da 
noch beachten muss.
@"ansonsten würde ich die standard dinge beachten, wie kondensatoren an
gewissen stellen usw...."
Gibt es eigendlich auch gutes simulations Programm für solche 
Schaltungen?

Alex

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> Hi Maddin,
>
> das ist auch mein Prob., ich habe da sogut wie keine Ahnung was ich da
> noch beachten muss.
> Gibt es eigendlich auch gutes simulations Programm für solche
> Schaltungen?

Ich glaube kaum, dass die Anwendung eines (noch so) guten 
Simulationsprogramms fehlendes Wissen ("sogut wie keine Ahnung") 
kompensieren kann. Ich weiß, das hört sich arrogant an, ist aber 
keineswegs so gemeint.

> @"ansonsten würde ich die standard dinge beachten, wie kondensatoren an
> gewissen stellen usw...."

Schaltungen mit digitalen ICs funktionieren nur (zuverlässig), wenn man 
bestimmte, allgemein bekannte Regeln des Schaltungsdesigns einhält. Das 
ist aber recht komplex, ist also nicht mal schnell in drei Sätzen 
zusammenzufassen. Ein Punkt davon ist das Abblocken der Betriebsspannung 
direkt an den Stromversorgungspins jedes Digitalschaltkreises mit je 
einem Keramik-Kondensator (etwa 100nF). Dies ist sooooo 
selbstverständlich, dass es z.B. in Prinzip-Schaltungen in Lehrbüchern 
gern weggelassen wird.

(weiter oben:)
> und ich mich mit mikrokontroller sogut wie nicht
> auskenne ;(

Ich setze Mikrocontroller (kleine AVRs) meist ein, um mir den Aufwand 
"festverdrahtetet Logik" zu ersparen. Ein paar Zeilen Software sind 
allemale billiger als eine komplizierte Platine mit mehreren TTL- oder 
CMOS-Schaltkreisen. Auch bei Fehlern in der Entwicklung sind ein paar 
Zeilen Software leichter zu ändern als ein fehlerhaftes Platinenlayout. 
Das macht eine Mikrocontrollerschaltung flexibler als einen 
"Gatterfriedhof", durch (auch später mögliches) Ändern der Software kann 
die Schaltung an sich ändernde Einsatzbedingungen angepasst werden.

Klar, die ersten Schritte mit Mikrocontrollern sind nicht ganz einfach, 
aber wer halbwegs effizient (Elektronik-)basteln will, kommt heutzutage 
am Mikrocontroller eigentlich nicht mehr vorbei.

...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI!!

Also ich habe mir nun doch einen Mega8 gehollt.
Das Tutorial durchgearbeitet.
Und es geht doch alles einfacher als ich dachte!
Habe aber kleines Problem.
Und zwar lese ich meine 8 Bit zahl ein.
Rechne sie in einzele Stellen um Einer, Zehner,....
Und gebe sie dann auf dem LCD aus.
Aber er zeigt nicht immer eine Zahl konstant an, sondern springt immer 
einbißchen, mal zwei mehr, zwei wemniger...
Wackelkontakt?


mfg
Alex

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timing? Nicht alle LCDs sind gleichschnell bzw. gleichlangsam.

...

Autor: philipp_burch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder sind deine Eingänge vielleicht teilweise offen (Ohne festgelegtes 
Level - "floating")? Dann ist dein Eingangssignal einfach irgendwas, nur 
nicht das was du eigentlich willst.

Autor: Ralph Berres (rberres)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte dran denken das die 74184 bzw 74185 Opencollektor Ausgänge haben.

Also bei jeden 74185 an den Ausgängen ein Widerstand von 2,2Kohm gegen
+UB schalten. Sonst funktioniert es nicht, und man sucht sich einen 
Wolf.

Ich stand vor dem selben Problem ( 8bit Binärdaten mit 3 
Siebensegmentanzeigen anzeigen ) und habe das eben genau mit den 74185 
gelöst.
Auch den umgekehrten Fall hatte ich schon. 3stellige BCD Code in 
Binärzahl umwandeln für einen DA Wandler zu steuern. ( Pegel und 
Frequenzeinstellung in einen Rohde&Schwarz SMLU ). Das ging mit den 
74184 ganz gut. Rohde hatte dafür einen speziellen DA Wandler vorgesehen 
der
am Eingang BCD Code wollte. Da ich die optionale Fernsteuerkarte nicht 
hatte, und weder die Karte noch der DA-Wandler zu bekommen war, habe ich 
es eben so gelöst

Ralph Berres

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.