Spisu treści:

4-bitowy kalkulator binarny: 11 kroków (ze zdjęciami)
4-bitowy kalkulator binarny: 11 kroków (ze zdjęciami)

Wideo: 4-bitowy kalkulator binarny: 11 kroków (ze zdjęciami)

Wideo: 4-bitowy kalkulator binarny: 11 kroków (ze zdjęciami)
Wideo: Zamiana liczb - system dwójkowy, szesnastkowy, ósemkowy, dziesiętny 2024, Listopad
Anonim
4-bitowy kalkulator binarny
4-bitowy kalkulator binarny
4-bitowy kalkulator binarny
4-bitowy kalkulator binarny
4-bitowy kalkulator binarny
4-bitowy kalkulator binarny
4-bitowy kalkulator binarny
4-bitowy kalkulator binarny

Zainteresowałem się sposobem działania komputerów na podstawowym poziomie. Chciałem zrozumieć użycie elementów dyskretnych i obwodów niezbędnych do realizacji bardziej złożonych zadań. Jednym z ważnych podstawowych elementów procesora jest jednostka arytmetyczno-logiczna lub jednostka ALU, która wykonuje operacje na liczbach całkowitych. Aby wykonać to zadanie, komputery wykorzystują liczby binarne i bramki logiczne. Jedną z najprostszych wykonywanych operacji jest zsumowanie dwóch liczb w układzie sumatora. Ten film autorstwa numberphile doskonale wyjaśnia tę koncepcję za pośrednictwem Domino Addition. Matt Parker rozszerza tę podstawową koncepcję i buduje obwód Domino Computer, używając 10 000 domino. Budowanie całego komputera osobistego z domina jest absurdalne, ale nadal chciałem zrozumieć użycie dyskretnych komponentów do wykonania tego zadania dodawania. Na filmach bramki logiczne powstały z domina, ale można je również wykonać z podstawowych elementów, czyli tranzystorów i rezystorów. Celem tego projektu było wykorzystanie tych dyskretnych komponentów do nauki i stworzenia własnego 4-bitowego kalkulatora sumatorów.

Moje cele w tym projekcie obejmowały: 1) Nauczenie się, jak stworzyć i wyprodukować niestandardową płytkę drukowaną 2) Ułatwienie konceptualizacji projektu poprzez dodanie liczb binarnych 3) Zademonstrowanie różnicy w skali między komponentami dyskretnymi a układem scalonym wykonującym to samo zadanie

Wiele inspiracji i zrozumienia tego projektu pochodzi od Simona Innsa.

Kieszonkowe dzieci

Użyłem Fritzinga do wykonania schematów, tworzenia i wytwarzania płytek PCB

Krok 1: Teoria

Teoria
Teoria
Teoria
Teoria
Teoria
Teoria
Teoria
Teoria

Liczenie w bazie 10 jest proste, ponieważ istnieje inna liczba całkowita reprezentująca sumę dwóch liczb całkowitych. Najprostszy przykład:

1 + 1 = 2

Liczenie w systemie dwójkowym lub binarnym używa tylko jedynek i zer. Kombinacja jedynek i zer służy do reprezentowania różnych liczb całkowitych i ich sum. Przykład liczenia w bazie 2:

1+1 = 0 i przenosisz 1 do następnego bitu

Po dodaniu dwóch bitów (A i B) razem, możliwe są 4 różne wyniki z wyjściami Sum i Carry (Cout). To jest pokazane w tabeli.

Bramki logiczne pobierają dane wejściowe i generują dane wyjściowe. Niektóre z najbardziej podstawowych bramek logicznych składają się z bramek NOT, AND i OR, które są wykorzystywane w tym projekcie. Składają się z różnych kombinacji i okablowania tranzystorów i rezystorów. Przedstawiono schematy każdej bramy.

