Hogy működik a számológép? Építsünk egyet!
A nyáron elmentünk Szegedre az Informatikai Történeti Kiállításra. Akkor realizálódott bennem, hogy mekkora fejlődést ért el a technológia 60 év alatt. Elkezdtem gondolkodni, hogy vajon én hogyan állnék neki egy számítógép létrehozásához.
Tranzisztorok
1950-ben járunk. Ekkor már feltalálták a tranzisztorokat. A tranzisztoroknak többféle típusa van, most jelek kapcsolására fogjuk őket használni. A tranzisztornak 3 lába van, az emitter, a bázis és a kollektor. A tranziszotr most úgy képzeljük el, mint egy folyót, amiben van egy zsilip. Ha a zsilipet felhúzzák, akkor tud folyni a víz. Viszont, ha a folyó ki van száradva, vagy nem húzzuk fel a zsilipet, a folyóban nem fog folyni a víz. A tranziszorban a bázis a zsilip, ha arra küldünk egy igaz jelet, akkor az emitter lábon is lesz feszültség (NPN tranzisztor esetén).
Ezeket felhasználva kell megcsinálnunk a számítógép alapegységeit, a logikai kapukat.
Logikai kapuk
1. AND kapu (és)
Kimenete igaz, ha mindkét bemenete igaz.
Ha a felső tranzosztor nem engedi át az áramot, már nem jut el az alsó kollektorához (ki van száradva a folyó), ezért a kimenete 0 lesz.
2. OR kapu (megengedő vagy)
Kimenete igaz, ha legalább az egyik bemenete igaz.
Ezt nem tranzisztorokkal csináltam, hanem diódákkal, amiknek az a tulajdonságuk, hogy csak az egyik irányba engedik át az áramot.
3. NOT kapu (negálás)
Kimenete igaz, ha a bemenete hamis.
Ez már egy kicsit bonyoultabb. Amikor a tranzisztor a bázis lábára kap feszültséget, akkor a átengedi az áramot a kollektortól a földelés felé, így az nem a kimenet felé fog menni.
Ezekből már össze lehet rakni a bonyolultabb kapukat, mint például az XOR (kizáró vagy), NAND (negált és), stb… Bővebben: https://www.electronicshub.org/introduction-to-logic-gates/
Összeadás
Most egy kettes számrendszerbeli számológépet fogunk készíteni. A kettes számrendszerben való számolás hasonló a 10-es számrendszerbelihez, viszont itt az egyes számjegyek csak 0-k és 1-ek lehetnek, tehát nem 10 után kell maradékot továbbvinni, hanem 2 után.
Tulajdonképpen mindig 3 számot kell összeadnunk és két kimenet lesz. Egy a maradék és egy az eredmény bit. Meg kell tervezni egy olyan összeadómodult, aminek ez az igazságtáblázata:
Ezeket a modulokat így kapcsolhatnánk össze:
Az összeadó áramkör megtervezése
Az igazságtáblát nézegetve arra jöhetünk rá, hogy az eredmény bit akkor lesz 1, ha a 3 input közül az összes igaz, vagy pontosan 1db igaz. Ehhez szükságünk lesz két XOR kapura. Egy XOR kapunak a kimenete akkor lesz 1, ha bemenetei közül pontosan 1 igaz. Ha kettő XOR kaput összekapcsolunk, akkor viszont már az is igazat fog eredményezni, ha 3 igazat adunk meg bemenetül:
A maradék bit akkor lesz 1, ha a bemenetek közül legalább 2 igaz. Ezt úgy oldhatjuk meg, hogy megnézzük az összes párost, hogy mindkettő igaz-e, és ha van ilyen, akkor a kimenet igaz lesz (tehát OR kapukkal kell összekapcsolni):
A neten találtam ennél egy kicsit optimalizáltabb kapcsolást, ami kevesebb alkatrészt igényelt:
A nyomtatott áramkör megtervezése
Úgy döntöttem, hogy nem tranzisztorokból csinálom, hanem úgynevezett IC-kből, integrált áramkörökből, hogy ne legyen mégse 1m2-es áramkört tervezni. A 7408-as IC-be 4db AND kapu van építve, a 7432-esbe 4db OR kapu, és a 7486-osba pedig 4db XOR kapu:
A nyomtatott áramkört az Eagle nevű programban terveztem, majd készítettem belőle 3 példányt számjegy összeadására. A modulok kimenetét egy 7-szegmenses kijelzőre íratom ki, ami kettes számrendszerben várja a számot 4 lábán. A nyákterveket innen tudjátok letölteni.
Köszönöm, hogy elolvastátok ezt a bejegyzést, ha kérdésetek van, írjátok meg kommentben! Jó építgetést!
Végezetül pedig itt van néhány kép az elkészült modulokról:
Categories
- Cooking (1)
- Elektronika⸴ barkácsolás (6)
- Kapcsolások⸴ nyákok (3)
- Raspberry PI (2)
- Java (2)
- Physics (2)
- Electronics (2)
- Direct current (2)
- Electronics (2)
- Uncategorized (1)
- Versenyek (3)