Страница 17 из 123

Добавлено: Пт янв 29, 2010 23:33:07
Arlleex
GP1 писал(а):Ну тогда хотя бы прочти что-нибудь про LCD, там же русским языком написано прежде чем использовать индикатор его надо ИНИЦИАЛИЗИРОВАТЬ, а где у тебя процедура инициализации?
как я понимаю - инициализация - это предварительная подготовка индикатора для работы - это и задание курсоров, и задание всяких режимов работы этого индикатора.
Инициализация:
Я не могу добить эту табличку!!! Как организовывать инициализацию? я понял, какие 1 определяют команды, адресуемые по IR...
НО!!! ВСю ли табличку надо переписывать? как надо правильно делать?
Я не могу понять, сначала надо вывести 1 строчку этой таблицы, подождать, затем вторую строчку, затем подождать, затем третью и т.д. или можжно сразу вывести? одним байтом?

Вобщем, правильно быглядит инициализация:
00000001 - очищаем дисплей, адрес ДДрам на 0.
вторую строчку таблицы пропускаем.
ждем (задержка)
00000110 - при последующем байте сдвинуть адрес ддрам на 1 позицию (инкремент).
задержка
00001000 - выключил дислпей, никаких курсоров.
задержка
00010100 - смещаем курсор, вправо.
задержка
00111000 - 8 разрядная шина данных, 2 строки, 5*8т разрешение матрицы
перед всем этим я ставил E в 1, теперь сбразываю ее в 0 и все, можно переходить на RS=1.

Добавлено: Пт янв 29, 2010 23:49:14
GP1
Ну надо же!
Stalker46 установил новые правила инициализации LCD!
Я ПАЦТАЛОМ...
Может всет-таки стоит умных книжек почитать, там же черным по белому написано...

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


А можно ли первые 4 пункта выполнять в первую очередь, а все другие вразнаброс?

Добавлено: Сб янв 30, 2010 00:09:05
GP1
Не правла ли - ну совсем не то что у тебя :)))

зы: только первая пауза 20 мс.
во всех книжках написано одно и тоже - сначала инициализация, потом юзай скоко надо. и процедура везде одна, могут только временные интервалы отличаться.

Добавлено: Сб янв 30, 2010 00:15:29
Arlleex
А, ну, да...
А что делать с передачей данных? как там время разбросано?
Есть такая же табличка для ввода данных на озу видеопамяти?
И еще, когда, уже сформировали надпись, все готово... а у нас в настройках, в регистре команд D=0, что означает, что дисплей выключен. Что делать? Опять RS переключать в 0, и перенастраивать инициализация полностью (т.е. сначала, как писал я в прошлом посте), или просто записать 00001100 - теперь дисплей включен...

Добавлено: Сб янв 30, 2010 00:22:21
GP1
Все! Хорош!
Иди ты, нет не туда, а сайт фирмы МЭЛТ, там в разделе "Документация" все есть.
http://www.melt.com.ru/docs/index.php?SECTION_ID=42
опять же:
ibiza11 писал(а):
Stalker46 писал(а):на 8 чтоли странице был пост...
Вот pdf файл, который выкладывал GP1 в архивах на 8 странице.

Добавлено: Сб янв 30, 2010 00:29:46
Arlleex
у мя что то с компом, не открываются пдф файлы на сайтах...
:evil:
Вообщем, до завтра...

Добавлено: Сб янв 30, 2010 17:06:59
Arlleex
вопрос исчерпан

Добавлено: Сб янв 30, 2010 17:51:59
Arlleex
Вопрос исчерпан

Добавлено: Сб янв 30, 2010 19:09:18
GP1
Что опять...
Не работает!
Ну когда же ты наконец книжки читать начнешь! :evil: :evil: :evil:

Добавлено: Сб янв 30, 2010 20:48:17
Arlleex
Так я все же правильно сделал!!! Что еще не так?

Добавлено: Сб янв 30, 2010 20:54:56
GP1
ты мне напоминаешь отдельных начальников
"Есть два мнения: одно мое, другое не правильное"
ты эти картинки видел?

Добавлено: Сб янв 30, 2010 21:48:20
Arlleex
мля, как же это все сложно... А ты еще говоришь, что легко...
(хотя, может опыт помогает)...

Добавлено: Сб янв 30, 2010 21:56:26
GP1
Легко только ничего не делать, да в потолок плевать.

Добавлено: Вт фев 02, 2010 20:11:07
Pooher
Вот настрочил "программку" для перекодировки русских букв для вставки непосредственно в АСМ код. Может пригодится кому...

Добавлено: Вс фев 07, 2010 10:29:32
maks2689
подскажите с проблемой выода информации на жки MT-16S1B
на индикатор вообще не выводится информация только мигающий курсор

Добавлено: Вс фев 07, 2010 23:07:37
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			;НА РАСПРЕДЕЛИТЕЛЬ.

Добавлено: Пн фев 08, 2010 07:54:58
maks2689
вся соль заключается в том что данная программа не работает на мелтовских индикаторах на индикаторах зарубежного производста все работает отлично

Добавлено: Пн фев 08, 2010 15:08:41
maks2689
Я добавил комментарии - отредактировав сообщение? вроде бы все понятно.
Это подпрограмма отвечающая за инициализацию и вывод информации на индикатор.
Изучив даташиты на индикаторы пришел к выводу что они практически ничем не отличаются.

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

даташит на импортный индикатор: http://cumbriadesigns.co.uk/Datasheets/JM162ALCD.pdf

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

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

JEKINI
        GOTO    RASPR	;НА ИНДИКАЦИЮ.
PAUSA
        MOVLW   .25
        RETURN
PAUS
        MOVLW   .255
        RETURN
JEKOMI
        CALL    PAUSA      ;ПАУЗА.
        RETURN