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

Обсуждаем контроллеры компании Atmel.
Ответить
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1238
Зарегистрирован: Пн янв 25, 2016 10:19:15

Сообщение 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.
Последний раз редактировалось divisоr Вт дек 13, 2016 23:48:14, всего редактировалось 1 раз.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

В используемой Вами библиотеке наверное нужно установить 4 или 8 битный режим :dont_know: . Может не тот стоит? Обычно ноги экономят и пользуются 4х битным.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1238
Зарегистрирован: Пн янв 25, 2016 10:19:15

Сообщение divisоr »

Z_h_e, в уроке используется подключение по 8-ми проводам, я подключал так же. Код взял из исходника. У них работает, у меня почему-то нет :(

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

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

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

*       ijklmnoh
        y9z:{;|<
Что же он не показывает нужный текст? :(
Вложения
LCD.zip
(68.48 КБ) 247 скачиваний
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

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

И второе - точно ли используется такой же LCD, как "у них"?
Сейчас есть практически полный аналог HD44780, совместим по ногам. Только на OLED, ему уже не нужна подсветка и светится красивым желтым цветом.
И у них несколько различаются временные диаграммы, особенно в инициализации.
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1238
Зарегистрирован: Пн янв 25, 2016 10:19:15

Сообщение 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, или я не прав?
Реклама
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт сен 21, 2007 17:53:23
Откуда: Зарайск

Сообщение mrFox »

divisоr писал(а): Внешнего кварца нет, а он обязательно нужен? Выставил F_CPU 8000000UL.
а фузы правильно выставили - а то по-умолчанию у 8 меги 1МГц
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1238
Зарегистрирован: Пн янв 25, 2016 10:19:15

Сообщение divisоr »

mrFox, огромнейшее спасибо! Взял другой микроконтроллер, у него действительно частота 1МГц стояла во Fuse-битах.

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

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

Вернуться в «AVR»