Innholdsfortegnelse:

4-bits binær kalkulator: 11 trinn (med bilder)
4-bits binær kalkulator: 11 trinn (med bilder)

Video: 4-bits binær kalkulator: 11 trinn (med bilder)

Video: 4-bits binær kalkulator: 11 trinn (med bilder)
Video: NEWYES Calculator VS Casio calculator 2024, Juli
Anonim
4-biters binær kalkulator
4-biters binær kalkulator
4-biters binær kalkulator
4-biters binær kalkulator
4-biters binær kalkulator
4-biters binær kalkulator
4-biters binær kalkulator
4-biters binær kalkulator

Jeg utviklet en interesse for måten datamaskiner fungerer på et grunnleggende nivå. Jeg ønsket å forstå bruken av diskrete komponenter og kretsene som er nødvendige for å utføre mer komplekse oppgaver. En viktig grunnleggende komponent i en CPU er den aritmetiske logiske enheten eller ALU som utfører operasjoner på heltall. For å utføre denne oppgaven bruker datamaskiner binære tall og logiske porter. En av de enkleste operasjonene som utføres, er å legge to tall sammen i en adderkrets. Denne videoen av numberphile gjør en utmerket jobb med å forklare dette konseptet via Domino Addition. Matt Parker utvider dette grunnleggende konseptet og bygger en Domino -datamaskinkrets med 10 000 dominoer. Å bygge en hel personlig datamaskin av dominoer er absurd, men jeg ønsket fortsatt å forstå bruken av diskrete komponenter for å utføre denne tilleggsoppgaven. I videoene ble logiske porter laget av dominoer, men de kan også være laget av grunnleggende komponenter, nemlig transistorer og motstander. Hensikten med dette prosjektet var å bruke disse diskrete komponentene til å lære og lage min egen 4-biters adder-kalkulator.

Mine mål for dette prosjektet inkluderte: 1) Lær hvordan du lager og lager en tilpasset PCB2) Gjør designet enkelt å konseptualisere ved å legge til binære tall

Mye av inspirasjonen og forståelsen for dette prosjektet kom fra Simon Inns.

Rekvisita

Jeg brukte Fritzing til å lage skjemaer, lage og lage PCB -er

Trinn 1: Teori

Teori
Teori
Teori
Teori
Teori
Teori
Teori
Teori

Å telle i base 10 er enkelt fordi det er et annet heltall som representerer summen av to heltall. Det enkleste eksempelet:

1 + 1 = 2

Å telle i base 2 eller binær bruker bare 1 og 0. En kombinasjon av 1 og 0 brukes for å representere forskjellige heltall og deres summer. Et eksempel på telling i base 2:

1+1 = 0 og du bærer 1 til neste bit

Når du legger til to biter (A og B) sammen, er 4 forskjellige resultater mulige med utgangene til Sum og Carry (Cout). Dette er det som er vist i tabellen.

Logiske porter tar innganger og genererer en utgang. Noen av de mest grunnleggende logikkportene består av portene NOT, AND og OR som alle brukes i dette prosjektet. De består av forskjellige kombinasjoner og ledninger av transistorer og motstander. Skjemaer for hver port er gitt.

Når vi viser tilbake til tabellen, kan en kombinasjon av disse portene brukes til å produsere Sum -resultatene i tabellen. Denne kombinasjonen av logikk er også kjent som en eksklusiv OR (XOR) gate. Inngangen må være nøyaktig 1 for å resultere i en utgang på 1. Hvis begge inngangene er 1, er den resulterende utgangen 0. Bærebitresultatene kan representeres av en enkel OG -gate. Dermed kan bruk av både en XOR med en OG -port representere hele tabellen. Dette er kjent som Half Adder og skjematikken er vist ovenfor.

For å legge til større binære tall, må bærebiten innlemmes som en inngang. Dette oppnås ved å kombinere 2 Half Adder -kretser for å generere en Full Adder. Full Adders kan deretter kaskades sammen for å legge til større binære tall. I mitt prosjekt kaskaderte jeg 4 Full Adders som gjorde at jeg kunne ha 4 bit innganger. Skjematikken for Full Adder er ovenfor.

Simon Inns har en flott og mer grundig oppskrift om teorien. Det er også noen få PDF -filer som jeg fant nyttig.

Trinn 2: Test kretsen

Test kretsen
Test kretsen
Test kretsen
Test kretsen

Det første trinnet etter å ha forstått hvordan logiske porter fungerer og teorien bak en full adder er å bygge kretsen. Jeg begynte med å samle alle komponentene jeg trengte: 10K og 1K motstander, NPN -transistorer, brødbrett, Jumperwires. Jeg fulgte med en utskrift av hele adderen. Prosessen var kjedelig, men jeg klarte å få en arbeidskrets for hele adderen. Jeg ville binde inngangene høyt eller lavt og brukte et multimeter for å teste utgangene. Nå var jeg klar til å oversette brødbrettet og skjematisk til en PCB.

Trinn 3: Designe PC -en for full adder

Utforming av Full Adder PCB
Utforming av Full Adder PCB
Design av PC -en for full adder
Design av PC -en for full adder
Utforming av Full Adder PCB
Utforming av Full Adder PCB

For å designe kretskortet brukte jeg utelukkende Fritzing. Dette var første gang jeg designet et PCB, og dette programmet virket som det mest brukervennlige og intuitive med den minste læringskurven. Det er andre flotte programmer som EasyEDA og Eagle tilgjengelig for å hjelpe til med å designe en PCB. Med Fritzing kan du begynne å designe på et virtuelt brødbrett eller en skjematisk, og deretter gå til PCB. Jeg brukte begge disse metodene for dette prosjektet. Når du er klar til å produsere kretskortet, er det så enkelt som et klikk på en knapp for å eksportere filene dine og laste dem opp direkte til Aisler, partnerskapsfabrikanten for Fritzing.

Tegn skjematisk Jeg begynte med den skjematiske fanen for å starte prosessen. Først fant jeg og satte inn alle komponentene i arbeidsområdet. Deretter tegnet jeg alle sporene mellom komponentene. Jeg sørget for å legge til 5V inngang og jord til de riktige stedene.

Design PCBI klikket på PCB -fanen. Når du beveger deg direkte fra en skjematisk, får du rot med alle komponentene som er koblet sammen med ratsnest -linjer basert på sporene du har laget i skjematikken. Det første jeg gjorde var å endre størrelsen på det grå kretskortet til størrelsen jeg ønsket og legge til monteringshull. Jeg har også lagt til 16 pinner for innganger og utganger. Deretter begynte jeg å ordne komponentene på en logisk måte. Jeg prøvde å gruppere komponenter med forbindelser som var nær hverandre, slik at jeg skulle minimere sporavstanden. Jeg gikk et ekstra trinn og grupperte komponentene sammen etter logisk gate. Et av mine mål var å kunne visualisere hvordan kretsen fungerer og kunne følge "biten" gjennom kretsen. Etter det brukte jeg autorouting -funksjonen som går gjennom automatisk og tegner de optimaliserte sporene mellom komponentene. Jeg var skeptisk til at denne prosessen fullførte alle de riktige sporene, så jeg gikk gjennom for å dobbeltsjekke og tegne spor igjen der de skulle være. Heldigvis gjorde autorouting -funksjonen en ganske god jobb, og jeg måtte bare fikse noen av sporene. Autorouteren gjorde også noen rare vinkler med sporene som ikke er "beste praksis", men jeg var ok med det, og alt fungerte fortsatt bra. Det siste jeg gjorde var å legge til tekst som skulle skrives ut som silketrykk. Jeg sørget for at alle komponentene var merket. Jeg importerte også egendefinerte logikkportbilder for å understreke gruppering av komponentene. Det siste bildet ovenfor viser silketrykk.

Fabricate PCBI klikket på fabrikatknappen nederst på skjermen. Den dirigerte meg direkte til Aisler -nettstedet, hvor jeg kunne opprette en konto og laste opp alle Fritzing -filene mine. Jeg forlot alle standardinnstillingene og la bestillingen.

Trinn 4: Designe de andre kretskortene

Design av andre PCB -er
Design av andre PCB -er
Design av andre PCB -er
Design av andre PCB -er
Design av andre PCB -er
Design av andre PCB -er

De gjenværende PCBene jeg trengte var input/output grensesnittkortet og kortet for IC. Jeg fulgte prosessen som trinn 3 for disse brettene. PDF -en til skjemaene er lagt ut nedenfor. For IC gjorde jeg alle tilkoblingene ved hjelp av den virtuelle brødbrettfunksjonen. Jeg inkluderte skjematikken for fullstendighet, men klarte å gå direkte fra brødbrettet til PCB -fanen, som var ganske kult. Jeg la også til en konverteringskart fra base 10 til base 2 på silketrykket på I/O -grensesnittkortet før jeg lastet opp og bestilte i Aisler.

Trinn 5: Loddekomponenter til PCB

Loddekomponenter til PCB
Loddekomponenter til PCB
Loddekomponenter til PCB
Loddekomponenter til PCB
Loddekomponenter til PCB
Loddekomponenter til PCB
Loddekomponenter til PCB
Loddekomponenter til PCB

Alle PCB -ene kom, og jeg var virkelig imponert over kvaliteten. Jeg har ikke hatt noen erfaring med andre produsenter, men ville ikke nøle med å bruke Aisler igjen.

Den neste oppgaven var å lodde alle komponentene, noe som var en krevende prosess, men mine loddeferdigheter forbedret seg sterkt. Jeg begynte med de fulle hoggebrettene og loddet komponentene som begynte med transistorer, deretter 1K motstander, deretter 10K motstander. Jeg fulgte en lignende metode for å lodde resten av komponentene på I/O og IC -kortet. Etter at hvert Full Adder -brett var ferdig testet jeg dem med samme metode som breadboard Full Adder. Overraskende fungerte alle brettene riktig uten problemer. Dette betydde at platene ble ført riktig og at de ble loddet riktig. Videre til neste trinn!

Trinn 6: Fullfør PCB -ene for stabling

Etterbehandling av kretskortene for stabling
Etterbehandling av kretskortene for stabling
Etterbehandling av kretskortene for stabling
Etterbehandling av kretskortene for stabling
Etterbehandling av kretskortene for stabling
Etterbehandling av kretskortene for stabling

Den neste oppgaven var å lodde alle toppnålene til hvert brett. Jeg trengte også å legge til jumper -ledninger mellom riktig toppnål og innganger/utganger til Full Adder -kortene (A, B, Cin, V+, GND, Sum, Cout). Dette trinnet kan unngås hvis du designet forskjellige PCB -er for hvert nivå av adder -kretsen, men jeg ønsket å minimere design og kostnader ved å lage bare en Full Adder PCB. Som et resultat krevde tilkoblinger til disse inngangene/utgangene jumperkabler. Den oppgitte skjematikken viser hvordan jeg utførte denne oppgaven, og hvilke pins som ble brukt for hvert nivå på Full Adder -brettene. Bilder viser hvordan jeg loddet hoppetrådene for hvert brett. Jeg begynte med å lodde gratis ledninger til de riktige pinnene på overskriften. Jeg loddet deretter overskriften til PCB. Etter at jeg hadde toppnålene med jumper -ledninger loddet på plass, loddet jeg de frie endene av jumper -ledningene til de riktige ledningene på kretskortet. Bildet ovenfor viser et nærbilde av toppnålene med jumper -ledningene loddet til dem.

Trinn 7: Slå på kretsene

Drar kretsene
Drar kretsene
Drar kretsene
Drar kretsene
Drar kretsene
Drar kretsene

Jeg planla å bruke en 12V DC fatkontakt for dette prosjektet, så jeg designet I/O -grensesnittkortet for å ha en DC fatkontakt/kontakt for strøminngangen. Fordi jeg brukte det samme I/O -kortet og ønsket å bruke en eneste strømforsyning, trengte jeg å regulere spenningen til 5V, da dette er maks inngang for SN7483A IC. For å oppnå dette trengte jeg en 5V regulator og en bryter som kunne veksle mellom 12V og 5V. Skjematisk over viser hvordan jeg koblet strømkretsen sammen.

Trinn 8: 3D -utskrift av basen

3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen
3D -utskrift av basen

Nå som alle ledninger og lodding er fullført, måtte jeg finne ut hvordan det hele skulle holdes sammen. Jeg valgte CADing og 3D -utskrift et design som ville romme og vise alle delene av dette prosjektet.

Designhensyn Jeg trengte steder for å montere kretskortene med bolter og avstand. De stablede Adders er de mest visuelt tiltalende, og jeg ønsket å ha dem på skjermen når de ikke var i bruk, så jeg ønsket et sted å lagre IC PCB. Jeg trengte å imøtekomme strømkretsen med utkoblinger for bryteren og DC fatkontakten/kontakten. Til slutt ønsket jeg en slags skap for å forhindre at støv samler seg i de åpne kretskortene, så jeg trengte et sted for skapet å sitte.

3D -modellering Jeg brukte Fusion360 til å designe basen. Jeg begynte med dimensjonene på kretskortet og avstanden mellom monteringshullene. Etter det brukte jeg en serie skisser og ekstruderinger for å angi høyden og størrelsen på basen med PCB -monteringspunktene. Deretter gjorde jeg utskjæringene for kabinettet og strømkretsen. Deretter lagde jeg et område for å lagre IC -kretskortet når det ikke var i bruk. Til slutt la jeg til noen detaljer om etterbehandlingen og sendte den til Cura, min skjæreprogramvare.

Jeg valgte svart PLA -filament. Trykket tok litt over 6 timer og ble flott. Overraskende nok var alle dimensjonene riktige, og alt virket som om det ville passe riktig sammen. Bildet ovenfor viser utskriften etter at jeg la til avstandene i monteringshullene. De passet perfekt!

Trinn 9: Montering

montering
montering
montering
montering
montering
montering

Sett inn avstandene. Jeg plasserte alle avstandene i monteringshullene på basen.

Plasser strømkretsen i basen. Jeg hadde koblet alt sammen og dro alle komponentene gjennom hullet for bryteren. Deretter satte jeg inn strømkontakten/adapteren på baksiden av basen. Jeg dyttet 5V -regulatoren inn i sporet, og til slutt kunne bryteren skyves på plass.

Monter I/O -kretskortet. Jeg plasserte IC -kretskortet i lagringsplassen og plasserte I/O -grensesnitt -kretskortet på toppen. Jeg skrudde ned kretskortet med 4x M3 -bolter og en sekskantskriver. Til slutt koblet jeg DC -fatkontakten til PCB.

Stack Adder -kretskortene. Jeg stablet den første Adderen på plass. Jeg skrudde ned baksiden av kretskortet i de bakre monteringshullene med 2 avstand. Jeg gjentok denne prosessen til siste Adder var på plass og festet den med ytterligere 2 M3 -bolter.

Lag kabinettet. Jeg brukte 1/4 akryl til skapet. Jeg målte prosjektets siste høyde og, med CAD -dimensjonene, skar jeg ut 5 stykker for sidene og toppen for å lage en enkel eske med åpen bunn. Jeg brukte epoxy til å lime bitene sammen. Til slutt pusset jeg en liten utskjæring av en halv sirkel på høyre side for å imøtekomme bryteren.

Klar til å beregne

Trinn 10: Beregning og sammenligning

Image
Image
Beregning og sammenligning
Beregning og sammenligning
Beregning og sammenligning
Beregning og sammenligning

Koble til din nye kalkulator og begynn å legge til! Base 10 til base 2 -diagrammet kan brukes til raskt å konvertere mellom binære og heltall. Jeg foretrekker å sette inngangene og deretter slå "lik" ved å snu strømbryteren og observere den binære utgangen fra lysdiodene.

Sammenligning av diskrete komponenter til en integrert krets. Nå kan du fjerne hele Adders og koble SN7483A IC til I/O -kortet. (Ikke glem å snu bryteren til motsatt retning for å drive IC med 5V i stedet for 12V). Du kan utføre de samme beregningene, og du får de samme resultatene. Det er ganske imponerende å tro at både den diskrete komponenten Adder og IC fungerer på samme måte bare på en helt annen størrelsesskala. Bildene viser de samme inngangene og utgangene for kretser.

Trinn 11: Konklusjon

Jeg håper du likte dette prosjektet og lærte like mye som meg. Det er ganske tilfredsstillende å lære noe nytt og gjøre det til et unikt prosjekt som også krever å lære en ny ferdighet som PCB -design/fabrikasjon. Alle skjemaene er listet opp nedenfor. For alle interesserte kan jeg også koble PCB Gerber-filene mine slik at du kan lage din egen 4-biters binære kalkulator. Glad i å lage!

Anbefalt: