Привет всем! У меня есть экранчик МТ16S2D от МЭЛТа, но я не могу заставить его работать, хотя в протеусе все проходит на ура. На экране - ничего. Все припаяно правилоно, на 100%. проверял. Напряжение = 5В. Дело точно не в контрастности, т.к. припаян подстроичник по схеме с мануала. ПЛЗ, подскажите. Как мне кажется проблема в инициализации. У кого есть опыт работы с МЭЛТами, скиньте примерчики простые.
А, что в МЭЛТ-овских дисплеях запись по нарастающему фронту сигнала е производиться? Обычно enable устанавливается в 1, устанавливаются нужные сигналы на линии данных, и сигнал enable для записи устанавливается в 0. У Вас наоборот.
SSG писал(а):А, что в МЭЛТ-овских дисплеях запись по нарастающему фронту сигнала е производиться? Обычно enable устанавливается в 1, устанавливаются нужные сигналы на линии данных, и сигнал enable для записи устанавливается в 0. У Вас наоборот.
Да, правильно, это я ошибся, когда сюда вставлял, просто я уже много вариантов испробовал, и так единицы и эдак. Что самое интересное: в мануале МЭЛТА написано, что данные записываются по спаду сигнала е, а в мануале контроллера ЖКИ МЭЛТа, что данные записываются, в течении времени, когда на е выставлена единица.
Myp писал(а):1. а точно дисплей рабочий? когда на него подаёшь напряжение он должен показывать квадратики
2. инициализация и вывод символов для этого дисплея есть гдето на сайте фирмы производителя МЭЛТ или гдето там на форуме
3. попробуй прочитать что у тебя на дисплее
тоесть чтонить отобрази а потом прочитай из дисплея и сравни совпадает ли
Когда подаю питание 5.5В видны на экране квадратики, я их контрастностью подкручиваю.
Любая операция с любыми внешними или с внутренними устройствами происходит по фронту или по спаду "клока", "защелки". 5.5В. предельно допустимое напряжение - убавь. Т.к. квадратики появились - переходи к инициализации со всеми задержками и проверками и НЕ проверками флагов: 0x30,// 6 8-ми проводный интерфейс 0x01,// 1 очистка экрана, счетчик на 0 0x0D,// 4 отображение включено 0x06,// 5 увеличение счётчика на 1 , как только её пройдёшь - экран очистится.
Сделал алгоритм с проверкой флагов. В общем, после инициализации квадратики остаются. Я записываю данные(2008 year). Ставлю курсор в начальное положение и считываю данные с ячейки, выдает FF, что по таблице соответствует заполненному квадратику? Ни кто не знает в чем дело? Я уже переписал процедуры для данных и команд в соответствии с рекомендуемыми под однотипные ЖКИ.
Добавлено спустя 2 часа 2 минуты 46 секунд: Новые данные: Я поставил большие выдержки времени между командами, чтобы посмотреть, что выполняется. Получается, что во время инициализации видно очистку экрана (по коду 01), т.е. экран на один такт очищается от заполненных квадратиков, а с наступлением следующей команды (06-выбор сдвига экрана) все квадратики экрана снова становятся залитыми. В чем дело?
Срабатывание очистки экрана говорит о работоспособности процедур записи команд и данных. В общем фигня какая-то.
Последний раз редактировалось Digit 16 янв 2008, 11:47, всего редактировалось 1 раз.
Причина:Есть же тег CODE!
Во-первых: Запись данных производится после "Разрешения обращения к модулю (а также строб данных)" Во-вторых: Громадная задержка в твоём случае не нужна - ты же работаешь не на 16МГц??? И в третьих: А порт "А" как настроен в момент чтения?
За пример большое спасибо! Вроде я делаю все также, только по-корявому и ламерски, но это я пока учусь.
Большие задержки я поставил между процедурами записи данных/команд, а не во время их исполнения. Я выяснил, что контроллер ЖКИ верно проходит инициализацию. Т.е. по ее завершению экран очищается. А как только начинается запись данных, так все ячейки опять полностью залиты, это подтверждается чтением из ЖКИ - FF.
Да ни фига не правильно. Если бы было правильно, то при записи в LCD одного байта (любого, кроме значения соответствующего этому чёрному прямоугольнику из соответствующей таблицы встроенного знакогенератора) на экране появилось бы что-то, причём в ОДНОЙ ЯЧЕЙКЕ, а не по всему полю. Положи сюда весь код!!!
Ура! Получилось! Проблема была не в коде, а в кривых руках, криво припаявших один проводок! Только увидел - сразу исправил - включил - все заработало!!! Ура!
Уже успел написать такие процедуры как очистка экрана, gotoxy, вывод строки целиком. Вот только проблема новая появилась: -Как вывести число?
Но у меня не работает, говорит, что тип flash unsigned char не соответствует типу unsigned char. Я стал использовать тип flash unsigned char и хорошо так написал процедуру вывода строки.