Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 12.10.2013, 13:47  
SergKT
Прохожий
 
Регистрация: 12.10.2013
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SergKT на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Помогите запустить дисплей от сотового LG B1300. На шлейфе надпись G112064-26.
Нашёл даташиты на телефон и контроллер (предполагаемый), разные исходники.
Проштудировал, вдоль и поперек, но запустить дисплей не могу, на экране пусто.
Сам телефон не включался, поэтому сигналы на шине посмотреть не получилось.
Подключаю дисплей к MSP430, все сигналы управления и шины протестировал, до дисплея доходят.
Есть подозрения, что все исходники, являются модификациями одного и того-же, и ориентированы на другой контроллер дисплея.
Так-что, кто пробовал, у кого получилось его запустить, подскажите, помогите.
Реклама:
SergKT вне форума  
Непрочитано 12.10.2013, 14:12  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от SergKT Посмотреть сообщение
Так-что, кто пробовал, у кого получилось его запустить, подскажите, помогите.
Пробовали
https://kazus.ru/forums/showthread.php?t=14848&page=3
http://radiokot.ru/forum/viewtopic.php?f=20&t=78889
Saadov вне форума  
Непрочитано 12.10.2013, 16:16  
SergKT
Прохожий
 
Регистрация: 12.10.2013
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SergKT на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от Saadov Посмотреть сообщение
Пробовали
https://kazus.ru/forums/showthread.php?t=14848&page=3
http://radiokot.ru/forum/viewtopic.php?f=20&t=78889
Спасибо, но обе эти ветки я читал и пробовал применить.
Но пока без результатно... ;(
SergKT вне форума  
Непрочитано 12.10.2013, 16:29  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от SergKT Посмотреть сообщение
Спасибо, но обе эти ветки я читал и пробовал применить.
Но пока без результатно... ;(
Мысли о дохлости дисплея не посещали?
Saadov вне форума  
Непрочитано 12.10.2013, 16:58  
SergKT
Прохожий
 
Регистрация: 12.10.2013
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SergKT на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от Saadov Посмотреть сообщение
Мысли о дохлости дисплея не посещали?
Такая вероятность конечно есть, но контроллер вроде-бы отвечает, данные я с него считываю. При разных вариантах алгоритма инициализации и опроса, разные но стабильные данные. Только понять, что эти данные означают не получается.
Кстати в даташите на контроллер написано, что младшие биты "состояния" фиксированы для идентификации, но у меня они тоже другие (иногда меняются).
Поэтому и зародилась мысль, что контроллер другой, не тот о котором говорилось в тех ветках.
SergKT вне форума  
Непрочитано 12.10.2013, 18:00  
Saadov
Почётный гражданин KAZUS.RU
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Ну даже если контроллер чутка другой, телефон один и тот же, соответственно код инициализации и простого вывода симола(текста) должны вам подходить. Контроллер должен отреагировать на минимальную инициализацию указанную в даташите и простейшую команду посланную вами
Saadov вне форума  
Непрочитано 12.10.2013, 18:27  
SergKT
Прохожий
 
Регистрация: 12.10.2013
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SergKT на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от Saadov Посмотреть сообщение
Ну даже если контроллер чутка другой, телефон один и тот же, соответственно код инициализации и простого вывода симола(текста) должны вам подходить...
Что-то мне подсказывает, что это не совсем так...
Я уже имел опыт использования в своих поделках дисплея от Симменс S65.
Там в одном телефоне могли стоять дисплеи с тремя разными контроллерами (если память не изменяет), инициализация у них принципиально разная, на счет работы не знаю, подключал только один.
Я так понял, с этим B1300, видимо толку не будет, и долго возиться смысла нет, чтобы в результате получить маленький монохромный дисплей...
Был-бы рабочий телефон, можно было-бы попробовать отсканировать шину, и повозиться, а так...
Спасибо, вопрос снимаю.
SergKT вне форума  
Непрочитано 18.10.2013, 09:22  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Тема избитая (ну да, нашим местным монстрам подавай уже FullHD. Скромнее надо быть, товарищи ), но мож кому еще надо?
Давеча мастерил одну поделку с дисплейчиком от Nokia 5110. Под это дело переделал библиотеку с CCS-форума.
PHP код:
///////////////////////////////////////////////////////////////////////////////////
/*
Graphic LCD Nokia 3310 (LPH7779) routines v5
CCS compiler

by Michel Bavin 2004 --- bavin@skynet.be --- http://users.skynet.be/bk317494/ ---
august 29, 2004
by Denis Kuznetsov 2011-2013
added:
- Chars 6x8 (for compability with pseudographic)
- Russian chars Table6, Table7
- Pseudographic characters (from Extended ASCII) Table4, Table5
    Character '0x80' same as '0x80' from CP1252
    Character '0x81' same as '0xA9' from CP1252
    Character '0x82' same as '0xAB' from CP1252
    Character '0x83' same as '0xBB' from CP1252
    Character '0x84' same as '0xB0' from CP1252
    Character '0x85' same as '0xB1' from CP1252
    Character '0x86' same as '0xB5' from CP1252
    Character '0x87' same as '0xB6' from CP1252
    Character '0x88' same as '0xB9' from CP1251
    Character '0x89' same as '0x24' from CP1252
    Character '0x8A' uparrow
    Character '0x8B' downarrow
    Character '0x8C' leftarrow
    Character '0x8D' rightarrow
    Character '0x8E' degree
    Character '0x8F' lowbat degree
    Character '0x90' same as '0xB0' from Extended ASCII
    Character '0x91' same as '0xB1' from Extended ASCII
    Character '0x92' same as '0xB2' from Extended ASCII
    Character '0x93' same as '0xB3' from Extended ASCII
    Character '0x94' same as '0xB4' from Extended ASCII
    Character '0x95' same as '0xB5' from Extended ASCII
    Character '0x96' same as '0xB6' from Extended ASCII
    Character '0x97' same as '0xB7' from Extended ASCII
    Character '0x98' same as '0xB8' from Extended ASCII
    Character '0x99' same as '0xB9' from Extended ASCII
    Character '0x9A' same as '0xBA' from Extended ASCII
    Character '0x9B' same as '0xBB' from Extended ASCII
    Character '0x9C' same as '0xBC' from Extended ASCII
    Character '0x9D' same as '0xBD' from Extended ASCII
    Character '0x9E' same as '0xBE' from Extended ASCII
    Character '0x9F' same as '0xBF' from Extended ASCII
    Character '0xA0' same as '0xC0' from Extended ASCII
    Character '0xA1' same as '0xC1' from Extended ASCII
    Character '0xA2' same as '0xC2' from Extended ASCII
    Character '0xA3' same as '0xC3' from Extended ASCII
    Character '0xA4' same as '0xC4' from Extended ASCII
    Character '0xA5' same as '0xC5' from Extended ASCII
    Character '0xA6' same as '0xC6' from Extended ASCII
    Character '0xA7' same as '0xC7' from Extended ASCII
    Character '0xA8' same as '0xC8' from Extended ASCII
    Character '0xA9' same as '0xC9' from Extended ASCII
    Character '0xAA' same as '0xCA' from Extended ASCII
    Character '0xAB' same as '0xCB' from Extended ASCII
    Character '0xAC' same as '0xCC' from Extended ASCII
    Character '0xAD' same as '0xCD' from Extended ASCII
    Character '0xAE' same as '0xCE' from Extended ASCII
    Character '0xAF' same as '0xCF' from Extended ASCII
    Character '0xB0' same as '0xD0' from Extended ASCII
    Character '0xB1' same as '0xD1' from Extended ASCII
    Character '0xB2' same as '0xD2' from Extended ASCII
    Character '0xB3' same as '0xD3' from Extended ASCII
    Character '0xB4' same as '0xD4' from Extended ASCII
    Character '0xB5' same as '0xD5' from Extended ASCII
    Character '0xB6' same as '0xD6' from Extended ASCII
    Character '0xB7' same as '0xD7' from Extended ASCII
    Character '0xB8' same as '0xD8' from Extended ASCII
    Character '0xB9' same as '0xD9' from Extended ASCII
    Character '0xBA' same as '0xDA' from Extended ASCII
    Character '0xBB' same as '0xDB' from Extended ASCII
    Character '0xBC' same as '0xDC' from Extended ASCII
    Character '0xBD' same as '0xDD' from Extended ASCII
    Character '0xBE' same as '0xDE' from Extended ASCII
    Character '0xBF' same as '0xDF' from Extended ASCII

- Print inverted chars LCD_printchar_inv
- Print big size chars 
    LCD_print2char(int8 cvar) - print double size chars
    LCD_print2char_inv(int8 cvar) - print inverted double size chars
    LCD_print4char(int8 cvar) - print quadruple size chars
    LCD_print4char_inv(int8 cvar) - print inverted quadruple size chars
    
    Height and width of char can be set in the parameters of the function 
    table_to_nokialcd:
    table_to_nokialcd(char scale,char wide, int1 inv, char charsel)
    Where:
        scale - height of char (from 1 to 4)
        wide  - width of char (from 1 to 14)
        inv   - bit of inverted image (0 - not inverted)
    For example:
        Print inverted char height 3 and width 5
        void LCD_printMYchar(int8 cvar)
        {
            table_to_nokialcd(3,5,1,cvar);
        }

List of functions:
    void    LCD_init(void);
    void    LCD_write_command(char byteforLCD_command);
    void    LCD_write_data(char byteforLCD_data);
    void    LCD_write_dorc(char bytefornokia);
    void    LCD_gotoxy(int8 xnokia, int8 ynokia);
    void    LCD_erase_y(int8 ynokia);
    void    LCD_erase_x(int8 xnokia);
    void    LCD_printchar(int8 cvar);
    void    LCD_printchar_inv(int8 cvar);
    void    LCD_print2char(int8 cvar);
    void    LCD_print2char_inv(int8 cvar);
    void    LCD_print4char(int8 cvar);
    void    LCD_print4char_inv(int8 cvar);
    void    LCD_clean_ddram(void);
    void    table_to_nokialcd(char scale,int1 inv,char charsel);
    void    LCD_write_data_inv(char bytefornokia_data_inv);
    void    LCD_plot(int8 xnokia,int8 plot_value8);
    void    LCD_clear_screen(void);
    void    LCD_clear_xy(int8 xnokia, int8 ynokia);
    void    LCD_print_uparrow(void);
    void    LCD_print_downarrow(void);
    void    LCD_print_leftarrow(void);
    void    LCD_print_rightarrow(void);
    void    LCD_print_degree(void);
    void    LCD_print_lowbatdegree(void);


*/

// ex:
//
// ...
// LCD_init();
// ...
// LCD_gotoxy(0,0);
// printf(LCD_printchar,"test???");
// ...
/////////////////////////////////////////////////////////////////////////////////


char plot_value;
int32 plot_value32;
int32 plot_umsb,plot_lmsb,plot_ulsb,plot_llsb;
char col,row;

BYTE const TABLE1[192]=            
{
  
0x00,0x00,0x00,0x00,0x00,0x00,   // 20 space
  
0x00,0x00,0x5f,0x00,0x00,0x00,   // 21 !
  
0x00,0x07,0x00,0x07,0x00,0x00,   // 22 "
  
0x14,0x7f,0x14,0x7f,0x14,0x00,   // 23 #
  
0x24,0x2a,0x7f,0x2a,0x12,0x00,   // 24 $
  
0x23,0x13,0x08,0x64,0x62,0x00,   // 25 %
  
0x36,0x49,0x55,0x22,0x50,0x00,   // 26 &
  
0x00,0x05,0x03,0x00,0x00,0x00,   // 27 '
  
0x00,0x1c,0x22,0x41,0x00,0x00,   // 28 (
  
0x00,0x41,0x22,0x1c,0x00,0x00,   // 29)
  
0x14,0x08,0x3e,0x08,0x14,0x00,   // 2a *
  
0x08,0x08,0x3e,0x08,0x08,0x00,   // 2b +
  
0x00,0x50,0x30,0x00,0x00,0x00,   // 2c ,
  
0x08,0x08,0x08,0x08,0x08,0x00,   // 2d -
  
0x00,0x60,0x60,0x00,0x00,0x00,   // 2e .
  
0x20,0x10,0x08,0x04,0x02,0x00,   // 2f /
  
0x3e,0x51,0x49,0x45,0x3e,0x00,   // 30 0
  
0x00,0x42,0x7f,0x40,0x00,0x00,   // 31 1
  
0x42,0x61,0x51,0x49,0x46,0x00,   // 32 2
  
0x21,0x41,0x45,0x4b,0x31,0x00,   // 33 3
  
0x18,0x14,0x12,0x7f,0x10,0x00,   // 34 4
  
0x27,0x45,0x45,0x45,0x39,0x00,   // 35 5
  
0x3c,0x4a,0x49,0x49,0x30,0x00,   // 36 6
  
0x01,0x71,0x09,0x05,0x03,0x00,   // 37 7
  
0x36,0x49,0x49,0x49,0x36,0x00,   // 38 8
  
0x06,0x49,0x49,0x29,0x1e,0x00,   // 39 9
  
0x00,0x36,0x36,0x00,0x00,0x00,   // 3a :
  
0x00,0x56,0x36,0x00,0x00,0x00,   // 3b ;
  
0x08,0x14,0x22,0x41,0x00,0x00,   // 3c ‹
  
0x14,0x14,0x14,0x14,0x14,0x00,   // 3d =
  
0x00,0x41,0x22,0x14,0x08,0x00,   // 3e ›
  
0x02,0x01,0x51,0x09,0x06,0x00    // 3f ?
};
  
BYTE const TABLE2[192]=

  
0x32,0x49,0x79,0x41,0x3e,0x00,   // 40 @
  
0x7e,0x11,0x11,0x11,0x7e,0x00,   // 41 A
  
0x7f,0x49,0x49,0x49,0x36,0x00,   // 42 B
  
0x3e,0x41,0x41,0x41,0x22,0x00,   // 43 C
  
0x7f,0x41,0x41,0x22,0x1c,0x00,   // 44 D
  
0x7f,0x49,0x49,0x49,0x41,0x00,   // 45 E
  
0x7f,0x09,0x09,0x09,0x01,0x00,   // 46 F
  
0x3e,0x41,0x49,0x49,0x7a,0x00,   // 47 G
  
0x7f,0x08,0x08,0x08,0x7f,0x00,   // 48 H
  
0x00,0x41,0x7f,0x41,0x00,0x00,   // 49 I
  
0x20,0x40,0x41,0x3f,0x01,0x00,   // 4a J
  
0x7f,0x08,0x14,0x22,0x41,0x00,   // 4b K
  
0x7f,0x40,0x40,0x40,0x40,0x00,   // 4c L
  
0x7f,0x02,0x0c,0x02,0x7f,0x00,   // 4d M
  
0x7f,0x04,0x08,0x10,0x7f,0x00,   // 4e N
  
0x3e,0x41,0x41,0x41,0x3e,0x00,   // 4f O
  
0x7f,0x09,0x09,0x09,0x06,0x00,   // 50 P
  
0x3e,0x41,0x51,0x21,0x5e,0x00,   // 51 Q
  
0x7f,0x09,0x19,0x29,0x46,0x00,   // 52 R
  
0x46,0x49,0x49,0x49,0x31,0x00,   // 53 S
  
0x01,0x01,0x7f,0x01,0x01,0x00,   // 54 T
  
0x3f,0x40,0x40,0x40,0x3f,0x00,   // 55 U
  
0x1f,0x20,0x40,0x20,0x1f,0x00,   // 56 V
  
0x3f,0x40,0x38,0x40,0x3f,0x00,   // 57 W
  
0x63,0x14,0x08,0x14,0x63,0x00,   // 58 X
  
0x07,0x08,0x70,0x08,0x07,0x00,   // 59 Y
  
0x61,0x51,0x49,0x45,0x43,0x00,   // 5a Z
  
0x00,0x7f,0x41,0x41,0x00,0x00,   // 5b [
  
0x02,0x04,0x08,0x10,0x20,0x00,   // 5c
  
0x00,0x41,0x41,0x7f,0x00,0x00,   // 5d
  
0x06,0x09,0x09,0x06,0x00,0x00,   // 5e
  
0x40,0x40,0x40,0x40,0x40,0x00    // 5f
};

BYTE const TABLE3[192]=

  
0x00,0x01,0x02,0x04,0x00,0x00,   // 60
  
0x20,0x54,0x54,0x54,0x78,0x00,   // 61 a
  
0x7f,0x48,0x44,0x44,0x38,0x00,   // 62 b
  
0x38,0x44,0x44,0x44,0x20,0x00,   // 63 c
  
0x38,0x44,0x44,0x48,0x7f,0x00,   // 64 d
  
0x38,0x54,0x54,0x54,0x18,0x00,   // 65 e
  
0x08,0x7e,0x09,0x01,0x02,0x00,   // 66 f
  
0x0c,0x52,0x52,0x52,0x3e,0x00,   // 67 g
  
0x7f,0x08,0x04,0x04,0x78,0x00,   // 68 h
  
0x00,0x44,0x7d,0x40,0x00,0x00,   // 69 i
  
0x20,0x40,0x44,0x3d,0x00,0x00,   // 6a j
  
0x7f,0x10,0x28,0x44,0x00,0x00,   // 6b k
  
0x00,0x41,0x7f,0x40,0x00,0x00,   // 6c l
  
0x7c,0x04,0x18,0x04,0x78,0x00,   // 6d m
  
0x7c,0x08,0x04,0x04,0x78,0x00,   // 6e n
  
0x38,0x44,0x44,0x44,0x38,0x00    // 6f o
  
0x7c,0x14,0x14,0x14,0x08,0x00,   // 70 p
  
0x08,0x14,0x14,0x18,0x7c,0x00,   // 71 q
  
0x7c,0x08,0x04,0x04,0x08,0x00,   // 72 r
  
0x48,0x54,0x54,0x54,0x20,0x00,   // 73 s
  
0x04,0x3f,0x44,0x40,0x20,0x00,   // 74 t
  
0x3c,0x40,0x40,0x20,0x7c,0x00,   // 75 u
  
0x1c,0x20,0x40,0x20,0x1c,0x00,   // 76 v
  
0x3c,0x40,0x30,0x40,0x3c,0x00,   // 77 w
  
0x44,0x28,0x10,0x28,0x44,0x00,   // 78 x
  
0x0c,0x50,0x50,0x50,0x3c,0x00,   // 79 y
  
0x44,0x64,0x54,0x4c,0x44,0x00,   // 7a z
  
0x00,0x08,0x36,0x41,0x00,0x00,   // 7b
  
0x00,0x00,0x7f,0x00,0x00,0x00,   // 7c
  
0x00,0x41,0x36,0x08,0x00,0x00,   // 7d
  
0x10,0x08,0x08,0x10,0x08,0x00,   // 7e
  
0x78,0x46,0x41,0x46,0x78,0x00    // 7f
};

BYTE const TABLE4[192]= //!!!!!!!!!!!!

  
0x28,0x7E,0xA9,0x89,0x42,0x00,
  
0x1E,0x21,0x2D,0x33,0x21,0x1E,
  
0x10,0x28,0x54,0x28,0x44,0x00,
  
0x44,0x28,0x54,0x28,0x10,0x00,
  
0x00,0x04,0x0A,0x04,0x00,0x00,
  
0x88,0x88,0xBE,0x88,0x88,0x00,
  
0xFE,0x20,0x20,0x1E,0x20,0x00,
  
0x0C,0x1E,0xFE,0x02,0xFE,0x00,
  
0xFE,0x18,0x30,0xFE,0x00,0x06,
  
0x00,0x48,0xD4,0x56,0x24,0x00,
  
0x04,0x02,0x7f,0x02,0x04,0x00,   
  
0x10,0x20,0x7f,0x20,0x10,0x00,   
  
0x08,0x1c,0x2a,0x08,0x08,0xf8,   
  
0x08,0x08,0x2a,0x1c,0x08,0x00,   
  
0x00,0x06,0x09,0x09,0x06,0x00,   
  
0x00,0x06,0x0f,0x0f,0x06,0x00,    
  
0x49,0x00,0x24,0x00,0x92,0x00,
  
0x49,0x92,0x49,0x92,0x49,0x92,
  
0x55,0xAA,0x55,0xAA,0x55,0xAA,
  
0x00,0x00,0xFF,0xFF,0x00,0x00,
  
0x24,0x24,0xFF,0xFF,0x00,0x00,
  
0x24,0x24,0xFF,0xFF,0x00,0x00,
  
0x18,0xFF,0x00,0x00,0xFF,0x00,
  
0x18,0xF8,0x18,0x18,0xF8,0x00,
  
0x24,0x24,0xFC,0xFC,0x00,0x00,
  
0x24,0xE7,0x00,0x00,0xFF,0x00,
  
0x00,0xFF,0x00,0x00,0xFF,0x00,
  
0x24,0xE4,0x04,0x04,0xFC,0x00,
  
0x24,0x27,0x20,0x20,0x3F,0x00,
  
0x18,0x1F,0x18,0x18,0x1F,0x00,
  
0x24,0x24,0x3F,0x3F,0x00,0x00,
  
0x18,0x18,0xF8,0xF8,0x00,0x00
};

BYTE const TABLE5[192]= //!!!!!!!!!!!!

  
0x00,0x00,0x1F,0x1F,0x18,0x18,
  
0x18,0x18,0x1F,0x1F,0x18,0x18,
  
0x18,0x18,0xF8,0xF8,0x18,0x18,
  
0x00,0x00,0xFF,0xFF,0x18,0x18,
  
0x18,0x18,0x18,0x18,0x18,0x18,
  
0x18,0x18,0xFF,0xFF,0x18,0x18,
  
0x00,0x00,0xFF,0xFF,0x24,0x24,
  
0x00,0xFF,0x00,0x00,0xFF,0x18,
  
0x00,0x3F,0x20,0x20,0x27,0x24,
  
0x00,0xFC,0x04,0x04,0xE4,0x24,
  
0x24,0x27,0x24,0x24,0x27,0x24,
  
0x24,0xE4,0x04,0x04,0xE4,0x24,
  
0x00,0xFF,0x00,0x00,0xE7,0x24,
  
0x24,0x24,0x24,0x24,0x24,0x24,
  
0x24,0xE7,0x00,0x00,0xE7,0x24,
  
0x24,0x24,0x27,0x27,0x24,0x24,
  
0x18,0x1F,0x18,0x18,0x1F,0x18,
  
0x24,0x24,0xE4,0xE4,0x24,0x24,
  
0x18,0xF8,0x18,0x18,0xF8,0x18,
  
0x00,0x1F,0x18,0x18,0x1F,0x18,
  
0x00,0x00,0x3F,0x3F,0x24,0x24,
  
0x00,0x00,0xFC,0xFC,0x24,0x24,
  
0x00,0xF8,0x18,0x18,0xF8,0x18,
  
0x18,0xFF,0x18,0x18,0xFF,0x18,
  
0x24,0x24,0xFF,0xFF,0x24,0x24,
  
0x18,0x18,0x1F,0x1F,0x00,0x00,
  
0x00,0x00,0xF8,0xF8,0x18,0x18,
  
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
  
0xFF,0xFF,0xFF,0x00,0x00,0x00,
  
0x00,0x00,0x00,0xFF,0xFF,0xFF,
  
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F
};

BYTE const TABLE6[192]=
{
  
0x7E,0x11,0x11,0x11,0x7E,0x00,   //C0А
  
0x7F,0x49,0x49,0x49,0x31,0x00,   //C1Б
  
0x7F,0x49,0x49,0x49,0x36,0x00,   //C2В
  
0x7F,0x01,0x01,0x01,0x03,0x00,   //C3Г
  
0x60,0x3E,0x21,0x21,0x7F,0x00,   //C4Д
  
0x7F,0x49,0x49,0x49,0x41,0x00,   //C5Е
  
0x77,0x08,0x7F,0x08,0x77,0x00,   //C6Ж
  
0x22,0x41,0x49,0x49,0x36,0x00,   //C7З
  
0x7F,0x10,0x08,0x04,0x7F,0x00,   //C8И
  
0x7F,0x10,0x09,0x04,0x7F,0x00,   //C9И
  
0x7F,0x08,0x14,0x22,0x41,0x00,   //CAК
  
0x40,0x3E,0x01,0x01,0x7F,0x00,   //CBЛ
  
0x7F,0x02,0x0C,0x02,0x7F,0x00,   //CCМ
  
0x7F,0x08,0x08,0x08,0x7F,0x00,   //CDН
  
0x3E,0x41,0x41,0x41,0x3E,0x00,   //CEО
  
0x7F,0x01,0x01,0x01,0x7F,0x00,   //CFП
  
0x7F,0x09,0x09,0x09,0x06,0x00,   //D0Р
  
0x3E,0x41,0x41,0x41,0x22,0x00,   //D1С
  
0x01,0x01,0x7F,0x01,0x01,0x00,   //D2Т
  
0x27,0x48,0x48,0x48,0x3F,0x00,   //D3У
  
0x1E,0x21,0x7F,0x21,0x1E,0x00,   //D4Ф
  
0x63,0x14,0x08,0x14,0x63,0x00,   //D5Х
  
0x3F,0x20,0x20,0x3F,0x60,0x00,   //D6Ц
  
0x07,0x08,0x08,0x08,0x7F,0x00,   //D7Ч
  
0x7F,0x40,0x7F,0x40,0x7F,0x00,   //D8Ш
  
0x3F,0x20,0x3F,0x20,0x7F,0x00,   //D9Щ
  
0x01,0x7F,0x48,0x48,0x30,0x00,   //DAЪ
  
0x7F,0x48,0x30,0x00,0x7F,0x00,   //DBЫ
  
0x00,0x7F,0x48,0x48,0x30,0x00,   //DCЬ
  
0x22,0x41,0x49,0x49,0x3E,0x00,   //DDЭ
  
0x7F,0x08,0x3E,0x41,0x3E,0x00,   //DEЮ
  
0x46,0x29,0x19,0x09,0x7F,0x00    //DFЯ
};

BYTE const TABLE7[192]= 

  
0x20,0x54,0x54,0x54,0x78,0x00,   //E0а
  
0x3C,0x4A,0x4A,0x4A,0x30,0x00,   //E1б
  
0x7C,0x54,0x54,0x28,0x00,0x00,   //E2в
  
0x7C,0x04,0x04,0x04,0x04,0x00,   //E3г
  
0x60,0x38,0x24,0x24,0x7C,0x00,   //E4д
  
0x38,0x54,0x54,0x54,0x18,0x00,   //E5е
  
0x6C,0x10,0x7C,0x10,0x6C,0x00,   //E6ж
  
0x00,0x44,0x54,0x54,0x28,0x00,   //E7з
  
0x7C,0x20,0x10,0x08,0x7C,0x00,   //E8и
  
0x7C,0x21,0x12,0x09,0x7C,0x00,   //E9й
  
0x7C,0x10,0x28,0x44,0x00,0x00,   //EAк
  
0x40,0x38,0x04,0x04,0x7C,0x00,   //EBл
  
0x7C,0x08,0x10,0x08,0x7C,0x00,   //ECм
  
0x7C,0x10,0x10,0x10,0x7C,0x00,   //EDн
  
0x38,0x44,0x44,0x44,0x38,0x00,   //EEо
  
0x7C,0x04,0x04,0x04,0x7C,0x00,   //EFп
  
0x7C,0x14,0x14,0x14,0x08,0x00,   //F0р
  
0x38,0x44,0x44,0x44,0x00,0x00,   //F1с
  
0x04,0x04,0x7C,0x04,0x04,0x00,   //F2т
  
0x0C,0x50,0x50,0x50,0x3C,0x00,   //F3у
  
0x08,0x14,0x7C,0x14,0x08,0x00,   //F4ф
  
0x44,0x28,0x10,0x28,0x44,0x00,   //F5х
  
0x3C,0x20,0x20,0x3C,0x60,0x00,   //F6ц
  
0x0C,0x10,0x10,0x10,0x7C,0x00,   //F7ч
  
0x7C,0x40,0x7C,0x40,0x7C,0x00,   //F8ш
  
0x3C,0x20,0x3C,0x20,0x7C,0x00,   //F9щ
  
0x04,0x7C,0x50,0x50,0x20,0x00,   //FAъ
  
0x7C,0x50,0x20,0x00,0x7C,0x00,   //FBы
  
0x00,0x7C,0x50,0x50,0x20,0x00,   //FCь
  
0x28,0x44,0x54,0x54,0x38,0x00,   //FDэ
  
0x7C,0x10,0x38,0x44,0x38,0x00,   //FEю
  
0x48,0x54,0x34,0x14,0x7C,0x00    //FFя
};


//

void    nokia_init(void);
void    nokia_write_command(char bytefornokia_command);
void    nokia_write_data(char bytefornokia_data);
void    nokia_write_dorc(char bytefornokia);
void    nokia_gotoxy(int8 xnokiaint8 ynokia);
void    nokia_erase_y(int8 ynokia);
void    nokia_erase_x(int8 xnokia);
void    nokia_printchar(int8 cvar);
void    nokia_printchar_inv(int8 cvar);
void    nokia_clean_ddram(void);
void    table_to_nokialcd(void);
void    table_to_nokialcd_inv(void);
void    nokia_plot(int8 xnokia,int8 plot_value8);
void    nokia_write_data_inv(char bytefornokia_data_inv);
void    nokia_clear_screen(void);
void    nokia_clear_xy(int8 xnokiaint8 ynokia);
void    nokia_print_uparrow(void);
void    nokia_print_downarrow(void);
void    nokia_print_leftarrow(void);
void    nokia_print_rightarrow(void);
void    nokia_print_degree(void);
void    nokia_print_lowbatdegree(void);

//////////////////////////////////////////////////////////////////////////////////////
void LCD_init(void)
{
    
output_high(DC);            // bytes are stored in the display data ram,
                     //address counter, incremented automatically
    
output_high(CS);            // chip disabled
    
    
output_low(RST);            // reset chip during 250ms
    
delay_ms(10);         // works with less.....
    
output_high(RST);
    
    
LCD_write_command(0x21);   // set extins extended instruction set
    
LCD_write_command(0xba);   // Vop  v1: 0xc8 (for 3V)
                        // v2: 0xa0 (for 3V) 
                        // v3: 0xc2 (2v6-5v)   
    
LCD_write_command(0x04);   // bias
    
LCD_write_command(0x14);
    
LCD_write_command(0x0c);   // mod control normal change
    
LCD_write_command(0x20);   // horizontal mode from left to right, X 
                        //axe are incremented automatically ,
                        // 0x22 for vertical addressing ,back on
                        // normal instruction set too
    //  LCD_clean_ddram();      // reset DDRAM, otherwise the lcd is
                        // blurred with random pixels
    
LCD_write_command(0x0c);   // mod control normal change
}

//////////////////////////////////////////////////////////////////////////////////////
void LCD_clean_ddram(void)
{
    
LCD_gotoxy(0,0);         // 84*6=504      clear LCD
    
for (unsigned int16 ddram=900;ddram0;ddram--)
        
LCD_write_data(0x00);
}

void LCD_write_command(char byteforLCD_command)
{
    
output_low(DC);   // byte is a command it is read with the eight
                // SCLK pulse
    
output_low(CS);   // chip enabled
    
LCD_write_dorc(byteforLCD_command);
    
output_high(CS);   // chip disabled
}
void LCD_write_data(char byteforLCD_data)
{
    
output_high(DC);
    
output_low(CS);   // chip enabled
    
LCD_write_dorc(byteforLCD_data);
    
output_high(CS);   // chip disabled
}
void LCD_write_dorc(char bytefornokia)         // serial write data or
                                 // command subroutine
{
    
char caa;
    for (
caa=8;caa0;caa--)
    {
        
output_low(SCLK);
        
output_bit(SDA,shift_left(&bytefornokia,1,0));
        
output_high(SCLK);
    }
}

void LCD_gotoxy(int8 xnokiaint8 ynokia)      // Nokia LCD 3310 Position cursor
{
    
col xnokia;
    
row ynokia;
    
LCD_write_command(0x40|((ynokia)&0x07));   // Y axe initialisation: 0100 0yyy
    
LCD_write_command(0x80|(xnokia&0x7f));   // X axe initialisation: 1xxx xxxx
}

void LCD_erase_y(int8 ynokia)
{
    
LCD_gotoxy(0,ynokia);
    for(
char i=0;i14;i++)
        
LCD_printchar(" ");
}
void LCD_erase_x(int8 xnokia)
{
    
char column;
    for (
column=0;column!=6;column++)
    {
        
LCD_gotoxy(xnokia,column);
        
LCD_write_data(0x00);
        
LCD_write_data(0x00);
        
LCD_write_data(0x00);
        
LCD_write_data(0x00);
        
LCD_write_data(0x00);
        
LCD_write_data(0x00);
    }
}

void LCD_printchar(int8 cvar)               // Write 1 character to LCD
{
    
table_to_nokialcd(1,1,0,cvar);
}
void LCD_printchar_inv(int8 cvar)     // Write 1 character to LCD
{
    
table_to_nokialcd(1,1,1,cvar);
}
void LCD_print2char(int8 cvar)    // Write 1 big size character to LCD
{
    
table_to_nokialcd(2,2,0,cvar);
}
void LCD_print2char_inv(int8 cvar)     // Write 1 big size character to LCD
{
    
table_to_nokialcd(2,2,1,cvar);
}
void LCD_print3char(int8 cvar)    // Write 1 big size character to LCD
{
    
table_to_nokialcd(3,3,0,cvar);
}
void LCD_print3char_inv(int8 cvar)    // Write 1 big size character to LCD
{
    
table_to_nokialcd(3,3,1,cvar);
}
void LCD_print4char(int8 cvar)     // Write 1 very big size character to LCD
{
    
table_to_nokialcd(4,4,0,cvar);
}
void LCD_print4char_inv(int8 cvar)      // Write 1 very big size character to LCD
{
    
table_to_nokialcd(4,4,1,cvar);
}
void LCD_print42char(int8 cvar)     // Write 1 very big size character to LCD
{
    
table_to_nokialcd(4,2,0,cvar);
}

void table_to_nokialcd(char scale,char wideint1 invchar charsel)   
// extract ascii from tables & write to LCD
{
    
char charposchardata,char_row;

    if (
charsel0x20)
        return;
    for (
char_row=0;char_row6;char_row++) 
    {
        if (
charsel0x40)
        {
            
charpos=(((charsel&0xff)-0x20)*6);
            
chardata=TABLE1[(charpos+char_row)];
        }            
// use TABLE1
        
else if ((charsel0x3f) && (charsel0x60))
        {
            
charpos=(((charsel&0xff)-0x40)*6);
            
chardata=TABLE2[(charpos+char_row)];
        }            
// use TABLE2
        
else if ((charsel0x5f) && (charsel0x80))
        {
            
charpos=(((charsel&0xff)-0x60)*6);
            
chardata=TABLE3[(charpos+char_row)];
        }            
// use TABLE3
        
else if ((charsel0x7f) && (charsel0xA0))
        {
            
charpos=(((charsel&0xff)-0x80)*6);
            
chardata=TABLE4[(charpos+char_row)];
        }            
// use TABLE4
        
else if ((charsel0x9f) && (charsel0xC0))
        {
            
charpos=(((charsel&0xff)-0xA0)*6);
            
chardata=TABLE5[(charpos+char_row)];
        }            
// use TABLE5
        
else if ((charsel0xbf) && (charsel0xE0))
        {
            
charpos=(((charsel&0xff)-0xC0)*6);
            
chardata=TABLE6[(charpos+char_row)];
        }            
// use TABLE6
        
else if (charsel0xdf)
        {
            
charpos=(((charsel&0xff)-0xE0)*6);
            
chardata=TABLE7[(charpos+char_row)];
        }            
// use TABLE7

        
if(inv)
            
chardata ^= 0xFF;
        if(
scale › 1)
        {
            
uint32_t mask 0;
            if(
scale == 2)
                
mask 0x03;
            if(
scale == 3)
                
mask 0x07;
            if(
scale == 4)
                
mask 0x0F;
            
uint32_t data2disp 0;

            for(
char k=0;k8;k++)
                
data2disp += ((chardata ›› k) & 1) * (mask ‹‹ (scale));
            
data2disp ‹‹= (scale 2);
            if(
inv)
                
data2disp |= (scale 2);
            for(
char i=0;iscale;i++)
            {
                
LCD_write_command(0x40|((row+i)&0x07));
                
LCD_write_command(0x80|(col+char_row*wide&0x7f));
                for(
char j=0;jwide;j++)
                       
LCD_write_data(data2disp ›› (8));
            }
        }
        else
            
LCD_write_data(chardata);      // send data to nokia
    
}
    
col += wide;
}

void LCD_plot(int8 xnokia,int8 plot_value8)
{
    
char i;
    
plot_value32=0;
    
// plot_value32|=1;         // unremark this if you want dotgraph
                       // instead of bargraph
    
    
for (i=0;i!=plot_value8;i++)
    {
        
plot_value32|=1;         // remark this if you want dotgraph 
                        //instead of bargraph
        
plot_value32‹‹=1;
    }
    
plot_value32|=2;            // bottom line is always filled
    
plot_llsb=(plot_value32&0xff);
    
plot_ulsb=((plot_value32››8)&0xff);
    
plot_lmsb=((plot_value32››16)&0xff);
    
plot_umsb=((plot_value32››24)&0xff);
    
LCD_gotoxy(xnokia,1);
    
LCD_write_data_inv(plot_umsb);
    
LCD_gotoxy(xnokia,2);
    
LCD_write_data_inv(plot_lmsb);
    
LCD_gotoxy(xnokia,3);
    
LCD_write_data_inv(plot_ulsb);
    
LCD_gotoxy(xnokia,4);
    
LCD_write_data_inv(plot_llsb);
}

void LCD_write_data_inv(char byteforLCD_data_inv)
{
    
char caa;
    
output_high(DC);
    
output_low(CS);   // chip enabled
    
for (caa=8;caa0;caa--)
    {
        
output_low(SCLK);
        
delay_us(2);
        if ((
byteforLCD_data_inv&0x01)==0)
            
output_low(SDA);
        else
            
output_high(SDA);
        
output_high(SCLK);
        
byteforLCD_data_inv=byteforLCD_data_inv››1;
    }
    
output_high(CS);   // chip disabled
    
}

void LCD_clear_screen(void)
{
    
LCD_erase_y(0);
    
LCD_erase_y(1);
    
LCD_erase_y(2);
    
LCD_erase_y(3);
    
LCD_erase_y(4);
    
LCD_erase_y(5);
}

void LCD_clear_xy(int8 xnokiaint8 ynokia)
{
    
LCD_gotoxy(xnokia,ynokia);
    
LCD_printchar(" ");
}

void LCD_print_uparrow(void)
{
    
LCD_printchar(0x8A);
}
void LCD_print_downarrow(void)
{
    
LCD_printchar(0x8B);
}
void LCD_print_leftarrow(void)
{
    
LCD_printchar(0x8C);
}
void LCD_print_rightarrow(void)
{
    
LCD_printchar(0x8D);
}
void LCD_print_degree(void)
{
    
LCD_printchar(0x8E);
}
void LCD_print_lowbatdegree(void)
{
    
LCD_printchar(0x8F);

Для упрощения жизни - знакогенератор (или как там его обозвать). Простенький. Кто боится макросов в экселе, можно отключить Не смертельно. Он просто красивости добавляет :-P
Вложения:
Тип файла: rar знакогенератор для 3310-5110.rar (14.7 Кб, 173 просмотров)
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.

Последний раз редактировалось DK; 18.10.2013 в 10:23. Причина: Упс... мелкий косяк :-) Косяк поправил, добавил знакогенератор
DK вне форума  
Эти 4 пользователя(ей) сказали Спасибо DK за это сообщение:
BigallS (30.01.2014), lisergin (27.12.2013), PIC16F84 (27.01.2014), pv2 (27.01.2015)
Непрочитано 31.01.2014, 16:59  
BigallS
Временная регистрация
 
Регистрация: 18.04.2011
Адрес: Russia
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
BigallS на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Библиотека не полностью, нет функций output_high, output_low, output_bit и объявлений некоторых define port(CS,DC....)

Последний раз редактировалось BigallS; 31.01.2014 в 17:14.
BigallS вне форума  
Непрочитано 01.02.2014, 22:36  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 243
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Для дисплея от 1616 нокии есть код для пика с софтовым SPI ?
russo_turisto вне форума  
 

Закладки

Метки
lcd
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто использовал дисплеи от сотовых телефонов - помогите! Afandi Делимся опытом 12 14.01.2012 09:48
дисплеи от сотовых Sp-alex-trio Ремонт оргтехники 5 22.05.2009 15:11
преобразователь код-код zazan111 TTL и CMOS логика 18 05.01.2009 06:11
TV LCD дисплеи NecroSS Ремонт оргтехники 1 08.12.2008 11:48


Часовой пояс GMT +4, время: 13:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot