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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Друг Кота
Сообщения: 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 КБ) 572 скачивания
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Друг Кота
Сообщения: 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 мс.
во всех книжках написано одно и тоже - сначала инициализация, потом юзай скоко надо. и процедура везде одна, могут только временные интервалы отличаться.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 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 странице.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

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

Сообщение Arlleex »

вопрос исчерпан
Последний раз редактировалось Arlleex Вс фев 07, 2010 20:55:23, всего редактировалось 1 раз.
Не умеешь - не берись, но не взявшись не научишься...
Друг Кота
Сообщения: 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:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

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

Сообщение GP1 »

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

Сообщение Arlleex »

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

Сообщение GP1 »

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

Сообщение Pooher »

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

Сообщение maks2689 »

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

Сообщение 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
Родился
Сообщения: 6
Зарегистрирован: Пт янв 29, 2010 21:00:52

Сообщение maks2689 »

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

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

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

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