Многие уже разобрались, как использовать в своих проектах дисплей от Нокии3310, по этому предлагаю освоить более информативные и современные дисплеи от Нокии 6300.
Технические характеристики:TFT матрица, 16 млн. цветов, разрешение 320х240пикселей
Контроллер дисплея:MC2PA8201
Маркировка дисплея: LS022 или LS024
Взаимозаменяемые аналоги дисплеяNOKIA:
3720c, 5320, 5330, 5610, 5630, 5700, 5730, 6110n, 6120с, 6208, 6220с, 6303, 6303i, 6350, 6500, 6500s, 6555, 6600, 6600s, 6720, 6730, 6760, 7500, 8600,
Е52, Е55,Е65,Е66, Е75,N71, N73, N75, N76,N77, N78, N79, N81, N82,N93
(для телефонов ети дисплеи не взаимозаменяемы из-за физических размеров и расположения шлейфа, но у нас они все будут работать.)
Для примера, вывел немного текста, хотя картинки с 16 млн. цветов выглядят намного красивее:
Расположение выводов:
Для питания дисплея используются два напряжения 1.8 и 2.8 вольт, для подсветки дисплея 12 вольт. Амплитуда управляющих сигналов должна быть 1.8 вольта, для согласования уровней контроллера и дисплея, я использовал делители из двух, последовательно включенных резисторов ( для каждой цепи ).
Схема подключения к контроллеру:
Плата согласования:
#include <mega128.h>
#include <delay.h>
// Подключение дисплея
#define DATA PORTD
#define RS PORTE.0
#define DC PORTE.1
#define WR PORTE.2
// Определениецветов
#define black 0,0,0 // черный
#define red 255,0,0 // красный
#define green 0,255,0 // зеленый
#define blue 0,0,255 // синий
#define yellow 255,255,0 // жёлтый
#define cyan 0,255,255 // голубой
#define lilac 255,0,255 // сиреневый
#define white 255,255,255 // белыйvoidSendCom (unsigned int com) // отправкакоманд
{
DC = 0;
DATA = com;
WR = 0;
WR = 1;
}voidSendDat (unsigned intdat)//отправка данных
{
DC = 1;
DATA = dat;
WR = 0;
WR = 1;
}voidLCDinit ()// инициализация дисплея
{
WR = 1;
RES = 0;
delay_ms(1);
RES = 1;
delay_ms(5);
SendCom(0x11); // Выход дисплея из спячки
SendCom(0x29); // Включение дисплея
delay_ms(1);
SendCom(0x36);
SendDat(0xC0);// Книжная ориентация дисплея
SendCom(0x3A);
SendDat(0b00000111); // 24 битныйрежим
}voidLCDclear(char color_r, char color_g, char color_b)// Заливка дисплея
{
unsigned long int i;
SendCom(0x2A); // КомандаориетациипоХкоординате
SendDat(0); SendDat(0); // ДанныеначалаХкоординат (0)
SendDat(0); SendDat(240); // Данные конца Х координат (240)
SendCom(0x2B); //Команда ориентации по Y координате
SendDat(0); SendDat(0); // Данные начала Y координат (0)
SendDat(1); SendDat(65); // Данные конца Y координат (320)
SendCom(0x2C); //Команда записи в память дисплея
for (i=0;i<(320*240);i++) {SendDat(color_r);SendDat(color_g);SendDat(color_b);} // RGB Данные для записи в память дисплея
}
void main(void)
LCDinit(); //Инициализация дисплея
LCDclear(black); // Заливка дисплея чёрным цветомОбсуждение и дополнительные материалы тут: http://forum.phreakerclub.com/showthread.php?p=1381
phreakerclub.com
(c) andrik
ссылка на форум не работает
Попробуйте сюда https://phreaker.ru/forum/showthread.php?t=136