company_banner

SB181: логический вычислитель на базе АЛУ 74LS181

Автор оригинала: Simon Boak
  • Перевод


Уже какое-то время в моей мастерской дожидаются своего проекта пара микросхем АЛУ 74LS181. Но так как мысль о создании на их базе целого процессора была несколько пугающей, я решил задействовать эти чипы в роли «логического вычислителя»: своеобразного 8-битного калькулятора, который получает шестнадцатеричные входные данные и отображает результаты различных логических операций в двоичном и hex-форматах. Будучи собранным исключительно на базе логики микросхем 74-й серии без какого-либо микроконтроллера или ЦПУ, такое устройство оказывается удобным помощником в 8-битном программировании.

Описание схемы


Микросхема шифратора 74C923 на 20 клавиш (хотя подключена она только к 16) получает пользовательский ввод. В зависимости от положения движкового переключателя вводимое число сохраняется в регистре А, регистре В или функциональном регистре. Переключатель просто перенаправляет стробирующий импульс Data Available из 74С923 на вход синхронизации соответствующего регистра. Резистор подтягивает входы синхронизации каждого регистра на высокий уровень, исключая их произвольное срабатывание в пассивном состоянии. Этот импульс срабатывает до появления на выходе фактических данных, поэтому я просто инвертировал данный сигнал через элемент И-НЕ, чтобы регистры защелкивались на заднем фронте. В противном случае защелки всегда сохраняли бы предыдущую введенную цифру.


Небрежно проложенные провода

Регистры А и В являются 8-битными защелками, использующими 74HC273. Каждое нажатие кнопки сдвигает 4 нижних бита регистра в 4 верхних, и в то же время значение кнопки загружается в нижние 4. Это позволяет вводить 2 шестнадцатеричные цифры одну за другой, как это делается на калькуляторе. Затем содержимое этих двух регистров передается на входы операндов А и В АЛУ 74LS181. Эти сохраненные значения регистров также отправляются на дисплейную плату, где hex-значение отображается двумя TIL311, а двоичное при помощи светодиодной гистограммы.

Функциональный регистр – это 4-битный 74HC175. Несмотря на то, что АЛУ 74LS181 поддерживает множество функций, практическое применение имеет лишь их ограниченное число. Поэтому в данном случае я выбрал те же 16 функций, что и agp.cooper. Отображение вывода кнопочной панели 0-15 в разные значения, требуемые на входах S-функции микросхемы 74LS181, реализуется с помощью EEPROM. Это также означает, что можно выбирать различные функции или их порядок на кнопочной панели просто перепрограммируя ее. То есть я могу приблизительно сгруппировать функции каждой кнопки, расположив простые внизу, а более сложные сверху. В таком случае EEPROM просто обработает этот перенос.

4-битный вывод функционального регистра отправляется обратно на плату клавишного блока. Затем дешифратор 74HC4514, подключенный к светодиодам в каждом переключателе блока клавиш, подсвечивает текущую выбранную функцию.


Логическая плата с тремя регистрами-защелками, EEPROM и двойной 74LS181

Другая кнопка подключена к защелке, основанноq на логических элементах И-НЕ. Это позволяет устанавливать входной сигнал переноса для нижнего 74LS181. Ширина каждого из этих двух чипов АЛУ составляет всего 4 бита, но подключение выхода переноса нижнего к входу верхнего дает уже 8-битное АЛУ. Здесь мне не нужно озадачиваться схемой ускоренного переноса, поскольку это полностью статичная настройка, где не требуется отслеживать синхронизацию или другие тайминги.

Затем сигналы выхода F АЛУ отправляются на плату дисплея, где снова отображаются в hex- и двоичном форматах. Дополнительный светодиод показывает, был ли сгенерирован верхним 74LS181 выход переноса.


Дисплейная плата

Сборка


SB181 состоит из 3 отдельных печатных плат. Это позволило добиться относительно компактного размера корпуса, а также вписаться в стоимость по $2 за JLCPCB.

На плате панели клавиш находятся все кнопки ввода, а также движковый переключатель регистров. Я использовал свичи с подсветкой, купленные на eBay много лет назад, так что производителя или партномер уже не вспомню. Благодаря прозрачности колпачков я смог прямо на кнопки наклеить бумажные этикетки с hex-числом, его двоичным эквивалентом, а также выполняемой функцией. Кнопка, представляющая выбранную в данный момент функцию, подсвечивается постоянно, так что удерживать в памяти ее не нужно.

Используя 3-позиционный движковый переключатель, те же 16 кнопок можно задействовать для ввода различных операндов или применяемой к этим операндам функции.

Основная логическая плата содержит всего 3 регистра-защелки, функциональную EEPROM и пару АЛУ 74LS181. Вывод этих компонентов передается на плату дисплея через шлейф.
Дисплей постоянно показывает значения двух операндов в регистрах А и В, а также вывод текущей функции АЛУ.

Микросхемы TIL311 представляют красивый шестнадцатеричный дисплей. Расстроила меня лишь их стоимость, а также характеристики энергопотребления, которые не позволили запитать устройство по USB. В результате я использовал стандартную схему импульсного источника питания, которая получает 12В при 750мА и понижает их до 5В. Гистограммные дисплеи тоже отлично справляются с отображением двоичных данных, для чего задействуют 8 из 10 доступных светодиодов. Один из оставшихся при этом используется для индикации выхода переноса.

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

В своей схеме я перепутал оси X и Y шифратора клавиш, поэтому для обеспечения правильного расположения чисел пришлось проложить несколько проводов. Я также забыл, что выход переноса 74LS181 активируется низким уровнем сигнала, в связи с чем пришлось сделать перенаправление, пробросив на плате отдельный провод.

Детали корпуса сделаны из алюминия, а в качестве крепежей использованы самозажимные гайки. Боковые стенки я изготовил из ламинированного под дуб МДФ, что придало устройству ретро-подобный облик.


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

Схемы


Плата клавишного блока
Логическая плата
Дисплейная плата


RUVDS.com
VDS/VPS-хостинг. Скидка 10% по коду HABR10

Комментарии 23

    +9
    Вот что с людьми дефицит MCU делает — ушли статьи про Ардуино, теперь делаем прототипы на логике. Скоро на транзисторы перейдем.
      +3
      А там и до ламп недалеко, а за ними электромеханика а-ля Цузе.
        +2
        Лампы достать еще труднее, поэтому за транзисторами пойдет механика. Будет, своего рода, киберпанк — «Как напечатать АЛУ на 3D-принтере».
          +2

          А что будет управлять 3д принтером, Аналитическая машина? Боюсь, что Разностная эту задачу не потянет.

            +2
            Так чипы производятся, но если дефицт сохранится, то поставки будут только для производств, по лицензии государства. Для обычных людей будет доступен только конечный продукт и только в обмен на сломанный. Откроется черный рынок микросхем, рост цен на них обгонит криптовалюты. И вот тут настанет звездный час моих запасов К155* — ну, так я объясняю почему эти коробки нельзя выбрасывать.
        +2
        Ага, туториал «Как за n вечеров сделать себе ОЗУ на ферритовых сердечниках»
          0

          Полезное бисероплетение.

        +2
        У корпуса этого устройства деревянные боковины.
        У многих радиол и усилителей тоже часть корпуса из дерева.
        При каких условиях можно делать корпус электронного/электрического устройства из дерева?
        Что можно, что нельзя?
        Вопрос практический, мне придется делать самодельный корпус для ПК, потому что на рынке нет ни одного подходящего, и хочу переднюю панель и боковые стенки сделать частично деревянными и фанерными, чтобы он был похож на аудиосистему рядом с которой он будет стоять, ну и надеюсь что это упростит конструкцию.
        Как обеспечить безопасность на случай взрыва конденсатора или КЗ?
        Если с ламповым усилителем все понятно, в деревянный корпус ставится закрытое со всех сторон металлическое шасси, из которого наружу торчат только лампы и трансформаторы, то с компом не очень понятно.
        Блок питания находится в собственном металлическом корпусе, а вот материнская плата с процессором и кулером, платы расширения и накопитель окажутся в объеме, который с трех сторон закрыт металлическим листом, и с трех — деревом и фанерой.
          +2

          Ещё ламповые телевизоры были в деревянных корпусах, а там высоких напряжений и температур полно, и в целом были весьма пожароопасными приборами.

            0
            Кстати да, в них дерево от электрики вообще никакой металлической перегородкой не отделено.
            Еще вспомнились активные колонки из МДФ, они еще и синтепоном внутри набиты.
            +1
            Вообще ламповая техника была весьма пожароопасной, и там шасси представляло просто металлическую раму с платами, а провода были открытыми. Плюс лампы грелись намного сильнее, чем современная техника. Так что можно смело делать деревянный корпус. На случай КЗ у вас предохранитель, взрыв конденсатора пожар не вызывает.
            0
            Опять не очень качественный перевод.

            В своей схеме я смешал оси X и Y шифратора клавиш, поэтому для обеспечения правильного расположения чисел пришлось проложить несколько проводов.


            Смешать можно ром с пепси-колой, а в оригинале, подозреваю, mixed в значении «перепутал».

            На фоне этого бледнеет даже «защелка на основе элемента И-НЕ». Нужно проявить чудеса изворотливости и неведомую магию, чтобы на элементе И-НЕ сделать защелку.
              +1
              Спасибо за замечания. Насчет смешивания рома все верно подмечено, а вот насчет защелки попрошу уточнить. К примеру, вот выдержка из учебного пособия «Базовые элементы цифровой техники»:

              Ну и вообще, если есть какие-то еще замечания, буду рад обсудить в лс и по итогу обязательно внесу правки в материал.
                0
                Надо посмотреть схему, но я уверен, что речь о всем хорошо известном RS-триггере на двух элементах И-НЕ. То, что в английском «gate based circuit» упомянут гейт в единственном числе, не значит, что защелка так на нем и построена. Эквивалентный и правильный русский перевод был бы «на элементах И-НЕ».
                  0
                  Схема приведена ниже.
                    0
                    На схеме 2 (два) гейта создают защелку. Третий просто буфер для светодиода подсветки кнопки.
                      +1
                      Да, насчет 2 (не один) я уяснил и исправил. Благодарю.
                        0
                        Да это понятно.
                  +2
                  Другая кнопка подключена к схеме-защелке, основанной на логическом элементе И-НЕ. Это позволяет устанавливать входной сигнал переноса для нижнего 74LS181.

                  Оригинал:
                  Another button is connected to a NAND gate based latch circuit. This allows for setting the carry input for the lower 74LS181.

                  Смотрим схему.

                  image



                  Чудеса изворотливости и неведомая магия с конденсаторами и резисторами. И, вуаля, защёлка готова.
                    0
                    Сходу не смог понять, что это за защелка такая, пришлось промоделировать в Everycircuit. Оказалось, это счетный триггер, переключаемый однократным нажатием кнопки :)

                      0
                      Да на самом деле банальная схема для избежания дребезга контактов. Там конденсатор даёт задержку.
                      Картинку нужно загрузить на web.habrastorage.org и потом прикрепить, точно так же как в ЖЖ было.
                        0
                        Да на самом деле банальная схема для избежания дребезга контактов. Там конденсатор даёт задержку.


                        Для меня оказалась вовсе не банальной (ну или хорошо забылась). А RC-цепочек там две, и перекидывается триггер однократным нажатием кнопки.

                        Спасибо, картинку переброшу на хабрастор.
                          0
                          Самое забавное, что это фактически триггер на двух НЕ-элементах (тут И-НЕ используется потому, что у автора они были).

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое