Регистры и сумматоры. Исследование 8-разрядного сдвигающего регистра и мегафункции LPM_SHIFTREG, страница 2

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

Схема двухтетрадного двоично-десятичного счётчика

Для реализации схемы были использованы счётчики с модулем счёта 10. При этом перенос в младший разряд второго счётчика (который отвечает за "десятки") производился при формировании переноса из старшего разряда первого счётчика ("единицы"). Таким образом, была получена схема двухтетрадного двоично-десятичного счётчика, на выходе которой могут быть получены значения 0-99.

Схема преобразователя двоичного кода в двоично-десятичный

Для реализации схемы были использованы двухтетрадный двоично-десятичный счётчик на сложение и двоичный 8-разрядный счётчик на вычитание. В схеме был использован импульс запуска ("LOAD"), при формировании которого в начале работы преобразователя в двоичный счётчик загружается преобразуемый код. Как только формируется перенос из старшего разряда в двоичном счетчике, на выходе двоично-десятичного счетчика получается преобразованный код. Ввиду того, что запрещение счета производится по низкому уровню, на выходе переноса из старшего разряда использован инвертор.

Схема накапливающего сумматора

В данной схеме производится последовательное преобразование двоичного кода в двоично-десятичный без сброса в "0" после каждого преобразования. Очередное слагаемое подается при подаче импульса со входа Load. Частота этих импульсов зависит от чисел, которые суммируются – если нужно дождаться, когда счетчик досчитает до нужного значения. Если слагаемые неизвестны, то придется рассчитывать время между слагаемыми, исходя из максимального значения – 100 тактов.

В ходе работы были исследованы:

·  Счетчик К155ИЕ5 и на его основе делитель на произвольное число.

·  Счетчик К155ИЕ7.

·  Мегафункция LPM_COUNTER и построенные на его основе делитель частоты на произвольное число, двухтетрадный двоично-десятичный счетчик, преобразователь двоичного кода в двоично-десятичный, накапливающий сумматор, позволяющий получить сумму в двоично-десятичном коде произвольного числа слагаемых, задаваемых в двоичном коде.

В результате исследования счетчика К155ИЕ5 была получена временная диаграмма его выходов, соответствующая теории. На основе этого счетчика был построен делитель частоты  на 11. Из временной диаграммы видно, что сброс счетчика осуществляется, когда оба значения R принимают значение “1”.

В работе была исследована счетчика К155ИЕ7 в режиме счета на сложение и вычитание. При работе в режиме счета на сложение на выходе переноса P+ формируется импульс отрицательной полярности при достижении счетчиком 15 (1111). При работе в режиме счета на вычитание на выходе заема P- формируется импульс отрицательной полярности при достижении счетчиком 0.

Делитель частоты был реализован двумя способами: в первом счетчик работал в режиме сложения, во втором – в режиме вычитания. В первом случае на вход подавалось число 10, во втором – 245 при КД = 11. При асинхронной загрузке информации длительность импульса cout становиться меньше.

Для реализации двухтетрадного двоично-десятичного счетчика были использованы две мегафункции LPM_COUNTER, выход cout одной из них соединен со входом cin другого для переноса из старшего разряда первого счетчика в младший разряд второго. Выходные значения счетчика лежат в диапазоне от 0 до 99.

Для реализации преобразователя двоичного кода в двоично-десятичный был использован двоичный 8-ми разрядный счетчик и двухтетрадный двоично-десятичный счетчик. При подаче нужного числа на вход счетчик начинал считать и при достижении последнего такта на вход cnt_en  всех счетчиков подается “0”, что запрещает счет.

Для реализации накапливающего сумматора используется та же схема, что и для преобразователя двоичного кода в двоично-десятичный. Следующее слагаемое передается при подаче импулься sload, перед каждым преобразованием не производится сброс счетчика в “0”