Подписаться на получение новых статей на почту:

Подключаем ЖКИ на базе контроллера HD44780 к AVR и пишем программу на Си. Шаг № 27

Всем привет. В этой статье мы еще раз рассмотрим подключение ЖК-индикатора к AVR только уже на контроллере HD44780 (фирма Hitachi), и работу с ним. В предыдущей статье (№4)по ЖКИ я описал работу с контроллером ks0066. Там же мы разобрали основные параметры. Рассмотрим их отличие а именно алгоритм инициализации на примере ЖКИ RAYSTAR RC1602B-GHY-CSXD.

Внизу схема подключения ЖКИ к AVR в ProteusФункции и описание вводов/выводов LCD (ks0066), ранее рассмотренной, аналогичны. В конце статьи запустим нашу программу в Proteus. Итак ниже на рисунке (справа) находится алгоритм инициализации LCD на контроллере  HD44780. Сравнив алгоритм с предыдущим постом и вы увидите, что они кардинально отличаются, поэтому программа написанная для ks0066 не запустится на HD44780 и наоборот!!!

 

 

Подключение ЖКИ к AVR

Инициализация ЖКИ на базе hd4478

Используем те же самые функции с предыдущего поста. А здесь рассмотрим только инициализацию.

Как видно здесь посылается команда 0×30 ,в отличие от ks0066 = 0×20., и через значительные задержки времени. В общем сравнивайте.

void Initialization (void)
{

      _delay_ms (20); /*Задержка после подачи питания, ждем более 15 мс*/

    /*Инициализируем порты*/
         DDRLC = poryd; /*Подключенные к жки устанавливаем в 1- выходы, два  неиспользующихся оставляем как входы*/
    PORTLC = 0×00; /*устанавливаем на выходах 0, где по условию RS and RW также должны быть = 0.*/
    command_lcd (0×30);    
    _delay_ms (5);    /*Задержка более 4,1 мс*/ 
   
    command_lcd (0×30);
    _delay_us (200);     /*Задержка более 100 мкс*/ 
   
    command_lcd (0×30);
    _delay_us (50);     /*Пауза между командами*/ 
    command_lcd (0×02);   /*Установка 4bit режима*/
    command_lcd (0×28);  /*1100 0000 – установка 2-х строчного режима, размер символа  5*7 font*/
    command_lcd (0x0c); /*0000 11000 – включение дисплея */
    command_lcd (0×01); /*0000 0001– очистка дисплея */
    command_lcd (0×06); /*0000 0110 – устанавливаем режим ввода*/
}

Ниже главная функция программы и подключаемые библиотеки на AVR. Еще раз напоминаю, что все остальные функции мы уже рассмотрели в предыдущей статье (№4).

#include <avr/io.h>
#include <util/delay.h>   
#define PORTLC PORTB             
#define DDRLC DDRB                 
#define poryd 0b11110011           
#define E PB1
#define RS PB0
#define E1 PORTLC |= _BV (E);    
#define E0 PORTLC &= ~_BV (E);
#define RS1 PORTLC |= _BV (RS);   
#define RS0 PORTLC &= ~_BV (RS);      
int main (void)   // начало основой программы
{
       Initialization ();
       InstallationCursor (4, 2);
       PrintString («Hello»);
      _delay_ms (100);   
      InstallationCursor (2, 1);
      PrintString («Hello»);
}

Подключение ЖКИ к AVR в ProteusНиже результат программы в Proteus. Микроконтроллер работает на частоте 1 МГц от внутреннего генератора.  Не забудьте соединить VSS и RW к земле, т.к. ЖКИ не запустится. Исходники с проектом прилагаются.

Исходник и проект. ( Скачали: 289 чел. ) 

Пробуйте. экспериментируйте. Всем пока.

 

 

 

Литература:
1. Угрюмов Е. П. Цифровая схемотехника. СПб, БХВ-Петербург, 2004.
2. Technical specification RC1602B-GHY-CSXD (RAYSTAR).

Просмотрено 6140 раз.

Я на Google+

Подключаем ЖКИ на базе контроллера HD44780 к AVR и пишем программу на Си. Шаг № 27: 4 комментария

  1. Здравствуйте. Получается что в протеусе индикатор работате только на контроллере HD44780?

    • Здравствуйте а статье есть исходник. В нем подробно расписана программа. А вообще к символу который выводим прибавляем 0×40 или 64 в десятичном виде.

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting