Вывод символа на экран и пользовательские символы

Вывод на экран символа производится записью его кода в регистр DR. При этом символ размещается в DDRAM по текущему адресу, указываемому АС, а значение АС увеличивается или уменьшается на 1. Чтобы произвести переустановку курсора на нужную позицию, необходимо присвоить АС соответствующее значение (см. таб. 2). Здесь есть одна тонкость. Когда производится последовательная запись символов и в результате заполняется вся строка, курсор автоматически переходит на вторую строку, но если необходимо принудительно установить курсор, скажем, на начало второй строки, то будет неверным присвоить АС, казалось бы, логичное значение 0x28 (40), правильным является значение 0x40 (64). Значения адресов DDRAM в диапазоне 0x28…0x3F (а равно и 0x68…0x7F) являются неопределенными и результаты работы с ними могут быть непредсказуемыми.

Из допустимых для размещения в DDRAM кодов символы с кодами 0x00…0x07 (и их дубликат с кодами 0x08…0x0F) имеют специальное назначение – это переопределяемые символы, графическое изображение которых может назначить сам потребитель, поместив соответствующую информацию в области CGRAM. Для программирования доступны 8 переопределяемых символов в режиме с матрицей 5х7 точек. Для кодирования матрицы используются горизонтально «уложенные» байты, пять младших битов которых несут информацию о рисунке (причем 1 означает, что сегмент будет включен), 4-й разряд каждого из 8-ми байтов матрицы определяет левую колонку символа, а 0-й – правую. Старшие три бита не используются (обратите внимание, что матрица программируемых символов допускает использование полной высоты строки (8 строчек для режима 5х7), то есть можно размещать точки в области подчеркивающего курсора).

Чтобы определить собственный символ необходимо установить счетчик АС на адрес начала матрицы требуемого символа в CGRAM – 0x00, 0x08, 0x10 и т.д. – произвести перезапись всех байтов матрицы, начиная с верхней строки. После этого, записав в DDRAM код запрограммированного символа: 0x00, 0x01, 0x02, на экране в соответствующем месте будет отображаться переопределенный символ.


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



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