Работа с ЖКИ на контроллере HD44780 и его аналогах

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение urry »

Что, собственно, делает код ? Я ничего не понял.
Последний раз редактировалось urry Ср окт 09, 2013 08:18:48, всего редактировалось 1 раз.
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Аlex »

А для чего вот эти объявления в main.c :

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

extern void lcd_init(void);
extern void lcd_clear(void);	
extern void lcd_gotoxy(char, char);
extern void lcd_puts(char *);
extern void lcd_putch(char);
extern void lcd_cgram(char *, unsigned char);
? Они же есть в файле lcd.h Просто подключите его, за место этих объявлений, и всё...
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Аlex »

Побуду немного в качестве экстрасенса :))
LCD.rar
(60.96 КБ) 225 скачиваний
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

urry писал(а):Что, собственно, делает код ? Я ничего не понял.
Пытаюсь вывести буквы "H" и "e" в начале первой строки.
Кот гуляет сам по себе, но вблизи холодильника.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение urry »

в таком случае не я один ничего не понял...
Хорошо, спросим по другому - кто именно мешает вам это сделать ?
Реклама
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

urry писал(а):в таком случае не я один ничего не понял...
Хорошо, спросим по другому - кто именно мешает вам это сделать ?
Не все сразу... Постепенно разберусь.

Аlex спасибо за идеи, но ни МК, ни я до конца не усвоили. На ЖКИ нет ничего, а мне многое непонятно...

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

if(cnt_pause)   cnt_pause--;
я для себя заменил на

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

if(cnt_pause == 1)   cnt_pause--;
(отстствие практики сказыватся: все лето то пожары, то ремонты...) :dont_know:

я проставил комментарии
Спойлерwhile(hello_str[cnt_ch]) // тело цикла выполняется, пока cnt_ch не выходит за пределы массива hello_str ??
{
lcd_putch(hello_str[cnt_ch++]); /* последовательный вывод элементов массива hello_str
позиция, видимо, сдвигается автоматом. А как выводится элемент 0? */
while(cnt_pause) continue; // если cnt_pause < 0, continue - куда? за тело цикла while(hello_str[cnt_ch]??
cnt_pause=100;
}
Кот гуляет сам по себе, но вблизи холодильника.
Реклама
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

Ghost in shell писал(а):На ЖКИ нет ничего,
А контраст правильно настроен? Даже если дисплей не инициализирован все равно должна первая строка вся светиться. Много раз уже повторялось. Добейтесь горения, и потом уже код в него пихайте.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Аlex »

тело цикла выполняется, пока cnt_ch не выходит за пределы массива hello_str ??
Нет, пока символ hello_str[cnt_ch] ненулевой.
А как выводится элемент 0?
Не понял вопроса. Что за элемент 0 ?
Если нулевой символ, то зачем его выводить ? Наоборот должны выйти из цикла по нулевому символу (он-же - маркер конца строки).
continue - куда?
continue - это продолжение цикла. Выход из цикла - оператор break.
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

vitalik_1984 писал(а):А контраст правильно настроен? Даже если дисплей не инициализирован все равно должна первая строка вся светиться. Много раз уже повторялось. Добейтесь горения, и потом уже код в него пихайте.
Вращением потенциометра можно добиться черных прямоугольников 16х2. Я уже собирал устройства на ЖКИ и знаю, что контрастность должна быть ниже? т.е. после появления черных прямоугольников надо понизить контрастность.
Аlex писал(а):Что за элемент 0 ?
lcd_putch(hello_str[cnt_ch++]); //Эта строка выводит сразу первый элемент массива. Ну да, изначально cnt_ch = 0, после инкриминации увеличивается на 1.
Последний раз редактировалось Аlex Чт окт 17, 2013 21:09:34, всего редактировалось 2 раза.
Причина: Поправил многоэтажные цитаты. Прошу больше так не делать.
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

Ghost in shell писал(а):Эта строка выводит сразу первый элемент массива.
Эта строка по идее выводит сразу нулевой по счету элемент массива. И уже после этого увеличивает счет ведь ++ находится после переменной. То есть увеличивается после взятия из нее значения. Это называется постинкремент.

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

cnt_ch=0;
lcd_putch(hello_str[cnt_ch++]); 
равносильно

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

cnt_ch=0;
lcd_putch(hello_str[cnt_ch]);
cnt_ch++; 
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

vitalik_1984 писал(а):А контраст правильно настроен? Даже если дисплей не инициализирован все равно должна первая строка вся светиться. Много раз уже повторялось. Добейтесь горения, и потом уже код в него пихайте.
Стер память МК, светися ближайшая к контактам строка.
Спасибо за разъяснение, но такой код мне куда понятнее

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

cnt_ch=0;
lcd_putch(hello_str[cnt_ch]);
cnt_ch++; 
Я принципиально хотел сделать тестовый код максимально простым: без массивов, выводов целых строк... Вот выведу хоть один символ - тогда и усложню в свое удовольствие.
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

Проверил отдельно LCD (подключил к рабочему прибору) и PIC16F72 (линии порта В живые).
По-прежнему светится только первая строка прямоугольников...
Вложения
LCD2.rar
(40.15 КБ) 171 скачивание
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Аlex »

Тут явно дисплей не инициализируется. Может у Вас МК вообще не запускается ? Смотрите правильность назначения выводов в lcd.h и их подключения в железе.
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

Alex спасибо за ответ.
Ваш проект грузится с ошибкой. И на панели нет пиктограммы компилятора.
МК точно работает: на линиях порта я могу задать 0 или 1.
Выводы проверю.
Вложения
new-1.jpg
(12.09 КБ) 260 скачиваний
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение urry »

Ножка дисплея RW точно посажена на землю ? Проверьте.
В проге ошибка в строке if(cnt_pause == 1) cnt_pause--;
нужно if(cnt_pause) или if(cnt_pause != 0) , что равноценно.
В проте нет контроллера 72, можно подставить что-то близкое, например 716, что я и сделал.
Вложения
test_.zip
(65.38 КБ) 178 скачиваний
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Аlex »

Ghost in shell писал(а):Ваш проект грузится с ошибкой. И на панели нет пиктограммы компилятора.
Версия MPLAB, видимо, у Вас старее :roll: У меня 8.9.
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

urry писал(а):Ножка дисплея RW точно посажена на землю ? Проверьте.
Точно сидит: с нее земля и идет к плате МК.
Исправил if(cnt_pause == 1) - никаких изменений... :cry:
Соответствия пинов:
RS — RB3
E — RB6
D4 — RB4
D5 — RB1
D6 — RB0
D7 — RB7

Alex
Да, у меня MP-LAB 8.30
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение urry »

в вашей проге д6 это rb2, а не 0
Аватара пользователя
Ghost in shell
Держит паяльник хвостом
Сообщения: 931
Зарегистрирован: Пн июн 15, 2009 06:01:38
Откуда: USSR

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Ghost in shell »

urry писал(а):в вашей проге д6 это rb2, а не 0
Ну наконец-то получилось!!! Будете в Киеве - с меня пиво (или тортик) :))
Кот гуляет сам по себе, но вблизи холодильника.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение urry »

Открыта регистрация на семинар - http://microchip.ua/seminar/regsem.php
//
Тематика семинара:

Первая часть
- Новинки, перспективы и применение продукции компании SIMCOM
- ЕАТ - встроенный язык модулей SIMCOM

Вторая часть
- Знакомство с ARM контроллерами NUVOTON

Предлагаем Вам, рассмотреть возможность направить Ваших технических специалистов для участия в семинаре.
Участие в семинаре бесплатное. Дата и место проведения будет уточнено дополнительно.
==============
Если не возникнет никаких ЧП, поеду.
Ответить

Вернуться в «Периферия»