Sida 1 av 2
9bit tal till decimalform?
Postat: 27 januari 2009, 18:38:10
av victor_passe
Hej, jag sitter och funderar lite på vad jag ska bygga i digitalteknik B kursen.
En egen digital voltmeter med egen A/D och grejjer får det nog bli.
Hur jag får ut ett 9bit tal är jag färdig med i huvudet men att få in det på 3st 7-segments led skärmar blir lite klurigare, jag använder så klart några bcd till 7-seg avkodare men behöver få mina 9bitar till bcd
Om 9bit talet är 123 så ska de 3 4-bit talen bli 1,2,3
Om 9bit talet är 485 så ska de 3 4-bit talen bli 4,8,5
Jag funderar på om man ska göra det med bara and,not och or kretsar och måla upp hur alla sak kopplas men det lär bli en massa sådana, finns det någon färdig krets eller något fiffigare sätt?
Re: 9bit tal till decimalform?
Postat: 27 januari 2009, 18:50:19
av v-g
Vad menar du egentligen? 9 bit = 2*256 = 512 dvs visas enkelt på tre BCD.
Enklast är ju såklart en µc.
Ska du bygga en egen A/D finns många varianter, man kan ta tid på uppladdningen av kondensator bygga op-stegar osv.
Man kan tex köra en räknare och en op samman kopplat så att räknaren börjar räkna och sen väntar den på att op'en ska "lösa ut" och stoppa räknaren varpå man läser av värdena. Detta kräver att man har koll på sina kretsar men inom en halv volt tror jag man relativt enkelt kan komma. När man "startar" så kortsluter man kondensatorn så att den är på noll. Vill man vara extra jobbig kan man ladda kondensatorn mha läckströmmen från OP'en, då belastar man inte det man mäter lika mycket.
Men räkna inte med att komma i närheten av en "riktig" a/d. I en sån är det nämligen många kretsar, om man skulle ha dem på labbdäcket vill säga
Det finns kretsar som automatiskt omvandlar binärt till hexadecimalt.
i 74 serien finns iaf ett antal kretsar som gör om binärt till BCD eller andra format. Det är i princip bara "dioder" som är sammankopplade i ett ganska stort nät. Finns även med drivers.
Re: 9bit tal till decimalform?
Postat: 27 januari 2009, 19:07:34
av victor_passe
jag har som sagt redan löst hela AD delen, det är en räknare, r2r stege och op-amp.
Och visst, den kommer att suga men den ska väll ge rätt på 0,5V från 0-5V iaf.
Jag vill ha 9bit för jag vill mäta från 0-5V och skriva 0-512 på skärmen
Sedan har jag en pot på ingången som spänningsdelare och tar bort 2%
Så det finns sådana kretsar säger du... Bara för 8bit eller för hur många bit man vill?
Jag ska söka lite och så om jag blir något visare.
Re: 9bit tal till decimalform?
Postat: 27 januari 2009, 19:14:19
av v-g
De jag har hemma är bara för 4 BIT så 0-16 visar de i hexadecimal form på 1 BCD display. Kör du två st(bcd) så har du ju iaf 256 möjliga kombinationer dock i HEX format.
Re: 9bit tal till decimalform?
Postat: 27 januari 2009, 19:22:20
av ie
Nja V-G, nu tänker du nog lite fel.
Talet måste ju göras om från binärt till BCD innan det kan matas in i drivarkretsarna. Det är inte helt enkelt utan en uC.
Re: 9bit tal till decimalform?
Postat: 27 januari 2009, 19:26:21
av victor_passe
Jo, att göra om 8bit till hex klarar väll alla av.
Men jag vill få till 100 delar, 10 delar och en delar.
Jag hittade denna sidan:
http://www.engr.udayton.edu/faculty/jlo ... o_BCD.html
Vad är "C" för någon krets.
Man an ju göra den med and/or osv men då fyller man ju x-antal labbrädor.
Och jag antar att man kan fortsätta bygga på samma sätt med så många bitar man vill.
Och µC är ute, jag får inte använda en.
Men hade jag byggt detta för jag behövde en stor, dyr klumpig kass voltmeter hade jag använt en pic med AD och en skärm på den.
Re: 9bit tal till decimalform?
Postat: 27 januari 2009, 21:06:55
av prototypen
En AD princip är "dual slope", inspänningen genererar en ström som laddar en kondensator, sedan laddar man ur med en känd ström och mäter tiden.
Om man laddar under 20 ms kan man komma ifrån brumstörning.
Om man mäter tiden med tre st BCD decadräknare så har man resultatet direkt att presentera på en LED display utan att behöva krångla med 9 bit binär till decimalt vilket idag inte finns logikkretsar för (har visst funnits).
Det blir visserligen 12 bit 1000 steg men vad gör man
Protte
Re: 9bit tal till decimalform?
Postat: 27 januari 2009, 21:58:16
av j.po
Om du räknar pulser under omvandlingen så byt från en 9-bitars räknare till 3st seriekopplade decaderäknare t.ex. 4033, denna har dessutom 7-seg output. Klart.
mvh
PO
Re: 9bit tal till decimalform?
Postat: 28 januari 2009, 16:35:23
av v-g
ie:Den krets jag har här är en
74LS47 och den ser då ut att fungera som jag sagt.
Kan vara helt ute också då jag blivit lat av allt µc:ande

Diskreta kretsar är det ju i princip aldrig man använder numera

Re: 9bit tal till decimalform?
Postat: 28 januari 2009, 19:05:08
av victor_passe
Nu har jag simulerat en rampande sak som resettar sig när spänningen från dacen blir högre än det man mäter på.
Så den går liksom upp i spänning till det blir för mycket.
När det blir för hög spänning ska latchar dra och komma ihåg värdet till nästa gång.
Till problemet, pulsen som kommer från op-ampen är ganska lång, jag vill ge latchen en kort kort puls så räknarna inte hinner nollställa sig och samma värdet för latchen.
Alltså göra en flank som går från 0V till 5V till en kort puls från 0V->5V->0V
Detta går med en ne555:a va? Jag är väldigt dålig på dem, kan någon vara snäll och tipsa?
Re: 9bit tal till decimalform?
Postat: 28 januari 2009, 19:07:37
av prototypen
Enklast är bara en kondensator i serie och ett pull up/down motstånd.
Protte
Re: 9bit tal till decimalform?
Postat: 29 januari 2009, 15:06:44
av ie
v-g skrev:ie:Den krets jag har här är en
74LS47 och den ser då ut att fungera som jag sagt.
Nej, det funkar inte. Problemet är att du först måste omvandla innehållet i de 9 bitarna till 12 bitar, dvs 3 BCD-tal. När det är gjort kan du använda din krets.
Som exemplet kan du ta talet 12 (1100) vilket ryms i 4 bitar men i BCD-form blir det 0001 0010, eller hur...
Re: 9bit tal till decimalform?
Postat: 29 januari 2009, 17:27:39
av v-g
ie:Iofs skriver jag ju att den bara omvandlar 4BIT resten får man ju klura ut själv
Dvs antigen flera kretsar eller någon slags multiplexning.
Re: 9bit tal till decimalform?
Postat: 29 januari 2009, 22:22:45
av ie
...resten får man ju klura ut själv
Det är just resten som är det svåra. Kretsen
omvandlarinte nånting. Den tar redan BCD-kodad data som input och visar det på en 7-segmentsdisplay. (Den visar inte HEX-tal heller om du kollar i databladet.) Problemet är fortfarande att göra om ett nio-bits binärt tal till 3 stycken BCD-kodade tal. När det är gjort tar du tre av dina kretsar och kopplar dem till 3 7-segmentsdisplayer.
För att försöka var tydlig: 1 byte (8 bit) kan lagra talen 0-255. Om du istället BCD-kodar ditt data kan samma byte endast lagra talen 0-99, dvs tiotalssiffran i de översta 4 bitarna och entalssiffran i de fyra nedersta.
Re: 9bit tal till decimalform?
Postat: 29 januari 2009, 23:25:56
av victor_passe
Tack för alla svar!
Nu är jag klar iaf, när spänningen är uppnådd så börjar en räknare räkna, steg 1 sparar undan det de andra räknarna har räknat till(Den uppmätta spänningen alltså.) in i bcd avkodarna(inbyggda latchar).
Steg 2 nollställer alla räknare förutom sig själv.
Vid steg 3 pausar den sig själv.
När den är på steg3 och spänningen från DAC:en är under den spänningen som man mäter på nollställs den räknaren.
Den funkar i multisim och visar upp 9bit data på 3st 7-segment displayer.
En ne555:a genererar frekvensen så man kan ställa in hastigheten som den ska mäta med.
Det är inte alla som kan överklocka sin voltmeter...
Är någon intresserad av en .ms10 fil så kan denna få det.
Men jag lägger bara upp en liten bild.
Men det är mest kladdigt och ledare överallt.
Jag brukar normalt sätt dela upp kretsar med såhär många delar i flera "sub circuts" men men..
Hela 7st 7493 är det föresten.
Alla led-grupper är bara debugg.
Och det ska till lite skydd på den spänning man mäter också.
Räcker en 5,1V zener, en schotkeydiod och ett motstånd?
dioderna skyddar emot över/under spänning och motståndet möjliggör ett spänningsfall.
Alltså motstånd(ca 1K)->schotkey emot gnd och zener emot gnd?
Vill man ha en liten kodensator emot gnd också?
ett litet problem till bara, op-ampen känner inte skillnaden förens det är ca 20mV mellan signalerna, kan man enkelt "ta bort" en ställbar spänning ifrån mätpunkten? inte en diod, för högt/osäkert spänningsfall, inte ett motstånd så spänningsfallet inte är konstant så en op-amp lösning på något sätt kanske?