Перейти к содержанию
    

Доброго времени суток. Есть пара вопросов по дисплею LPH88 : я так понимаю в этом дисплее нет режима 8 битного цвета? и по поводу инициализации, на одном из сайтов встретил вот такую инициализацию:

lcd_comtype(0x02);

lcd_comdat(0x04, 0x00);

lcd_comtype(0x0C);

lcd_comdat(0x00, 0x01);

delay_ms(40);

lcd_comtype(0x03);

lcd_comdat(0x00, 0x0C);

lcd_comtype(0x0E);

lcd_comdat(0x2D, 0x1F);

delay_ms(40);

lcd_comtype(0x0D);

lcd_comdat(0x06, 0x16);

delay_ms(40);

lcd_comtype(0x01);

lcd_comdat(0x02, 0x15);

lcd_comtype(0x05);

lcd_comdat(0x00, 0x30);

lcd_comtype(0x07);

lcd_comdat(0x00, 0x37);

CSpuls();

 

хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть пара вопросов по дисплею LPH88 .... на одном из сайтов встретил вот такую инициализацию:

......

хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца?

Здесь много раз обсуждали LPH88.

Воспользуйтесь поиском. Рекомендую искать через google.com (т.е. заходите на google и набираете:

site:http://electronix.ru lph88)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день, видел в ветке, что кто-то разобрался с инициализацией на контроллере L2F50 и перевел в асм, если не сложно выложите алгоритм, в теме этого нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С инициализацией понятно, работают также команды выключения и включения дисплея (но как-то странно, работают, если их передать как данные 1 байт). Кто подскажет вывод пикселя для L2F50. На какой-то странице есть кусок из примера от кранца, так он не рабочий!!!

У кого L2F50, выбросили его чтоли? Описания вообще никакого, но кто-то ведь выводил изображение, поделитесь, пож-та.

Изменено пользователем Alet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Инициализация взята у кранца, только переписал под асм.

Сначала использовал встроенный SPI, но на нем же висел программатор, когда отлаживал, подумал, что может влияет программатор и переделал на софт. SPI, если есть желание разбираться с моим кодом, велком, а так если есть вопросы, всегда пож-та )))

 

Кстати, для L2F50 есть команды включения и выключения дисплея, после инициализации делаю так, выключаю, записываю в память картинку, включаю, все сразу показывает, т.е. не показывает момент прорисовки, а так скорость хотелось бы побыстрее, но пока и такого хватает, делать что-то кроме меню для AVR пока нет надобности.

 

display_init:
    cbi PORTA,D_RESET; Вывод RESET в 0
    sbi PORTA,D_CS; CS=1 на время сброса
    sbi PORTB,D_RS    ; RS=1
    rcall del10ms    ; Задержка 10 мс
    sbi PORTA,D_RESET; Вывод RESET в 1    
    rcall del35ms    ; Задержка 35 мс
    cbi PORTA,D_CS; CS=0
    ldi tmp,$BC    ; Посылаем команду $BC - Data Control (data handling in RAM)
    rcall lcd_cmd
    ldi tmp,$2A
    rcall lcd_dat    ; 0x2A=565 mode, 0x0A=666mode, 0x3A=444mode
    rcall cs_pulse                ; Дергаем CS

    ldi ZL,low(INIT1*2)
    ldi ZH,high(INIT1*2)
    lpm
    mov tmp,r0
    rcall lcd_cmd    ; Посылаем команду $CA - Display Control
    clr bitcount
START_INIT1:
    inc bitcount
    adiw ZL,1
    lpm
    mov tmp,r0
    rcall lcd_dat
    cpi bitcount,$09              ; 9 байт данных послано
    breq STOP_INIT1
    jmp START_INIT1
STOP_INIT1:
;
    ldi ZL,low(INIT2*2)
    ldi ZH,high(INIT2*2)
    lpm
    mov tmp,r0
    rcall lcd_cmd    ; Посылаем команду $CB - pulse set for 64 gray scale
    clr bitcount
START_INIT2:
    inc bitcount
    adiw ZL,1
    lpm
    mov tmp,r0
    rcall lcd_dat
    ldi tmp,$00
    rcall lcd_dat
    cpi bitcount,$1D              ; 29 байт данных + 29 байт $00 послано
    breq STOP_INIT2
    jmp START_INIT2
STOP_INIT2:
;
    ldi ZL,low(INIT3*2)
    ldi ZH,high(INIT3*2)
    clr bitcount
START_INIT3:
    inc bitcount
    lpm
    mov tmp,r0
    rcall lcd_dat
    ldi tmp,$01
    rcall lcd_dat
    adiw ZL,1
    cpi bitcount,$22              ; 34 байта данных + 34 байта $01 послано
    breq STOP_INIT3
    jmp START_INIT3
STOP_INIT3:
;
    ldi ZL,low(INIT4*2)
    ldi ZH,high(INIT4*2)
    lpm
    mov tmp,r0
    rcall lcd_cmd    ; Посылаем команду $CC - pulse set for 16 gray scale
    clr bitcount
START_INIT4:
    inc bitcount
    adiw ZL,1
    lpm
    mov tmp,r0
    rcall lcd_dat
    cpi bitcount,$0F            ; 15 байт данных послано
    breq STOP_INIT4
    jmp START_INIT4
STOP_INIT4:
;
    ldi tmp,$CD        ; Set for gray scales
    rcall lcd_cmd
    ldi tmp,$00
    rcall lcd_dat

;    ldi tmp,$D0        ; Oscillator select
;    rcall lcd_cmd
;    ldi tmp,$00
;    rcall lcd_dat

    ldi tmp,$94        ; Display out of sleep (no parameter)
    rcall lcd_cmd

;    rcall del7ms

    ldi tmp,$15        ; Column address setting
    rcall lcd_cmd
    ldi tmp,$08
    rcall lcd_dat
    ldi tmp,$01
    rcall lcd_dat
    ldi tmp,$8B
    rcall lcd_dat
    ldi tmp,$01
    rcall lcd_dat    

    ldi tmp,$75        ; Page address setting
    rcall lcd_cmd
    ldi tmp,$00
    rcall lcd_dat
    ldi tmp,$8F
    rcall lcd_dat    

    ldi tmp,$AA        ; Area scroll setting
    rcall lcd_cmd
    ldi tmp,$00
    rcall lcd_dat
    ldi tmp,$AF
    rcall lcd_dat
    ldi tmp,$AF
    rcall lcd_dat
    ldi tmp,$03
    rcall lcd_dat

    ldi tmp,$AB        ; Scroll start setting
    rcall lcd_cmd
    ldi tmp,$00
    rcall lcd_dat

    sbi PORTB,D_RS

    ldi tmp,$AF        ; Display ON (no parameter)
    rcall lcd_cmd

    sbi PORTA,D_CS    ; CS=1
;ret
;====================== Инициализация закончена ========================================

; Далее очищаем экран или сразу выводим картинку и т.п.

;-------------------------------------------------------
cs_pulse:            ; Импульс CS
    sbi PORTA,D_CS
    cbi PORTA,D_CS
    ret
;====================== Подпрограммы ================================================
lcd_write:            ; Запись байта данных в дисплей L2F50126
    clr tmp2
send_SPI:
    inc tmp2
    sbi PORTA,D_DATA
    rol tmp
    brcs send_SPI_1
    cbi PORTA,D_DATA
send_SPI_1:
    sbi PORTA,D_CLK
    cbi PORTA,D_CLK
    cpi tmp2,$08
    brne send_SPI
    ret
;-------------------------------------------------------
lcd_cmd:            ; Запись команды в дисплей
    cbi PORTB,D_RS    ; RS=0 - команда, RS=1 - данные для L2F50126
    rcall lcd_write
    ldi tmp,$00
    rcall lcd_write
    sbi PORTB,D_RS
    ret
;-------------------------------------------------------
lcd_dat:            ; Запись данных в дисплей
    rcall lcd_write
    ldi tmp,$00
    rcall lcd_write
    ret
;-------------------------------------------------------

.CSEG
INIT1: .DB 0xCA,0x4C,0x01,0x53,0x00,0x02,0xB4,0xB0,0x02,0x00
INIT2: .DB 0xCB,0x11,0x27,0x3C,0x4C,0x5D,0x6C,0x78,0x84,0x90,0x99,0xA2,0xAA,0xB2,0xBA,0xC0,
0xC7,0xCC,0xD2,0xD7,0xDC,0xE0,0xE4,0xE8,0xED,0xF0,0xF4,0xF7,0xFB,0xFE
INIT3: .DB 0x01,0x03,0x06,0x09,0x0B,0x0E,0x10,0x13,0x15,0x17,0x19,0x1C,0x1E,0x20,0x22,0x24,
0x26,0x28,0x2A,0x2C,0x2D,0x2F,0x31,0x33,0x35,0x37,0x39,0x3B,0x3D,0x3F,0x42,0x44,
0
x47,0x5E
INIT4: .DB 0xCC,0x13,0x23,0x2D,0x33,0x38,0x3C,0x40,0x43,0x46,0x48,0x4A,0x4C,0x4E,0x50,0x64

Изменено пользователем Alet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! Мельком пролистал тему, но так и не нашел ответа. Кто как запитал l2f50? Можно ли на 1v8 подать 3.3v?

 

 

Изменено пользователем GMVM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дисплей на lph88

изображение в инверсии в смысле негативное

какие команды нужны чтоб ее выключить

/*****************************************************
МОДУЛЬ ВЫВОДА КАРТИНКИ
*****************************************************/
void foto(void)
{
unsigned int i;
PORTB.LCD_CS=0;  // select display
lcd_comtype(0x16);
lcd_comdat(0x83, 0x00);
lcd_comtype(0x17);
lcd_comdat(0xAF, 0x00);
lcd_comtype(0x21);
lcd_comdat(0x00, 0x00);
lcd_comtype(0x22);
lcd_write(0x76);  

  for (i=0; i<DISP_W*DISP_H; i++)
  {
  lcd_write16(image[i]);
  }
PORTB.LCD_CS=1;  // deselect display 
}

Изменено пользователем ysmat

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток. Есть пара вопросов по дисплею LPH88 : я так понимаю в этом дисплее нет режима 8 битного цвета? и по поводу инициализации, на одном из сайтов встретил вот такую инициализацию:

lcd_comtype(0x02);

lcd_comdat(0x04, 0x00);

lcd_comtype(0x0C);

lcd_comdat(0x00, 0x01);

delay_ms(40);

lcd_comtype(0x03);

lcd_comdat(0x00, 0x0C);

lcd_comtype(0x0E);

lcd_comdat(0x2D, 0x1F);

delay_ms(40);

lcd_comtype(0x0D);

lcd_comdat(0x06, 0x16);

delay_ms(40);

lcd_comtype(0x01);

lcd_comdat(0x02, 0x15);

lcd_comtype(0x05);

lcd_comdat(0x00, 0x30);

lcd_comtype(0x07);

lcd_comdat(0x00, 0x37);

CSpuls();

 

хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца?

использовал эту инициализацию вместо Кранца

и цвет стал нормальным :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня такой вопрос. есть небольшой экранчек от Siemens A57 монохромный. хочу его подключить к mega8.

1. где найти на него хотя бы какую нибудь инфу. перебрал все datasheet на чипы что стояли в телефоне и не один не управляет им. (фотографии экрана в архиве, может кому попадался)

2. поятен mеga8 его? или стоит купить другую?

з.ы. экран хочу посадить в предворительном усилителе чтобы выводить инфу о выбраной функции.( "Радиохобби" 2/2005)

Desktop.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. такого не видал

2. мега даже 8-я довольно мощная штука, потянет есесно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто-нибудь выложить инициализацию для дисплея от MC60 (LPH8731-3C). Пытаюсь подключить его к РС как здесь (http://www.oocities.com/neil_manc/s-a60/index.html), но похоже инициализация не подходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто-нибудь выложить инициализацию для дисплея от MC60 (LPH8731-3C). Пытаюсь подключить его к РС как здесь (http://www.oocities.com/neil_manc/s-a60/index.html), но похоже инициализация не подходит.

Это от LPH8731-1A, попробуй может прокатит.

void LCD_init (void)    //Инициализация
    {
    asm("cli");
    SPI_high();
    PORTE|=0x08;
    LCD_CS;
    LCD_COM;
    _delay_ms(20);
    LCD_COM;
    write_SPI(0x01);    //Software Reset
    _delay_ms(60);
    write_SPI(0xC6);    //INIESC - Initialize the Settings inside the IC
    _delay_ms(12);
    write_SPI(0xB9);    //REFSET - Set the states inside the IC
    LCD_DAT;
    write_SPI(0x00);
    LCD_COM;
    write_SPI(0xB6);    //Display Control - 
    LCD_DAT;
    write_SPI(0x57);    //Generator Frequency
    write_SPI(0x80);    //N-line inversion OFF
    write_SPI(0x96);    //2 Div osc on idle, Bias 1/7, place on bottom, 104x82, Display Duty 1/82
    write_SPI(0x00);    //Duty 1/84
    write_SPI(0x00);
    write_SPI(0xFF);    //Duty 1/82
    write_SPI(0x00);
    LCD_COM;
    write_SPI(0xB3);    //Gray Scale position set 0
    LCD_DAT;
    LCD_UNCS_CS;
    write_SPI(0x07);
    write_SPI(0x0E);
    write_SPI(0x15);
    write_SPI(0x1C);
    write_SPI(0x23);
    write_SPI(0x2A);
    write_SPI(0x31);
    write_SPI(0x38);
    write_SPI(0x3F);
    write_SPI(0x46);
    write_SPI(0x4D);
    write_SPI(0x54);
    write_SPI(0x5B);
    write_SPI(0x62);
    write_SPI(0x69);
    LCD_COM;
    write_SPI(0xB4);    //Gray scale position set 1
    LCD_DAT;
    LCD_UNCS_CS;
    write_SPI(0x1F);
    write_SPI(0x2F);
    write_SPI(0x3F);
    write_SPI(0x4F);
    write_SPI(0x5F);
    write_SPI(0x6F);
    write_SPI(0x7F);
    write_SPI(0x8F);
    write_SPI(0x9F);
    write_SPI(0xAF);
    write_SPI(0xBF);
    write_SPI(0xCF);
    write_SPI(0xDF);
    write_SPI(0xEF);
    write_SPI(0xFF);
    LCD_COM;
    write_SPI(0xB5);    //Set the Gray scale position set by default
    LCD_DAT;
    write_SPI(0x02);    //SET1
    LCD_COM;
    write_SPI(0xBD);    //Common output driver select
    LCD_DAT;
    write_SPI(0x00);    //
    LCD_COM;
    write_SPI(0xBE);    //Power Control
    LCD_DAT;
    write_SPI(0x1C);
    LCD_COM;
    write_SPI(0x11);    //Sleep Mode OFF
    _delay_ms(1);
    write_SPI(0xBA);    //LCD drive voltage
    LCD_DAT;
    write_SPI(0x6D);    //Цифровое значение напряжения - 108
    write_SPI(0x03);    //всегда 0x03
    LCD_COM;
    write_SPI(0x25);    //Write Contrast
    LCD_DAT;
    write_SPI(0x39);    //Уровень контрастности - 57
    LCD_COM;
    write_SPI(0xB7);    //Temperature gradient for LCD
    LCD_DAT;
    LCD_UNCS_CS;
    write_SPI(0x03);    //-0.2%/C
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    LCD_COM;
    write_SPI(0x03);    //Display Booster ON
    _delay_ms(60);
    write_SPI(0x20);    //Inversion OFF 
    //write_SPI(0x30);    //Set the partial area
    //LCD_DAT;
    //write_SPI(0x00);    //Начало - 0
    //write_SPI(0x00);    //Конец - 0
    //LCD_COM;
    //write_SPI(0x33);    //Vertical scroll definition
    //LCD_DAT;
    //write_SPI(0x00);    //Верхняя не прокручиваемая область
    //write_SPI(0x00);    //Количество линий для прокрутки
    //write_SPI(0x53);    //Нижняя не прокручиваемая область
    //LCD_COM;
    //write_SPI(0x37);    //Vertical scroll start address
    //LCD_DAT;
    //write_SPI(0x00);
    //write_SPI(0x00);
    //LCD_COM;
    write_SPI(0x3A);    //Interface Pixel Format
    LCD_DAT;
    write_SPI(0x03);    //12 bit/pixel
    VideoMode=LCD_4096CL;
    LCD_COM;
    write_SPI(0x2D);    //Set colors for 256 colors mode
    LCD_DAT;
    write_SPI(0x00);    //RED 0
    write_SPI(0x0F);    //RED 1
    write_SPI(0x3F);    //RED 3
    write_SPI(0x6F);    //RED 4
    write_SPI(0x9F);    //RED 5
    write_SPI(0xCF);    //RED 6
    write_SPI(0xFF);    //RED 7
    write_SPI(0x00);    //GREEN 0
    write_SPI(0x0F);    //GREEN 1
    write_SPI(0x3F);    //GREEN 3
    write_SPI(0x6F);    //GREEN 4
    write_SPI(0x9F);    //GREEN 5
    write_SPI(0xCF);    //GREEN 6
    write_SPI(0xFF);    //GREEN 7
    write_SPI(0x00);    //BLUE 4
    write_SPI(0x55);    //BLUE 5
    write_SPI(0xAA);    //BLUE 6
    write_SPI(0xFF);    //BLUE 7
    LCD_COM;
    write_SPI(0x36);    //Memory access method
    LCD_DAT;
    write_SPI(0x00);    //Default memory access method
    LCD_COM;
    write_SPI(0x2B);    //Page address set
    LCD_DAT;
    write_SPI(0x00);    //Start page at 0x00
    write_SPI(0x51);    //End page at 81
    LCD_COM;
    write_SPI(0x2A);    //Column address set
    LCD_DAT;
    write_SPI(0x00);    //Start page at 0x00
    write_SPI(0x64);    //End page at 100
    LCD_COM;
    write_SPI(0x2C);    //Write data into display RAM
    LCD_DAT;
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    write_SPI(0x00);
    LCD_COM;
    write_SPI(0x00);    //NOP
    write_SPI(0x29); //Display ON
    LCD_UNCS;
    asm("sei");

post-51677-1284246557_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...