Главная > AVR, LCD, Фрикерские штучки > Подключение дисплея NOKIA 6300 к микроконтроллеру

Подключение дисплея NOKIA 6300 к микроконтроллеру

Многие уже разобрались, как использовать в своих проектах дисплей от Нокии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

  1. s987654321
    4 июня 2012 в 19:58 | #1

    ссылка на форум не работает

  2. gogapaialnik
    3 сентября 2012 в 12:12 | #2
Необходимо войти на сайт, чтобы написать комментарий.
Яндекс.Метрика