Спряження мікроконтролера з типовим алфавітно-цифровим модулем індикації

Вывод информации на линейный дисплей ССИ. При динамической ин­дикации байт индикации поступает одновременно на входы всех ССИ, образующих линейный дисплей, а выбор знакоместа осуществляется байтом выборки, представляющим собой код "бегущий нуль" (рис. 7.7). При бездешифраторном способе формирования байта выбор­ки максимальное число знакомест линейного дисплея ограничено раз­рядностью порта. Использование для формирования кода "бегущий нуль" внешнего дешифратора позволяет значительно увеличить число знакомест линейного дисплея.

Для динамической индикации группы символов удобно воспользо­ваться процедурой индикации символа, оформив ее в виде параметри­зуемой подпрограммы в соответствии с БСА, показанной на рис. 7.8.

Входными параметрами для подпрограммы DSPLY являются исходный код отображаемого символа и номер знакоместа, на которое осуще­ствляется вывод. Исходный код символа задается текущим адресом в массиве CODE (регистр R0), а номер знакоместа — текущим значе­нием байта выборки (регистр R2) и значением счетчика знакомест (регистр R7):

Подпрограмма DSPLY реализует выборку кода очередного символа из РПД (исходные коды символов должны быть размещены в последова­тельно расположенных ячейках памяти), его перекодировку и отобра­жение на текущем знакоместе. Для получения яркой и ровной (неми­гающей) индикации необходимо обеспечить: во-первых, запрет вы­борки знакомест на время изменения байта индикации в порте 1 (блан­кирование), во-вторых, регенерацию изображения на каждом знакоместе

Рис. 7.7. Линейный дисплей на семисегментных светодиодных индикаторах

с частотой 20 раз в секунду, т.е. обращение к подпрограмме DSPLY через каждые 50/N мс, где N — число знакомест на дисплее. Бланкиро­вание осуществляется выдачей байта выборки "все единицы". Требуемая частота регенерации изображения обеспечивается основной программой МК-системы, если она организована в соответствии со структурой:

Требуемая частота обращений к подпрограмме DSPLY может быть обеспечена также с помощью прерывания от таймера.

Вывод символа на МСИ. Для отображения символа на матричный

индикатор обычно используется принцип динамической индикации по колонкам. Байт индикации в этом случае представляет собой код за­светки светодиодов колонки, и графический образ символа "наби­рается" из последовательности байтов индикации путем перебора коло­нок (рис. 7.9). Процедуру вывода символа на МСИ целесообразно

представить в виде двух частных процедур: перекодировки и отобра­жения.

Перекодировка. Представление исходного двоичного кода символа в виде последовательности кодов колонок осуществляется таблично. Каждому символу в таблице CODTBL соответствует пять ячеек. Адрес первого кода колонки (КК) для символа формируется как CODTBL + + 5 х (двоичный код символа):

Длина таблицы CODTBL для шестнадцатеричных символов (0 - F) равна 80 ячейкам памяти программ (5 х 16),

Процедуре CODER должна предшествовать процедура инициализа­ции, обеспечивающая загрузку регистров-указателей и гашение МСИ;

Отображение. Частная процедура отображения символа реализуется на основе параметризуемой подпрограммы индикации текущего столб­ца. Подпрограмма строится по тому же принципу, что и рассмотренная ранее подпрограмма отображения символа на текущем знакоместе линейного дисплея на основе ССИ. Отличием подпрограммы COLUMN является то, что блок перекодировки вынесен в самостоятельную про­цедуру, а формирование нового байта выборки осуществляется не сдви­гом, а инкрементом регистра. Входными параметрами для подпрограм­мы являются: номер колонки (регистр R2), текущий адрес кода ко­лонки (КК) в массиве CWORD (регистр R1) и текущее значение счетчи­ка колонок (регистр R7):

Перед первым вызовом подпрограммы в нее должны быть переданы исходные параметры:

Задание исходного значения содержимого счетчика колонок символи­ческим именем CTCOL позволяет использовать подпрограмму COLUMN для реализации процедуры динамической индикации группы символов на линейном дисплее. Символическое имя CTCOL должно быть определе­но директивой ассемблера. Например, для МСИ 5x7

Для обеспечения немерцающей и яркой индикации обращение к про­цедуре COLUMN должно осуществляться через каждые 50/5 = 10 мс.

Вывод строки символов. Линейный дисплей на основе МСИ представ­ляет собой устройство, показанное на рис. 7.10. С точки зрения разра­ботчика программы это совокупность из 5N колонок, где N — число знакомест. Для вывода группы символов на дисплей с помощью про­цедуры COLUMN необходимо предварительно определить символиче­ское имя CTCOL как 5N. Для 8-позиционного линейного дисплея это определение выглядит так:

Коды всех колонок должны быть сформированы до обращения к подпрограмме COLUMN процедурой перекодировки, которая для рас­сматриваемого случая будет иметь вид


Рис. 7.10. Линейный дисплей на матричных индикаторах

Для обеспечения немерцающей и яркой индикации обращение к под­программе COLUMN должно осуществляться через каждые 50/40 ~

= 1,25 мс. Удобнее всего это делать по прерыванию от таймера.,


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: