Страница 1 из 1

Подключение LCD HD44780 к ATmega8

Добавлено: Вт дек 13, 2016 14:56:53
divisоr
Здравствуйте.

Пытаюсь подключить LCD HD44780 к ATmega8, нашел урок с исходником и иллюстрацией подключения:
Изображение

там код:

Код: Выделить всё

  lcd_goto(0,0);
  lcd_puts("mainloop.ru/avr-" );
  lcd_goto(0,1);
  lcd_puts("atmega/lcd.html" );
а на экране:

Код: Выделить всё

        miinloox
        ilmmoi/1
попробовал вывести алфавит и символы:

Код: Выделить всё

  lcd_goto(0,0);
  lcd_puts("abcdefghijklmnop" );
  lcd_goto(0,1);
  lcd_puts("q1r2s3t4u5v6w7x8" );
получил:

Код: Выделить всё

        ijklmnoh
        y9z:{;|<
Подскажите, с чем это может быть связано?

Строка "abcdefghijklmnop" выводится как " ijklmnoh". Нет первых 8-ми символов, и вместо последнего "p" почему-то "h".

Проблема в моем случае решилась благодаря совету mrFox.

Re: Подключение LCD HD44780 к ATmega8

Добавлено: Вт дек 13, 2016 15:36:20
Z_h_e
В используемой Вами библиотеке наверное нужно установить 4 или 8 битный режим :dont_know: . Может не тот стоит? Обычно ноги экономят и пользуются 4х битным.

Re: Подключение LCD HD44780 к ATmega8

Добавлено: Вт дек 13, 2016 15:48:10
divisоr
Z_h_e, в уроке используется подключение по 8-ми проводам, я подключал так же. Код взял из исходника. У них работает, у меня почему-то нет :(

Добавлю весь проект, который я компилирую в WinAVR, и после записываю получившийся main.hex в микроконтроллер.

Добавлено after 8 minutes 20 seconds:
Попробовал подключить RW дисплея к земле, вместо PC1, так как используется режим записи. Появился какой-то иероглиф на месте первого символа, а так, результат не изменился:

Код: Выделить всё

*       ijklmnoh
        y9z:{;|<
Что же он не показывает нужный текст? :(

Re: Подключение LCD HD44780 к ATmega8

Добавлено: Вт дек 13, 2016 21:16:44
mas123
divisоr писал(а):Что же он не показывает нужный текст? :(
Что-то функция инициализации слишком "простая". Впрочем, с 8-ми битным режимом не работал никогда, всегда 4 бита, а там чуть побольше хитрости надо.
Вот что меня насторожило - на схеме вообще нет кварца, на какой частоте контроллер работает?
Ибо этот LCD кое-где требователен к временным диаграммам.

И второе - точно ли используется такой же LCD, как "у них"?
Сейчас есть практически полный аналог HD44780, совместим по ногам. Только на OLED, ему уже не нужна подсветка и светится красивым желтым цветом.
И у них несколько различаются временные диаграммы, особенно в инициализации.

Re: Подключение LCD HD44780 к ATmega8

Добавлено: Вт дек 13, 2016 22:09:59
divisоr
mas123, спасибо за ответ.

Внешнего кварца нет, а он обязательно нужен? Выставил F_CPU 8000000UL.


Вот экран (переделал ссылку для модераторов) https://ru.aliexpress[точка]com/item/1PCS-LCD1602-1602-module-green-screen-16x2-Character-LCD-Display-Module-1602-5V-green-screen-and/32511014601.html

По идее, это обычный экран HD44780, или я не прав?

Re: Подключение LCD HD44780 к ATmega8

Добавлено: Вт дек 13, 2016 22:39:18
mrFox
divisоr писал(а): Внешнего кварца нет, а он обязательно нужен? Выставил F_CPU 8000000UL.
а фузы правильно выставили - а то по-умолчанию у 8 меги 1МГц

Re: Подключение LCD HD44780 к ATmega8

Добавлено: Вт дек 13, 2016 23:43:44
divisоr
mrFox, огромнейшее спасибо! Взял другой микроконтроллер, у него действительно частота 1МГц стояла во Fuse-битах.

В общем, проблема из-за невнимательности.

Большое спасибо всем, кто ответил :)