Как собрать калькулятор своими руками

Как собрать калькулятор своими руками

Самодельный калькулятор на ОМЭВМ К1816ВЕ39

Долгое время зрело желание собрать самодельный калькулятор, чтобы и клавиши большие, и индикатор яркий. В продаже с прошлого века такового не наблюдалось, да и что такое «купить»?

Однажды на сайте ZX-PK.RU открылся тред про сборку ЭКВМ на базе микроконтроллера К1816ВЕ39. И Сергей Фролов, владелец сайта-музея Советской цифровой электроники, сообщил, что ранее уже выпускался такой калькулятор, «Элекон МК», как на фото:

Сергей любезно отсканировал руководство по эксплуатации и схему калькулятора, а также считал оригинальные ПЗУ, за что выражаю ему сердечную благодарность. Копия архива размещена тут. Было решено собрать клон Элекона (точнее — инженерный макет), но на более привычной элементной базе, которая просто валялась под руками.

Итак, оригинальная конструкция была собрана на базе КМОП-микросхем серии 561, 571 и 1109, а также на тёплом ламповом индикаторе. У нас же под руками была ТТЛ-логика и светодиодные матрицы с общим «минусом». Проанализировав оригинальную схему и выкинув из неё ненужное (а именно всё, что было связано с выводом на печать, а также многое другое , что было сделано разработчиками «про запас»), получили достаточно простой проект, состоящий всего из восьми микросхем (в оригинале в два раза больше):

Как сказано выше, сокращение функций сократило количество комплектующих. При этом первоначально планировалось использовать родную прошивку, которая должна была разместиться в одной флеш-ПЗУ объёмом 128К (просто их много оставалось со старых материнок), что давало возможность в последующем править прошивку под свои нужды с особой лёгкостью. Количество клавиш также уменьшилось, был удалён и переключатель рода работ. Дешифратор знакоместа занимает один корпус вместо трёх, регистр индикации — один корпус вместо двух, дешифратор устройств ввода/вывода — один корпус с транзисторным инвертором, имеющий нужную логику работы , но иную схемотехнику . Единственно е , что пришлось установить кучку транзисторных ключей, но это дало нам возможность применить различные виды индикаторов, как с общим «минусом» (собранный реал), так и с общим плюсом (достаточно немного перекоммутировать питание транзисторов). Так что всё вроде в железной области оказалось просто.

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

Не понравились получающиеся размеры и был создан индикаторный блок, содержащий в себе дешифратор знакомест 155ИД3, регистр индикации 1533ИР27 (можно заменить на ИР23) и второй регистр индикации памяти 155ТМ8, а также свора транзисторов . С левой стороны 13-разрядного сборного индикатора расположены четыре светодиода, подключённые к ТМ8, индицирующие использование специальных регистров памяти — первый сверху, четвёртый снизу.

Всё это было в последующем собрано вместе в единую конструкцию:

Основные чипы располагаются с обратной стороны индикатора:

Как плата индикатора, так и плата вычислителя вязал и сь МГТФ, который после первого включения и проверки был пропитан до поверхности платы термопластиком («китайскими соплями»). Это позволяет при необходимости, сняв кусочек пластика, подкорректировать распайку, но в целом конструкция получается достаточно прочная, не позволяющая проводу оторваться от места пайки. Вот тут ещё немного общего вида:

Конструкция заработала сразу же (утрирую конечно, кое-что я укосячил ;), но в целом это правда), потребляемый ток — 200 мА, что суммарно лучше, чем у оригинала (самые тёплые микросхемы — ИД3 и АП6).

Следующей задачей стала адаптация имеющегося софта под используемый индикатор. Дело в том, что в оригинальном ламповом индикаторе сегмент знака числа в крайнем левом разряде не подключен к аналогичным сегментам в остальной части индикатора, а соединён с децимальной точкой. Знак переполнения «Е» также единичен и подключен к сегменту «G» (нижнее подчёркивание). Вот мы и получили при отрицательном 12-разрядном числе в левом разряде «точку» и «подчёркивание» при ошибке вычисления. Нехорошо.

Читайте также:  Потолок с гипсокартона своими руками зала

Не буду долго расписывать проведённую неделю в попытках разобраться в дизассемблированном коде, в прокате его в древнем симуляторе AVSIM48 , в практически случайном нахождении нужного куска кода, уяснении великой логики отечественных разработчиков (которые кроме индикации нужных кодов вывели в эту же ячейку и технологическую информацию) и новых попытках уместить свой кусочек в полностью заполненную страницу памяти. Но, раз мы не используем более печатающее устройство, то и часть старого кода оказалось возможным затереть и втиснуть своё. Всё, теперь новичок имеет привычную нам индикацию.

Исправленный код интересующиеся могут скачать тут. Разумеется, весь код не правился и в нём остались рудименты от вывода на печать.

Следующий шаг — наклейки на клавиатуру и изготовление корпуса. Начинаем с последнего. Из пенопласта вырезаем болван, а также нарезаем из толстой фанеры закладные, к которым впоследствии будет крепиться плата.

В закладные вворачиваем/вбиваем небольшие шурупы/гвоздики так, чтобы их шляпки торчали миллиметра на полтора-два. Вставляем их в болван.

Оклеиваем болван тонкой бумагой — газетами, бумажными полотенцами, остатками писчей бумаги, используя клей ПВА. Предварительно можно нарезанную бумагу слегка размочить водой, чтобы удобнее было её выглаживать, убирая воздушные пузыри. Через три слоя бумаги оклеиваем слой бинтом или старой марлей и сутки просушиваем. Далее ещё три слоя и снова сушим. Достаточно наклеить 10-12 слоёв, что даст нам толщину корпуса около 3 мм. По центру, где будет клавиатура, можно особо не клеить.

После просушки всей конструкции, желательно в тёплом месте, вынимаем болван. Кое-где он может приклеиться к бумаге, но это не важно.

Закладные держатся крепко, поскольку при обмазке клеем и бумагой шляпки шурупов и гвоздей хорошо укрепились в «мясе» «композитного» по своей сути материала.

Прорезаем отверстия для клавиатуры и индикатора и примеряем.

Не забываем про пузичко, делаем его из 10-мм фанеры, используя в качестве ножек резиновые крышечки от медицинских пузырьков:

Накладываем первый слой шпатлёвки и ждём высыхания.

После того, как первый слой шпатлёвки (с мраморной крошкой кстати) высохнет, шлифуем его, смотрим косяки, накладываем следующий слой, сушим, шлифуем, ещё подмазываем. После чего окончательно шлифуем, красим, подкрашиваем, находим белую матовую самоклейку, печатаем картинки клавиш, наклеиваем, и получаем вот такого красавца.

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

Немного поговорим о замене элементов. Разумеется, что многие из них возможно применить только как функциональный аналог, с коррекцией схемы.

КР1816ВЕ39 — КР1816ВЕ49, КА/КР1835ВЕ39/49, КМ/КР1850ВЕ39/40/49/50, либо зарубежные аналоги 80 39/ 49 , 80С39/49 , 8749 или 8050.

ПЗУ — в конструкции применено флеш-ПЗУ ёмкостью 128К, что было снято с устаревших материнских плат. Возможна установка любых ПЗУ ёмкостью от 4К, но предпочтительнее флеш-типа в связи с простотой процедуры прошивки и очистки. ПЗУ типа РФ2/РФ5 тоже возможно использовать, но файл прошивки бить пополам, да и схему подключения придётся изменять.

555ИР22 — 589ИР12, четыре 155ТМ2 или 555ИР23 / ИР27 (три последние с инвертором в цепи / ALE ).

555ИР27 — 555ИР23 (большее потребление по питанию), четыре 155ТМ2, две 155ТМ8 / ТМ9, 589ИР12 с инвертором в цепи записи (11-я ножка).

155ТМ8 — 155ТМ9, две 155ТМ2.

555АП6 — 555АП4, две 155ЛП8.

155ИД3 — 1533ИД3, две 155ИД4 / ИД7 плюс инвертор.

Любой инвертор может быть выполнен в виде транзисторного ключа, поскольку реальная скорость работы схемы невысока (не более 500 кГц).

Если у нас индикатор с общим «плюсом», то транзисторы 8550 (КТ814) эммитером подключаем к «плюсу» питания, коллекторы — на знакоместа. Транзисторы 945 (КТ315) эммитерами на «массу», коллекторы, через токоограничивающие резисторы, к сегментам.

Именно из-за широких вариаций замены деталей автор не видит смысла проектировать печатную плату.

Обсудить конструкцию можно в следующих форумах:

Источник

Как работает калькулятор? Создаём свою вычислительную машину! #1

В данной статье я расскажу об основах цифровой схемотехники. Мы рассмотрим базовые логические элементы, работающие на основе транзисторов и соберём свой собственный калькулятор!

Читайте также:  Прикроватный стол для ноутбука своими руками

Вторая часть статьи.

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

Мы рассмотрим один из самых простых примеров такого вычислительного устройства — калькулятор. Нашей задачей будет создать машину, которая сможет складывать два положительных числа.

А начнем мы с самого важного.

Булева логика

Булева логика — это очень простая штука, знакомая практически всем. Её хорошее понимание нужно для того, чтобы однозначно и ясно понимать алгоритм построения компьютера.
Начнём с главного определения:
Высказыванием называется любое утверждение, для которого можно сказать истинно оно или ложно.
Примеры:
Высказывание \(A\) гласит, что \(3 — 2 = 1\). Очевидно, что \(A\) верно.
Высказывание \(B\) гласит, что \(3 — 2 = 2\). Понятно, что \(B\) не верно.

Высказывания можно комбинировать.
Самые важные и часто используемые комбинации — это операция «ИЛИ», операция «И» и операция «НЕ».
Для них я приведу так называемые таблицы истинности.

Таблица истинности нужна для того, чтобы определить истинность операции при разных значениях параметров:

Булева логика очень удобна в схемотехнике: истина — напряжение высокое, ложь — низкое.
Высокому напряжению сопоставляют \(1\), низкому — \(0\).
Помимо высказываний, мы можем работать с двоичными числами, ведь последовательности из ноликов и единичек можно сопоставить последовательность высоких и низких напряжений:

Двоичный сумматор через логические операции

Почему для того, чтобы суммировать нужны логические операции (вентили)? Всё дело в том, что логические операции — это очень просто и удобно, ведь они позволяют делать проверки и в зависимости от результата выполнять разные действия. Это очень похоже на условные операторы в программировании.

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

Для сложения двух двоичных чисел нужно несколько раз сложить цифры из одинаковых разрядов. Разберёмся с тем, как это сделать с помощью логических элементов.
Сумма двух цифр равна единице, если одна из них равна единице. В случае, когда обе цифры равны нулю или единице сумма будет нулевая:

Легко проверить, что следующая схема из логических элементов как раз соответствует этой таблице истинности:

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

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

Сейчас лучше, но в завершение нужно учесть перенос единицы из предыдущего разряда.

Схема получилась достаточно громоздкая, но пугаться её не стоит, ведь происходит следующее: мы результат сложения \(A\) и \(B\) складываем с тем, что было перенесено из предыдущего разряда. То есть мы просто дублируем схему сложения:

Единица для переноса в следующий разряд получается либо если \(A\) и \(B\) равны единице, либо если сумма \(A+B\) с единицей из предыдущего разряда равна единице.
Все возможные комбинации:

Теперь мы умеем складывать цифры поразрядно, учитывая переносы в следующий разряд:

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

На рисунке показан 4-x битный сумматор, но наращивая схему можно легко увеличить количество бит.
Осталось решить последнюю проблему — собрать логические элементы.

Транзистор

Мы будем конструировать логические операции с помощью транзистора — радиоэлектронного компонента из полупроводникового материала, обычно с тремя выводами, способного от входного сигнала управлять током в выходной цепи.
В настоящее время транзистор является основой схемотехники подавляющего большинства электронных устройств и интегральных микросхем:

Читайте также:  Ограждение для елки своими руками

Почему для построения операций удобно использовать транзистор? Дело в том, что транзистор — единственный простой способ собрать логический элемент (А значит и любое вычислительное устройство).

Логические операции с помощью транзисторов

Начнём с операции отрицания (НЕ).

Если на входе единица, то транзистор открыт и ток идет от питания к земле по пути наименьшего сопротивления. Чтобы на выходе было большое сопротивление нужен резистор на входе следующего элемента. У нас они будут на \(10 kOm\). Резистор на \(1 kOm\) нужен для того, чтобы не происходило короткого замыкания. На выходе получаем ноль.
Если на входе ноль, но транзистор заперт и ток от питания идёт на выход. То есть на выходе единица.
Получилось как раз то, что нужно.

Для построения операции «И» нужно поставить два транзистора последовательно. Таким образом элемент сможет пропускать ток только при условии, что оба транзистора открыты:

Для построения операции «ИЛИ» нужно поставить два транзистора параллельно. Таким образом элемент сможет пропускать ток, если один из транзисторов (или оба) открыт:

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

На эту тему на моём YouTube канале есть видеоролик, посвященный этой теме, советую подписаться и узнавать о таких масштабных проектах первым 🙂

Вторая часть статьи.

Друзья! Я очень благодарен вам за то, что вы интересуетесь моими работами, ведь каждый пост на сайте даётся очень непросто. Я буду рад любому отклику и поддержке с вашей стороны.

Если у вас остались вопросы или пожелания, то вы можете оставить комментарий (регистрироваться не нужно)

Крутяк, продолжай в том же духе!

Дата: 22-07-2019 в 00:58

Дата: 01-08-2019 в 16:38

Дата: 14-08-2019 в 00:20

А как соеденять суматоры я не понял
———————————-
Нужно подключить их так, чтобы перенос в следующий разряд предыдущего сумматора был соединён с переносом из предыдущего разряда следующего сумматора 🙂

Дата: 14-08-2019 в 00:48

Полезная вещь для молодых ребят.

Дата: 22-08-2019 в 19:48

Подписался на канал только от этого видеоролика, не смотря другие понял, что канал надо поддержать.
А ещё хотелось бы получить возможность посмотреть на схему из этого видео. К примеру я не знаю, как сделать исключающее или. А по схеме я тоже самого собрать сумматор.
——————————————————
Спасибо за поддержку Дата: 03-11-2019 в 05:15

Дата: 26-01-2020 в 18:08

О боже, я научился строить модули алгебры логики, а затем и калькулятор в майнкрафт

Дата: 05-05-2020 в 15:35

В какой программе ты чертил эти схемы?

Дата: 31-05-2020 в 17:40

какая маркировка тронзистора

Дата: 08-07-2020 в 20:41

Дата: 13-07-2020 в 20:57

Откуда берётся сигнал в элементе «не», если на входе его нет?

Дата: 29-07-2020 в 00:46

привет. я уже много раз прочитал. помоему БУМ-БУМ!

Дата: 30-10-2020 в 01:47

Дата: 06-11-2020 в 10:56

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

Дата: 03-12-2020 в 16:29

Дата: 24-12-2020 в 22:55

Я скачал, меня ебали!

Дата: 01-02-2021 в 12:09

Дата: 01-03-2021 в 18:24

Дата: 20-03-2021 в 21:43

Дата: 26-05-2021 в 11:59

Мои курсовые | 30.11.2019: Выложил мои курсовые в открытый доступ. Теперь они отображаются в колонке слева под новостями.

Для будущих авторов | 12.10.18: Если вы хотите стать автором статей на сайте и получить подтвержденный аккаунт, то обращайтесь на почту! support@ilinblog.ru

Обновления | 21.08.18: Добавлена возможность комментировать статьи. Сайт адаптирован под мобильные устройства.

Обновления | 19.01.18: Добавлена возможность добавления математических формул в статьи посредством языка latex. Пример использования тут. Также добавлена возможность редактирования статей.

Информация о пользователях | 28.10.17: Расширена функциональность страницы пользователей, теперь можно добавить статус и личную информацию.

Источник

Оцените статью
Своими руками