Подключение графического модуля Hantronix 320x240 к 8-разрядному микроконтроллер
Введение:
Так как модули графических жидкокристаллических дисплеев (ЖКД) имеют тонкий профиль, лёгкий вес, низкое потребление мощности и лёгкое управление, они получили широкое применение в различных приложениях. ЖКД 320x240 (1/4 VGA) весьма популярны в различных вычислительных системах. По этой причине контроллер не включается в состав модуля. Неплохим выбором контроллера, с встроенным 8-разрядным микроконтроллером и контроллером ЖКД, может стать Epson/S-MOS SED1335 или OKI MSM6255/6355. Некоторые встроенные микроконтроллеры, такие как National NS486SXF, имеют ЖКД контроллеры и прямой доступ к дисплею. Пример приведённый здесь основан на микроконтроллере Phillips 87C751, управляющим контроллером Epson/S-MOS SED1335. Функциональное описание:
Серия дисплеев Hantronix 320x240 имеет стандартный промышленный 4-разрядный интерфейс. Этому интерфейсу необходим контроллер для непрерывного обновления изображения и для поддержания RAM видео дисплея. Перед тем как микроконтроллер сможет использовать дисплей, требуется послать серию инициализирующих байтов в котроллер ЖКД, для установки рабочих параметров и описания изображения в контроллере. После инициализации приложения микроконтроллер может отправить текстовые или графические данные в контроллер ЖКД, где они будут отформатированы и сохранены в RAM дисплея. Одновременно с обновлениями RAM, контроллер ЖКД непрерывно читает данные из RAM дисплея, упорядочая их и посылая дисплею. Применяемый микроконтроллер не имеет прямого доступа к RAM дисплея и должен посылать все данные и команды в контроллер ЖКД. Схемотехническое описание:
В этом примере микроциклор 87C751 присоединяется к контроллеру ЖКД через параллельные порты I/O. Он может также быть подключён к шине данных циклора и отображаться в область памяти данных циклора. См. 1. 1. Программное обеспечение:
Приведённый ниже пример программы, написан на ассемблерном коде 8051 и разработан для работы с устройством изображённом на рисунке 1. Программа вначале посылает серию командных байтов, следующих за соответствующими параметрами в контроллер ЖКД для его инициализации. Контроллер инициализируется одной текстовой страницей расположенной в памяти 0000h-04AFh и одной графической страницей 4B0h-2A2h. Это подразумевает 1200 текстовых символов расположенных как 30 строк по 40 символов каждая. Размер графической страницы 9600 байт содержащие данные всего экрана. Режим отображения устанавливается с обоими экранами и текстовым наложением на графику по схеме ИСКЛЮЧАЮЩЕЕ ИЛИ. Текстовая область памяти затем очищается сохранением 20h, символ пробела, во всех 1200 положениях. Графическая страница затем заполняется образом дерева бонсай. Затем отображаются 4 строки текста. Пример программы написан не эффективно, зато как можно проще. Программная блок-схема:
Инициализация:
Перед тем как принять или отобразить данные или текст ЖКД контроллер должен быть проинициализирован. Обычно это делается непосредственно после включения системы. Следующая схема демонстрирует команды инициализации и параметры, которые сопровождаются кратким описанием каждой функции. Байты инициализации:
Команда Код Параметр ФункцияSYSTEM SET 40h 30h Аппаратная установка ЖКД панели 87h Ширина символа [7] в пикселах 07h Высота символа [7] в пикселах 27h Адресный диапазон дял 1 текстовой строки 39h Длина строки в символах [40-1=39] EFh Количество строк на кадр [240] 28h Горизонтальный адресный диапазон (текстовый) [40] 0 SCROLL 44h 0 Устанавливает начальный адрес прокрутки 0 и количество строк на прокручиваемый блок EFh B0h 04h EFh 0 0 0 0 CURSOR FORM 5Dh 04h Форма и размер курсора [блок, ширина 4 пиксела, высота 6 пикселов] 86h CURSOR DIRECTION 4Ch Направление курсора в режиме автоматической записиHORIZONTAL SCROLL RATE 5Ah 00h Скорость горизонтальной прокрутки, [1] пиксел за один разOVERLAY 5Bh 01h Режим наложения текст/графика (ИСКЛЮЧАЮЩЕЕ ИЛИ)DISPLAY ON/OFF 59h 16h Включение.выключение дисплея [Включено] Отображаемый образ:
Программа:
$MOD751;**************************************************;* *;* HDM3224 Приложение V1.0 *;* *;**************************************************; Частота тактовых импульсов циклора 16 МГц.; Время цикла .750 мс.; Демонстрационная программа изображения дерева бонсай; битовая карта изображения дерева и 4 линии ; текста на ЖКД 320 ґ 240. org 00hljmp start ; начало программыorg 100h; Инициализация 32241; Текстовая страница 0000h 04Afh; Графическая страница 04B0h 2A2Fhstart:mov r1,#40h ; установка системыlcall comm32mov dptr,#msg1 ; параметр установки системы lcall data32mov r1,#44h ; прокруткаlcall comm32mov dptr,#msg2 ; параметр прокруткиlcall data32mov r1,#5Dh ; форма курсораlcall comm32mov dptr,#msg3 ; параметр курсораlcall data32mov r1,#4Ch ; направление курсораlcall comm32mov dptr,#5Ah ; прокрутка по точкамlcall comm32mov r1,#msg18 ; параметр прокрутки по точкамlcall data32mov dptr,#5Bh ; наложениеlcall comm32mov dptr,#msg4 ; параметр наложенияlcall data32mov r1,#59h ; включение/выключение дисплеяlcall comm32mov dptr,#msg5 ; параметр дисплеяlcall data32; очистка текстовой страницыlcall clrtext; битовая карта изображенияmov r1,#46h ; установка курсораlcall comm32mov dptr,#msg6 lcall data32mov r1,#42h ; запись в памятьlcall comm32mov dptr,#msg12 lcall data32; отображение текстаmov r1,#46h ; установка курсораlcall comm32mov dptr,#msg7 lcall data32mov r1,#42h ; запись в памятьlcall comm32mov dptr,#msg14lcall data32mov r1,#46h ; установка курсораlcall comm32mov dptr,#msg8 lcall data32mov r1,#42h ; запись в памятьlcall comm32mov dptr,#msg15lcall data32mov r1,#46h ; установка курсораlcall comm32mov dptr,#msg9 lcall data32mov r1,#42h ; запись в памятьlcall comm32mov dptr,#msg16lcall data32mov r1,#46h ; установка курсораlcall comm32mov dptr,#msg10 lcall data32mov r1,#46h ; запись в памятьlcall comm32mov dptr,#msg17lcall data32sjmp $ ; стоп;*************************************************; Подпрограммы; comm32 посылает байт в R1 в; 32241 как командаcomm32: setb p3.2 ; a0=1=командаcomm321: mov a, r1 ; послать байт данныхmov p1, aclr p3.0 ; CS - стробclr p3.1 ; дисплеяsetb p3.1setb p3.0retwrite32:clr p3.2 ;a0=0=данныеsjmp comm321; data32 посылает сообщение указанное в; DPTR в 32241.data32:clr a ; отправить байтmovc a, @a+dptrcjne a, #0a1h, data321 ; сделано?retdata321:mov r1, alcall write32 ; отправитьinc dptrsjmp data32 ; следующий байт; Очистить текстовую RAM на 3224clrtext:mov r1, #46h ; установить курсорlcall comm32mov dptr, #msg13 ; параметр курсораlcall data32mov r1, #42h ; запись в памятьlcall comm32mov dptr, #msg11 ; все пробелыlcall data32mov r1, #46h ; установить курсорlcall comm32mov dptr, #msg6 lcall data32ret;************************************************; Таблицы и данные; Инициализация параметров для 3224.msg1:db 30h, 87h, 07h, 27h ;установка системыdb 39h, 0EFh, 28h, 0h, 0A1hmsg2:db 0, 0, 0EFh, 0B0h ;прокруткаdb 04h, 0EFh, 0, 0db 0, 0, 0A1hmsg3:db 04h, 86h, 0A1h ; форма курсораmsg4:db 01h, 0A1h ; параметр наложенияmsg5:db 16h, 0A1h ; включение/выключение дисплеяmsg6:db 0B0h, 04h, 0A1h ; установка курсора на ; графическую страницуmsg7:db 31h, 2h, 0A1h ; установка курсора на ; текстовую страницу; первая строкаmsg8:db 59h, 2, 0A1h ; вторая строкаmsg9:db 81h, 2, 0A1h ; третья строкаmsg10:db 0A9h, 2, 0A1h ; четвёртая строка; 1200 пробелов для очистки текстовой страницы; Следующая таблица не приведена; здесь, исключая первые 8 байт,; она состоит из 1200 байтов; каждый из которых 20hmsg11:db ' 'db 01Ah; Графика 320x240 дерево бонсай; Следующая таблица не приведена; здесь. Она состоит из 9600 байтов; которые охватывают весь экран; битовой картой изображения дерева бонсай.; Вы можете добавить несколько байтов перед; 01Ah конечным байтом с целью тестирования; или включения полного битового образаmsg12:db 01Ahmsg13:db 0, 0, 01Ah ; установка курсора;на текстовую страницуmsg14:db 'HANTRONIX'db 0A1hmsg15:db 'Crystal Clearand'db 0A1hmsg16:db 'Visibly Superior'db 0A1hmsg17:db 'LCD Modules'db 0A1hmsg18:db 0, 01Ah ; параметр прокрутки по горизонталиend
Источник: gaw.ruЧитайте далее: Кодовое обозначение миниатюрных полупроводниковых приборов, Устранение неполадок в принтерах Hewlett Packard LaserJet 5L (6L) часть 2, Подсветка LCD дисплеев, Принтеры Hewlett-Рackard LJ-1200 : индикация ошибок., Изготовление тормозных площадок, Большие проблемы маленьких копиров, Обман струйных принтеров НР, Лампы экспонирования., Коротроны, Почти все о SCSI, Типовое включение УМС8-xx, Современные цифро-аналоговые преобразователи фирмы Maxim - Часть I, Современные цифро-аналоговые преобразователи фирмы Maxim - Часть III, Протокол POCSAG и его применение, Использование модулей Telecontrolli в охранных системах, Проектирование антенны для радиочастотных модулей Telecontrolli, Электронные таблетки iButton — транспорт информации, Как всех посчитать (или передача данных по радиоканалу), Что надо знать об аналоговых ключах и мультиплексорах,
|