LCD LM016L & HD44780

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16703
Joined: 21 Oct 2009 08:08
Location: Россия

LCD LM016L & HD44780

Post by Lavr »

Символьные LCD типа LM016L с контроллером HD44780 стали фактически стандартом
де-факто, как пишут в этих наших интернетах...
LM016L-1.gif
Материалов, как прицеплять их к PIC или Atmel в интернете полно, но есть один
нюанс: обычно код инициализации LCD примерно следующий:

Code: Select all

void LCD_ini(void){
_delay_ms(15);                  //Ждем 15 мс
send_half_byte(0b00000011); 3h
_delay_ms(4);
send_half_byte(0b00000011); 3h
_delay_us(100);
send_half_byte(0b00000011); 3h
_delay_ms(1);
send_half_byte(0b00000010); 2h
_delay_ms(1);
send_byte(0b00101000, 0); 28h  //4бит-режим и 2 линии
_delay_ms(1);
send_byte(0b00001100, 0); 0Ch  //включаем изображение на дисплее, курсоры никакие не включаем
_delay_ms(1);
send_byte(0b00000110, 0); 06h  //курсор невидимый и будет двигаться влево
_delay_ms(1);}
Код этот повторяется от сайта к сайту, но везде упоминают, что он работает
вживую, но не работает на моделях Proteus (это правда, я проверял). :-?

Этот LCD я надумал прицепить к проекту Gigatron и решил предварительно погонять
отдельный проект с LM016L, чтобы посмотреть, как и на что влияют разные задержки.

Ну и использовал я несколько иной код инициализации LCD от автора Nibbler.
Автор подробно расписал, что к чему, и его исходник в моём архиве есть.
Этот код реально работает и в железе, и на моделях Proteus - это я тоже
проверял, поскольку вживую у меня этих индикаторов два - купил как-то
по случаю по 150 рублей - показалось недорого...

Код такой: (CMD=0) 3h,3h,3h,2h, 2Ch, 0Fh, 01h
Программа написана, что называется "в лоб", без циклов и ухищрений, поскольку
примерно так и планирую я запрограммировать Gigatron с его "хитрозадумчивой"
системой команд и при отсутствии удобного ассемблера...

Схема для тестирования очень близка к вот этой моей железке, и, в ней нет
только ввода программы через LPT.
LM016L.gif
В архиве - два проекта: первый для подбора точных интервалов времени при
заданной частоте, второй - собственно схема демонстрации работы LCD.
Также в архиве программы и справочные материалы по LM016L и идентичным.
LCD_LM016.zip
Надеюсь, материал будет полезным, если у кого заглючит проект с таким LCD.
Сразу можно будет выяснить "кто виноват": модель LCD или что-то другое...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16703
Joined: 21 Oct 2009 08:08
Location: Россия

Re: LCD LM016L & HD44780

Post by Lavr »

Справочные материалы не влезли одним файлом, выложу их здесь отдельно:
LM016L_H.part1.rar
LM016L_H.part2.rar
You do not have the required permissions to view the files attached to this post.
iLavr