Autor |
|
|
|
BID = 45472
Schopfi Gerade angekommen
Beiträge: 11
|
|
Gibt es eigendlich eine relativ einfache Möglichkeit einen
8Bit Wert mit Hilfe von 3 Siebensegmentanzeigen(Decoder habe ich) als Dezimalzahl auszugeben. |
|
BID = 45477
Calidus Stammposter
   
Beiträge: 291 Wohnort: Nördlich vom A*** der Welt
|
|
Auszugeben heißt: nur auf der Anzeige?
Wenn Du den Decoder hast, kein Problem.
Ist das ein BCD-Decoder? |
|
BID = 45478
andi.pdf Neu hier

Beiträge: 35 Wohnort: Bergen
|
Hi,
eine einfache Möglichkeit wäre der Einsatz eines kleinen AVR mit 2 8bit Ports, der an einem Port die Eingangsdaten abfragt und an dem anderen Port die Displays im Multiplexbetrieb steuert. Da brauchste dann auch nur einen Decoder. Der belegt also 4bit des 2.Ports, an drei andere Port-Bits kommen die Digit-Treiber-Transistoren. Wäre ein einfaches Einsteiger-Projekt für Microcontroller.
Als 2. Möglichkeit fällt mir nur die Umkodierung über EPROMs ein. Müsste dann aber ein 16bit-Typ (o. zwei 8bit) sein, da Du ja 3x4 bits als Ausgang benötigst. Mann kann natürlich auch diese Variante mit dem Multiplexbetrieb kombinieren. Dann reicht ein EPROM, aber man braucht zusätzliche Zähler usw. -> zu aufwändig. Ansonsten wäre da noch die Sache mit den programmierbaren Logikbausteinen (GALs, FPGAs)...
|
BID = 45482
Calidus Stammposter
   
Beiträge: 291 Wohnort: Nördlich vom A*** der Welt
|
Jo, ich habs mal mit einem FPGA gemacht.
Aber er sagt: Er hat schon einen Decoder.
|
BID = 45486
andi.pdf Neu hier

Beiträge: 35 Wohnort: Bergen
|
Hi,
also ich hab das so verstanden, dass er die Decoder für einstellige 7-Segmentanzeigen hat. Sind ja auch gängige Teile. Aber ich hab jetzt meine Datenbank durchsucht und hab kein einziges IC gefunden, welches mehrstellige Dezimalzahlen decodieren kann (mal abgesehen von den Decodern für TV-Kanalanzeigen von 1-16). Wo sollte sonst das Problem sein ?
|
BID = 45517
Schopfi Gerade angekommen
Beiträge: 11
|
Wenn keiner eine andere Lösung hat werde ich einen AVR programmieren
|
BID = 45556
Benedikt Inventar
      Beiträge: 6241
|
Das ganze liese sich auch dynamisch machen:
Ein Takt taktete einen Zähler/Teiler (z.B. 4040) dessen Ausgang mit der 8 Bit zahl verglichen wird. Gleichzeitig kommt der Takt an einen 4553 Zähler (3 stelliger Dezimalzähler), der intern mitzählt. Sobald der 4040 mit dem 8 Bit Wert übereinstimmt (8Bit Vergleicher z.B. 74HC521), wird der Wert an die Anzeige übergeben, der 4040 machte einen Reset und alles beginnt von Neuem.
Irgendwo habe ich mal eine Schaltung mit mehreren 4-Bit Addierern gesehen, der zum 8 Bit Wert 0 addiert hat, und auf Dezimalzahl eingestellt war.
Wenn die ersten 4 Bit größer 9 sind -> Carry zum nächsten 4 bit Addierer, der erzeugt wiederum ein Carry, das den nächsten Addierer steuert. Ich glaube die Schaltung war im Datenblatt von einem 4 bit Adierer, aber ich kann mich auch irren...
|
BID = 45557
andi.pdf Neu hier

Beiträge: 35 Wohnort: Bergen
|
Funktionierende Lösungen gibt's sicher viele. Die mit den synchron laufenden Binär- und Dezimalzählern finde ich besonders schön unkonventionell. Wenn man aber bedenkt, dass man bei Verwendung von CMOS-ICs und 8 bit Anzeigeumfang einen 8bit-Binärzähler,einen 8bit Komparator,eine Taktquelle, 3 4bit Dezimalzähler, einen 12bit Zwischenspeicher und 3 7-Segmentdecoder/Treiber benötigt, dann ist das ja doch ein gewisser Aufwand. Ich würde wahrscheinlich einen größeren AVR nehmen und den 7-Segmentdecoder gleich mit "integrieren". Die Portpins der AVRs können ja locker 20mA treiben. Ausserdem ist so alles schön flexibel, so mag ich's.
|
BID = 45862
2SJ200 Schreibmaschine
     Beiträge: 1942 Wohnort: Österreich
|
najo, wenn am die anzeige multiplext müsste man ja mit am kleinen PIC16F84 zB schon durchkommen obwohl der nur 13 I/O pins hat
übers porta die 8bit einlesen und dann hintereinander die 3 stellen fürd segmentanzeige ansteuern...
extrene hardware: 3 transistoren an port B fürs multiplexen und a tristate am eingang fürs einlesen...
[ Diese Nachricht wurde geändert von: 2SJ200 am 2 Jan 2004 22:10 ]
|
BID = 45879
andi.pdf Neu hier

Beiträge: 35 Wohnort: Bergen
|
@2SJ200: Das mit dem PIC16F84 musste mir mal genauer erklären, wenn 8bit mit den Eingangsdaten belegt sind, haste nur noch 5 übrig, 4 sind für den BCD-Code und 3 brauchste für die Digit-Treiber. Geht also nur mit zusätzlichen ICs, was die Einsparung zum AVR wieder relativiert.
|
BID = 45901
2SJ200 Schreibmaschine
     Beiträge: 1942 Wohnort: Österreich
|
nujo, man legt am eingang a latch mit tristate...
des kommt auf die 8bit vom PortB, dort hängen auch alle 7 segmente drauf...
an eine leitung vom PORTA kommt der output enable vom latch, an einen zweiten wenns sein soll es latch enable, des kannst ja im printzip dann auch von aussen steuern oder glei permanent aktivieren...
an weitere 3 port A leitungen kommen transistoren zu den gmeinsamen anshlüssen der LEDs
als erstes must die 8bit einlesen, also alle transistoren sperren (keine anzeiga aktiv) portB auf input schalten und latch Output enable aktiveiren, von portB die 8bit einlesen
danach latch wieder deaktiveiren, portB auf output schalten, erste anzeige transitor durchsteuern, 7segment muster anlegen, wieder wegschalten, anzeige usmchalten, zweiter transistor, und so weiter bis alle drei anzeigen erna mustal kurz aufblitzen lassen ham,
dann wieder portB auf input, und output enable vom latch...
imma so dahin halt...
|
BID = 46134
2SJ200 Schreibmaschine
     Beiträge: 1942 Wohnort: Österreich
|
bevor das projekt da verschwindet...
ich habs mir mal aufgebaut und mal schnell schnell den PIC a programmal gschrieben - denke man kann da noch einiges verbessern softwareseitig, aber die hardware funkt udna uch sofware spielt eigentlich tadellos, wegen der geschwindigkeit muss ich noch schaun, betreibe den PIC16F84 mit 4MHz, i mein die anzeige is schneller als mans lesen kann mit dem programm jetzt - sollte normal reichen :D
|
BID = 46135
alpha-ranger Schreibmaschine
    
Beiträge: 1517 Wohnort: Harz / Heide
|
Hallo,
@SJ200:
Hast Du auch an die Unterdrückung von führenden Nullen gedacht beim Display ??
Sind nur einige Zeilen Assembler mehr und sieht gut aus .
 ( Im Betrieb oder der Politik ist das auch manchmal ratsam )
mfG.
|
BID = 46136
2SJ200 Schreibmaschine
     Beiträge: 1942 Wohnort: Österreich
|
na aber ich kanns ja ändern - und im moment denk ich nach was ich zB mim freien PIN am porta mach? HEX/DEZ umschaltung zB  - oder führende nullen abschaltung :D
|
BID = 46398
2SJ200 Schreibmaschine
     Beiträge: 1942 Wohnort: Österreich
|
so, im übrigen läuft des ganze eigentlich sehr zufriedenstellend find ich :D
aufwand:
1 PIC µP und ein latch (insgesamt 2 IC's)
3 Transistoren und halt a hand voll widerstände und es display logisch ;)
funktion - darstellung der eingangsdaten in dezimal (mit unterdrückung der führenden nullen) ODER in hex einfach umschaltbar durch an logikpegel an einem PIN...
geschwindigkeit - rund 200 aktualisierungen pro sekunde - sollte reichen oder  ?
|