Wracając do tabeli, kombinację tych bramek można wykorzystać do uzyskania wyników sumy w tabeli. Ta kombinacja logiki jest również znana jako ekskluzywna bramka OR (XOR). Na wejściu musi być dokładnie 1, aby dać wynik 1. Jeśli oba wejścia mają wartość 1, wynikowy wynik to 0. Wyniki bitu przeniesienia mogą być reprezentowane przez prostą bramkę AND. Tak więc użycie zarówno XOR z bramką AND może reprezentować całą tabelę. Jest to znane jako Half Adder, a schemat pokazano powyżej.

Aby dodać większe liczby binarne, bit przeniesienia musi być włączony jako wejście. Osiąga się to poprzez połączenie 2 obwodów Half Adder w celu wygenerowania pełnego addera. Pełne sumatory można następnie połączyć kaskadowo, aby dodać większe liczby binarne. W moim projekcie kaskadowałem 4 pełne sumatory, co pozwoliło mi na 4 wejścia bitowe. Schemat pełnego sumatora znajduje się powyżej.

Simon Inns ma świetny i bardziej dogłębny opis tej teorii. Jest też kilka pomocnych plików PDF.

Krok 2: Testowanie obwodu

Testowanie obwodu
Testowanie obwodu
Testowanie obwodu
Testowanie obwodu

Pierwszym krokiem po zrozumieniu działania bramek logicznych i teorii stojącej za pełnym sumatorem jest zbudowanie obwodu. Zacząłem od zebrania wszystkich potrzebnych komponentów: rezystorów 10K i 1K, tranzystorów NPN, płytki stykowej, zworek. Śledziłem wraz z wydrukiem pełnego sumatora. Proces był żmudny, ale udało mi się uzyskać działający obwód dla pełnego sumatora. Związałbym wejścia wysoko lub nisko i użyłem multimetru do przetestowania wyjść. Teraz byłem gotowy do przetłumaczenia płytki stykowej i schematu na płytkę drukowaną.

Krok 3: Projektowanie płytki PCB pełnego sumatora

Projektowanie płytki PCB pełnego sumatora
Projektowanie płytki PCB pełnego sumatora
Projektowanie płytki PCB pełnego sumatora
Projektowanie płytki PCB pełnego sumatora
Projektowanie płytki PCB pełnego sumatora
Projektowanie płytki PCB pełnego sumatora

Do zaprojektowania płytki wykorzystałem wyłącznie Fritzing. To był mój pierwszy raz, kiedy projektowałem płytkę drukowaną, a ten program wydawał się najbardziej przyjazny dla użytkownika i intuicyjny z najmniejszą krzywą uczenia się. Dostępne są inne świetne programy, takie jak EasyEDA i Eagle, które pomagają zaprojektować PCB. Dzięki Fritzing możesz rozpocząć projektowanie na wirtualnej płytce prototypowej lub schemacie, a następnie przejść do PCB. Wykorzystałem obie te metody w tym projekcie. Kiedy będziesz gotowy do wyprodukowania PCB, wystarczy kliknąć przycisk, aby wyeksportować pliki i przesłać je bezpośrednio do Aisler, producenta współpracującego z Fritzing.

Narysuj schematZacząłem od zakładki schematu, aby rozpocząć proces. Najpierw znalazłem i wstawiłem wszystkie komponenty do obszaru roboczego. Następnie narysowałem wszystkie ślady między komponentami. Upewniłem się, że w odpowiednich miejscach dodałem wejście 5V i masę.

Zaprojektuj PCBI klikniętą na zakładkę PCB. Kiedy przechodzisz bezpośrednio ze schematu, masz bałagan ze wszystkimi komponentami połączonymi liniami ratsnest na podstawie śladów, które wykonałeś na schemacie. Pierwszą rzeczą, którą zrobiłem, była zmiana rozmiaru szarej płytki drukowanej do żądanego rozmiaru i dodanie otworów montażowych. Dodałem również 16 pinów dla wejścia i wyjścia. Następnie zacząłem układać elementy w logiczny sposób. Próbowałem pogrupować komponenty z połączeniami, które były blisko siebie, aby zminimalizować odległość śledzenia. Poszedłem o krok dalej i pogrupowałem komponenty razem bramką logiczną. Jednym z moich celów była możliwość wizualizacji działania obwodu i śledzenia „bitu” w obwodzie. Następnie użyłem funkcji autoroutingu, która przechodzi automatycznie i rysuje zoptymalizowane ścieżki między komponentami. Byłem sceptyczny, czy ten proces zakończył wszystkie właściwe obrysy, więc przeszedłem do podwójnego sprawdzenia i przerysowania obrysów tam, gdzie powinny być. Na szczęście funkcja autoroutingu wykonała całkiem dobrą robotę i musiałem naprawić tylko kilka tras. Autorouter zrobił też dziwne kąty ze śladami, co nie jest "najlepszą praktyką", ale nie przeszkadzało mi to i wszystko nadal działało dobrze. Ostatnią rzeczą, jaką zrobiłem, było dodanie tekstu, który zostałby wydrukowany jako sitodruk. Upewniłem się, że wszystkie komponenty zostały oznaczone. Zaimportowałem również niestandardowe obrazy bramek logicznych, aby podkreślić grupowanie komponentów. Ostatni obrazek powyżej przedstawia sitodruk.

Wyprodukuj PCBI kliknięty na przycisk wyprodukuj na dole ekranu. Bezpośrednio skierował mnie na stronę Aisler, gdzie mogłem założyć konto i przesłać wszystkie moje pliki Fritzing. Zostawiłem wszystkie ustawienia domyślne i złożyłem zamówienie.

Krok 4: Projektowanie pozostałych płytek drukowanych

Projektowanie pozostałych płytek drukowanych
Projektowanie pozostałych płytek drukowanych
Projektowanie pozostałych płytek drukowanych
Projektowanie pozostałych płytek drukowanych
Projektowanie pozostałych płytek drukowanych
Projektowanie pozostałych płytek drukowanych

Pozostałe płytki drukowane, których potrzebowałem, to płyta interfejsu wejścia/wyjścia i płyta dla układu scalonego. Postępowałem zgodnie z procesem jako Krok 3 dla tych tablic. PDF ze schematami znajduje się poniżej. W przypadku układu scalonego wykonałem wszystkie połączenia za pomocą funkcji wirtualnej płytki stykowej. Dołączyłem schemat dla kompletności, ale mogłem przejść bezpośrednio z płytki prototypowej do zakładki PCB, co było całkiem fajne. Dodałem również tabelę konwersji z bazy 10 do bazy 2 na sitodruku na płycie interfejsu I/O przed przesłaniem i zamówieniem w Aisler.

Krok 5: Lutowanie komponentów do PCB

Lutowanie komponentów do PCB
Lutowanie komponentów do PCB
Lutowanie komponentów do PCB
Lutowanie komponentów do PCB
Lutowanie komponentów do PCB
Lutowanie komponentów do PCB
Lutowanie komponentów do PCB
Lutowanie komponentów do PCB

Wszystkie płytki dotarły i byłem pod wrażeniem ich jakości. Nie miałem żadnego doświadczenia z innymi producentami, ale nie zawaham się ponownie użyć Aislera.

Kolejnym zadaniem było przylutowanie wszystkich elementów, co było żmudnym procesem, ale moje umiejętności lutowania znacznie się poprawiły. Zacząłem od pełnych płyt sumatorów i lutowałem elementy zaczynając od tranzystorów, następnie rezystorów 1K, a następnie rezystorów 10K. Podobną metodą przylutowałem resztę komponentów do płyty I/O i IC. Po zakończeniu każdej płytki Full Adder przetestowałem je tą samą metodą, co płytkę prototypową Full Adder. Co zaskakujące, wszystkie tablice działały poprawnie bez problemu. Oznaczało to, że płytki zostały poprawnie poprowadzone i zostały poprawnie zlutowane. Do następnego kroku!

Krok 6: Wykańczanie płytek drukowanych do układania

Wykańczanie płytek PCB do układania
Wykańczanie płytek PCB do układania
Wykańczanie płytek PCB do układania
Wykańczanie płytek PCB do układania
Wykańczanie płytek PCB do układania
Wykańczanie płytek PCB do układania

Kolejnym zadaniem było przylutowanie wszystkich pinów nagłówka do każdej płytki. Musiałem również dodać zworki między właściwym pinem nagłówka a wejściami/wyjściami płyt Full Adder (A, B, Cin, V+, GND, Sum, Cout). Tego kroku można uniknąć, jeśli zaprojektujesz różne płytki PCB dla każdego poziomu obwodu sumatora, ale chciałem zminimalizować projekt i koszty, tworząc tylko jedną płytkę Full Adder. W rezultacie połączenia z tymi wejściami/wyjściami wymagały zworki. Dostarczony schemat pokazuje, jak wykonałem to zadanie i które piny zostały użyte na każdym poziomie tablic Full Adder. Zdjęcia pokazują jak przylutowałem przewody połączeniowe do każdej płytki. Zacząłem od przylutowania wolnych przewodów do odpowiednich pinów na główce. Następnie przylutowałem nagłówek do płytki drukowanej. Po przylutowaniu pinów nagłówka z przewodami połączeniowymi, przylutowałem wolne końce przewodów połączeniowych do odpowiednich wyprowadzeń na płytce drukowanej. Zdjęcie powyżej pokazuje zbliżenie pinów nagłówka z przylutowanymi do nich przewodami połączeniowymi.

Krok 7: Zasilanie obwodów

Zasilanie obwodów
Zasilanie obwodów
Zasilanie obwodów
Zasilanie obwodów
Zasilanie obwodów
Zasilanie obwodów

Planowałem użyć do tego projektu zasilacza baryłkowego 12 V DC, więc zaprojektowałem płytkę interfejsu I/O tak, aby miała gniazdo/złącze baryłkowe DC dla wejścia zasilania. Ponieważ używałem tej samej płyty I / O i chciałem użyć jedynego zasilacza, musiałem wyregulować napięcie do 5 V, ponieważ jest to maksymalne wejście dla układu SN7483A. Aby to osiągnąć potrzebowałem regulatora 5V i przełącznika, który mógłby przełączać się między 12V i 5V. Powyższy schemat pokazuje, jak połączyłem obwód zasilania.

Krok 8: Drukowanie 3D podstawy

Drukowanie 3D podstawy
Drukowanie 3D podstawy
Drukowanie 3D podstawy
Drukowanie 3D podstawy
Drukowanie 3D podstawy
Drukowanie 3D podstawy

Teraz, gdy całe okablowanie i lutowanie jest zakończone, musiałem wymyślić, jak to wszystko będzie połączone. Zdecydowałem się na CADing i wydruk 3D projektu, który zmieściłby i wyświetlił wszystkie części tego projektu.

Rozważania projektowe Potrzebowałem miejsc do montażu płytek PCB za pomocą śrub i wsporników. Ułożone w stos Adders są najbardziej atrakcyjne wizualnie i chciałem mieć je na wystawie, gdy nie są używane, więc chciałem mieć miejsce do przechowywania PCB IC. Musiałem dostosować obwód zasilania z wycięciami na przełącznik i gniazdo/złącze DC. Na koniec chciałem mieć jakąś gablotę w obudowie, aby zapobiec gromadzeniu się kurzu w otwartych płytkach drukowanych, więc potrzebowałem miejsca, w którym obudowa będzie mogła usiąść.

Modelowanie 3D Do zaprojektowania bazy użyłem Fusion360. Zacząłem od wymiarów PCB i rozstawu otworów montażowych. Następnie wykorzystałem serię szkiców i wytłoczeń, aby ustawić wysokość i rozmiar podstawy z punktami mocowania PCB. Następnie wykonałem wycięcia na obudowę i obwód zasilający. Następnie stworzyłem obszar do przechowywania PCB IC, gdy nie jest używany. Na koniec dodałem kilka szczegółów wykończenia krawędzi i wysłałem je do Cura, mojego oprogramowania do krojenia.

