LCD от Nokia 1202/1203/1280

Подключение разных дисплейчиков
Аватара пользователя
vintik
Читатель
Читатель
Сообщения: 4
Зарегистрирован: 05 окт 2015, 22:43

Re: LCD от Nokia 1202/1203/1280

Сообщение vintik » 18 окт 2015, 14:50

Пригодилось, и думаю не только мне. Жаль, не нащупал кнопочку с благодарностью, по этому только на словах :)
По аппаратному SPI, думаю, овчинка выделки не стоит. Все равно, придется тратить ресурсы на обновление данных, а сама передача занимает не так много времени.
Передача же данным способом, имеет хоть и не большую, но все же гибкость.
"Заряжать регистр" можно, как с младшего бита, так и со старшего. На оставшиеся 4е вывода порта, можно повесить АЦП, тактовый кварц, ИОН...
Да и порт можно выбрать любой, в отличии от аппаратного SPI.

Fai
инженер, программист, читатель
инженер, программист, читатель
Сообщения: 213
Зарегистрирован: 01 июн 2011, 13:02

Re: LCD от Nokia 1202/1203/1280

Сообщение Fai » 14 ноя 2015, 16:52

Хоть и несколько не по теме, но тем не менее: у меня появилось немного свободного времени, и я вспомнил, что уже давно пылится цветной ЖК-дисплей (320*240*18bit RGB, 2.2"), идущий в комплекте к тестово-отладочной плате для для 16F877, типа такого. А значит, время пришло :)
В общем-то, дока на контроллер есть, пример кода с (главное!) инициализацией есть. Поэтому дисплей заработал сразу и без особых проблем.
Управляется он просто, может, даже проще, чем от Nokia 1202: конфиг идет через запись данных в регистры, прям как в пик-контроллере, адрес 2 байта, и данные 2 байта. для отличия одного от другого есть аппаратный пин. Запись графики выполняется в 1 регистр, типа адрес, данные, данные, данные... после записи 1 значения автоматически инкрементируется выбранная координата, в прямом или обратном направлении. То есть в каждый момент адресуется только 1 пиксел. Дисплей имеет собственную память, так что плис не нужна, хотя его можно переключить в режим прямой адресации, например, для видео, но мк такое не потянут, естественно. Для управления нужно минимум 3 пина, если SPI устройство 1: RS, DO, CLK. Можно и параллельный интерфейс использовать, и 18 бит (3*6 бит, в 16-и битном режиме B и R урезаются до 5 бит: 5-6-5)цвет, и многое другое.
Для примера вывел шрифт, который использовал для Nokia 1202 ЖК, и его же, увеличенный в 2 раза программно. Так же не удержался и сделал ввод картинки с uart от пк, (мк конвертит 24 бит в 16), изображение, в общем-то, неплохое, лучше, чем я ожидал от достаточно дешевого китайского дисплея. Подсветке нужно хотя бы 20ма при 3.3В что бы более-менее что-то увидеть, а рабочий ток около 60ма.

Изображение Изображение Изображение

Программа на С, в принципе ничего интересного, тк стандартный SPI, но может кому пригодится.

[Расширение c было запрещено, вложение больше недоступно.]

Ах да, у него есть резистивный сенсор, до него не добрался, он тоже на SPI висит, вроде бы из сложного разве что калибровка координат сенсора относительно дисплея.

olegkaras2
Читатель
Читатель
Сообщения: 4
Зарегистрирован: 04 фев 2017, 18:27

Re: LCD от Nokia 1202/1203/1280

Сообщение olegkaras2 » 04 фев 2017, 18:30

Добрый день.
Подскажите как очищать одно знакоместо?

Fai
инженер, программист, читатель
инженер, программист, читатель
Сообщения: 213
Зарегистрирован: 01 июн 2011, 13:02

Re: LCD от Nokia 1202/1203/1280

Сообщение Fai » 12 фев 2017, 08:52

olegkaras2, в большинстве случаев можно просто вывести пробел, если шрифт моноширинный, тогда позиция знакоместа всегда известна точно, тут особых проблем нет (если я правильно понял вопрос). Я именно так и делаю при выводе чисел с плавающей разрядностю (а-ля вольтметр). Процедура преобразования 1 числа в набор разрядов ставит в незначащих разрядах 0 (просто обнулив перед преобразованием все переменные разрядов), а процедура вывода начинает со старшего разряда, и если там 0 - выводит пробел, до тех пор пока не встретит =/=0 число, либо до младшего-1 разряда.

olegkaras2
Читатель
Читатель
Сообщения: 4
Зарегистрирован: 04 фев 2017, 18:27

Re: LCD от Nokia 1202/1203/1280

Сообщение olegkaras2 » 12 фев 2017, 22:46

https://youtu.be/oxZiSn6krxk Вот видео моего дисплея, старое число меняется новым , то есть при смене числа старое число очищается , но проблема в том что очищается не просто одно знакоместо а очищается вся строка после этого числа.

Fai
инженер, программист, читатель
инженер, программист, читатель
Сообщения: 213
Зарегистрирован: 01 июн 2011, 13:02

Re: LCD от Nokia 1202/1203/1280

Сообщение Fai » 14 фев 2017, 20:41

Тогда надо смотреть, как выглядит процедура очистки (если она отделена от вывода). Я все писал сам с 0, и если будет ардуино - я с ней не знаком вообще.
Кстати, зачем очищать, если записывается число с постоянной разрядностью? И мне кажется, или вывод идет ну ооочень медленно. Я та такой дисплей видео выводил (правда, черно-белое), вывод текста на весь дисплей занимает менее 0.1с, даже для 8-и битного мк.

olegkaras2
Читатель
Читатель
Сообщения: 4
Зарегистрирован: 04 фев 2017, 18:27

Re: LCD от Nokia 1202/1203/1280

Сообщение olegkaras2 » 14 фев 2017, 21:43

Программу я делал в FLOWCODE .
Если я не очищаю знакоместо то старое число не очищается при выводе нового , получается новое число накладывается на старое.

Fai
инженер, программист, читатель
инженер, программист, читатель
Сообщения: 213
Зарегистрирован: 01 июн 2011, 13:02

Re: LCD от Nokia 1202/1203/1280

Сообщение Fai » 15 фев 2017, 22:08

Ого, несколько неожиданное поведение.
-для такого поведения мк должен помнить содержимое экрана, и делать над новым и старым логическое "ИЛИ", но несколько сомнительно, ибо на это нужно много памяти. Кстати, какой хоть контроллер то используется?
-может сам дисплей в режиме "ИЛИ", но тогда для очистки надо переключать его в другой режим...
В общем, надо изучать сгенерированный код, хотя бы процедуры очистки, чтобы очищать сколько надо...а еще лучше научиться писать хотя бы на С, благо там ничего сложного :)

olegkaras2
Читатель
Читатель
Сообщения: 4
Зарегистрирован: 04 фев 2017, 18:27

Re: LCD от Nokia 1202/1203/1280

Сообщение olegkaras2 » 16 фев 2017, 19:58

МК- ATMEGA32 .
Это косяк какой то в макросе LCD , если я его содержимое выложу тут , сможете помочь его поправить ?

Ответить