Проектирование устройств вывода информации с использованием цифрового генератора шаблона в Proteus 8.11

Автор: Татьяна Колесникова (beluikluk@gmail.com)

Статья опубликована в журнале СОВРЕМЕННАЯ ЭЛЕКТРОНИКА № 3/2022

В статье рассмотрено проектирование электронных устройств вывода информации с использованием цифрового генератора шаблона (виртуального прибора, формирующего выходные цифровые сигналы по заданному 8-битовому шаблону) в Proteus. Представлены примеры моделирования схем с применением виртуального терминала, буквенно-цифрового (LM016L) и графического (Ampire 128×64) дисплеев, работающих под управлением одного или двух приборов Pattern Generator, синхронно формирующих выходные сигналы данных или команд. Подробно рассмотрено формирование шаблона данных на экране дисплея генератора, а также создание файла шаблона (для последовательной или параллельной передачи данных или команд) и его применение.

Введение

Использование средств автоматизированного проектирования при разработке электронных устройств преследует следующие цели:
  • сокращение сроков и снижение стоимости разработки и внедрения изделий;
  • уменьшение количества ошибок при проектировании;
  • обеспечение возможности изменения проектных решений и сокращения сроков проверки и тестирования изделий.
Одним из инструментов проверки и тестирования разработанной схемы являются измерительные приборы. В программе Proteus используется большой набор виртуальных инструментов, являющихся программными моделями контрольно-измерительных приборов, которые соответствуют своим реальным аналогам. Также есть виртуальные инструменты, при помощи которых можно визуально отобразить полученную информацию или, наоборот, сгенерировать данные для подачи их в схему. Один из таких приборов – цифровой генератор шаблона, который может быть применён в качестве источника данных и сигналов управления буквенно-цифровыми и графическими дисплеями (в нашем примере микросхемами LM016L и Ampire 128×64).

Работа с цифровым генератором шаблона и виртуальным терминалом в Proteus

Цифровой генератор шаблона формирует выходные цифровые сигналы по заданному 8-битовому шаблону и используется для подачи данных сигналов в моделируемую схему. 
Прибор имеет следующие возможности:
  • внутренний и внешний режимы тактирования и синхронизации;
  • подстройка для тактовой частоты и шкалы переключения;
  • режим отображения шестнадцатеричной и десятичной сетки;
  • загрузка и сохранение шаблона.
  • Прибор имеет следующие выводы:
  • B[0...7] (выход) – шина данных;
  • Q0…Q7 (выходы) – выводы данных;
  • CLKIN (вход) – данный вывод используется для подключения внешнего тактового генератора;
  • HOLD (вход) – положительный сигнал на данном входе приводит к остановке (паузе) генератора шаблона;
  • TRIG (вход) – данный вывод используется для подачи внешнего сигнала синхронизации;
  • OE (вход) – отрицательный сигнал на данном входе запрещает вывод шаблона на выходные выводы генератора шаблона;
  • CLKOUT (выход) – отображение импульсов внутреннего генератора при внутреннем тактировании;
  • CASCADE (выход) – данный вывод переходит в высокое состояние, когда первый бит шаблона поступает на выходы, и остаётся в низком состоянии всё остальное время.
Чтобы добавить цифровой генератор шаблона в рабочее поле программы, нажимают на строку с его названием (PATTERN GENERATOR) на панели INSTRUMENTS (панель открывают нажатием кнопки Virtual Instruments Mode на левой панели схемного редактора) и размещают его мышью в необходимом месте на схеме (рис. 1).

Рис. 1. Выбор цифрового генератора шаблона на панели INSTRUMENTS и его размещение в рабочей области схемного редактора программы Proteus

После запуска симуляции схемы открывается лицевая панель прибора (рис. 2).

Рис. 2. Создание шаблона на дисплее лицевой панели цифрового генератора PATTERN GENERATOR и обзор команд контекстного меню прибора

Шаблон создают вручную на дисплее лицевой панели генератора либо загружают из файла. Дисплей лицевой панели представляет собой таблицу, которая содержит 8 строк, соответствующих 8 битам выходного сигнала, подающегося на выходы Q0…Q7 и/или на шину B[0..7] генератора шаблона. Шаблон на дисплее создают щелчками левой кнопки мыши по пустым ячейкам таблицы, в результате чего ячейки заполняются цветом. Комбинация закрашенных ячеек формирует рисунок/надпись, которую можно сохранить как шаблон для последующего использования. Снимают выделение ячейки повторным щелчком левой кнопки мыши. Для сохранения созданного шаблона или загрузки уже имеющегося (рис. 2) применяют команды контекстного меню:
  • Load Pattern (загрузить шаблон);
  • Save Pattern (сохранить шаблон);
  • Save Pattern As (сохранить шаблон как).
Рис. 3 наглядно демонстрирует работу цифрового генератора шаблона.

Рис. 3. Соответствие комбинации сигналов на выходе цифрового генератора шаблона и комбинации пустых и закрашенных ячеек последнего столбца таблицы лицевой панели прибора

Как видно на рис. 3, комбинация сигналов на выходе прибора соответствует комбинации пустых и закрашенных ячеек последнего столбца таблицы лицевой панели прибора. В качестве элементов отображения сигналов на выходе генератора шаблона используются цветные пробники логических уровней 0 и 1, которые в программе Proteus представлены компонентами LOGICPROBE и LOGICPROBE (BIG) из раздела Logic Probes библиотеки Debugging Tools. 

В нашем примере в рабочее поле проекта добавлены 8 компонентов (рис. 4) LOGICPROBE (BIG), входы которых подключены к выходам Q0…Q7 генератора шаблона.

Рис. 4. Выбор пробника логических уровней 0 и 1 LOGICPROBE (BIG) из раздела Logic Probes библиотеки компонентов Debugging Tools программы Proteus

Визуально отобразить разработанный шаблон можно при помощи виртуального терминала (рис. 5).

Рис. 5. Вывод шаблона на экран виртуального терминала

Прибор добавим в рабочее поле проекта нажатием строки с названием VIRTUAL TERMINAL на панели INSTRUMENTS (рис. 6) и его размещением с помощью мыши в необходимом месте на схеме.

Рис. 6. Выбор виртуального терминала на панели INSTRUMENTS

Подсоединим вывод RXD терминала к выводу Q7 генератора шаблона. Так как виртуальный терминал имеет последовательный интерфейс, то символы шаблона необходимо представить в двоичном коде. Для этого создадим на диске компьютера текстовый файл с кодировкой надписи (рис. 7), сохраним его с расширением *.ptn и загрузим в качестве шаблона.

Рис. 7. Кодирование символов в файле шаблона

В данном случае выведем на экран виртуального терминала слово Proteus. Исходя из таблицы соответствия (табл. 1) символов английского алфавита и двоичного кода, слово Proteus в файле шаблона будет иметь следующий вид:
  • P – 01010000 (0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00);
  • r – 01110010 (0x00,0x80,0x00,0x00,0x80,0x80,0x80,0x00);
  • o – 01101111 (0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x00);
  • t – 01110100 (0x00,0x00,0x80,0x00,0x80,0x80,0x80,0x00);
  • e – 01100101 (0x80,0x00,0x80,0x00,0x00,0x80,0x80,0x00);
  • u – 01110101 (0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x00);
  • s – 01110011 (0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00).

Таблица 1. Таблица соответствия символов английского алфавита и двоичного кода

Необходимо отметить, что строка в файле шаблона, начинающаяся с символа «;», расценивается как комментарий и игнорируется анализатором программы.

В схеме (рис. 5) используется самовозвратная кнопка BUTTON (рис. 8).

Рис. 8. Выбор кнопки BUTTON из раздела Switches библиотеки Switches&Relays

Её нажатие формирует внешний сигнал синхронизации на входе TRIG генератора шаблона, после чего происходит повторный вывод шаблона на экран терминала. Выбор компонентов из базы данных для последующего их размещения в рабочей области редактора Schematic Capture программы Proteus выполняют в окне Pick Devices, которое открывают командой контекстного меню Place/Component/From Libraries или нажатием кнопки P на панели DEVICES (по умолчанию панель расположена в левой части программы и содержит список имеющихся в проекте компонентов). Открывают панель DEVICES нажатием кнопки Component Mode на левой панели инструментов схемного редактора.

Символы «земли» и питания добавляют в схему, выбрав на панели TERMINALS строки GROUND и POWER (рис. 9). Панель открывают нажатием кнопки Terminals Mode на левой панели схемного редактора.

Рис. 9. Открытие при помощи кнопки Terminals Mode панели TERMINALS и выбор символа «земли»

На рис. 10 показаны окна настройки параметров виртуального терминала и генератора шаблона, которые открывают двойным щелчком левой кнопки мыши по размещённому на схеме компоненту.

Рис. 10. Окно настройки параметров: (а) виртуального терминала, (б) генератора шаблона

В окне настроек терминала (рис. 10а) определим значения следующих параметров:
  • Baud Rate – скорость обмена данными (1200 бод);
  • Data Bits – формат пакета данных (8 бит);
  • Parity – контроль чётности (отсутствует – NONE);
  • Stop Bits – количество стоповых битов (1).
В окне настроек генератора шаблона (рис. 10б) укажем:
  • Part Reference – позиционное обозначение прибора, которое можно скрыть или отобразить на схеме установкой/снятием флажка в соответствующем ему чекбоксе Hidden;
  • Clock Rate – частоту внутреннего тактирования (1.200kHz);
  • Reset Rate – частоту внутренней синхронизации (500mHz);
  • Clock Mode – режим тактирования генератора (Internal);
  • Reset Mode – источник и сигнал синхронизации (Async External Pos Edge);
  • Clockout Enabled in Internal Mode – формирование импульсов внутреннего генератора на выводе CLKOUT генератора шаблона при внутреннем тактировании (No);
  • Output Configuration – конфигурация вывода данных (Output to Pins Only);
  • Pattern Generator Script – путь к файлу шаблона на диске компьютера или его имя, если схемный проект и файл шаблона находятся в одной папке (Proteus1.ptn).
Моделирование собранной схемы запускают при помощи кнопки Run the simulation, которая находится в левом нижнем углу окна схемного редактора. Чтобы временно приостановить симуляцию, используют кнопку Pause the simulation, or start up at time 0 if stopped. Остановить моделирование можно при помощи кнопки Stop the simulation.

Проектирование схем с использованием LCD-дисплеев и цифрового генератора шаблона

Управление работой микросхемы буквенно-цифрового дисплея с помощью цифрового генератора шаблона

Визуально отобразить разработанный шаблон можно также и при помощи буквенно-цифрового дисплея, в качестве которого применим микросхему LM016L с разрешением дисплея 16 символов ґ 2 строки. Микросхема LM016L находится в разделе Alphanumeric LCDs библиотеки Optoelectronics (рис. 11) программы Proteus и имеет 14 контактов, назначение которых следующее:
  • Vss – GND;
  • Vdd – напряжение питания +5 В;
  • Vee – напряжение контрастности от 0 до +5 В (настройка контрастности отображаемых на дисплее символов);
  • RS – выбор регистра данных DR (RS – 1) или команд IR (RS – 0);
  • RW – выбор операции чтения (RW – 1) или записи (RW – 0);
  • E – линия синхронизации;
  • D0…D7 – шина данных/команд.

Рис. 11. Выбор микросхемы LM016L из раздела Alphanumeric LCDs библиотеки Optoelectronics

Для подключения микросхемы LM016L к схеме управления используется параллельная синхронная шина данных/команд (D0…D7), вывод выбора операции чтения/записи (RW), вывод выбора регистра данных/команд (RS) и вывод синхронизации (Е). Дисплей работает под управлением контроллера HD44780, система команд которого была рассмотрена в [1]. Микросхема LM016L может работать в двух режимах:
  • 8-разрядном (для обмена информацией используются выводы D0…D7);
  • 4-разрядном (для обмена информацией используются выводы D4…D7).
В качестве примера выведем на экран дисплея LM016L (в 4-разрядном режиме работы) при помощи генератора шаблона строку Proteus->. Для этого создадим в схемном редакторе Proteus новый проект, добавим цифровой генератор шаблона в рабочую область и подключим его выводы Q0 и Q1 к выводам RS и E соответственно, выводы Q4…Q7 к выводам D4…D7 микросхемы LM016L (рис. 12).

Рис. 12. Подключение микросхемы LM016L и генератора цифровых импульсов DPULSE к цифровому генератору шаблона

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

Рис. 13. Выбор генератора DPULSE на панели GENERATORS и окно настройки его параметров

Чтобы добавить генератор в рабочую область проекта, левой кнопкой мыши выбирают строку с названием DPULSE на панели GENERATORS и размещают его мышью в необходимом месте на схеме. Открывают панель GENERATORS нажатием пиктограммы Generator Mode на левой панели инструментов схемного редактора.

Создадим на диске компьютера текстовый файл, в который занесём:
  • кодовые комбинации команд управления микросхемой LM016L (команды установки 4-разрядного режима работы микросхемы, включения дисплея, очистки дисплея и установки курсора в нулевую позицию). Для подачи этих команд задействованы выводы Q4…Q7 генератора шаблона. Для приёма команд микросхемой дисплея задействованы выводы D4…D7;
  • управляющий сигнал приёма микросхемой дисплея команд/данных. Вывод RS микросхемы дисплея используется для приёма сигнала, передаётся сигнал через вывод Q0 генератора шаблона;
  • сигнал синхронизации. Вывод Е микросхемы дисплея используется для приёма сигнала, передаётся сигнал через вывод Q1 генератора шаблона;
  • двоичный код символов строки Proteus->. Для подачи кода символов используются выводы Q4…Q7 генератора шаблона. Для его приёма микросхемой дисплея применяются выводы D4…D7.
Порядок передачи кодовых комбинаций команд и двоичного кода символов, а также соответствие линий генератора шаблона и микросхемы дисплея представлены в табл. 2.

Таблица 2. Порядок передачи кодовых комбинаций команд и двоичного кода символов, соответствие линий генератора шаблона и микросхемы дисплея


Рис. 14. Запись команд и кодировка символов в файле шаблона

Запись команд и кодировка символов в файле шаблона (рис. 14):

; установка 4-разрядной шины
%00100000,
%00100010,
%00100000,
; включение дисплея (старший полубайт команды)
%00000000,
%00000010,
%00000000,
; включение дисплея (младший полубайт команды)
%11110000,
%11110010,
%11110000,
; очистка дисплея и установка курсора в нулевую позицию
; (старший полубайт команды)
%00000000,
%00000010,
%00000000,
; (младший полубайт команды)
%00010000,
%00010010,
%00010000,
; запись двоичного кода символа P (старший полубайт кода)
%01010001,
%01010011,
%01010001,
; запись двоичного кода символа P (младший полубайт кода)
%00000001,
%00000011,
%00000001,
; запись двоичного кода символа r (старший полубайт кода)
%01110001,
%01110011,
%01110001,
; запись двоичного кода символа r (младший полубайт кода)
%00100001,
%00100011,
%00100001,
; запись двоичного кода символа o (старший полубайт кода)
%01100001,
%01100011,
%01100001,
; запись двоичного кода символа o (младший полубайт кода)
%11110001,
%11110011,
%11110001,
; запись двоичного кода символа t (старший полубайт кода)
%01110001,
%01110011,
%01110001,
; запись двоичного кода символа t (младший полубайт кода)
%01000001,
%01000011,
%01000001,
; запись двоичного кода символа e (старший полубайт кода)
%01100001,
%01100011,
%01100001,
; запись двоичного кода символа e (младший полубайт кода)
%01010001,
%01010011,
%01010001,
; запись двоичного кода символа u (старший полубайт кода)
%01110001,
%01110011,
%01110001,
; запись двоичного кода символа u (младший полубайт кода)
%01010001,
%01010011,
%01010001,
; запись двоичного кода символа s (старший полубайт кода)
%01110001,
%01110011,
%01110001,
; запись двоичного кода символа s (младший полубайт кода)
%00110001,
%00110011,
%00110001,
; запись двоичного кода символа ~ (старший полубайт кода)
%01110001,
%01110011,
%01110001,
; запись двоичного кода символа ~ (младший полубайт кода)
%11100001,
%11100011,
%11100001,

Cохраним подготовленный файл с расширением *.ptn. Использование шаблона из файла задают в окне настройки параметров цифрового генератора шаблона Edit Component (рис. 15) в поле Pattern Generator Script нажатием значка открытой папки и выбором необходимого файла на диске компьютера.

Рис. 15. Окно настройки параметров цифрового генератора шаблона, применяемого для управления буквенно-цифровым дисплеем

Открывают окно Edit Component выделением левой кнопкой мыши пиктограммы генератора шаблона в области схемы, последующим вызовом правой кнопкой мыши контекстного меню и выбором в нём пункта Edit Properties. Также в окне свойств генератора шаблона настроим следующие параметры:
  • Part Reference – позиционное обозначение прибора (PATTERN_GEN);
  • Clock Rate – частоту внутреннего тактирования (1Hz);
  • Reset Rate – частоту внутренней синхронизации (266.7mHz);
  • Clock Mode – режим тактирования генератора (Internal (внутренний), External Pos Edge (внешний по фронту), External Neg Edge (внешний по срезу)) – в нашем примере Internal;
  • Reset Mode – источник и сигнал синхронизации (Internal (внутренний источник синхронизации), Async External Pos Edge (внешний асинхронный положительный фронт), Sync External Pos Edge (внешний синхронный положительный фронт), Async External Neg Edge (внешний асинхронный отрицательный фронт), Sync External Neg Edge (внешний синхронный отрицательный фронт)) – в нашем примере Sync External Neg Edge;
  • Clockout Enabled in Internal Mode – формирование импульсов внутреннего генератора на выводе CLKOUT генератора шаблона при внутреннем тактировании (Yes (да), No (нет)) – в нашем примере установлено значение Yes;
  • Output Configuration – вывод данных (Output to Pins Only (вывод данных только на выводы Q0…Q7), Output to Bus Only (вывод данных только на шину B[0..7]), Output to Both Pins and Bus (вывод данных на выводы и на шину)) – в нашем примере Output to Pins Only.
Также для ввода установок генератора шаблона можно использовать его лицевую панель (рис. 16).

Рис. 16. Запрещённая для вывода часть шаблона в области дисплея лицевой панели цифрового генератора PATTERN GENERATOR

В её левой части расположено два окна:
  • CLOCK – в данном окне задаётся режим тактирования генератора: внешний или внутренний. Выбор производится при помощи кнопки посредством многократного её нажатия до тех пор, пока включённый индикатор не будет соответствовать нужному режиму тактирования. Индикаторы не имеют названий, но их функции интуитивно понятны, так как рядом с каждым индикатором визуально отображён значок-подсказка. Если в окне CLOCK был выбран режим внутреннего тактирования, можно подстроить частоту при помощи ручки-переключателя Clock;
  • TRIGGER – в данном окне производится выбор источника синхронизации (внешнего или внутреннего) и сигнала синхронизации (фронт или срез). Если выбрана внешняя синхронизация, то необходимо указать, будет ли она синхронной или асинхронной с тактовым генератором. Выбор всех параметров производится при помощи кнопок посредством многократного их нажатия до тех пор, пока включённый индикатор не будет соответствовать нужному значению. В том случае, если в окне TRIGGER был выбран режим внутренней синхронизации, можно подстроить частоту при помощи ручки-переключателя Trigger.
Внутренний режим тактирования генератора переключается отрицательным фронтом и может быть задан либо до симуляции в окне настройки параметров цифрового генератора шаблона, либо в процессе симуляции на лицевой панели прибора в окне CLOCK. Есть два режима внешнего тактирования: по фронту и по срезу. Чтобы тактирование выполнялось при помощи внешнего генератора, необходимо подключить вывод выходного сигнала внешнего тактового генератора к входу CLKIN генератора шаблона и выбрать один из двух режимов тактирования (по фронту или по срезу) в окне настроек параметров генератора шаблона или на лицевой панели прибора в окне CLOCK.

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

Продвижение по шаблону во время симуляции можно выполнять при помощи кнопки STEP, расположенной в окне CLOCK лицевой панели прибора. При этом симуляция будет длиться до завершения цикла тактового генератора, после чего остановится. Для графического отображения сигналов, формируемых на линиях Q0, Q1 и Q4…Q7 генератора шаблона, воспользуемся виртуальным логическим анализатором, добавление которого в рабочую область проекта выполним выделением левой кнопкой мыши строки с названием LOGIC ANALYSER на панели INSTRUMENTS (рис. 17) и последующим его размещением с помощью мыши на схеме.

Рис. 17. Выбор логического анализатора на панели INSTRUMENTS

Для съёма сигналов с исследуемой схемы логический анализатор имеет 16 выводов и 4 шины разрядностью 8 бит каждая. Лицевая панель прибора открывается автоматически после запуска симуляции схемы. 

Шестнадцать переключателей в левой части панели соответствуют шестнадцати каналам съёма сигналов A0…A15. В следующей колонке отображены имена входов логического анализатора. После запуска симуляции схемы прибор снимает входные значения со своих выводов и отображает полученные данные в виде прямоугольных импульсов на диаграмме во временно́й области лицевой панели.

В правой части лицевой панели рассматриваемого прибора расположена панель управления, на которой находятся два окна: Trigger (Синхронизация) и Horizontal (Развёртка). В окне Horizontal расположено две ручки: Display Scale и Capture Resolution. При помощи первой производится масштабирование отображения диаграммы, при помощи второй выполняется подстройка разрешения. Логический анализатор оперирует последовательно записанными в буфер захвата входными цифровыми данными. Процесс захвата данных запускается кнопкой Capture окна Trigger. Спустя некоторое время после выполнения условий переключения этот процесс останавливается, а кнопка меняет свой цвет при записи и после её завершения. Результат – содержимое буфера захвата – отображается на экране графического дисплея в виде диаграмм, которые представляют сигналы, полученные с входов прибора.

Подсоединим выводы А4…А7 логического анализатора к линиям D4…D7 микросхемы LM016L, а выводы А0, А1 к линиям RS, Е соответственно (рис. 18).

Рис. 18. Подключение виртуального логического анализатора к цифровому генератору шаблона

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

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

Проанализируем работу демонстрационной схемы, представленной на рис. 19. При помощи записанного в файле *.ptn скрипта были даны указания цифровому генератору шаблона через линии Q4…Q7 отправить контроллеру микросхемы LM016L кодовые комбинации команд (если на линии Q0 ноль) или данные (если на линии Q0 единица). Для приёма команд/данных в микросхеме LM016L используются линии D4…D7.

Управляющий сигнал с линии Q0 поступает на вывод RS микросхемы LM016L и подаётся программно. Вывод Q1 генератора шаблона подключён к выводу Е микросхемы LM016L и используется для подачи тактовых импульсов. Выводы Q2, Q3 не задействованы. После запуска симуляции схемы цифровой код, записанный в файле шаблона, отображается на дисплее лицевой панели генератора шаблона в виде белых (логический ноль) и синих клеток (логическая единица). С каждым тактовым импульсом внешнего источника синхронизации выполняется продвижение по шаблону, при этом кодовая комбинация нулей и единиц (пустых и закрашенных ячеек) последнего столбца таблицы лицевой панели прибора поступает на выходы Q0…Q7 цифрового генератора шаблона, откуда передаётся на линии RS, Е, D4…D7 микросхемы дисплея.

Согласно записанному в файле *.ptn шаблону цифровой генератор шаблона формирует на линии Q0 логический ноль, который поступает на вывод RS микросхемы LM016L. В результате чего шина D0…D7 переходит в режим приёма команд, первая из которых переводит микросхему LM016L в 4-разрядный режим работы. После чего через линии D4…D7 выполняется приём команды включения дисплея (рис. 19а) и команды очистки дисплея и установки курсора в нулевую позицию (рис. 19б). Запись байта команды в регистр команд микросхемы LM016L выполняется в два этапа: сначала на выводы D4…D7 подаётся старший полубайт команды, затем младший. Далее согласно записанному в файле *.ptn шаблону цифровой генератор шаблона формирует на линии Q0 логическую единицу, что переводит линии D4…D7 микросхемы LM016L в режим приёма данных, запись которых выполняется следующим образом: сначала на выводы D4…D7 подаётся старший полубайт данных, затем младший. При этом на вывод Е непрерывно подаётся тактовый сигнал, по заднему фронту которого микросхема LM016L считывает информацию (команды/данные). Таким образом, на экран микросхемы LM016L посимвольно выводится строка, двоичные коды символов которой были поданы на шину D4…D7 (рис. 19в). В нашем примере строка Proteus->, которая состоит из 8 символов, отображается на дисплее один раз (рис. 19г).

Зададим вывод определённой части шаблона. Для этого на лицевой панели генератора шаблона в области дисплея определим запрещённую для вывода область шаблона посредством перемещения курсора левой кнопкой мыши. В результате запрещённая область отобразится менее насыщенным цветом (рис. 19д), а на экране дисплея появятся вошедшие в разрешённую область шаблона символы строки. Временны́е диаграммы формирования цифровых сигналов по заданному в *.ptn-файле 8-битовому шаблону показаны на рис. 20.

Рис. 20. Временны́е диаграммы формирования цифровых сигналов по заданному в *.ptn файле 8-битовому шаблону

Управление работой микросхемы графического дисплея с помощью цифрового генератора шаблона

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

Управление графическими дисплеями с помощью цифрового генератора шаблона рассмотрим на примере микросхемы Ampire 128×64 с разрешением дисплея 128×64 точки, которая находится в разделе Graphical LCDs библиотеки Optoelectronics (рис. 21) программы Proteus.

Рис. 21. Выбор микросхемы Ampire 128×64 из раздела Graphical LCDs библиотеки Optoelectronics

Генератор шаблона в данном случае используется в качестве внешнего источника информации (данных/команд). Дисплей микросхемы разделён на два сегмента (левый и правый) шириной 64 пикселя каждый, доступ к которым выполняется при помощи линий CS1CS2. Каждый сегмент представлен 8 страницами памяти размером 8 бит. Микросхема Ampire 128×64 имеет 18 контактов, назначение которых следующее:
  • GND – «земля»;
  • Vсс – напряжение питания +5 В;
  • V0 – напряжение контрастности от 0 до +5 В (настройка контрастности экрана);
  • RS – установка режима приёма информации (RS = 1 данные, RS = 0 команды);
  • R/W – выбор операции чтения (R/W = 1) или записи (R/W = 0);
  • E – линия синхронизации;
  • DВ0…DВ7 – шина данных/команд;
  • -Vout – выход отрицательного напряжения;
  • CS1 – активация левого сегмента дисплея (CS1 = 0 сегмент активный, CS1 =1 сегмент неактивный);
  • CS2 – активация правого сегмента дисплея (CS2 = 0 сегмент активный, CS2 = 1 сегмент неактивный);
  • RST – сигнал сброса контроллера дисплея.
Микросхема работает под управлением контроллера KS0108, который принимает и обрабатывает команды управления (табл. 3) и выводит соответствующую графику на дисплей.

Таблица 3. Система команд контроллера KS0108

Последовательность действий, которые необходимо выполнить управляющей схеме при совершении операции записи по 8-разрядной шине, может быть следующей:
  • установить значение линии R/W = 0 (запись в микросхему дисплея);
  • установить значение линии RS = 0 (приём команд);
  • вывести значение байта команды 00111111 на линии шины DВ0…DВ7 (команда включения дисплея);
  • вывести на линии шины DB0…DB7 значение байта команды выбора страницы видеопамяти;
  • вывести на линии шины DВ0…DВ7 значение байта команды выбора адреса начала вывода изображения в строке;
  • установить значение линии RS = 1 (приём данных);
  • вывести значение байта данных на линии шины DВ0…DВ7.
В качестве примера выведем на левый и правый сегменты экрана микросхемы Ampire 128×64 при помощи генератора шаблона рисунок, двоичный код которого представлен в табл. 4.

Таблица 4. Порядок передачи кодовых комбинаций команд и двоичного кода рисунка, соответствие
линий генератора шаблона PATTERN2 и микросхемы дисплея

В нашем случае понадобятся два таких прибора. Один из них будет генерировать кодовые комбинации команд и данные согласно с инструкциями, содержащимися в файле шаблона Pattern2.ptn, а второй – формировать тактовые импульсы и сигнал приёма команд/данных микросхемой дисплея в соответствии с комбинациями логических нулей и единиц, записанных в виде команд в файле Pattern1.ptn.

Добавим два прибора PATTERN GENERATOR (компоненты PATTERN1 и PATTERN2) в рабочую область проекта и подключим выводы Q0 и Q1 прибора PATTERN1 к выводам RS и E микросхемы графического дисплея соответственно, выводы Q0…Q7 прибора PATTERN2 к выводам DВ0…DВ7 микросхемы дисплея. Для графического отображения сигналов воспользуемся виртуальным логическим анализатором. Подсоединим его выводы А0…А7 к линиям DВ0…DВ7 микросхемы дисплея, а выводы А8, А9 к линиям RS, Е соответственно (рис. 22).

Рис. 22. Схема управления графическим дисплеем при помощи двух приборов PATTERN GENERATOR

Для подачи внешнего сигнала синхронизации на вход TRIG компонентов PATTERN1 и PATTERN2 применим генератор цифровых импульсов, окно настройки параметров которого представлено на рис. 23.

Рис. 23. Окно настройки параметров генератора цифровых импульсов DPULSE×


Создадим на диске компьютера текстовый файл, в который занесём:
  • управляющий сигнал приёма микросхемой дисплея команд/данных. Вывод RS микросхемы дисплея используется для приёма сигнала, передаётся сигнал через вывод Q0 генератора шаблона PATTERN1;
  • сигнал синхронизации. Вывод Е микросхемы дисплея используется для приёма сигнала, передаётся сигнал через вывод Q1 генератора шаблона PATTERN1.
Cохраним подготовленный файл с расширением *.ptn. Присвоим файлу название Pattern1. Порядок передачи кодовых комбинаций сигналов E и RS и соответствие линий генератора шаблона PATTERN1 и микросхемы дисплея представлены в табл. 5.

Таблица 5. Порядок передачи кодовых комбинаций сигналов E и RS и соответствие линий генератора шаблона PATTERN1 и микросхемы дисплея

Создадим на диске компьютера текстовый файл, в который занесем:
  • кодовые комбинации команд управления микросхемой Ampire 128×64 (команды включения дисплея, выбора страницы видеопамяти, выбора адреса, с которого будет начинаться вывод изображения в строке). Для подачи этих команд задействованы выводы Q0…Q7 генератора шаблона PATTERN2. Для приёма команд микросхемой дисплея задействованы выводы DB0…DB7;
  • двоичный код изображения (рис. 24). Для подачи кода изображения используются выводы Q0…Q7 генератора шаблона. Для его приёма микросхемой дисплея применяются выводы DВ0…DВ7.

    Рис. 24. Точечный рисунок для отображения на экране графического дисплея
Отметим, что цветные точки (в нашем примере – голубые), формирующие изображение на экране дисплея, в файле шаблона обозначаются 0, а чёрные – 1. Cохраним подготовленный файл с расширением *.ptn. Присвоим файлу название Pattern2.

Порядок передачи кодовых комбинаций команд и двоичного кода изображения, а также соответствие линий генератора шаблона PATTERN2 и микросхемы дисплея представлены в табл. 4.

Рис. 25. Кодовые комбинации сигналов E и RS в файле шаблона Pattern1.ptn

Кодовые комбинации сигналов E и RS в файле шаблона Pattern1.ptn (рис. 25):
; RS-0 (приём команд)
%00000000,
%00000010,
%00000000,
%00000000,
%00000010,
%00000000,
%00000000,
%00000010,
%00000000,
; RS-1 (приём данных)
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,
%00000001,
%00000011,
%00000001,

Рис. 26. Запись команд и двоичная кодировка рисунка в файле шаблона Pattern2.ptn

Запись команд и двоичная кодировка рисунка в файле шаблона Pattern2.ptn (рис. 26):
; включение дисплея
%00111111,
%00111111,
%00111111,
; выбор страницы № 4 видеопамяти
%10111100,
%10111100,
%10111100,
; выбор адреса, с которого будет начинаться вывод
; изображения в строке (пиксель № 30)
%01011110,
%01011110,
%01011110,
; вывод изображения на дисплей
%10111011,
%10111011,
%10111011,
%00010001,
%00010001,
%00010001,
%10010011,
%10010011,
%10010011,
%11101111,
%11101111,
%11101111,
%10010011,
%10010011,
%10010011,
%00010001,
%00010001,
%00010001,
%10111011,
%10111011,
%10111011,
%11101111,
%11101111,
%11101111,
%11110111,
%11110111,
%11110111,
%11110111,
%11110111,
%11110111,
%11101001,
%11101001,
%11101001,
%11010010,
%11010010,
%11010010,
%10010000,
%10010000,
%10010000,
%10110000,
%10110000,
%10110000,
%00111001,
%00111001,
%00111001,
%10100111,
%10100111,
%10100111,
%11110111,
%11110111,
%11110111,
%10011011,
%10011011,
%10011011,
%00001011,
%00001011,
%00001011,
%00001001,
%00001001,
%00001001,
%01001001,
%01001001,
%01001001,
%10011101,
%10011101,
%10011101,
%11100110,
%11100110,
%11100110,
%11000011,
%11000011,
%11000011,
%11000011,
%11000011,
%11000011,
%11010011,
%11010011,
%11010011,
%11100111,
%11100111,
%11100111,
Назначим для генератора шаблона PATTERN1 файл шаблона Pattern1.ptn, а для генератора шаблона PATTERN2 файл шаблона Pattern2.ptn. Обратите внимание на значения параметров генераторов шаблона PATTERN1 и PATTERN2 в окне Edit Component (рис. 27):
  • Clock Rate (частота внутреннего тактирования) – 1.000Hz;
  • Reset Rate (частота внутренней синхронизации) – 266.7mHz;
  • Clock Mode (режим тактирования генератора) – Internal (внутренний);
  • Reset Mode (источник и сигнал синхронизации) – Sync External Pos Edge (внешний синхронный положительный фронт);
  • Output Configuration (вывод данных) – Output to Pins Only (вывод данных только на выводы Q0…Q7).

Рис. 27. Окно свойств Edit Component приборов: (а) PATTERN1 и (б) PATTERN2 Для синхронной работы приборов PATTERN1 и PATTERN2 эти значения должны быть одинаковыми.

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

Рис. 28. Результат выполнения команд и обработки двоичного кода рисунка, заданных в файлах шаблона Pattern1.ptn и Pattern2.ptn

Проанализируем работу демонстрационной схемы, представленной на рис. 28. При помощи записанного в файле Pattern2.ptn скрипта были даны указания цифровому генератору шаблона PATTERN2 через линии Q0…Q7 отправить контроллеру микросхемы Ampire 128×64 кодовые комбинации команд (если на линии Q0 цифрового генератора шаблона PATTERN1 ноль) или данные (если на линии Q0 цифрового генератора шаблона PATTERN1 единица). Управляющий сигнал на линию Q0 цифрового генератора шаблона PATTERN1 подаётся при помощи скрипта, записанного в файле Pattern1.ptn. С каждым тактовым импульсом внешнего источника синхронизации на выводы приборов PATTERN1 и PATTERN2 синхронно выдаётся следующая серия сигналов (рис. 29).

Рис. 29. Серии сигналов в файлах шаблона Pattern1.ptn и Pattern2.ptn, синхронно поступающие на выводы приборов PATTERN1 и PATTERN2

Для приёма команд/данных в микросхеме Ampire 128×64 используются линии DВ0…DВ7. Управляющий сигнал с линии Q0 генератора шаблона PATTERN1 поступает на вывод RS микросхемы Ampire 128×64 и подаётся программно. Вывод Q1 генератора шаблона PATTERN1 подключён к выводу Е микросхемы Ampire 128×64 и используется для подачи тактовых импульсов. Выводы Q2…Q7 генератора шаблона PATTERN1 не задействованы.

После запуска симуляции схемы цифровой код, записанный в файлах шаблона, отображается на дисплеях лицевых панелей генераторов шаблона PATTERN1 и PATTERN2 в виде белых (логический ноль) и чёрных клеток (логическая единица). С каждым тактовым импульсом внешнего источника синхронизации выполняется продвижение по шаблону, при этом кодовая комбинация нулей и единиц (пустых и закрашенных ячеек) последнего столбца таблицы лицевой панели прибора PATTERN1 поступает на выходы Q0, Q1 цифрового генератора шаблона PATTERN1, откуда передаётся на линии RS, Е микросхемы дисплея. Кодовая комбинация нулей и единиц последнего столбца таблицы лицевой панели прибора PATTERN2 поступает на выходы Q0…Q7 цифрового генератора шаблона PATTERN2, откуда передаётся на линии DВ0…DВ7 микросхемы дисплея.

Согласно записанному в файле Pattern1.ptn шаблону цифровой генератор шаблона PATTERN1 формирует на линии Q0 логический ноль, который поступает на вывод RS микросхемы Ampire 128×64. В результате чего шина DВ0…DВ7 переходит в режим приёма следующих команд: включение дисплея, выбор страницы видеопамяти, выбор адреса, с которого будет начинаться вывод изображения в строке. Далее согласно записанному в файле Pattern1.ptn шаблону цифровой генератор шаблона PATTERN1 формирует на линии Q0 логическую единицу, что переводит линии DВ0…DВ7 микросхемы Ampire 128×64 в режим приёма данных, запись которых выполняется побайтно. При этом на вывод Е непрерывно подаётся тактовый сигнал, по заднему фронту которого микросхема Ampire 128×64 считывает информацию (команды/данные).

Выводы CS1 и CS2 микросхемы Ampire 128×64 подключены к «земле», значит, в нашем примере изображение будет формироваться на левом и правом сегментах дисплея одновременно. Таким образом, на оба сегмента выводится рисунок, двоичный код которого был подан на шину DВ0…DВ7. Временны́е диаграммы формирования цифровых сигналов по заданному в *.ptn-файлах шаблону отображаются в графической области лицевой панели логического анализатора.

Литература

  1. Колесникова Т. Применение программы CodeVisionAVR для управления буквенно-цифровыми дисплеями в Proteus 8.11 // Современная электроника. 2022. № 2.
  2. Proteus VSM Help // Labcenter Electronics. 2020.
  3. ISIS Help // Labcenter Electronics. 2014.
  4. HD44780U (LCD-II) (Dot Matrix Liquid Crystal Display Controller/Driver). Hitachi, Ltd. 1998.




Поделиться:



Комментарии

Текст сообщения*
Защита от автоматических сообщений