Главная » Микроконтроллеры
Призовой фонд
на сентябрь 2017 г.
1. 1000 руб
PCBWay
2. Осциллограф DSO138
Паяльник
3. Тестер компонентов MG328
Паяльник
4. 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 чел.

Комментарии (18) | Я собрал (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
Дмитрий #
Вопрос: как правильно конфигурировать ножки порта А? какие на вход, какие на выход?
Ответить
0
Валерий #
Уважаемый Igoryosha! Приведите, пожалуйста, подключение данного дисплея к Arduino Uno. Без Вашей помощи не смог разобраться. Спасибо большое.
Ответить
0
дима #
Скажите пожалуйста , как правильно ( какой вывод дисплея к какой ножке мкм) подключать дисплей . Как его инициализировать в коде например
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Металлоискатель MD3010II Discovery V8
вверх