Часть 1 – Теория
Для подключения графического индикатора Winstar WDG0151-TMI к микроконтроллеру и проведения экспериментов автор использовал отладочную плату компании mikroElektronika UNI-DS6 с микроконтроллером Microchip PIC16F887.
UNI-DS6 – универсальная отладочная плата для изучения микроконтроллеров PIC, AVR, 8051, ARM, PSoCи dsPIC, идеальная для оборудования учебных классов и лабораторий. Хорошо методически проработанная плата включает универсальное посадочное место, в которое может быть установлена одна из плат специализации (mikroBoard).
Плата оснащена большим количеством разнообразных устройств ввода и вывода информации и гибкой системой их коммутации с платой специализации. В качестве устройств ввода предусмотрены кнопки, подключаемые ко всем линиям портов микроконтроллеров, 12-разрядный АЦП, температурный датчик, накопитель MMC/SD. Для отображения данных на плате имеются светодиоды на всех линиях портов микроконтроллера, а также предусмотрены посадочные места со штыревыми разъемами для установки алфавитно-цифрового и графического ЖК дисплеев. Для двунаправленного обмена установлены два USB-UART моста.
Принципиальная схема отладочной платы доступна для скачивания в секции загрузок.
Схема подключения индикатора к микроконтроллеру показана на рисунке ниже. Выводы шины данных подключаются к порту D микроконтроллера, управляющие сигналы поступают с порта B.
Программа микроконтроллера для инициализации индикатора написана в компиляторе mikroC Pro для микроконтроллеров PIC. Несмотря на то, что компилятор предоставляет готовую библиотеку функций для управления графическим индикатором, работу с которой мы рассмотрим в третьей части описания, мы попытаемся написать свой тестовый код для передачи данных от микроконтроллера в индикатор.
Тестовая программа выводит на индикатор 11 горизонтальных строк с точками с интервалами между ними в 6 линий. Исходный код доступен для скачивания в разделе загрузок. При разработке тестовой программы за основу была взята готовка библиотека Osama’s Lab GLCD library, модифицированная для применения в среде mikroC.
Рассмотрим основные функции в программе инициализации индикатора.
- GLCD_ON(): функция включения индикатора. Функция реализует подачу команды 3Fh обоим контроллерам индикатора, следовательно, низкий уровень должен быть на входах /CS1 и /CS2, а также на входе RS, т.к. посылаемый байт это инструкция;
- Set_Start_Line(): функция изменяет номер первой строки, которая будет отображаться вверху экрана. Вы можете установить любое значение из диапазона 0 – 63, функция не вносит каких-либо изменений в ОЗУ данных дисплея, а лишь сдвигает экран вверх или вниз;
- GOTO_COL(): перемещает курсор в указанный столбец (0 – 127);
- GOTO_ROW(): перемещает курсор в указанный ряд или страницу (0 – 7);
- GOTO_XY(): перемещает курсор в указанные координаты столбца и ряда;
- GLCD_Write(): запись байта данных в текущую позицию;
- GLCD_Read(): чтение байта данных с текущей позиции. Если вы посмотрите исходный код то увидите в этой функции две операции чтения. Первая операция чтения вызывает перемещение данных из ОЗУ дисплея в выходной регистр контроллера KS0108B, а при следующей операции чтения микроконтроллер получает актуальные данные из регистра;
- GLCD_Clrln(): функция очищает указанную страницу;
- GLCD_CLR(): полностью очищает дисплей;
- Draw_Point(): функция прорисовки точки в указанной позиции.
Загрузки
Исходный текст тестовой программы микроконтроллера и файл прошивки - скачать
Принципиальная схема отладочной платы UNI-DS6 - скачать
Часть 3 - Использование встроенной библиотеки в среде mikroC Pro для управления графическим индикатором