Druk Wybrałem czarny filament PLA. Wydruk trwał nieco ponad 6 godzin i wyszedł świetnie. Co zaskakujące, wszystkie wymiary były prawidłowe i wszystko wyglądało tak, jakby pasowało do siebie. Zdjęcie powyżej pokazuje wydruk po dodaniu kołków rozporowych do otworów montażowych. Były idealnie dopasowane!

Krok 9: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Włóż wsporniki. Wszystkie wsporniki umieściłem w otworach montażowych podstawy.

Umieść obwód zasilania w podstawie. Połączyłem wszystko razem i przeciągnąłem wszystkie komponenty przez otwór na przełącznik. Następnie włożyłem gniazdo/adapter zasilania z tyłu podstawy. Wcisnąłem regulator 5V w jego gniazdo i wreszcie przełącznik można było wcisnąć na miejsce.

Zamontuj PCB we/wy. Umieściłem płytkę IC PCB w jej przestrzeni magazynowej i umieściłem płytkę interfejsu I/O na górze. Płytkę przykręciłem 4x śrubami M3 i śrubokrętem sześciokątnym. W końcu podłączyłem gniazdo DC baryłkę do płytki drukowanej.

Układaj płytki PCB sumatora. Ułożyłem pierwszy Adder na swoim miejscu. Tył płytki przykręciłem do tylnych otworów montażowych za pomocą 2 kołków dystansowych. Powtarzałem ten proces, aż ostatni Adder był na miejscu i zabezpieczyłem go 2 kolejnymi śrubami M3.

Zrób obudowę. Do obudowy użyłem 1/4 akrylu. Zmierzyłem ostateczną wysokość projektu i mając wymiary CAD wyciąłem 5 kawałków na boki i górę, aby zrobić proste pudełko z otwartym dnem. Do sklejenia użyłem żywicy epoksydowej kawałki razem. Na koniec wyszlifowałem małe półokrągłe wycięcie po prawej stronie, aby pomieścić przełącznik.

Gotowy do obliczenia

Krok 10: Obliczanie i porównanie

Image
Image
Obliczanie i porównanie
Obliczanie i porównanie
Obliczanie i porównanie
Obliczanie i porównanie

Podłącz nowy kalkulator i zacznij dodawać! Wykres o podstawie 10 do podstawy 2 może być użyty do szybkiej konwersji między liczbami binarnymi i liczbami całkowitymi. Wolę ustawić wejścia, a następnie nacisnąć „równa się”, przełączając wyłącznik zasilania i obserwując binarne wyjście z diod LED.

Porównanie elementów dyskretnych z układem scalonym. Teraz możesz rozpakować pełne dodatki i podłączyć układ scalony SN7483A do płyty I/O. (Nie zapomnij przestawić przełącznika w przeciwnym kierunku, aby zasilić układ scalony napięciem 5 V zamiast 12 V). Możesz wykonać te same obliczenia i uzyskasz te same wyniki. To imponujące, że zarówno dyskretny dodatek, jak i układ scalony działają w ten sam sposób, tylko w bardzo różnej skali rozmiarów. Zdjęcia przedstawiają te same wejścia i wyjścia dla obwodów.

Krok 11: Wniosek

Mam nadzieję, że podobał Ci się ten projekt i nauczyłeś się tyle samo, co ja. To całkiem satysfakcjonujące nauczyć się czegoś nowego i przekształcić to w wyjątkowy projekt, który wymaga również nauki nowych umiejętności, takich jak projektowanie/produkcja PCB. Wszystkie schematy są wymienione poniżej. Dla wszystkich zainteresowanych mogę również połączyć moje pliki PCB Gerbera, dzięki czemu można stworzyć własny 4-bitowy kalkulator binarny. Miłego robienia!

Zalecana: