Обычно, если при разработке какого-то устройства требуется, чтобы число импульсов, подсчитанных счетчиком отображалось на каком-либо цифровом табло в десятичном виде, сам счетчик строят по двоично-десятичной схеме, так чтобы были четырехразрядные двоично-десятичные разряды, коды с выходов которых подают на дешифраторы, рассчитанные на обслуживание семисегментных индикаторов.
Такая схема всегда получается громоздкой и не всегда удобной со схемотехнической точки зрения. К тому же если требуется отображение в не десятичной системе, а например в шестиричной (как в случае с электронными часами, когда нужно отображать 0-59 секунд или минут), приходится вводить схемы ограничения счета счетчиков.
Но можно поступить и другим способом, причем, при этом двоичная информация, поступающая на вход такого дешифратора может быть отображена как угодно, любыми символами, которые может воспроизвести семисегментный индикатор, и в любом порядке. Если в качестве дешифратора использовать ППЗУ, которую, естественно, можно запрограммировать как угодно.
Используя распространенную микросхему ППЗУ КС573РФ2 можно получить дешифратор, на вход которого можно подавать 9-ти разрядный двоичный код, а на выходе, на трехразрядном цифровом табло, получить, например, десятичные числа от 000 до 511, либо 512 каких-либо других чисел или знаков в любом вообразимом порядке.
На рисунке показана одна из возможных схем такого дешифратора. ППЗУ КС573РФ2 имеет достаточно входов чтобы принять девятиразрядный двоичный код, но выходов всего восемь, чего явно недостаточно для обслуживания трех семисегментных индикаторов (для них нужен 21 выход). Поэтому, чтобы не применять три микросхемы ППЗУ (по одной на каждый индикатор) в этой схеме реализована, программным способом, динамическая трехразрядная индикация. Для приема двоичного кода используются девять входов микросхемы ППЗУ, на оставшиеся два входа подается постоянно меняющийся код с выхода дополнительного счетчика D1 - К561ИЕ8.
Счетчик десятичный, но тем не менее, он включен так, что логические уровни с его выходов "0" и "1", поступая на эти два входа микросхемы ППЗУ, изменяют код на них таким образом : "00", "01", "10", и так по кругу. Это переключает три программных столбца микросхемы ППЗУ, в каждом из которых записана цифра (или символ) для одного из семисегментных индикаторов. Но этот семисегментный код подается на входы всех индикаторов одновременно, а выбор того, какой из данных индикаторов должен светится при выборке какого из трех программных столбцов, выполняется тремя транзисторными ключами на VT1-VT3.
Таким образом, при коде на выводах 22 и 19 микросхемы D2 "00" открывается транзистор VT3, при коде "01" — VT1, а при коде "10" — открывается VT2. Для осуществления динамической индикации на вход счетчика D1 нужно подавать импульсы частотой 100-1000 Гц КМОП или ТТЛ-уровня.
Теперь непосредственно о программировании. Данные на индикатор младшего разряда записываются в столбец по адресам с ООО по 1FF, данные по второму разряду записываются в второй столбец, по адресам с 200 по 3FF, данные по старшему разряду записывают в третий столбец, по адресам с 400 по 5FF.
При использовании индикаторов с общим катодом (как на схеме), для синтеза десятичных чисел требуется записывать такие коды:
Для того чтобы получить вместо цифр другие символы или знаки, потребуются программировать другие коды.
Вместо микросхемы КС573РФ2 можно использовать другие (КС, К, КР, КМ) 573РФ2 или 573РФ5, а так же аналогичные ПЗУ серии 556РТ.