- Лоботрясы

Поиск
Перейти к контенту

Главное меню:

Библиотеки для AVR

Читать в Яндекс.Подписках



     Библиотека для дисплея LPH9135
Просмотров: 4556

v 1.1: - Реализована возможность с помощью макроса _USE_SOFT_SPI выбрать аппаратный или программный SPI;
       
  - добавлена функция void SetRotation (unsigned int angle), где angle - угол поворота экрана (0, 90, 180 и 270 градусов), по умолчанию - 0
  
       - добавлена функция void LCD_FillLine (char tx1, char ty1, char tx2, char ty2, char width, int color) для рисования линии шириной width.

    Дисплеи LPH9135 широко применялись в телефонах бюджетных моделей Siemens, таких как  А31, C72, АХ72, АХ75 и С76.  
    Данный дисплей имеет разрешение 128x128 пикселей и может работать с тремя цветовыми палитрами: 256 цветов (8 бит на пиксель), 4096 (12 бит на пиксель) и 65536 цветов (16 бит на пиксель).
    В телефонах Siemens можно встретить четыре типа индикаторов с разрешением  128x128 пикселей - LPH9135 (контроллер LDS183),  LM15SGFNZ20, LM15SGFNZ22 и какую-то «тёмную лошадку» CG151313 -S604D.  И если на первые три дисплея найти какую-нибудь информацию можно, то нашедшему в своём телефоне 4-й экземпляр неутешительный совет
спрятать его подальше…
    Дисплеи  LPH9135, LM15SGFNZ20, LM15SGFNZ22 и  CG151313 -S604D.

    Цоколёвка дисплея 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-компоненты:

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

    В самом начале библиотеки, если объявлен макрос _8_BIT_COLOR, то цветовая палитра дисплея будет составлять 256 цветов, иначе - 65536 цветов.
    Если объявлен макрос
_USE_SOFT_SPI, используется программный SPI, иначе -аппаратный SPI.

1.
void LCD_init (void);
Инициализация дисплея
2. void SetRotation (unsigned int angle);
Задание угла поворота экрана (0º , 90º, 180º, 270º)
3. void SetArea (char x1, char x2, char y1, char y2);
Рабочая функция выделения области экрана
4. void Put_Pixel (char x, char y, unsigned int color);
Функция вывода точки (пикселя). x и y – координаты экрана, где будет отображён пиксель цветом color
5. void LCD_Putchar (char symbol, char x, char y, int t_color, int b_color, char zoom_width, char zoom_height);
Функция вывода одного символа ASCII-кода. Данная функция рассчитана на вывод символов размером 5х8 пикселей
symbol – выводимый на экран символ в ASCII-кодировке; x и y – начальная координата вывода символа; t_color – цвет пикселя;
b_color – цвет фона; переменные zoom_width и zoom_height увеличивают символ на экране в указанное число раз

6. void LCD_Puts(char *str, int x, int y, int t_color, int b_color, char zoom_width, char zoom_height);
Функция вывода строки, расположенной в ram-памяти микроконтроллера. x и y - координаты пикселя начала вывода строки
7. void LCD_Putsf(flash char *str, int x, int y, int t_color, int b_color, char zoom_width, char zoom_height);
Функция вывода строки, расположенной во flash-памяти микроконтроллера
8. void LCD_Putchar_Shadow (char symbol, char x, char y, int t_color, char zoom_width, char zoom_height);
То же, что и LCD_Putchar, только без цвета фона
9. void LCD_Puts_Shadow (char *str, int x, int y,  int t_color, char zoom_width, char zoom_height);
То же, что и LCD_Puts, только без цвета фона
10.
void LCD_Putsf_Shadow (flash char *str, int x, int y,  int t_color, char zoom_width, char zoom_height);
То же, что и LCD_Putsf, только без цвета фона
11.
void LCD_FillScreen (unsigned int color);
Функция заливки экрана цветом color
12.
void LCD_Output_image (char x, char y, char width, char height, flash char *img);
Функция вывода картинки. x и y начальная позиция выводимого на экран изображения; width и height – ширина и высота изображения
(в пикселях);  *img – указатель на массив данных, составляющих изображение. Данная функция предполагает, что массив данных
изображения расположен во flash-памяти микроконтроллера. Для преобразования необходимого вам изображения в массив, содержащий
цвет пикселей, можно воспользоваться программами Image2Lcd или Nokia Image Creator, которые несложно найти на просторах
интернета. Единственное требование – направление вывода массива изображения должно выполняться слева-направо, сверху-вниз!
При использовании 16-ти битной палитры, при преобразовании изображения в массив типа char, обязательно старший байт должен
идти первым!


    Объявление в начале файла 9135.h библиотеки макроса _GEOMETRICAL позволяет использовать функции вывода линии, рамки, прямоугольника, окружности, круга и треугольника.

13.
void LCD_DrawLine (char x1, char y1, char x2, char y2, int color);
Нарисовать линию. x1 и y1 – начальная позиция линии; x2 и y2 – конечная позиция линии
14. void LCD_FillLine (char tx1, char ty1, char tx2, char ty2, char width, int color);
Нарисовать линию шириной width
15. void LCD_DrawRect (char x1, char y1, char width, char height, char size, int color);
Нарисовать рамку. size - толщина рамки
16. void LCD_FillRect (char x1, char y1, char width, char height, int color);
Нарисовать прямоугольник
17. void LCD_DrawCircle (char xcenter, char ycenter, char rad, int color);
Нарисовать окружность. rad – радиус окружности в пикселях

18.
void LCD_FillCircle (char xcenter, char ycenter, char rad, int color);
Нарисовать круг, заполненный цветом color
19.
void LCD_DrawTriangle (char x1, char y1, char x2, char y2, char x3, char y3, int color);
Нарисовать контуры треугольника

20.
void LCD_FillTriangle (char x1, char y1, char x2, char y2, char x3, char y3, int color);
Нарисовать треугольник, заполненный цветом color

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

Скачать:
Библиотека для дисплея LPH9135
Печатная плата в Proteus и под ЛУТ

Обновлено 27.09.2014

© Igoryosha, 2013-2014

 
 
Назад к содержимому | Назад к главному меню