Съдържание:

4-битов двоичен калкулатор: 11 стъпки (със снимки)
4-битов двоичен калкулатор: 11 стъпки (със снимки)

Видео: 4-битов двоичен калкулатор: 11 стъпки (със снимки)

Видео: 4-битов двоичен калкулатор: 11 стъпки (със снимки)
Видео: CASIO fx-991CW fx-570CW CLASSWIZ Calculator Full Example Manual 2024, Юли
Anonim
4-битов двоичен калкулатор
4-битов двоичен калкулатор
4-битов двоичен калкулатор
4-битов двоичен калкулатор
4-битов двоичен калкулатор
4-битов двоичен калкулатор
4-битов двоичен калкулатор
4-битов двоичен калкулатор

Развих интерес към начина, по който компютрите работят на основно ниво. Исках да разбера използването на дискретни компоненти и схеми, необходими за изпълнение на по -сложни задачи. Един важен фундаментален компонент в процесора е аритметичната логическа единица или ALU, която извършва операции върху цели числа. За да изпълнят тази задача, компютрите използват двоични числа и логически порти. Една от най -простите операции е добавянето на две числа заедно, в сумационна верига. Това видео от numberphile върши отлична работа да обясни тази концепция чрез Domino Addition. Мат Паркър разширява тази основна концепция и изгражда компютърна схема Domino, използваща 10 000 домина. Изграждането на цял персонален компютър от домино е абсурдно, но все пак исках да разбера използването на дискретни компоненти за изпълнение на тази задача за добавяне. Във видеоклиповете логическите порти са създадени от домино, но могат да бъдат направени и от основни компоненти, а именно транзистори и резистори. Целта на този проект беше да използва тези дискретни компоненти, за да научи и създаде свой собствен 4-битов калкулатор на суматор.

Моите цели за този проект включват: 1) Научете как да създавате и изработвате персонализирана печатна платка 2) Улеснявайте дизайна за концептуализиране на добавянето на двоични числа 3) Демонстрирайте разликата в мащаба между дискретни компоненти и интегрална схема, изпълняваща същата задача

Голяма част от вдъхновението и разбирането на този проект идват от Simon Inns.

Консумативи

Използвах Fritzing за създаване на схеми, създаване и производство на печатни платки

Стъпка 1: Теория

Теория
Теория
Теория
Теория
Теория
Теория
Теория
Теория

Преброяването в база 10 е просто, защото има различно цяло число, което да представлява сумата от две цели числа. Най -простият пример:

1 + 1 = 2

Преброяването в база 2 или двоично използва само 1 и 0. Комбинация от 1 и 0 се използват за представяне на различни цели числа и техните суми. Пример за броене в база 2:

1+1 = 0 и пренасяте 1 към следващия бит

При добавяне на два бита (A и B) заедно са възможни 4 различни резултата с изходите Sum и Carry (Cout). Това е показано в таблицата.

Логическите порти приемат входове и генерират изход. Някои от най -основните логически порти се състоят от портовете NOT, AND и OR, които се използват в този проект. Те са съставени от различни комбинации и окабеляване на транзистори и резистори. Представени са схеми на всяка порта.

Позовавайки се на таблицата, Комбинация от тези порти може да се използва за получаване на резултатите от сумата в таблицата. Тази комбинация от логика е известна още като изключителен ИЛИ (XOR) порта. Входът трябва да бъде точно 1, за да се получи изход 1. Ако и двата входа са 1, полученият изход е 0. Резултатите от носещите битове могат да бъдат представени с обикновен И порта. По този начин използването на XOR с AND порта може да представлява цялата таблица. Това е известно като Half Adder и схемата е показана по -горе.

За да добавите по -големи двоични числа, носещият бит трябва да бъде включен като вход. Това се постига чрез комбиниране на 2 вериги на половин суматор, за да се генерира пълен суматор. След това пълните суматори могат да се каскадират заедно, за да се добавят по -големи двоични числа. В моя проект каскадирах 4 пълни суматора, което ми позволи да имам 4 -битови входове. Схемата за пълното добавяне е по -горе.

Simon Inns има страхотно и по-задълбочено писане за теорията. Има и няколко PDF файла, които намирам за полезни.

Стъпка 2: Тестване на веригата

Тестване на веригата
Тестване на веригата
Тестване на веригата
Тестване на веригата

Първата стъпка след разбирането как работят логическите порти и теорията зад Full Adder е изграждането на веригата. Започнах със събирането на всички необходими компоненти: 10K и 1K резистори, NPN транзистори, Breadboard, Jumperwires. Последвах заедно с разпечатка на пълния суматор. Процесът беше досаден, но успях да получа работна схема за пълния суматор. Бих завързал входовете високо или ниско и използвах мултицет за тестване на изходите. Сега бях готов да преведа макетната схема и схемата в печатна платка.

Стъпка 3: Проектиране на ПХБ с пълна сума

Проектиране на ПХБ с пълна добавка
Проектиране на ПХБ с пълна добавка
Проектиране на ПХБ с пълна добавка
Проектиране на ПХБ с пълна добавка
Проектиране на ПХБ с пълна добавка
Проектиране на ПХБ с пълна добавка

За проектирането на печатни платки използвах изключително Fritzing. За първи път проектирах печатна платка и тази програма изглеждаше като най -удобната за потребителя и интуитивна с най -малката крива на обучение. Има и други страхотни програми като EasyEDA и Eagle, които помагат при проектирането на печатна платка. С Fritzing можете да започнете да проектирате на виртуална макет или схема, след което да преминете към печатната платка. Използвах и двата метода за този проект. Когато сте готови да изработите печатната платка, това е толкова просто, колкото натискането на бутон, за да експортирате вашите файлове и да ги качите директно в Aisler, партньорския производител на Fritzing.

Начертайте схемата Започнах със схематичния раздел, за да започна процеса. Първо открих и вмъкнах всички компоненти в работното пространство. След това нарисувах всички следи между компонентите. Погрижих се да добавя 5V вход и маса към подходящите места.

Проектирайте PCBI, щракнете върху раздела PCB. Когато се преместите директно от схемата, получавате бъркотия с всички компоненти, свързани чрез линии ratsnest въз основа на следите, които сте направили в схемата. Първото нещо, което направих, беше да преоразмеря сивата печатна платка до желания размер и добавих монтажни отвори. Добавих и 16 пина за входа и изхода. След това започнах да подреждам компонентите по логичен начин. Опитах се да групирам компоненти с връзки, които са близки една до друга, така че да минимизирам разстоянието за проследяване. Направих допълнителна стъпка и групирах компонентите заедно по логически портал. Една от целите ми беше да мога да визуализирам как работи схемата и да мога да следвам "бита" през веригата. След това използвах функцията за автоматично насочване, която преминава автоматично и изчертава оптимизираните следи между компонентите. Бях скептичен, че този процес завърши всички правилни проследявания, така че преминах през двойна проверка и прекрояване на очертанията там, където трябваше да бъдат. За щастие, функцията за автоматично пренасочване свърши доста добра работа и трябваше да коригирам само няколко от проследяванията. Autorouter също направи някои странни ъгли със следите, което не е "най -добрата практика", но аз бях добре с това и всичко продължаваше да работи добре. Последното нещо, което направих, беше да добавя текст, който ще бъде отпечатан като коприна. Уверих се, че всички компоненти са етикетирани. Също така импортирах персонализирани снимки на логически порта, за да подчертая групирането на компонентите. Последната снимка по -горе показва копринената печат.

Изработете PCBI, щракнете върху бутона за изработка в долната част на екрана. Това ме насочи директно към уебсайта на Aisler, където успях да направя акаунт и да кача всичките си файлове на Fritzing. Оставих всички настройки по подразбиране и направих поръчката.

Стъпка 4: Проектиране на други печатни платки

Проектиране на други печатни платки
Проектиране на други печатни платки
Проектиране на други печатни платки
Проектиране на други печатни платки
Проектиране на други печатни платки
Проектиране на други печатни платки

Останалите печатни платки, от които имах нужда, бяха входно -изходната интерфейсна платка и платката за ИС. Следвах процеса като Стъпка 3 за тези дъски. PDF схемите са публикувани по -долу. За ИС направих всички връзки, използвайки функцията за виртуална макет. Включих схемата за пълнота, но успях да отида директно от макета към раздела на печатната платка, което беше доста готино. Също така добавих база 10 към база 2 на диаграма за преобразуване на копринената печатна платка на I/O интерфейсната карта, преди да кача и поръчам в Aisler.

Стъпка 5: Запояване на компоненти към печатни платки

Запояване на компоненти към печатни платки
Запояване на компоненти към печатни платки
Запояване на компоненти към печатни платки
Запояване на компоненти към печатни платки
Запояване на компоненти към печатни платки
Запояване на компоненти към печатни платки
Запояване на компоненти към печатни платки
Запояване на компоненти към печатни платки

Всички платки пристигнаха и бях наистина впечатлен от качеството. Не съм имал опит с други производители, но не бих се поколебал да използвам отново Aisler.

Следващата задача беше да запоя всички компоненти, което беше труден процес, но уменията ми за запояване значително се подобриха. Започнах с пълните суматорни платки и запоявах компонентите, започвайки с транзистори, след това 1K резистори, след това 10K резистори. Следвах подобен метод, за да запоя останалите компоненти върху I/O и IC платката. След като всяка платка с пълен Adder беше завършена, аз ги тествах по същия метод като пълната добавка на макета. Изненадващо, всички дъски работиха правилно без проблем. Това означаваше, че дъските са правилно насочени и че са запоени правилно. Преминете към следващата стъпка!

Стъпка 6: Завършване на печатни платки за подреждане

Довършване на печатни платки за подреждане
Довършване на печатни платки за подреждане
Довършване на печатни платки за подреждане
Довършване на печатни платки за подреждане
Довършване на печатни платки за подреждане
Довършване на печатни платки за подреждане

Следващата задача беше да запоите всички щифтове на заглавието към всяка дъска. Трябваше също да добавя джъмперни проводници между правилния щифт на заглавката и входовете/изходите на платките Full Adder (A, B, Cin, V+, GND, Sum, Cout). Тази стъпка би могла да бъде избегната, ако сте проектирали различни печатни платки за всяко ниво на схемата на суматор, но аз исках да минимизирам дизайна и разходите, като създам само една ПХД с пълна сума. В резултат на това връзките към тези входове/изходи изискват джъмперни проводници. Представената схема е как изпълних тази задача и кои щифтове бяха използвани за всяко ниво на дъските Full Adder. Изображенията показват как съм запоял джъмперните проводници за всяка платка. Започнах със запояване на безплатни проводници към правилните щифтове на заглавката. След това запоявах заглавката към печатната платка. След като закрепих щифтовете на заглавката с джъмперни проводници, запоявах свободните краища на джъмперните проводници към правилните проводници на печатната платка. Снимката по -горе показва близък план на щифтовете на заглавката със споените проводници на джъмпера.

Стъпка 7: Захранване на веригите

Захранване на веригите
Захранване на веригите
Захранване на веригите
Захранване на веригите
Захранване на веригите
Захранване на веригите

Планирах да използвам 12V DC захранване с барел за този проект, така че проектирах I/O интерфейсната платка да има DC барел жак/конектор за входящата мощност. Тъй като използвах една и съща I/O платка и исках да използвам единствено захранване, което ми трябваше за регулиране на напрежението до 5V, тъй като това е максималният вход за SN7483A IC. За да постигна това, имах нужда от 5V регулатор и превключвател, който можеше да превключва между 12V и 5V. Схемата по -горе показва как свързах захранващата верига заедно.

Стъпка 8: 3D отпечатване на основата

3D печат на базата
3D печат на базата
3D печат на базата
3D печат на базата
3D печат на базата
3D печат на базата

Сега, когато всички кабели и запояване са завършени, трябваше да разбера как всичко ще се държи заедно. Избрах CADing и 3D печат, дизайн, който да побере и покаже всички части на този проект.

Съображения относно дизайна Имах нужда от места за монтиране на печатни платки с болтове и стойки. Подредените суматори са най -привлекателните визуално и исках да ги показвам, когато не се използват, затова исках място за съхранение на IC печатната платка. Имах нужда да приспособя захранващата верига с изрези за превключвателя и жак/съединител за DC барел. И накрая, исках някакъв вид витрина на корпуса, за да се предотврати събирането на прах в отворените печатни платки, така че имах нужда от място, където да може да седи корпусът.

3D моделиране Използвах Fusion360 за проектиране на основата. Започнах с размерите на печатната платка и разстоянието между монтажните отвори. След това използвах поредица от скици и екструзии, за да задам височината и размера на основата с точките за монтаж на печатни платки. След това направих изрези за корпуса и захранващата верига. След това направих зона за съхранение на IC платката, когато не се използва. Накрая добавих някои довършителни детайли и ги изпратих на Cura, моя софтуер за нарязване.

Печат Избрах черна PLA нишка. Печатът отне малко повече от 6 часа и стана страхотен. Изненадващо, всички размери бяха правилни и всичко изглеждаше така, сякаш ще пасне правилно. Снимката по -горе показва отпечатъка, след като добавих стойките в монтажните отвори. Бяха идеално подходящи!

Стъпка 9: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

Поставете противостоянията. Поставих всички стойки в монтажните отвори на основата.

Поставете захранващата верига в основата. Бях свързал всичко заедно и извадих всички компоненти през отвора за превключвателя. След това поставих жака/адаптера за захранване в задната част на основата. Натиснах 5V регулатора в слота му и накрая превключвателят успя да бъде поставен на място.

Монтирайте I/O печатната платка. Поставих IC печатната платка в нейното място за съхранение и поставих I/O интерфейсната платка отгоре. Завинтих печатната платка, използвайки 4x M3 болтове и шестоъгълен драйвер. Накрая включих жака за DC барел в печатната платка.

Подредете печатните платки на Adder. Подредих първия Adder на място. Завинтих задната част на печатната платка в задните монтажни отвори с 2 стойки. Повторих този процес, докато последният Adder не беше на мястото си и го закрепих с още 2 болта M3.

Направете заграждението. Използвах 1/4 акрил за корпуса. Измерих крайната височина на проекта и с CAD размерите изрязах 5 парчета за страните и отгоре, за да направя обикновена кутия с отворено дъно. Използвах епоксидна смола за лепене Накрая шлайфах малък изрез с половин кръг от дясната страна, за да побере ключа.

Готов за изчисляване

Стъпка 10: Изчисляване и сравнение

Image
Image
Изчисляване и сравнение
Изчисляване и сравнение
Изчисляване и сравнение
Изчисляване и сравнение

Включете новия си калкулатор и започнете да добавяте! Диаграмата от база 10 до база 2 може да се използва за бързо преобразуване между двоични и цели числа. Предпочитам да настроя входовете и след това да натисна "равно", като завъртя ключа за захранване и наблюдавам двоичния изход от светодиодите.

Сравняване на дискретни компоненти с интегрална схема. Сега можете да разглобите пълните добавки и да включите SN7483A IC в I/O платката. (Не забравяйте да завъртите превключвателя в обратна посока, за да захранвате IC с 5V вместо с 12V). Можете да извършите същите изчисления и ще получите същите резултати. Доста впечатляващо е да се мисли, че както дискретният компонент Adder, така и IC функционират по един и същи начин само в много различна скала на размерите. Снимките показват едни и същи входове и изходи за вериги.

Стъпка 11: Заключение

Надявам се, че този проект ви е харесал и сте научили толкова, колкото и аз. Доста удовлетворяващо е да научите нещо ново и да го превърнете в уникален проект, който също изисква усвояване на ново умение като дизайн/изработка на печатни платки. Всички схеми са изброени по -долу. За всеки, който се интересува, мога също да свържа моите PCB Gerber файлове, за да можете да направите свой собствен 4-битов двоичен калкулатор. Приятно правене!

Препоръчано: