HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL

Подключение графического индикатора (KS0108) к PIC микроконтроллеру. Часть 3 - Использование встроенной библиотеки в среде mikroC Pro для управления графическим индикатором

Часть 1 - Теория
Часть 2 - Схема подключения к микроконтроллеру и инициализация индикатора

В первых частях статьи мы рассмотрели устройство и характеристики графического индикатора Winstar WDG0151-TMI с разрешением 128×64 точки, назначение выводов, набор инструкций, а также интерфейс подключения его к микроконтроллеру. Также мы написали тестовую программу для микроконтроллера на Си, которая продемонстрировала, как использовать набор инструкций контроллера KS0108. Мы написали подпрограммы, которые инициализируют индикатор, устанавливают текущую позицию курсора и активируют пиксель по заданным координатам. Вы, наверное, уже поняли, сколько усилий требуется для написания программы, которая решает задачу вывода на экран индикатора простого символа - точки.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

В этой части статьи мы уделим внимание встроенной библиотеке mikroC Pro для работы с графическим индикатором, которая значительно упростит вывод данных на экран индикатора.

Подключение графического индикатора (KS0108) к PIC микроконтроллеру

Встроенная библиотека 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-файл – скачать

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Interfacing a KS0108 based Graphics LCD. Part 3 - GLCD Library of mikroC Pro for PIC

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя