node2_2000_3.pdf
(
91 KB
)
Pobierz
В
ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА
Лариса Капитанова
Русификация
ЖКИпанелей серии LCD
фирмы Octagon Systems
Жидкокристаллические индикатор
ные панели серии LCD фирмы Octagon
Systems предназначены для создания
операторских консолей с малым энер
гопотреблением. ЖКИпанели имеют
высокую контрастность и оснащены
подсветкой на базе светодиодного ин
дикатора с возможностью регулировки
яркости. Встроенный контроллер
LCDII (HD44780) позволяет отобра
жать буквенноцифровые символы и зна
ки пунктуации. ЖКИпанель подключа
ется к микрокомпьютеру через парал
лельный порт или плату вводавывода.
Основные свойства:
интерфейс по 4 или 8битовой ли
нии данных;
ОЗУ данных дисплея объемом 80
·
8 бит
(максимум 80 символов);
ПЗУ знакогенератора:
символы 5
·
7 точек – 160 символов,
символы 5
·
10 точек – 32 символа;
ОЗУ знакогенератора:
символы 5
·
7 точек – 8 символов или
символы 5
·
10 точек – 4 символа;
можно считывать данные с дисплея и
из ОЗУ знакогенератора;
широкий диапазон инструкций:
очистка дисплея, возврат курсора в
начало, включениеотключение дис
плея, включениеотключение курсо
ра, прерывистое свечение символов
дисплея, сдвиг курсора, сдвиг дис
плея;
внутренний автоматический сброс
при включении питания.
В ПЗУ знакогенератора контроллера
LCDII записаны шаблоны букв анг
лийского алфавита и японских иерог
лифов, поэтому возникает проблема
при выводе символов кириллицы. Ре
шить ее можно программным путем.
Идея заключается в следующем:
многие буквы русского алфавита сов
падают по написанию с английскими,
а для вывода на дисплей остальных
букв можно использовать 8 перепро
граммируемых символов, шаблоны ко
Таблица 1. Соответствие между кодом символа в ОЗУ данных, адресом шаблона в ОЗУ ЗГ
и шаблоном символа
Код символа в ОЗУ данных
7 6 5 4 3 2 1 0
Адрес в ОЗУ ЗГ
7 6 5 4 3 2 1 0
Шаблон (данные в ОЗУ ЗГ)
7 6 5 4 3 2 1 0
0 0 0
0 0 1
0 1 0
0 0 0 0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
х х х 1 1 1 1 1
1 0 0 0 0
1 0 0 0 0
«Б» 1 1 1 1 0
1 0 0 0 1
1 0 0 0 1
1 1 1 1 0
х х х 0 0 0 0 0
0 0 0 0 х 0 0 0
0 0 0
0 0 1
0 1 0
0 0 1 0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
х х х 1 0 0 0 1
1 0 0 0 1
1 0 0 1 1
«И» 1 0 1 0 1
1 1 0 0 1
1 0 0 0 1
1 0 0 0 1
х х х 0 0 0 0 0
0 0 0 0 х 0 0 1
...
... ...
...
0 0 0
0 0 1
0 1 0
1 1 1 0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
х х х 0 1 1 1 1
1 0 0 0 1
1 0 0 0 1
«Я» 0 1 1 1 1
0 0 1 0 1
0 1 0 0 1
1 0 0 0 1
х х х 0 0 0 0 0
0 0 0 0 х 1 1 1
торых загружаются в ОЗУ знакогенера
тора (далее — ЗГ).
Реально получается:
буквы «A», «B», «E», «K», «M», «H»,
«O», «P», «C», «T», «X» есть в англий
ском алфавите;
буква «З» похожа по написанию на
цифру «3»;
буква «Ь» – на строчную букву «b»;
букву «Ы» можно составить из двух
символов;
букву «Ъ» можно заменить символом
« ' » (апостроф).
Таким образом, остается 17 букв, не
считая «Ё». Из них к 8 можно подо
брать символы из ПЗУ ЗГ, которые от
даленно напоминают русские буквы и
в контексте могут быть понятны. Шаб
лоны букв «Б», «Г», «Д», «Ж», «И»
(«Й»), «Л», «П», «Я» необходимо запи
сать в ОЗУ ЗГ с кодами 0 – 7. Такое ре
шение проблемы представляется наи
более простым. Однако текст, состав
ленный из таких букв, без «Ё» и «Й»
выглядит не только неэстетично, но и
читается с трудом.
Более красиво выглядит решение,
когда шаблоны недостающих символов
загружаются в знакогенератор динами
чески, по мере необходимости. После
инициализации дисплея в ОЗУ ЗГ за
гружаются шаблоны букв, не имеющих
эквивалента в ПЗУ ЗГ. При выводе оче
редного символа на дисплей выполня
ется функция перекодировки ASCII
кода в код дисплея. Примерный алго
ритм функции приведен на рис. 1.
Данная функция успешно выполняет
вывод русских букв в том случае, если
одновременно на дисплее присутствует
не более 8 различных перепрограмми
руемых символов. Если таких символов
82
www.cta.ru
СТА 3/2000
© 2000 CTA Тел.: (095) 2340635 Факс: (095) 3303650 http://www.cta.ru
В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА
больше, для остальных будут выведены
подобранные заменяющие их символы
из ПЗУ ЗГ. При необходимости можно
изменить выводимый текст так, чтобы
избежать подобных ситуаций.
На дискете, содержащей программ
ное обеспечение контроллера MicroPC
фирмы Octagon Systems, приведена ре
зидентная программа для сканирова
ния клавиатуры и управления диспле
ем. Исходный текст программы содер
жит все функции, необходимые для
инициализации дисплея, вывода сим
волов на дисплей и загрузки шаблона
символа по нулевому адресу в ОЗУ ЗГ
(код символа – 0). Полный набор ко
манд контроллера HD44780 приведен в
документации на данный контроллер.
Далее описаны команды загрузки
шаблонов символов в ОЗУ ЗГ и приве
дены тексты функций на языке С.
Для загрузки шаблона символа необ
ходимо сначала установить адрес запи
си в ОЗУ ЗГ. Команда установки адреса
имеет вид:
RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 1 A A A A A A
Здесь RS – регистр выбора сигнала,
DBi – линии передачи данных,
AAAAAA – адрес записи в ОЗУ ЗГ.
Далее следует записать шаблон сим
вола. Для символа размером 5
·
7 точек
он состоит из 7 байтов, 8й байт – ну
левой (позиция курсора).
Команда записи в ОЗУ ЗГ совпадает
с командой записи в ОЗУ данных:
RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 D D D D D D D D
Здесь DDDDDDDD – байт данных.
После записи байта адрес автоматичес
ки увеличивается на 1.
В таблице 1 приведено соответствие
между кодом символа в ОЗУ данных,
адресом шаблона в ОЗУ ЗГ и шаблоном
символа (для символов 5
·
7 точек).
Функции загрузки шаблона символа
в ОЗУ ЗГ и записи байта в ОЗУ данных
или ОЗУ ЗГ приведены в листинге. Вы
вод данных осуществляется по 4бито
вой линии.
Вход
Шаблон
символа А есть в ПЗУ
знакогенератора?
нет
да
Шаблон
символа А загружен в OЗУ
знакогенератора?
да
Вернуть код символа А
в ПЗУ знакогенератора
нет
Для всех перепрограммируемых
символов В
выход по концу цикла
Шаблон
символа В загружен в ОЗУ
знакогенератора?
нет
да
Символ В
выведен на дисплей?
да
нет
Присвоить символу А код символа В;
Присвоить символу В пустой код
Записать шаблон символа А
в ОЗУ знакогенератора
Вернуть код символа,
близкого к символу А,
из ПЗУ знакогенератора
Вернуть код символа А
в ОЗУ знакогенератора
Выход
Условные обозначения: А — отображаемый символ; В — элемент множества символов,
загружаемых в ОЗУ знакогенератора
Рис. 1. Алгоритм функции динамической перекодировки русских символов в коды дисплея
Функцию lcdout и все другие необхо
димые функции можно взять в исход
ном тексте программы управления
дисплеем, приведенном на дискете ПО
MicroPC. Добавление функции дина
мической перекодировки букв русско
го алфавита в текст резидентной про
граммы управления дисплеем позволя
ет русифицировать ЖКИпанели се
рии LCD.
Предприятие «Гражданская защита»
использует в своих разработках про
граммноаппаратные комплексы на
базе контроллеров серии MicroPC
фирмы Octagon Systems со встроенной
системой реального времени QNX, эф
фективно работающие в системах кон
троля и управления технологическими
процессами. Описанный подход поз
волил создать для них операторские
консоли с понятным и удобным интер
фейсом.
Л. Капитанова —сотрудник
ООО «СП Гражданская защита»
Телефон: (35135) 28629
/*******************************************
загрузка шаблона символа в знакогенератор
cg_kod код символа от 0 до 7
buf адрес буфера из 7 байтов,
описывающих шаблон символа сверху вниз
*******************************************/
void define_char( char cg_kod, char *buf )
{
int i;
for( i = 0; i < 7; i++ )
out_char_lcd( *buf++ );
out_char_lcd(0);
}
/*******************************************
вывод символа на LCDдисплей или в ОЗУ ЗГ
ch символ
*******************************************/
out_char_lcd( char ch )
{
//установка адреса в знакогенераторе
lcdout( ( cg_kod >> 1 ) | 4 );
lcdout( ( cg_kod & 1 ) << 3 );
lcdout(((ch & 0xf0) >> 4) | 0x10); //старшая тетрада
lcdout((ch & 0x0f) | 0x10); //младшая тетрада
83
}
//запись шаблона
www.cta.ru
СТА 3/2000
© 2000 CTA Тел.: (095) 2340635 Факс: (095) 3303650 http://www.cta.ru
Plik z chomika:
fred1144
Inne pliki z tego folderu:
hardware1_2000_3.pdf
(489 KB)
power1_2000_3.pdf
(302 KB)
node1_2000_3.pdf
(238 KB)
node3_2000_3.pdf
(213 KB)
node2_2000_3.pdf
(91 KB)
Inne foldery tego chomika:
1996-1
1997-1
1997-2
1997-3
1997-4
Zgłoś jeśli
naruszono regulamin