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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

GP1 писал(а):Ну тогда хотя бы прочти что-нибудь про LCD, там же русским языком написано прежде чем использовать индикатор его надо ИНИЦИАЛИЗИРОВАТЬ, а где у тебя процедура инициализации?

как я понимаю - инициализация - это предварительная подготовка индикатора для работы - это и задание курсоров, и задание всяких режимов работы этого индикатора.
Инициализация:
Я не могу добить эту табличку!!! Как организовывать инициализацию? я понял, какие 1 определяют команды, адресуемые по IR...
НО!!! ВСю ли табличку надо переписывать? как надо правильно делать?
Я не могу понять, сначала надо вывести 1 строчку этой таблицы, подождать, затем вторую строчку, затем подождать, затем третью и т.д. или можжно сразу вывести? одним байтом?

Вобщем, правильно быглядит инициализация:
00000001 - очищаем дисплей, адрес ДДрам на 0.
вторую строчку таблицы пропускаем.
ждем (задержка)
00000110 - при последующем байте сдвинуть адрес ддрам на 1 позицию (инкремент).
задержка
00001000 - выключил дислпей, никаких курсоров.
задержка
00010100 - смещаем курсор, вправо.
задержка
00111000 - 8 разрядная шина данных, 2 строки, 5*8т разрешение матрицы
перед всем этим я ставил E в 1, теперь сбразываю ее в 0 и все, можно переходить на RS=1.
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Ну надо же!
Stalker46 установил новые правила инициализации LCD!
Я ПАЦТАЛОМ...
Может всет-таки стоит умных книжек почитать, там же черным по белому написано...
Вложения
01.GIF
(47.68 КБ) 570 скачиваний
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

я другие книжки по этому поводу читал. как понял так и глаголю. и не смешно, поставь себя в мое положение))) :oops: :)
т.е. сначала надо
1. включить питание, затем ждать не менее 2мс.
2. Установить разрядность интерфейса, затем ждать не менее 40мкс.
3. Установить разрядность интерфейса, затем ждать не менее 40мкс.
4. Установить разрядность интерфейса, затем ждать не менее 40мкс.
5. Добавляем к разрядности размер матрицы, колчичество строк, ждем не менее 40мкс.
6. Выключаем дисплей, ждем не менее 40мкс.
7. Очищаем дисплей, счетчик на 0.
8. Установить направление сдвига курсора.


А можно ли первые 4 пункта выполнять в первую очередь, а все другие вразнаброс?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Не правла ли - ну совсем не то что у тебя :)))

зы: только первая пауза 20 мс.
во всех книжках написано одно и тоже - сначала инициализация, потом юзай скоко надо. и процедура везде одна, могут только временные интервалы отличаться.
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

А, ну, да...
А что делать с передачей данных? как там время разбросано?
Есть такая же табличка для ввода данных на озу видеопамяти?
И еще, когда, уже сформировали надпись, все готово... а у нас в настройках, в регистре команд D=0, что означает, что дисплей выключен. Что делать? Опять RS переключать в 0, и перенастраивать инициализация полностью (т.е. сначала, как писал я в прошлом посте), или просто записать 00001100 - теперь дисплей включен...
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Все! Хорош!
Иди ты, нет не туда, а сайт фирмы МЭЛТ, там в разделе "Документация" все есть.
http://www.melt.com.ru/docs/index.php?SECTION_ID=42
опять же:
ibiza11 писал(а):
Stalker46 писал(а):на 8 чтоли странице был пост...
Вот pdf файл, который выкладывал GP1 в архивах на 8 странице.
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

у мя что то с компом, не открываются пдф файлы на сайтах...
:evil:
Вообщем, до завтра...
Не умеешь - не берись, но не взявшись не научишься...
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

вопрос исчерпан
Последний раз редактировалось Arlleex Вс фев 07, 2010 20:55:23, всего редактировалось 1 раз.
Не умеешь - не берись, но не взявшись не научишься...
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Вопрос исчерпан
Последний раз редактировалось Arlleex Вс фев 07, 2010 20:55:47, всего редактировалось 1 раз.
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Что опять...
Не работает!
Ну когда же ты наконец книжки читать начнешь! :evil: :evil: :evil:
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Так я все же правильно сделал!!! Что еще не так?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

ты мне напоминаешь отдельных начальников
"Есть два мнения: одно мое, другое не правильное"
ты эти картинки видел?
Вложения
02.GIF
(18.95 КБ) 695 скачиваний
Чем дальше, тем больше становлюсь занудой...
Изображение
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

мля, как же это все сложно... А ты еще говоришь, что легко...
(хотя, может опыт помогает)...
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Легко только ничего не делать, да в потолок плевать.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Вот настрочил "программку" для перекодировки русских букв для вставки непосредственно в АСМ код. Может пригодится кому...
Вложения
RUS_Code.rar
(3.66 КБ) 321 скачивание
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
maks2689
Родился
Сообщения: 6
Зарегистрирован: Пт янв 29, 2010 21:00:52

Сообщение maks2689 »

подскажите с проблемой выода информации на жки MT-16S1B
на индикатор вообще не выводится информация только мигающий курсор
Вложения
.txt
программа для устройства
(41.04 КБ) 407 скачиваний
.PNG
схема устройства
(131.49 КБ) 584 скачивания
maks2689
Родился
Сообщения: 6
Зарегистрирован: Пт янв 29, 2010 21:00:52

Сообщение maks2689 »

Программа инициализации индикатора

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

JEKINI
        MOVLW   3          ;СБРОС.
        CALL    JEKOMI     ;ПЕРЕДАЧА КОМАНДЫ.
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   3          ;СБРОС.
        CALL    JEKOMI     ;
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   3          ;
        CALL    JEKOMI     ;
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   10         ;ЗАПРЕТ СДВИГА ИЗОБРАЖЕНИЯ
        CALL    JEKOMI     ;ПЕРЕДАЧА КОМАНДЫ.
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   06         ;ИНКРЕМЕНТИРОВАНИЕ ПОЗИЦИИ КУРСОРА.
        CALL    JEKOMI     ;ПЕРЕДАЧА КОМАНДЫ.
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   01         ;СТИРАНИЕ ДИСПЛЕЯ.
        CALL    JEKOMI     ;ПЕРЕДАЧА КОМАНДЫ.
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   28         ;ФОРМАТ ОБМЕНА: 4 РАЗР., 5х7, 2 СТРОКИ.
        CALL    JEKOMI     ;ПЕРЕДАЧА КОМАНДЫ.
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   28         ;ПОВТОРИМ.
        CALL    JEKOMI     ;
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        MOVLW   0C         ;ВКЛЮЧЕНИЕ ДИСПЛЕЯ, ЗАПРЕТ КУРСОРА.
        CALL    JEKOMI     ;ПЕРЕДАЧА КОМАНДЫ.
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        GOTO    RASPR   ;НА ИНДИКАЦИЮ.
PAUSA
        MOVLW   .25
        MOVWF   ZAN
PAUS
        MOVLW   .255
        ADDLW   -1
        BTFSS   STATUS,2
        GOTO    $-2
        DECFSZ  ZAN,1
        GOTO    PAUS
        RETURN
JEKOMI
        MOVWF   TEMP       ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР.
        ANDLW   B'11110000';ЗАМАСКИРУЕМ МЛАДШИЕ РАЗРЯДЫ ПОД НОЛЬ.
        MOVWF   PORTB      ;ОСТАЛЬНЫЕ РАЗРЯДЫ ПЕРЕПИШЕМ В ПОРТ "В".
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        CALL    PAUSA      ;ПАУЗА.
        MOVFW   TEMP
        SWAPF   TEMP,W     ;ПОМЕНЯЕМ МЕСТАМИ ПОЛУБАЙТЫ.
        ANDLW   B'11110000';ЗАМАСКИРУЕМ СТАРШИЕ РАЗРЯДЫ ПОД НОЛЬ.
        MOVWF   PORTB      ;ПЕРЕПИШЕМ В ПОРТ "В".
        CALL    STROB      ;ПРОСТРОБИРУЕМ.
        CALL    PAUSA      ;ПАУЗА.
        RETURN


программа записи данных в индикатор

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

JEKI
   BTFSC   FLAG1,1      ;ЕСЛИ ИДЕТ ПРОСМОТР,
   GOTO   $+5      ;ТО ПРОПУСКАЕМ ИНДИКАЦИЮ КУРСОРА.
   BTFSS   FLAG1,0      ;ЕСЛИ НЕТ УСТАНОВКИ,
   GOTO   $+3      ;ТО ПРОПУСКАЕМ ИНДИКАЦИЮ КУРСОРА.
   BTFSS   FLAG,6      ;ЕСЛИ НЕ БЫЛО ИНДИКАЦИИ КУРСОРА,
   GOTO   JEKYC      ;ТО ПРОИНДИЦИРУЕМ.
   MOVLW   0x0C      ;ЗАПРЕТ ИНДИКАЦИИ КУРСОРА.
   CALL   JEKOM      ;ЗАПИШЕМ КОМАНДУ.
        MOVLW   02      ;ВОЗВРАТ КУРСОРА В ИСХОДНОЕ СОСТОЯНИЕ.
        CALL    JEKOM      ;ЗАПИШЕМ КОМАНДУ.
   MOVLW   .8      ;УСТАНОВИМ ЧИСЛО ЗНАКОМЕСТ.
   MOVWF   COUN      ;
        MOVLW   R1      ;АДРЕС ПЕРВОГО РЕГИСТРА ИНДИКАЦИИ.
   MOVWF   FSR      ;ПО КОСВЕННОЙ АДРЕСАЦИИ.
   MOVFW   INDF      ;ИНДИЦИРУЕМ ЗНАЧЕНИЕ.
        CALL    JEDAT      ;ЗАПИШЕМ ДАННЫЕ.
   DECF   COUN,1      ;УМЕНЬШАЕМ СЧЕТЧИК.
   BTFSC   STATUS,2   ;ЕСЛИ УЖЕ 0,
   GOTO   $+3      ;ТО ПЕРЕХОДИМ НА ВТОРУЮ СТРОКУ.
   INCF   FSR,1      ;ИНАЧЕ ПРОИНДИЦИРУЕМ СЛЕДУЮЩИЙ
   GOTO   $-6      ;РЕГИСТР.
        MOVLW   B'11000000'   ;ВТОРАЯ СТРОКА (УСЛОВНО 2х8).0x0C0 ;
        CALL    JEKOM      ;ЗАПИШЕМ КОМАНДУ.
   MOVLW   .8      ;ИНДИКАЦИЯ АНАЛОГИЧНА
   MOVWF   COUN      ;ИНДИКАЦИИ ПЕРВОЙ СТРОКИ.
   INCF   FSR,1      ;
   MOVFW   INDF      ;
        CALL    JEDAT      ;
   DECF   COUN,1      ;
   BTFSS   STATUS,2   ;
   GOTO   $-5      ;
   BCF   FLAG,6      ;СЛЕДУЮЩАЯ ИНДИКАЦИЯ - КУРСОРА.
   RETURN         ;НА РАСПРЕДЕЛИТЕЛЬ.
Последний раз редактировалось maks2689 Пн фев 08, 2010 14:56:31, всего редактировалось 1 раз.
maks2689
Родился
Сообщения: 6
Зарегистрирован: Пт янв 29, 2010 21:00:52

Сообщение maks2689 »

вся соль заключается в том что данная программа не работает на мелтовских индикаторах на индикаторах зарубежного производста все работает отлично
maks2689
Родился
Сообщения: 6
Зарегистрирован: Пт янв 29, 2010 21:00:52

Сообщение maks2689 »

Я добавил комментарии - отредактировав сообщение? вроде бы все понятно.
Это подпрограмма отвечающая за инициализацию и вывод информации на индикатор.
Изучив даташиты на индикаторы пришел к выводу что они практически ничем не отличаются.

даташит на МЭЛТ: http://www.melt.com.ru/upload/docs/MT-16S1A.pdf

даташит на импортный индикатор: http://cumbriadesigns.co.uk/Datasheets/JM162ALCD.pdf
maks2689
Родился
Сообщения: 6
Зарегистрирован: Пт янв 29, 2010 21:00:52

Сообщение maks2689 »

Теперь я вообще ничего не понимаю. Пробовал полностью переделовать программу инициализации, вообще никакой реакции. Даже в таком виде импортная матрица работает замечательно:

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

JEKINI
        GOTO    RASPR   ;НА ИНДИКАЦИЮ.
PAUSA
        MOVLW   .25
        RETURN
PAUS
        MOVLW   .255
        RETURN
JEKOMI
        CALL    PAUSA      ;ПАУЗА.
        RETURN
Ответить

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