Найти в Дзене
Еремей Маниевый

Калькулятор на транзисторах своими руками. Заключительная часть.

Оглавление

Привет, мои дорогие подписчики и читатели! Задним числом поздравляю всех с Новым 2025 годом и старым Новым Годом :)

Вот и прошли новогодние праздники, отшумели салюты, отзвенели бокалы. Ёлки разобраны, салаты съедены, выходные окончены. Наконец подошло время заканчивать калькулятор и показать идею воплощённую в результат.

Готовая поделка!
Готовая поделка!

Основная схема собрана, осталось к ней прикрутить ввод данных ,переключение режимов сложение-вычитание, склеить, нанести рисунок пользовательского интерфейса, отшлифовать и готово. Итак приступим!

Дополнительные схемы.

Начну пожалуй с переключения режимов. Переключение можно реализовать на одном переключателе и сопротивлении, но так-как у меня в проекте кнопки без фиксации, необходимо собрать триггер, который бы заменял этот переключатель. В сети электронных переключалок пруд-пруди, но всё что мне попадалось на глаза либо 3-х - 4-х транзисторах, либо вообще на микросхемах. Как пример самой простой, по уверению её автора, схемы, которую с добавлением ещё одного инвертора можно было бы приспособить в мой калькулятор:

Элетронный выключатель
Элетронный выключатель

Но мне всё такое не понравилось. Я решил этот вопрос вот как:

Простой и надёжный переключатель
Простой и надёжный переключатель

Посадил на термоклей две кнопки, на их метса, распаял схему на досочке, проверил:

Изнутри
Изнутри
Горит сложение
Горит сложение

По умолчанию всегда включен режим сложения, о чём сообщает светодиод-индикатор режимов. Но стоит нажать на кнопку, как режим переключается на вычитание;

Режим вычитания
Режим вычитания

Ещё раз нажал на кнопку и режим переключился вновь на сложение и так далее.

Теперь можно приступать к системе ввода. Нарисовал для удобства распайки схему на которой микросхема сдвигового регистра перевёрнута:

Разводка 8-ибитного сдвигового регистра для моих нужд
Разводка 8-ибитного сдвигового регистра для моих нужд

Прикрутил это дело к сумматору на доске:

Дело движется к концу
Дело движется к концу

Начал проверять и меня ждал сюрприз:

Дребезг контактов
Дребезг контактов

Вместо последовательного ввода значений, при нажатии на кнопку "ввод" значения прописываются в регистр группами, а не по одиночке. Всему виной дребезг контактов. Устранить эту проблему шунтирующим конденсатором на кнопке или даже RC фильтрами не удалось. И, как говорят интернеты, не удастся никому. Надо собирать схему антидребезга. Неприятно, но что делать!

Схема нужна всего для одной кнопки "ввод". Надо переделать её с предыдущей схемы на эту. Слегка переделываю схему переключалки, получаю вот такое:

Схема антидребезга контактов.
Схема антидребезга контактов.

По началу я хотел поставить триггер Шмитта, но никак не смог заставить его стабильно работать. Схема выше надёжнее, но для ввода значения на кнопку приходится жать два раза. В данном варианте это не принципиально, главное что ввод корректный и стабильный!

Собираю, проверяю - работает. Вот и всё с электронной частью - всё распаяно:

Последний взгляд на внутренности
Последний взгляд на внутренности

Калькулятор готов к финишной сборке. Паяльник , припой, канифоль и схемы больше не нужны. :)

Финишная прямая.

Зачищаю шкуркой потёртые края моей коробочки, наношу клей, стыкую две крышки в один корпус, зажимаю струбцинами и ставлю сохнуть:

Склейка корпуса
Склейка корпуса

Прошло 12 часов и клей надёжно схватился. Иду в сарай снимаю со станка ЧПУ фрезу, ставлю лазерную головку, переношу всё в свою мастерскую-каморку. Опилок уже нет, а в каморке теплее :) Начинаю тестировать режимы прожига на кленовых досочках:

Длительное занятие
Длительное занятие

Наконец получаю приемлемый результат, лучшего добиться не удалось:

Оптимальный вариант
Оптимальный вариант

Для самоделки годится. Закрепляю корпус калькулятора на столик станка с лазером, рисую в ArtCAM'е векторный рисунок интерфейса и начинаю прожиг:

Лазер в работе
Лазер в работе

Увы, опыта с лазером у меня не много, что-то пошло не так и рисунок местами не прожигался. Сделал четыре прохода , но некоторые места остались едва тронутыми. Я выключил станок , решил протереть досочку спиртом. Затем ещё сделал пару проходов , но появилось смещение по оси игрек и рисунок немного стал непрезентабельным. Вышло не так, как хотелось бы, но зато калькулятор собран, работает - считает!

Как всё работает.

Вначале хотелось бы описать чуть-чуть интерфейс, что бы на фото было понятно что к чему. Итак, в верхнем ряду расположена индикация результата из 4 светодиодов(4 бит) и ещё один пятый светодиод - бит переноса:

Верхний ряд
Верхний ряд

Внизу индикация чисел А и Б. Между ними индикация режима сумматора - сложение или вычитание. Ниже расположены 4 кнопки: кнопка значений 0 или 1, кнопка сброса значений, кнопка переключения режимов и кнопка ввода.

Нижний ряд
Нижний ряд

Последовательный ввод записывает 8 бит выбранных значений в ряд , справа налево. От младшего бита к старшему. Что бы ввести значения двух чисел, надо вводить значения начиная со старшего бита числа А последовательно, до младшего бита числа Б.

Важно понимать, что для 4-х бит максимальное количество значений всего 16. Для чисел со знаком значения в десятичной системе варьируются от 0 до 7 и от -1 до -8. Для чисел без знака от 0 до 15.

В связи с тем , что в верхнем ряду присутствует 5-й бит переноса, сумма для чисел без знака может доходить до 30. Если считать числа со знаком, то бит переноса просто игнорируется. Старший бит результата определяет знак числа.

Подробнее о представлении чисел я писал в первой части, если кому не очень понятно, можно поискать дополнительную информацию в интернете.

Некоторые фото с примерами:

Пример сложения
Пример сложения

Сложение: 4+3=7 В двоичной системе: 0100+0011=0111

Вычитание
Вычитание

Действие вычитания: 4-3=1 В двоичной системе: 0100-0011=0001

Сложение
Сложение

Опять сложение: 2+5=7 В двоичной сами уже надеюсь понимаете по фото.

Вычитание
Вычитание

Догадайтесь сами какой результат :) Только не забывайте про старший бит, о котором я писал выше.

Ну и примеры с числами без знака, если мы их начнём считать таковыми:

Условное число без знака
Условное число без знака

5+9=14

Вычитание
Вычитание

5-9= -4

Сложение
Сложение

9+14=23

Вычитание
Вычитание

9-14= -5

На этом всё! Идея реализована в жизнь. Может быть не так красиво, как могло бы быть, но важен принцип и работоспособность:) Всем всех благ, хорошего настроения, творческого вдохновения и удачных реализаций!