Создать сайт
Применение символьных ЖКИ под управлением AVR.. Раздел: Периферия.

Eugene's MCU

Суббота, 30.06.2012, 09:16

Главная | | Мой профиль | Выход | RSS
Меню сайта
Категории каталога
Рекламный блок





Рекомендовать этот сайт:

Главная » Статьи » Применения » Периферия


Применение символьных ЖКИ под управлением AVR.
 
       Одним из самых популярных средств отображения информации в микроконтроллерных устройствах стал символьный жидкокристаллический модуль. Модули можно часто увидеть в составе не только готовых изделий, но и отладочных плат, где они могут выполнять незаменимую функцию процесса отладки – контроль состояния регистров и переменных разрабатываемой программы.
 
 
 

       Производители ЖКИ предлагают большой выбор алфавитно-цифровых модулей  с разным количеством строк, символов в строке, способами подсветки и т. д. Но все их объединяет наличие контроллера HD44780 фирмы Hitachi, ставшего практически промышленным стандартом.

       В данной статье рассмотрено применение модуля DV1600 (или аналогичного ему с организацией 1 строка, 16 символов и поддержкой русской кодировки) под управлением микроконтроллера AVR и приведён код драйвера для Atmega 16 (компилятор IAR).

      Модуль различает два типа принимаемых по шине байтов – команды и данные. Передачу команд и данных в драйвере обеспечивают функции  LCD_CMD() и LCD_DAT().  Подробнее о системе команд, таблице кодировки, необходимых задержках и длительностях сигналов смотрите файл LcdManual.pdf.

      Четырёхразрядный режим работы ЖКИ позволяет уменьшить количество задействованных выводов микроконтроллера и реализовать управление с одного порта (схема). Режим предусматривает передачу байтов тетрадами в разрядах DB7... DB7 шины модуля в следующем порядке:

 
  • Выставление признака команда/данные, RS=0-команда, RS=1-данные.
  • Старшая тетрада байта.
  • Строб сигнала E (длительность не менее 250ns).
  • Младшая тетрада байта.
  • Строб сигнала E (длительность не менее 250ns).
  • Снятие признака команда/данные.
       Перед началом работы  модуль необходимо проинициализировать, для этого в драйвере предусмотрена функция INI_LCD().  Поскольку при  включении питания модуль находится в 8-битном режиме и ожидает передачи всех восьми битов команды на входах DB0... DB7  и строба сигнала E, то при передаче функцией LCD_CMD() двух тетрад числа 0x02 модуль последовательно воспримет команды 0x00 и 0x20. Первая из них будет проигнорирована как команда с несуществующим кодом, а вторая переведёт модуль в режим 4-битной шины (флаг D/L=0). Последующие инициализирующие команды задают режимы:
 
  • шина – 4 бита, флаг D/L=0 (повторно);
  • 2 строки, флаг N=1 (не смотря на то, что физически модуль однострочный);
  • размер символа - 5*8 пикселей, флаг F=0;
  • включение отображения (флаг D=1), выключение курсора (флаг C=0);
  • очистка дисплея и настройка адреса символа на область DDRAM - LCD_CMD(0x01).

       Некорректно инициализированный индикатор отображает на первых восьми позициях строки все 40 пикселей знакоместа.

       После инициализации можно приступить к отображению символов на выбранной позиции. Для этого предназначена функция LCD_VIEW (char ADR_DDRAM, char DAT), где в качестве параметров ADR_DDRAM и DAT предаётся номер позиции в строке и код отображаемого символа согласно таблице кодировки.

       Следующий исходный код отобразит в начале строки слово "TEST":
 
       LCD_VIEW(0, 'T');
       LCD_VIEW(1, 'E');
       LCD_VIEW(2, 'S');
       LCD_VIEW(3, 'T');
 
      Ещё одна интересная функция ЖКИ – способность генерировать  и отображать символы, графическое изображение которых определяет сам пользователь. Для создания пользовательского символа необходимо определить значения восьми байтов, задающих состояние всех пикселей знакоместа. При этом каждый байт будет соответствовать горизонтальной строке пикселей, а каждый бит с нулевого по четвёртый определять состояние соответствующего пикселя строки справа налево:
 
       В драйвере создание символа по указанному адресу в таблице кодировки реализовано в виде функции NEW_SIMB(), где параметры Y1….Y8  являются указанными байтами-стоками. Таким образом, для сохранения символа изображённого на рисунке по третьему адресу таблицы необходимо вызвать функцию  NEW_SIMB (3, 0x1F, 0x15, 0x04, 0x04, 0x04, 0x04, 0x15, 0x1F). После этого можно отобразить символ на выбранной позиции строки ЖКИ, например на десятой - LCD_VIEW  (10,3).
       Описанный драйвер используется в программе цифрового тахометра на датчике Холла tahometr_code.html.
       В заключение хочется отметить, что низкая цена модулей с отражательным типом отображения с лихвой компенсируется плохой видимостью при сумеречном освещении и изменении угла обзора ЖК.
 


При использовании материалов сайта ссылка на данный источник обязательна.

Категория: Периферия | Добавил: eugenemcu (29.01.2009) | Автор:

Просмотров: 6998 | Рейтинг: 1.0/1 |
Статистика

Наш магазин




Какую среду разработки Вы используете?

[ Результаты · Архив опросов ]
Всего ответов: 918



Им нужна Ваша помощь: