Часть 1 - Теория
Часть 2 - Схема подключения к микроконтроллеру и инициализация индикатора
В первых частях статьи мы рассмотрели устройство и характеристики графического индикатора Winstar WDG0151-TMI с разрешением 128×64 точки, назначение выводов, набор инструкций, а также интерфейс подключения его к микроконтроллеру. Также мы написали тестовую программу для микроконтроллера на Си, которая продемонстрировала, как использовать набор инструкций контроллера KS0108. Мы написали подпрограммы, которые инициализируют индикатор, устанавливают текущую позицию курсора и активируют пиксель по заданным координатам. Вы, наверное, уже поняли, сколько усилий требуется для написания программы, которая решает задачу вывода на экран индикатора простого символа - точки.
В этой части статьи мы уделим внимание встроенной библиотеке mikroC Pro для работы с графическим индикатором, которая значительно упростит вывод данных на экран индикатора.
Встроенная библиотека GLCD в среде mikroC Pro для PIC микроконтроллеров предназначена для управления графическими индикаторами на базе контроллеров Samsung KS0108/KS0107 и совместимых с ними. Функции библиотеки условно можно разделить на два типа: базовые и расширенные. Но перед использованием самой библиотеки необходимо определить в программе как индикатор подключен к микроконтроллеру.
Индикатор мы подключим к микроконтроллеру, как указано во второй части статьи: порт D используется для подключения шины данных, порт B – для управления индикатором.
Определение подключения выводов индикатора к микроконтроллеру в программе показано ниже.
// определение подключения индикатора к портам микроконтроллера
char GLCD_DataPort at PORTD;
sbit GLCD_CS1 at RB0_bit;
sbit GLCD_CS2 at RB1_bit;
sbit GLCD_RS at RB2_bit;
sbit GLCD_RW at RB3_bit;
sbit GLCD_EN at RB5_bit;
sbit GLCD_RST at RB4_bit;
sbit GLCD_CS1_Direction at TRISB0_bit;
sbit GLCD_CS2_Direction at TRISB1_bit;
sbit GLCD_RS_Direction at TRISB2_bit;
sbit GLCD_RW_Direction at TRISB3_bit;
sbit GLCD_EN_Direction at TRISB5_bit;
sbit GLCD_RST_Direction at TRISB4_bit;
Теперь рассмотрим функции встроенной библиотеки:
Базовые функции:
- Glcd_Init: Инициализация индикатора;
- Glcd_Set_Side: Выбор стороны экрана. Например, обе команды Glcd_Set_Side(0) и Glcd_Set_Side(62) делают активной левую сторону индикатора. Значения от 64 до 127 в команде, например Glcd_Set_Side(67), выбирают правую сторону индикатора;
- Glcd_Set_X: Установка позиции по оси X от левой границы индикатора в пределах выбранной стороны.например, Glcd_Set_X(25);
- Glcd_Set_Page: Выбор страницы графического индикатора;
- Glcd_Read_Data: Чтение одного байта с текущей позиции памяти индикатора и сдвиг на следующую позицию;
- Glcd_Write_Data: Запись одного байта данных в текущую позицию памяти индикатора и сдвиг на следующую позицию.
Расширенные функции:
- Glcd_Fill: Заполнение памяти индикатора одним указанным значением. Если значение в команде равно 0, то эта функция очистит индикатор, если значение FFh, то вся память индикатора будет заполнена 1.
- Glcd_Dot : Прорисовка одной точки на индикаторе с заданными координатами и цветом. Функция используется в виде Glcd_Dot(x, y, color), где x = 0–127, y = 0–63, color = 0–2. Параметр color (который присутствует и в других функциях, связанных с прорисовкой объектов) определяет статус точки: 0 – очистить точку, 1 – установить точку, 2 – инвертировать точку.
- Glcd_Line: Прорисовка линии по двум заданным координатам и статусу (0–2).
- Glcd_V_Line: Прорисовка вертикальной линии по двум координатам с одинаковыми координатами по оси X, также имеется параметр статуса линии.
- Glcd_H_Line: Прорисовка вертикальной линии по двум координатам с одинаковыми координатами по оси Y, также имеется параметр статуса линии.
- Glcd_Rectangle: Прорисовка прямоугольника с заданными координатами верхнего левого и нижнего правого угла.
- Glcd_Box: Прорисовка закрашенного прямоугольника, цвет заполнения определяется цветом прямоугольника.
- Glcd_Circle: Прорисовка окружности с заданными координатами центра и радиуса.
- Glcd_Set_Font: Как было замечено в первой части статьи, контроллер индикатора не имеет своего знакогенератора, поэтому символы и шрифты должны быть прописаны в программе микроконтроллера. Это достаточно трудоемкая задача и для упрощения в компиляторе mikroC Pro предусмотрены демонстрационные шрифты:
- Font_Glcd_System3x5;
- Font_Glcd_System5x7;
- Font_Glcd_5x7;
- Font_Glcd_Character8x7;
Эти шрифты используются в функциях Glcd_Write_Char и Glcd_Write_Text для отображения символов и текста. Синтаксис использования функции Glcd_Set_Font следующий:
Glcd_Set_Font (const char *activeFont, unsigned short aFontWidth, unsigned short aFontHeight, unsigned int aFontOffs);
Где параметры: activeFont – установка шрифта, aFontWidth – ширина символов шрифта в точках, aFontHeight – высота символов шрифта в точках, aFontOffs – число, которое представляет собой разницу (смещение) между набором символов mikroC и обычным набором ASCII символов. Демонстрационные шрифты имеют смещение 32.
Для использования шрифта Font_Glcd_5x7, необходимо выполнить команду со следующими параметрами:
Glcd_Set_Font(Font_Glcd_5x7, 5, 7, 32).
- Glcd_Write_Char: Ззапись символа в указанную позицию по оси X (0-127) и страницу (0-7) индикатора.
- Glcd_Write_Text: Отображение текста начиная с указанной позиции по оси X (0-127) и страницы (0-7) на индикаторе;
- Glcd_Image: Вывод BMP-картинки на индикатор Displays bitmap image on Glcd. Битовый массив изображения также хранится в программе микроконтроллера. Для подготовки любого изображения к выводу на графический индикатор mikroElektronika предлагает специальную, простую в использовании утилиту.
Для демонстрации функций библиотеки предостатвляется исходный код программы микроконтроллера и готовый к прошивке HEX-файл.
![]() |
![]() |
![]() |
![]() |
Загрузки
Исходный текст программы и HEX-файл – скачать