СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №2/2016

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 45 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2016 ● установка активной страницы ОЗУ контроллера дисплея; ● установка активного байта ОЗУ кон- троллера дисплея. В режиме данных доступныфункции чтения и записи. После чтения данных из активного байта активной страницы ОЗУ контроллера дисплея происходит инкремент адреса байта. Поэтому есть возможность последовательной запи- си нескольких байтов в дисплей, что может ускорить определённые проце- дуры чтения и записи. Как и символьные дисплеи MT-16S2 и MT-20S4, дисплей MT-12864J имеет регистр статуса, который считывает- ся в режиме команд. Назначения битов регистра показаны в таблице 3. Дисплей MT-12864J не имеет встро- енного знакогенератора, поэтому обе- спечение дисплея шрифтами – задача программиста. Это, с одной стороны, усложняет управляющую програм- му, но с другой – позволяет создавать собственные шрифты, не ограничива- ясь ни размерами, ни начертанием, ни кодовой таблицей (в символьных дис- плеях компании МЭЛТ присутствуют только две кодовые таблицы: совме- стимая с кодовой таблицей дисплеев на контроллере HD44700 и альтерна- тивная, совместимая с CP1251). Кроме того, существует возможность инверс- ного выделения текста. API ДРАЙВЕРА ГРАФИЧЕСКОГО ДИСПЛЕЯ ОТ K EIL Для подключения драйверов гра- фических дисплеев компанией Keil разработан специальный программ- ный интерфейс. Прототипы функций драйвера дисплея определены в заго- ловочном файле GLCD.h и представле- ны в таблице 4. Данный файл можно найти, например, в каталоге типа C:\Ката- лог установки Keil\ARM\Boards\Keil\ MCBSTM32C\LCD_Blinky (информация справедлива для версий Keil MDK 4.x. В Keil MDK 5 этот файл, возможно, содержится в пакете поддержки микро- контроллеров STM32 или AT91SAM3x). Изначально, как можно увидеть из при- меров программ (листингов), данный API предполагался для управления цвет- ными графическими дисплеями, что следует и из наличия кодов, опреде- ляющих различные цвета. Однако для монохромных дисплеев также возмож- но создание драйверов, содержащих практически все функции, определён- ные данным API и заголовочным фай- Таблица 2. Система команд контроллера К145ВГ10 Команда Код команды Описание DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Display ON/ OFF Control 0 0 1 1 1 1 1 LCD On/Off Включение и выключение дисплея – определяется битом DB0: 0 – дисплей выключен, 1 – дисплей включён Display Start Line 1 1 Display Start Line (0…63) Определяет строку ОЗУ, которая будет отображаться в верхней строке дисплея Set Page 1 0 1 1 1 Page (0…7) Установка активной страницы Set Address 0 1 Address (0…63) Установка активной ячейки памяти выбранной страницы Таблица 3. Структура регистра статуса дисплея № бита Название Значение по умолчанию Описание 0 – 0 Зарезервировано 1 – 0 Зарезервировано 2 – 0 Зарезервировано 3 – 0 Зарезервировано 4 Reset 0 Сброс дисплея: 1 – состояние сброса, 0 – нормальное состояние 5 On/Off 0 Включение и выключение дисплея: 1 – дисплей включён, 0 – дисплей выключен 6 – 0 Зарезервировано 7 Busy 0 Флаг занятости дисплея: 1 – дисплей занят, 0 – дисплей готов к работе Таблица 4. Функции драйвера графического дисплея, определённые в файле GLCD.h Функция Описание void GLCD_init (void) Инициализация графического дисплея void GLCD_WindowsMax (void) Установка максимального рабочего пространства дисплея void GLCD_PutPixel (unsigned int x, unsigned int y) Закраска пикселя с координатами x и y в цвет, определённый, как цвет текста void GLCD_SetTextColor (unsigned short color) Установка цвета, переданного в параметре color, как цвета выводимого на дисплей текста void GLCD_SetBackColor (unsigned short color) Установка цвета, переданного в параметре color, как цвета фона void GLCD_Clear (unsigned short color) Очистка дисплея и заливка его цветом, определённым в параметре color void GLCD_DrawChar (unsigned int x, unsigned int y, unsigned int cw, unsigned int ch, unsigned char *c) Вывод на дисплей символа высотой ch и шириной cw в район точки, определённой координатами x и y (верхний левый край символа). Параметр *c является указателем на массив, определяющий начертание символа void GLCD_DisplayChar (unsigned int ln, unsigned int col, unsigned char fi, unsigned char c) Вывод на дисплей символа в строке ln и знакоместе col. Параметр fi определяет шрифт, параметр c – код выводимого символа void GLCD_DisplayString (unsigned int ln, unsigned int col, unsigned char fi, unsigned char s) Вывод на дисплей строки. Параметр ln определяет строку, параметр col – первое знакоместо, параметр fi – шрифт, параметр s – указатель на начало строки void GLCD_ClearLn (unsigned int ln, unsigned char fi) Очистка строки ln и закраска её цветом, определённым как цвет фона. Параметр fi определяет кегль очищаемой строки void GLCD_Bargraph (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned int val) Вывод на дисплей прямоугольника с началом в точке, определяемой параметрами x и y, с длиной w и высотой h. Параметр val определяет, какая часть прямоугольника будет закрашена в цвет текста, остальная часть красится в цвет фона void GLCD_Bitmap (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char bitmap) Вывод на дисплей рисунка из битового поля. Параметры x и y – координаты начальной точки, w и h – длина и высота выводимого рисунка, bitmap – указатель на начало массива битового поля void GLCD_ScrollVertical (unsigned int dy) Вертикальный сдвиг выведенной на дисплей информации на промежуток dy (в пикселях) void GLCD_WrCmd (unsigned char cmd) Передача контроллеру дисплея команды cmd void GLCD_WrReg (unsigned char reg, unsigned short val) Запись в регистр контроллера reg значения val

RkJQdWJsaXNoZXIy MTQ4NjUy