Talaan ng mga Nilalaman:

4-bit na Binary Calculator: 11 Mga Hakbang (na may Mga Larawan)
4-bit na Binary Calculator: 11 Mga Hakbang (na may Mga Larawan)

Video: 4-bit na Binary Calculator: 11 Mga Hakbang (na may Mga Larawan)

Video: 4-bit na Binary Calculator: 11 Mga Hakbang (na may Mga Larawan)
Video: Binary to Octal Conversion 2024, Hulyo
Anonim
4-bit na Binary Calculator
4-bit na Binary Calculator
4-bit na Binary Calculator
4-bit na Binary Calculator
4-bit na Binary Calculator
4-bit na Binary Calculator
4-bit na Binary Calculator
4-bit na Binary Calculator

Bumuo ako ng isang interes sa kung paano gumagana ang mga computer sa isang pangunahing antas. Nais kong maunawaan ang paggamit ng mga discrete na bahagi at mga circuit na kinakailangan upang makamit ang mas kumplikadong mga gawain. Ang isang mahalagang pangunahing sangkap sa isang CPU ay ang arithmetic logic unit o ang ALU na nagsasagawa ng mga pagpapatakbo sa mga bilang ng integer. Upang magawa ang gawaing ito, gumagamit ang mga computer ng mga binary number at mga gate ng lohika. Ang isa sa pinakasimpleng pagpapatakbo na isinagawa ay pagdaragdag ng dalawang numero nang magkasama, sa isang adder circuit. Ang video na ito sa pamamagitan ng numberphile ay may mahusay na trabaho sa pagpapaliwanag ng konseptong ito sa pamamagitan ng Domino Addition. Pinahaba ni Matt Parker ang pangunahing konseptong ito at nagtatayo ng isang Domino Computer circuit gamit ang 10, 000 dominos. Ang pagtatayo ng isang buong personal na computer sa labas ng mga domino ay walang katotohanan ngunit nais ko pa ring maunawaan ang paggamit ng mga discrete na bahagi upang magawa ang pagdaragdag na gawain na ito. Sa mga video, ang mga pintuang-daan ng lohika ay nilikha sa labas ng mga domino ngunit maaari rin silang gawin sa mga pangunahing sangkap, katulad ng mga transistor at resistor. Ang layunin ng proyektong ito ay upang magamit ang mga discrete na sangkap na ito upang malaman at lumikha ng aking sariling calculator ng 4-bit na adder.

Kasama ang aking mga layunin para sa proyektong ito: 1) Alamin kung paano lumikha at gumawa ng isang pasadyang PCB2) Gawing madali ang disenyo upang maisip ang pagdaragdag ng mga binary number3) Ipakita ang pagkakaiba sa sukat sa pagitan ng mga discrete na bahagi at isang integrated circuit na gumaganap ng parehong gawain

Karamihan sa inspirasyon at pag-unawa sa proyektong ito ay nagmula sa Simon Inns.

Mga gamit

Ginamit ko ang Fritzing upang gumawa ng mga iskema, lumikha at gumawa ng mga PCB

Hakbang 1: Teorya

Teorya
Teorya
Teorya
Teorya
Teorya
Teorya
Teorya
Teorya

Ang pagbibilang sa base 10 ay simple sapagkat mayroong ibang integer upang kumatawan sa kabuuan ng dalawang integer. Ang pinakasimpleng halimbawa:

1 + 1 = 2

Ang pagbibilang sa base 2 o binary ay gumagamit lamang ng 1 at 0. Ang isang kumbinasyon ng 1 at 0 ay ginagamit upang kumatawan sa iba't ibang mga integer at kanilang mga kabuuan. Isang halimbawa ng pagbibilang sa base 2:

1 + 1 = 0 at dalhin mo ang 1 sa susunod na piraso

Kapag nagdaragdag ng dalawang piraso (A at B) magkasama, 4 na magkakaibang mga resulta ang posible sa mga output ng Sum at Carry (Cout). Ito ang ipinakita sa talahanayan.

Ang mga gate ng lohika ay kumukuha ng mga input at bumubuo ng isang output. Ang ilan sa mga pinaka-pangunahing mga gate ng lohika ay binubuo ng HINDI, AT, at O mga gate na lahat ay ginagamit sa proyektong ito. Binubuo ang mga ito ng iba't ibang mga kumbinasyon at mga kable ng transistors at resistors. Ang mga iskematika ng bawat gate ay ibinibigay.

Sumangguni pabalik sa talahanayan, Ang isang kumbinasyon ng mga pintuang ito ay maaaring magamit upang makagawa ng mga resulta ng Sum sa talahanayan. Ang kombinasyon ng lohika na ito ay kilala rin bilang isang eksklusibong O (XOR) gate. Ang pag-input ay dapat na eksaktong 1 upang magresulta sa isang output ng 1. Kung ang parehong mga input ay 1 ang nagresultang output ay 0. Ang mga bitbit na resulta ng bit ay maaaring kinatawan ng isang simpleng AT gate. Kaya, ang paggamit ng parehong XOR na may isang gate na AND ay maaaring kumatawan sa buong talahanayan. Kilala ito bilang isang Half Adder at ang eskematiko ay ipinapakita sa itaas.

Upang magdagdag ng mas malaking mga numero ng binary, ang bitbit ng bitbit ay dapat na isama bilang isang input. Ito ay nagagawa sa pamamagitan ng pagsasama ng 2 Half Half Adder circuit upang makabuo ng isang Buong Adder. Ang mga buong Adder ay maaaring i-cascaded magkasama upang magdagdag ng mas malaking mga binary number. Sa aking proyekto na-cascaded ko ang 4 Buong Mga Adder na pinagana akong magkaroon ng 4 na mga input. Ang iskematiko para sa Buong Adder ay nasa itaas.

Si Simon Inns ay may mahusay at mas malalim na pagsulat tungkol sa teorya. Mayroon ding ilang mga PDF na nakita kong kapaki-pakinabang.

Hakbang 2: Pagsubok sa Circuit

Pagsubok sa Circuit
Pagsubok sa Circuit
Pagsubok sa Circuit
Pagsubok sa Circuit

Ang unang hakbang pagkatapos maunawaan kung paano gumagana ang mga gate ng lohika at ang teorya sa likod ng isang Buong Adder ay upang buuin ang circuit. Nagsimula ako sa pamamagitan ng pagtipon ng lahat ng mga sangkap na kailangan ko: 10K at 1K resistors, NPN Transistors, Breadboard, Jumperwires. Sinundan ko kasama ang isang printout ng buong adder. Nakakapagod ang proseso ngunit nakakuha ako ng isang gumaganang circuit para sa buong adder. Itatali ko ang mga input na mataas o mababa at gumamit ng isang multimeter upang subukan ang mga output. Ngayon handa na akong isalin ang breadboard at eskematiko sa isang PCB.

Hakbang 3: Pagdidisenyo ng Buong Adder PCB

Pagdidisenyo ng Buong Adder PCB
Pagdidisenyo ng Buong Adder PCB
Pagdidisenyo ng Buong Adder PCB
Pagdidisenyo ng Buong Adder PCB
Pagdidisenyo ng Buong Adder PCB
Pagdidisenyo ng Buong Adder PCB

Upang idisenyo ang PCB ginamit ko ang Fritzing ng eksklusibo. Ito ang aking kauna-unahang pagkakataon sa pagdidisenyo ng isang PCB at ang program na ito ay tila ang pinaka-magiliw at madaling maunawaan ng gumagamit na may pinakamaliit na kurba sa pag-aaral. Mayroong iba pang mahusay na mga programa tulad ng EasyEDA at Eagle na magagamit upang matulungan ang disenyo ng isang PCB. Sa Fritzing, maaari mong simulan ang pagdidisenyo sa isang virtual breadboard o isang eskematiko, pagkatapos ay lumipat sa PCB. Ginamit ko ang pareho sa mga pamamaraang ito para sa proyektong ito. Kapag handa ka nang kathain ang PCB, kasing simple ng pag-click ng isang pindutan upang mai-export ang iyong mga file at i-upload ang mga ito nang direkta sa Aisler, ang kasosyo na taga-gawa para sa Fritzing.

Iguhit ang SchematicA nagsimula ako sa tab na eskematiko upang simulan ang proseso. Una, nakita ko at ipinasok ang lahat ng mga bahagi sa workspace. Susunod, iginuhit ko ang lahat ng mga bakas sa pagitan ng mga sangkap. Tinitiyak kong magdagdag ng 5V input at ground sa mga naaangkop na lugar.

Idisenyo ang PCBI na na-click sa tab na PCB. Kapag lumipat ka nang direkta mula sa isang eskematiko nakakakuha ka ng gulo sa lahat ng mga bahagi na konektado sa pamamagitan ng mga linya ng ratnest batay sa mga bakas na iyong ginawa sa eskematiko. Ang unang bagay na ginawa ko ay baguhin ang laki ng kulay-abong PCB sa laki na gusto ko at nagdagdag ng mga tumataas na butas. Nagdagdag din ako ng 16 na mga pin para sa mga input at output. Susunod, sinimulan kong ayusin ang mga bahagi sa isang lohikal na paraan. Sinubukan kong i-grupo ang mga sangkap na may mga koneksyon na malapit sa bawat isa upang mabawasan ko ang distansya ng pagsubaybay. Nagpunta ako ng isang karagdagang hakbang at pinagsama ang mga sangkap nang magkasama sa pamamagitan ng logic gate. Ang isa sa aking mga layunin ay maipakita kung paano gumagana ang circuit at masundan ang "bit" sa pamamagitan ng circuit. Pagkatapos nito, ginamit ko ang pagpapaandar ng autorouting na awtomatiko na dumadaan at iginuhit ang na-optimize na mga pagsubaybay sa pagitan ng mga bahagi. Nag-aalangan ako na ang prosesong ito ay nakumpleto ang lahat ng tamang mga tracings kaya't dumaan ako upang i-double check at i-redraw ang mga tracings kung saan naroroon. Sa kasamaang palad, ang tampok na autorouting ay gumawa ng isang mahusay na trabaho at kailangan ko lamang ayusin ang ilan sa mga tracings. Ang autorouter ay gumawa din ng ilang mga kakatwang mga anggulo sa mga bakas na hindi ang "pinakamahusay na kasanayan" ngunit okay ako doon at lahat ay maayos pa rin. Ang huling ginawa ko ay magdagdag ng teksto na maililimbag bilang silkscreen. Natiyak kong lahat ng mga sangkap ay may label. Nag-import din ako ng mga larawan ng pasadyang pintuan ng lohika upang bigyang-diin ang pagpapangkat ng mga sangkap. Ipinapakita ng huling larawan sa itaas ang silkscreen.

Gawin ang PCBI na nag-click sa gawa-gawang pindutan sa ilalim ng screen. Direkta itong inilipat sa akin sa website ng Aisler kung saan nakagawa akong isang account at na-upload ang lahat ng aking mga file na Fritzing. Iniwan ko ang lahat ng mga default na setting at inilagay ang order.

Hakbang 4: Pagdidisenyo ng Ibang mga PCB

Pagdidisenyo ng Ibang mga PCB
Pagdidisenyo ng Ibang mga PCB
Pagdidisenyo ng Ibang mga PCB
Pagdidisenyo ng Ibang mga PCB
Pagdidisenyo ng Ibang mga PCB
Pagdidisenyo ng Ibang mga PCB

Ang natitirang PCB na kailangan ko ay ang input / output interface board at ang board para sa IC. Sinundan ko ang isang proseso bilang Hakbang 3 para sa mga board na ito. Ang pdf ng mga eskematiko ay nai-post sa ibaba. Para sa IC, ginawa ko ang lahat ng mga koneksyon gamit ang tampok na virtual breadboard. Isinama ko ang eskematiko para sa pagkakumpleto ngunit nakakapunta nang direkta mula sa breadboard sa tab na PCB na medyo cool. Nagdagdag din ako ng isang base 10 sa base 2 na tsart ng conversion sa silkscreen sa I / O interface board bago mag-upload at mag-order sa Aisler.

Hakbang 5: Mga Bahagi ng Paghihinang sa PCB

Mga Soldering Component sa PCB
Mga Soldering Component sa PCB
Mga Soldering Component sa PCB
Mga Soldering Component sa PCB
Mga Soldering Component sa PCB
Mga Soldering Component sa PCB
Mga Soldering Component sa PCB
Mga Soldering Component sa PCB

Ang lahat ng mga PCB ay dumating at talagang humanga ako sa kalidad. Wala akong anumang karanasan sa iba pang mga paninda ngunit hindi mag-atubiling gamitin muli ang Aisler.

Ang susunod na gawain ay upang maghinang ng lahat ng mga bahagi na kung saan ay isang mahirap na proseso ngunit ang aking mga kasanayan sa paghihinang ay lubos na napabuti. Nagsimula ako sa buong mga board ng adder at naghinang ng mga sangkap na nagsisimula sa mga transistors, pagkatapos ay 1K resistors, pagkatapos ay 10K resistors. Sinundan ko ang isang katulad na pamamaraan upang maghinang ang natitirang mga bahagi sa I / O at IC board. Matapos makumpleto ang bawat board ng Full Adder sinubukan ko ang mga ito sa parehong pamamaraan tulad ng breadboard Full Adder. Nakakagulat, lahat ng mga board ay gumana nang tama nang walang isyu. Nangangahulugan ito na ang mga board ay naayos nang tama at na-solder ang mga ito nang tama. Pumunta sa susunod na hakbang!

Hakbang 6: Tinatapos ang mga PCB para sa Stacking

Tinatapos ang mga PCB para sa Stacking
Tinatapos ang mga PCB para sa Stacking
Tinatapos ang mga PCB para sa Stacking
Tinatapos ang mga PCB para sa Stacking
Tinatapos ang mga PCB para sa Stacking
Tinatapos ang mga PCB para sa Stacking

Ang susunod na gawain ay ang paghihinang ng lahat ng mga pin ng header sa bawat board. Kailangan ko ring magdagdag ng mga wire ng jumper sa pagitan ng tamang header pin at mga input / output ng buong Mga board ng Adder (A, B, Cin, V +, GND, Sum, Cout). Maiiwasan ang hakbang na ito kung nagdisenyo ka ng iba't ibang mga PCB para sa bawat antas ng adder circuit ngunit nais kong i-minimize ang disenyo at gastos sa pamamagitan ng paglikha lamang ng isang Buong Adder PCB. Bilang isang resulta, ang mga koneksyon sa mga input / output ay kinakailangan ng mga jumper wires. Ang skematikong ibinigay ay kung paano ko nagawa ang gawaing ito at kung aling mga pin ang ginamit para sa bawat antas ng Mga board ng Buong Adder. Ipinapakita ng mga imahe kung paano ko naghinang ang mga jumper wires para sa bawat board. Nagsimula ako sa pamamagitan ng paghihinang ng mga libreng wires sa tamang mga pin sa header. Pagkatapos ay hinanghin ko ang header sa PCB. Matapos magkaroon ng mga header pin na may jumper wires na na-solder, inilagay ko ang mga libreng dulo ng mga jumper wires sa tamang mga lead sa PCB. Ang larawan sa itaas ay nagpapakita ng isang pagsara ng mga pin ng header na may mga jumper wire na solder sa kanila.

Hakbang 7: Pagpapatakbo ng Mga Circuits

Pagpapatakbo ng mga Circuits
Pagpapatakbo ng mga Circuits
Pagpapatakbo ng mga Circuits
Pagpapatakbo ng mga Circuits
Pagpapatakbo ng mga Circuits
Pagpapatakbo ng mga Circuits

Plano ko sa paggamit ng isang 12V DC barong jack supply para sa proyektong ito kaya dinisenyo ko ang board ng interface ng I / O upang magkaroon ng DC barong jack / konektor para sa pag-input ng kuryente. Dahil gumagamit ako ng parehong I / O board at nais na gumamit ng isang solong supply ng kuryente na kailangan ko upang makontrol ang boltahe sa 5V dahil ito ang max na input para sa SN7483A IC. Upang magawa ito kailangan ko ng isang 5V regulator at isang switch na maaaring magpalipat-lipat sa pagitan ng 12V at 5V. Ipinapakita ng eskematiko sa itaas kung paano ko nag-wire ang power circuit nang magkasama.

Hakbang 8: Pag-print ng 3D sa Base

Pag-print ng 3D sa Base
Pag-print ng 3D sa Base
Pag-print ng 3D sa Base
Pag-print ng 3D sa Base
Pag-print ng 3D sa Base
Pag-print ng 3D sa Base

Ngayon na ang lahat ng mga kable at paghihinang ay kumpleto na, kailangan kong malaman kung paano ito magkakasamang gaganapin. Pinili ko para sa CADing at 3D na pagpi-print ng isang disenyo na makakatanggap at maipakita ang lahat ng mga bahagi ng proyektong ito.

Mga Pagsasaalang-alang sa Disenyo Kailangan ko ng mga lugar upang mai-mount ang mga PCB na may mga bolt at standoff. Ang nakasalansan na Mga Adder ay ang pinaka-kaakit-akit na paningin at nais kong ipakita ang mga iyon nang hindi ginagamit kaya gusto ko ng isang lugar upang maiimbak ang IC PCB. Kailangan kong mapaunlakan ang circuit ng kuryente na may mga ginupit para sa switch at DC barong jack / konektor. Panghuli, ginusto ko ang ilang uri ng display case ng enclosure upang maiwasan ang pagkolekta ng alikabok sa mga bukas na PCB kaya kailangan ko ng isang lugar para makaupo ang enclosure.

Ginamit ko ang Fusion360 upang idisenyo ang base. Nagsimula ako sa mga sukat ng PCB at ang spacing ng mga mounting hole. Pagkatapos nito ay gumamit ako ng isang serye ng mga sketch at extrusions upang maitakda ang taas at sukat ng base sa mga mounting point ng PCB. Susunod na ginawa ko ang mga ginupit para sa enclosure, at ang circuit ng kuryente. Pagkatapos, gumawa ako ng isang lugar upang maiimbak ang IC PCB kapag hindi ginagamit. Panghuli nagdagdag ako ng ilang mga detalye sa pagtatapos at ipinadala ito sa Cura, ang aking slicing software.

Pinili ko ang itim na PLA filament. Ang pag-print ay tumagal ng kaunti sa loob ng 6 na oras at naging mahusay. Nakakagulat, ang lahat ng mga sukat ay tama at ang lahat ay lumitaw na tulad ng magkakasamang maayos. Ipinapakita ng larawan sa itaas ang print pagkatapos na idagdag ko ang mga standoff sa mga mounting hole. Ang mga ito ay isang perpektong akma!

Hakbang 9: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Ipasok ang mga standoff. Inilagay ko ang lahat ng mga standoff sa mga tumataas na butas ng base.

Iposisyon ang circuit ng kuryente sa base. Pinagsama ko ang lahat at hinila ang lahat ng mga bahagi sa butas para sa switch. Susunod, ipinasok ko ang power jack / adapter sa likod ng base. Itinulak ko ang 5V regulator sa puwang nito at sa wakas ang switch ay maaaring itulak na marapat sa posisyon.

I-mount ang I / O PCB. Inilagay ko ang IC PCB sa kanyang espasyo sa imbakan at inilagay ang I / O interface PCB sa itaas. Pinatay ko ang PCB gamit ang 4x M3 bolts at isang hex driver. Sa wakas ay isinaksak ko ang DC barrel jack sa PCB.

I-stack ang Adder PCB's. Inilagay ko ang unang Adder sa lugar. Inilagay ko ang likod ng PCB sa likuran ng mga butas sa likod na may 2 standoffs. Inulit ko ang prosesong ito hanggang sa huling lugar ng Adder at na-secure ito gamit ang 2 pang mga bolts ng M3.

Gawin ang enclosure. Gumamit ako ng 1/4 acrylic para sa enclosure. Sinukat ko ang huling taas ng proyekto at, sa mga sukat ng CAD, gupitin ang 5 piraso para sa mga gilid at itaas upang makagawa ng isang simpleng kahon na may bukas na ilalim. Gumamit ako ng epoxy upang ipako Ang mga piraso ay magkasama. Pagkatapos ay nag-sanded ako ng isang maliit na cutout ng kalahating bilog sa kanang bahagi upang mapaunlakan ang switch.

Handa nang Kalkulahin

Hakbang 10: Pagkalkula at Paghahambing

Image
Image
Pagkalkula at Paghahambing
Pagkalkula at Paghahambing
Pagkalkula at Paghahambing
Pagkalkula at Paghahambing

I-plug ang iyong bagong calculator at simulang magdagdag! Ang base 10 hanggang base 2 na tsart ay maaaring magamit upang mabilis na mag-convert sa pagitan ng binary at integers. Mas gusto kong itakda ang mga input pagkatapos ay pindutin ang "katumbas" sa pamamagitan ng pag-flip ng power switch at pagmamasid sa binary output mula sa mga LED.

Paghahambing ng mga discrete na bahagi sa isang Integrated circuit. Ngayon, maaari mong i-unstack ang buong Mga Adder at i-plug ang SN7483A IC sa I / O board. (Huwag kalimutang i-flip ang switch sa kabaligtaran na direksyon upang mapagana ang IC gamit ang 5V sa halip na 12V). Maaari kang magsagawa ng parehong mga kalkulasyon at makakakuha ka ng parehong mga resulta. Napakaganda nito upang isipin na ang parehong discrete na sangkap ng Adder at ang IC ay gumagana sa parehong paraan sa ibang-ibang sukat ng laki. Ipinapakita ng mga larawan ang parehong mga input at output para sa mga circuit.

Hakbang 11: Konklusyon

Inaasahan kong nasiyahan ka sa proyektong ito at natutunan tulad ng nagustuhan ko. Ito ay medyo kasiya-siya upang malaman ang isang bagong bagay at gawin itong isang natatanging proyekto na nangangailangan din ng pag-aaral ng isang bagong kasanayan tulad ng disenyo / katha ng PCB. Ang lahat ng mga iskema ay nakalista sa ibaba. Para sa sinumang interesado maaari ko ring i-link ang aking mga file ng PCB Gerber upang makagawa ka ng iyong sariling 4-bit na Binary Calculator. Maligayang paggawa!

Inirerekumendang: