Главная » Микроконтроллеры
Призовой фонд
на март 2017 г.
1. UNI-T UT-39C
Паяльник
2. Тестер компонентов LCR-T4
Паяльник
3. 100 руб.
От пользователей

Библиотека для дисплея LPH9135

Дисплеи LPH9135 широко применялись в телефонах бюджетных моделей Siemens, таких как  А31, C72, АХ72, АХ75 и С76.  

Данный дисплей имеет разрешение 128x128 пикселей и может работать с тремя цветовыми палитрами: 256 цветов (8 бит на пиксель), 4096 (12 бит на пиксель) и 65536 цветов (16 бит на пиксель).

В телефонах Siemens можно встретить четыре типа индикаторов с разрешением  128x128 пикселей - LPH9135 (контроллер Philips LDS183),  LM15SGFNZ20, LM15SGFNZ22 и какую-то «тёмную лошадку» CG151313-S604D. И если на первые три дисплеи найти какую-нибудь информацию можно, то нашедшему в своём телефоне 4-й экземпляр неутешительный совет – спрятать его подальше…

Дисплеи LPH9135, LM15SGFNZ20, LM15SGFNZ22 и CG151313-S604D.

Дисплеи LPH9135, LM15SGFNZ20, LM15SGFNZ22 и CG151313-S604D

Распиновка дисплея LPH9135:

Распиновка дисплея LPH9135

1. CS – Chip Select. При установке в «0» контроллер дисплея принимает информацию;
2. RESET – вывод для сброса контроллера;
3. RS – вывод для определения типа передаваемых данных («0» - команда, «1» - данные);
4. CLK – вывод тактового сигнала для передачи данных;
5. DAT – вывод передачи данных;
6. 2,9V – к источнику питания;
7. GND – общий провод (земля);
8. ID – не нужен;
9. LEDA – вывод анодов светодиодов подсветки;
10. LEDC – вывод катодов светодиодов подсветки (к GND).

Схема подключения дисплея:

Схема подключения дисплея

Подсветка дисплея начинает работать уже с 9 В, отрегулировать её яркость по желанию можно резистором R7. Максимальный ток светодиодов подсветки составляет 19 мА.

Для подключения дисплея к микроконтроллеру можно применить модуль, в котором применяется металлическая рамка-держатель, снятая с платы телефона, и SMD-компоненты:

DSCN0208.jpgDSCN0101.jpg

LPH9135-PCBLayout.jpg

Библиотеки для работы с дисплеями я постарался делать по одному шаблону, что позволит легко переориентироваться с одного дисплея на другой, библиотека для LPH9135 не исключение, она сохранила ту же функциональность, что и библиотека для дисплея LPH9157-2, этому также поспособствовала одинаковая система команд LCD-контроллеров данных дисплеев. В библиотеке реализована работа с 2 цветовыми палитрами - 256 и 65536 цветов.

Функционал библиотеки (для CodeVisionAVR) работы с LPH9135 содержит следующие пользовательские функции:

1. void LCD_init ()

Инициализация дисплея.

2. void Put_Pixel (char x, char y, unsigned int color)

Функция вывода точки (пикселя). x и y – координаты экрана, где будет отображён пиксель цветом color.

3. void LCD_Putchar (char symbol, char x, char y, int t_color, int b_color, char zoom_width, char zoom_height, int rot)   

Функция вывода одного символа ASCII-кода. Данная функция рассчитана на вывод символов размером 5х8 пикселей, библиотека которых находится в файле Symbols.h. symbol – выводимый на экран символ в ASCII-кодировке; x и y – начальная координата вывода символа; t_color – цвет пикселя; b_color – цвет фона; переменные zoom_width и zoom_height увеличивают символ на экране в указанное число раз;  rot – угол поворота текста (0º , 90º, 180º, 270º).

4. void LCD_Putchar_Shadow (char symbol, char x, char y, int t_color, char zoom_width, char zoom_height, int rot)

То же, что и 3, только без цвета фона.

5. void LCD_Puts(char *str, int x, int y, int t_color, int b_color, char zoom_width, char zoom_height, int rot)

Функция вывода строки, расположенной в ram-памяти микроконтроллера. x и y - координаты пикселя начала вывода строки.

6. void LCD_Puts_Shadow (char *str, int x, int y, int t_color, char zoom_width, char zoom_height, int rot)

То же, что и 5, только без цвета фона.

7. void LCD_Putsf(flash char *str, int x, int y, int t_color, int b_color, char zoom_width, char zoom_height, int rot)

Функция вывода строки, расположенной во flash-памяти микроконтроллера.

8. void LCD_Putsf_Shadow (flash char *str, int x, int y, int t_color, char zoom_width, char zoom_height, int rot)

То же, что и 7, только без цвета фона.

9. void LCD_FillScreen (unsigned int color)

Функция заливки экрана цветом color.

10. void LCD_Output_image (char x, char y, char width, char height, flash char *img, int rot)

Функция вывода картинки. x и y начальная позиция выводимого на экран изображения; width и height – ширина и высота изображения (в пикселях); *img – указатель на массив данных, составляющих изображение; rot – угол поворота изображения (0º , 90º, 180º, 270º). Данная функция предполагает, что массив данных изображения расположен во flash-памяти микроконтроллера. Для преобразования необходимого вам изображения в массив, содержащий цвет пикселей, можно воспользоваться программами Image2Lcd или Nokia Image Creator, которые несложно найти на просторах интернета. Единственное требование – направление вывода массива изображения должно выполняться слева-направо, сверху-вниз! При использовании 16-ти битной палитры, при преобразовании изображения в массив типа char, обязательно старший байт должен идти первым!

11. void LCD_DrawLine (char x1, char y1, char x2, char y2, int color)

Нарисовать линию. x1 и y1 – начальная позиция линии; x2 и y2 – конечная позиция линии.

12. void LCD_DrawRect (char x1, char y1, char width, char height, char size, int color)

Нарисовать рамку. size - толщина рамки.

13. void LCD_FillRect (char x1, char y1, char width, char height, int color);

Нарисовать прямоугольник.

14. void LCD_DrawCircle (char xcenter, char ycenter, char rad, int color);

Нарисовать окружность. rad – радиус окружности в пикселях.

15. void LCD_FillCircle (char xcenter, char ycenter, char rad, int color);

Нарисовать круг, заполненный цветом color.

16. void LCD_DrawTriangle (char x1, char y1, char x2, char y2, char x3, char y3, int color)

Нарисовать контуры треугольника.

17. void LCD_FillTriangle (char x1, char y1, char x2, char y2, char x3, char y3, int color)

Нарисовать треугольник, заполненный цветом color.

В самом начале библиотеки, если объявлен макрос _8_BIT_COLOR, то цветовая палитра дисплея будет составлять 256 цветов, иначе - 65536 цветов. Макрос _GEOMETRICAL позволяет использовать функции вывода линии, рамки, прямоугольника, окружности, круга и треугольника.

DSCN0122.jpgDSCN0231.jpg

P.S. Контроллер Philips LDS183, применяемый в дисплее LPH9135, по командам совместим с LCD-контроллером Philips PCF8833, который применялся в телефонах Nokia 6100, 7210, 6610, 7250, 6220 (разрешение 132x132 пикселей, 4096 цветов), поэтому данная библиотека, с минимумом изменений, может обеспечить работу вышеперечисленных дисплеев в 8-ми битном режиме.

Прикрепленные файлы:

Теги:

Опубликована: 26.06.2013 0 0
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 3 чел.

Комментарии (16) | Я собрал (0) | Подписаться

0
Виталий #
У меня есть дисплей от Siemens M55: LM15SGFNZ07. Подойдёт ли библиотека для него?
Ответить
0

[Автор]
Igoryosha #
Нет. Но Вам в помощь ссылка: http://www.drzasiek.strefa.pl/m55.html
Ответить
0
олежка #
Как перевести библиотеку для баском-авр? А то дисплей такой завалялся.
Ответить
0

[Автор]
Igoryosha #
Увы! Я работаю только с компиляторами на С.
Ответить
0
while(1) #
Как перевести библиотеку для баском-авр?
Берешь и переписываешь вручную, соблюдая специфику языка...
Ответить
0
Артём #
Это дисплей от Sagem Mx-5? (по контактам очень похоже) Ну и следовательно - библиотека подойдет, или мне идти туда же куда и сименсу?
Ответить
0

[Автор]
Igoryosha #
Ничего ответить не могу, т.к. впервые от Вас узнал об этой марке телефонов
Ответить
0
игорь #
12 вольт через резистор спалили подсветку!
Ответить
0

[Автор]
Igoryosha #
Странно... У меня такой индикатор в схеме аналоговых часов уже 2 месяца стабильно работает.
Ответить
0
4@k #
Там указан ещё и максимальный ток. Его ограничили до номинального?
И от себя: нельзя никогда принимать на веру подключения светодиодов к 12-ти вольтам! Берём вместо R7, подстроечник килоОм так в 10-20 и плавненько добиваемся оптимального свечения. Измеряем прибором значение и тогда уже впаиваем необходимый. Куда спешить?
Ответить
0
Serg #
А для дисплеев LM15...20/22 библиотеки есть?
Ответить
0

[Автор]
Igoryosha #
Планирую в будущем считать код их инициализации с помощью анализатора и составить библиотеку...
Ответить
0
Serg #
Не получилось пока получить коды инициализации дисплеев LM15...20/22? Или выяснить, какой там контроллер стоит? Может даташиты на них есть?
Ответить
0
Игорь #
А можете привести пример прошивки (исходный код) который вы применили на последних фото? Я только начинаю осваивать контроллеры и потому немного сложно без исходника разобраться что и куда..
Ответить
0

[Автор]
Igoryosha #
Могу скинуть Вам похожий код (как на фото - уже давно нет). Скиньте Ваш е-mail через мой профиль.
Ответить
0
Дмитрий #
Вопрос: как правильно конфигурировать ножки порта А? какие на вход, какие на выход?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Осциллограф DSO138 Raspberry Pi 2
вверх