Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не отображается часть символов на LCD16x02
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
kyraxinoff
Возникли проблемы с отображением первых трех символов на LCD 16x02, не отображаеться только два символа,
при переходе на вторую строку все в порядке. Помогите. Пишу на AVR C , на ATMega8.
прилагаю программу в AVRStudio и проект протеус.
rezident
Инициализация неверная. Первой после подачи питания должна быть команда выбора разрядности шины. В datasheet HD44780U есть пример последовательности команд при инициализации. См. Table 138-Bit Operation, 8-Digit Ч 2-Line Display Example with Internal Reset в datasheet.
kyraxinoff
Почитав иструкцию и проделав все по Table 138-Bit Operation, 8-Digit Ч 2-Line Display Example with Internal Reset вообще изображение пропало. Немного почистив и переделав инициализацию в начале поставил объявление разрядности.

void lcd_init(void)
{
// Interface is 8 bits long.
lcd_com(0b00111000); // set8bit long
lcd_com(0b00111000); // set 8bit long
lcd_com(0b00111000); // set 8bit long
// Function set
lcd_com(0b00001000); // display off
lcd_com(0b00000001); //clear & sets on 0x00 addrss;
lcd_com(0b00000110); // increment
lcd_com(0b00001101); // disp on
lcd_com(0b10000000); // sets DDRAM adr. receives after sett
lcd_com(0b00000001); // sets DDRAM adr in 0
}

В результате первый знак отображается, второй и третий нет.
rezident
Уточните, где вы проверяете: в "железе" или в Протеусе? И что там у вас с требуемыми при инициализации и вообще между командами паузами?
kamil_yaminov
рекомендую симулятор ЖК http://www.geocities.com/dinceraydin/djlcdsim/djlcdsim.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.