Hoe zet ik een Gray-code eenvoudig om naar BCD-code?


   GRAY-CODE   BCD-CODE 

   0 0 0 0  >  0 0 0 0  -0  
   0 0 0 1  >  0 0 0 1  -1  
   0 0 1 1  >  0 0 1 0  -2   
   0 0 1 0  >  0 0 1 1  -3  
   0 1 1 0  >  0 1 0 0  -4
   0 1 1 1  >  0 1 0 1  -5
   0 1 0 1  >  0 1 1 0  -6
   0 1 0 0  >  0 1 1 1  -7
   1 1 0 0  >  1 0 0 0  -8
   1 1 0 1  >  1 0 0 1  -9

Ik denk dat de makkelijkste manier is om de gray en BCD codes die bij elkaar horen uit het hoofd te leren. Anders moet je denk ik eerst de gray code naar decimaal omrekenen en daarna weer naar BCD.

sorry, ik heb mij misschien verkeerd uitgedrukt.:9
Ik bedoel natuurlijk elektronisch omzetten zodat ik dan met de BCD waarde een IC kan sturen om bvb een 7 segment display te sturen. ;)

met 3 XOR poorten, dat klinkt al beter,
rest nog de vraag, hoe?

Ik weet ook niet waarvoor je het nodig hebt maar veel draaiende encoders werken met een gray-excess code waarbij er een getal moet worden afgetrokken van de uitkomst. Dit is gedaan om ervoor te zogen dat bij de transitie van bv 359 naar 0 graden ook maar 1 bit veranderd.

[Bericht gewijzigd door GJ_ op ]

Daar is een standaard TTLetje in de 7400 reeks voor
weet aleen niet uit me hoofd welke,
jeetje gray, dat is toch al 100 jaar geleden he.
maar geruchten over XOR klinken wel plausiblel

Je hebt voor zover ik weet alleen een BCD -> Decimal decoder in de 74xx reeks.. de 7442.

PaWoN

Op 18 oktober 2005 18:59:05 schreef Capt501:
...
jeetje gray, dat is toch al 100 jaar geleden he.
...

Zit toch in iedere encoder.

ja GJ_ je hebt gelijk, en nu zie ik in dat er een grote fout in mijn omzetting zit.|:(
Wat ik nu heb is nl. geen omzetting van Gray naar BCD maar wel naar Binair,welke stopt bij de 10de positie.Dus als ik van de laatste positie terug naar 0 ga,verandert er meer dan 1 bit tegelijk.
dus moet ik in de eerste plaats op zoek gaan naar de juiste bitomzetting ( nl. Gray > BCD ):)

Hier staat het duidelijker dan ik het kan uitleggen:
gray excess

Op 18 oktober 2005 21:00:36 schreef Erelce:...is nl. geen omzetting van Gray naar BCD maar wel naar Binair....

Ik geef eerlijk toe dat ik zojuist bij het eten een halve fles wijn op heb hetgeen mijn opmerkingsgave kan hebben aangetast, maar in het begin ging het over 4 bits. Nu zie ik bij 4 bits het verschil tussen gewoon binair en BCD niet??

ja GJ_,
ik heb al de code gevonden die ik nodig heb, het noemt de Glixon code, het enige verschil met de Gray code is de laatse regel ( de 9 ) die in 1 0 0 0 moet veranderen.
en nu nog de omzetting van Glixon naar BCD met poortjes.
Wie kent er hier iets van?

Zit je vast aan die rare Glixon?
Gray-excess voor 10 delen:


DEC  GRAY_E   BIN
0    0010     0000
1    0110     0001 
2    0111     0010
3    0101     0011
4    0100     0100
5    1100     0101
6    1101     0110
7    1111     0111
8    1110     1000
9    1010     1001

Waarbij van de omgezette waarde binair 3 moet worden afgetrokken

Omzetten van en (standaard) gray-excess naar binair weet ik niet uit mn hoofd.
Als je op zoek gaat laat dan dat "BCD" even varen en gebruik "binair". BCD is een vreemdsoortige notatie, omzetting naar gewoon binair zal altijd eenvoudiger zijn. Bij die 4 bitjes is het vreemd om over BCD te spreken.
De eerder aangedragen oplossingen voor omzetting van gray naar binair zul je dan ook nooit vinden als je zoekt naar omzetting van gray naar bcd, want dat werkt zo niet (bij meer bits).

Ja inderdaad GJ_ ik zit zo vast als wat met die Glixon.
Met de 7444 kan ik zelfs deze excess-3 code omzetten naar
decimaal.
Maar dat is niet mijn bedoeling.
Om te kunnen omzetten naar BCD of zelfs naar 7-segment code kan ik waarschijnlijk een EPROM of een Prom zoals de 74188 tussen schakelen. Zo kan ik zelf de soort omzetting bepalen die ik wil.
Wat zou de ik dus best als Eprom gebruiken ( goedkoopste )
met 4bit-adres |:(:):D:( en 7 bit output :+:o:-p:9~:9:7:r
( lieftst met een Latch, zodat ik de uitgang bij verandering zelf kan sturen ).

Wanneer hou je nou op over BCD? :-)

sorry GJ_ maar de uiteindelijke bedoeling is om 4 modules
te maken die telkens een digit aansturen, dus heb ik wel degelijk deze BCD-code nodig. Binair zou dat gewoon niet lukken. ;)( het enige verschil tussen BCD en Binair is toch dat BCD bij 9 stopt en dan vanaf nul herbegint.Ik kan toch moeilijk steeds zeggen' Binair tellen tot 9 en dan naar 0 verspringen'als ik hetzelfde ook kan zeggen met 3 letters.)
Begrijp je mijn standpunt? ;)

[Bericht gewijzigd door Erelce op ]

Op 19 oktober 2005 14:36:04 schreef Erelce:
sorry GJ_ maar de uiteindelijke bedoeling is om 4 modules
te maken die telkens een digit aansturen, dus heb ik wel degelijk deze BCD-code nodig. Binair zou dat gewoon niet lukken. ;)

Ah, in dat geval, vooruit dan maar.

Maar als je gaat zoeken naar conversie van gray -of die rare code van je- naar BCD zul je niet echt veel vinden, vandaar.

[Bericht gewijzigd door GJ_ op ]

ja GJ_ die conversies zijn moeilijk te maken met poorten, daarom lijkt een Eprom mij de beste oplossing, nog alleen zoeken welke het beste hiervoor zou passen.

met poortjes kan het ook eenvoudig hoor. Maar eprom is denk sneller gemaakt en je hebt maar 1 ic'tje nodig.