После того, как мной были созданы клавиатура и дисплей, я
начал создавать АЛУ. Это часть моего устройства необходима для выполнения
операций над числами, т.е. плюс и минус. Но для этого мы должны иметь "нормальный”
двоичный код. Объясню: у нас есть клавиатура с цифрами (0-9), но когда мы их
вводим, система их видит как отдельные цифры. Чтобы исправить это, нам
необходимо придать цифрам определенные значения (единиц, десяток, сотен). Мы
используем двухзначные числа, значит берем только единицы и десятки. Когда мы
произносим число, то начинаем со старших разрядов (например, сто двадцать пять),
в нашем случае будут идти сначала десятки, потом единицы. Возникает проблема –
что делать с однозначными числами. Ответ прост: от нас требуется ввод
дополнительной цифры 0, т.е. число 7 будет иметь вид 07, иначе калькулятор нас
не поймет:)
С идеей все ясно, но как ее реализовать? Я нашел, как мне
показалось, единственный рациональный вариант – при помощи разложения числа на
составляющие сложить их, используя сумматор. Пример: цифра 9 со значением 90 в
двоичном коде читается как 8+1, но у нас должны быть десятки, следовательно,
8+1 приравниваем к 80+10. Далее число 80 разлаживаем как 64+16, а 10 как 8+2. В
результате мы имеем число 90 в виде 64+16+8+2.
При разработке сумматора я использовал два поршня, это была плохая
идея, но я понял это позже, главное, что работает правильно. Сумматор имеет два
входа и один выход, но мне понадобилось два сумматора для построения
дешифратора из 2(10) в 2 код (попросту не хватало входа для цифры 8).
В АЛУ находятся всего четыре элемента: память, сумматор и
два инвертора (по одному до и после сумматора). Также при АЛУ имеются схемы
управления, которые решают что делать при отрицательном значении числа. Эти
схемы на тот момент были не очень удачными, и иногда давали ошибку при
вычислениях.
На этом новшества вторых суток без сна заканчиваются.
Следующие разработки были связаны с памятью и регистрами, но об этом я расскажу
в другой статье. Хочу заметить, что на тот момент это устройство больше напоминало груду деталей, хотя уже появляются первые зачатки автоматизации.
Общий вид системы:
С появление знаков "+" и "-" изменилась и клавиатура:
Так выглядит память при АЛУ:
Счетчик - важнейшая часть системы автоматизации (о нем в следующей статье):
Возможности: при вводе любой цифры на клавиатуре, она будет последовательно отображаться в ячейках дисплея, кнопка очистить выполняет сброс дисплея и памяти АЛУ; копка "-" выполняет отрицание, кнопка "+" запрещает отрицание; правильно работает декодер из 10 в 2 код, из 10 в 7 код, из 2(10) в 2 код; есть возможность сложения и вычитания однозначных чисел (ответ можно прочитать в двоичном коде)
Следите за появлением новых новостей! Ваш iBorjomi.
15.12.12
|