leom013 0 29 мая, 2010 Опубликовано 29 мая, 2010 · Жалоба Доброго времени суток. Есть пара вопросов по дисплею 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(); хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurila 0 31 мая, 2010 Опубликовано 31 мая, 2010 · Жалоба Есть пара вопросов по дисплею LPH88 .... на одном из сайтов встретил вот такую инициализацию: ...... хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца? Здесь много раз обсуждали LPH88. Воспользуйтесь поиском. Рекомендую искать через google.com (т.е. заходите на google и набираете: site:http://electronix.ru lph88) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alet 0 8 июня, 2010 Опубликовано 8 июня, 2010 · Жалоба Добрый день, видел в ветке, что кто-то разобрался с инициализацией на контроллере L2F50 и перевел в асм, если не сложно выложите алгоритм, в теме этого нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alet 0 10 июня, 2010 Опубликовано 10 июня, 2010 (изменено) · Жалоба С инициализацией понятно, работают также команды выключения и включения дисплея (но как-то странно, работают, если их передать как данные 1 байт). Кто подскажет вывод пикселя для L2F50. На какой-то странице есть кусок из примера от кранца, так он не рабочий!!! У кого L2F50, выбросили его чтоли? Описания вообще никакого, но кто-то ведь выводил изображение, поделитесь, пож-та. Изменено 10 июня, 2010 пользователем Alet Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alet 0 10 июня, 2010 Опубликовано 10 июня, 2010 · Жалоба Все, извиняюсь, все заработало, будем копать дальше)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cyber_RAT 0 12 июня, 2010 Опубликовано 12 июня, 2010 · Жалоба ну так поделились бы ;-). а то у меня аж 2 таких.. скоро начну их применять Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alet 0 13 июня, 2010 Опубликовано 13 июня, 2010 (изменено) · Жалоба Инициализация взята у кранца, только переписал под асм. Сначала использовал встроенный 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 Изменено 13 июня, 2010 пользователем Alet Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GMVM 0 24 августа, 2010 Опубликовано 24 августа, 2010 (изменено) · Жалоба Здравствуйте! Мельком пролистал тему, но так и не нашел ответа. Кто как запитал l2f50? Можно ли на 1v8 подать 3.3v? Изменено 24 августа, 2010 пользователем GMVM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demadsv 0 25 августа, 2010 Опубликовано 25 августа, 2010 · Жалоба Можно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ysmat 0 1 сентября, 2010 Опубликовано 1 сентября, 2010 (изменено) · Жалоба дисплей на 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 } Изменено 1 сентября, 2010 пользователем ysmat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ysmat 0 1 сентября, 2010 Опубликовано 1 сентября, 2010 · Жалоба Доброго времени суток. Есть пара вопросов по дисплею 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hatabi4 0 4 сентября, 2010 Опубликовано 4 сентября, 2010 · Жалоба у меня такой вопрос. есть небольшой экранчек от Siemens A57 монохромный. хочу его подключить к mega8. 1. где найти на него хотя бы какую нибудь инфу. перебрал все datasheet на чипы что стояли в телефоне и не один не управляет им. (фотографии экрана в архиве, может кому попадался) 2. поятен mеga8 его? или стоит купить другую? з.ы. экран хочу посадить в предворительном усилителе чтобы выводить инфу о выбраной функции.( "Радиохобби" 2/2005) Desktop.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Freeman_ru 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба 1. такого не видал 2. мега даже 8-я довольно мощная штука, потянет есесно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
therin 0 11 сентября, 2010 Опубликовано 11 сентября, 2010 · Жалоба Может кто-нибудь выложить инициализацию для дисплея от MC60 (LPH8731-3C). Пытаюсь подключить его к РС как здесь (http://www.oocities.com/neil_manc/s-a60/index.html), но похоже инициализация не подходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Freeman_ru 0 11 сентября, 2010 Опубликовано 11 сентября, 2010 · Жалоба Может кто-нибудь выложить инициализацию для дисплея от 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"); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться