Форум РадиоКот • Просмотр темы - Дисплей от Siemens S65
Сообщения без ответов | Активные темы
Страница 13 из 13
[ Сообщений: 257 ]
... , , , ,
Автор
Сообщение
Andrew_KMR
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Пт мар 14, 2014 13:12:09
Грызет канифоль
Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Пт мар 12, 2010 12:09:26Сообщений: 274Откуда: Кемерово
Рейтинг сообщения: 2
Кстати одно время пробовал питать этот дисплей от 5В, никаких проблем не было, два дня на отказ гонял и ничего…
Теперь купленные запасы использую на отладках STM32.
Вернуться наверх
Реклама
Chettuser
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Сб апр 12, 2014 23:31:45
Народ, где сабж находите?
Вернуться наверх
Реклама
Andrew_KMR
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Вс апр 13, 2014 11:41:55
Грызет канифоль
Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Пт мар 12, 2010 12:09:26Сообщений: 274Откуда: Кемерово
Рейтинг сообщения: 2
В продаже то уже этих дисплеев фактически нет, остались только в запасах у тех, кто покупал по несколько штук.
Вернуться наверх
Chettuser
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Вс апр 13, 2014 15:34:37
Andrew_KMR писал(а):
Что за чудо плата?
Вернуться наверх
Реклама
Открыт интернет-магазин MEAN WELL.Market – весь ассортимент MEAN WELL, выгодные цены
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Подробнее>>
Andrew_KMR
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Вс апр 13, 2014 16:14:00
Грызет канифоль
Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Пт мар 12, 2010 12:09:26Сообщений: 274Откуда: Кемерово
Рейтинг сообщения: 2
Да заказывал себе несколько плат на заводе, решил их вот так спроектировать. На F103 в 48 ногом корпусе и на F407 в 176 ногом. USB часть отдельно вынес, там и хаб и ст линк и две фт232.
Вернуться наверх
Реклама
Реклама
LED-драйверы MOSO - надежные решения для индустриальных приложений
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Balzercvua
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Сб апр 19, 2014 13:06:37
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт дек 31, 2013 17:36:43Сообщений: 311
Рейтинг сообщения: 0
Ребята у меня есть вопрос!!!Вот вчера начал работать с диспом и у меня такая проблема провел иницилизацию,очистил ,залил черным,очищаю еще раз заливаю белым а он нехочет!!!
Вернуться наверх
Реклама
Andrew_KMR
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Сб апр 19, 2014 16:09:00
Грызет канифоль
Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Пт мар 12, 2010 12:09:26Сообщений: 274Откуда: Кемерово
Рейтинг сообщения: 0
Все зависит от того каким образом идет очистка и заливка, возможно при повторной заливке не задаете область памяти…
Вернуться наверх
Balzercvua
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Пн апр 21, 2014 16:45:43
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт дек 31, 2013 17:36:43Сообщений: 311
Рейтинг сообщения: 0
Andrew_KMR писал(а):
Все зависит от того каким образом идет очистка и заливка, возможно при повторной заливке не задаете область памяти…
Скорее всего да потомучто уровень у меня начинающий со всем этим делом и хотел бы совет как правильно это делать пишу я в
баскоме!
Вернуться наверх
Balzercvua
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Вт апр 22, 2014 00:16:39
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт дек 31, 2013 17:36:43Сообщений: 311
Рейтинг сообщения: 0
Ребята помогите не могу понять что я делаю неправильно
Посылаю эти две пачки иницилизации:
Init1:
Data &HFDFD% , &HFDFD%,
Data &HEF00%,
Data &HEE04% , &H1B04%,
Data &HFEFE% , &HFEFE%,
Data &HEF90% , &H4A04% , &H7F3F% , &HEE04% , &H4306%
Init2:
Data &HEF90% , &H0983% , &H0800% , &H0BAF% , &H0A00% , &H0500% , &H0600% , &H0700%,
Data &HEF00%,
Data &HEE0C%,
Data &HEF90% , &H0080%,
Data &HEFB0% , &H4902%,
Data &HEF00%,
Data &H7F01% , &HE181%,
Data &HE202%,
Data &HE276%,
Data &HE183%,
Data &H8001%,
Data &HEF90%,
Data &H0000%
после этого рисую делаю что угодно а вот если отправлю &H0040% заливает все черным цветом что мне и нужно что бы не видеть полосу заливки данными бо командой она происходит быстрее но после етой команды никако реакции может ктото знает как это исправить!!!
Вернуться наверх
Реклама
Kezoox
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Вт апр 22, 2014 01:26:07
Карма: -3
Рейтинг сообщений: -9
Зарегистрирован: Вт янв 01, 2013 12:36:33Сообщений: 46
Рейтинг сообщения: 0
Подскажите наблюдается эффект когда сьедается первый знак в строчке в модели экрана в протеусе экран разбит на строки и позиции задается СТРОКА-например пятая 0x404F (16пикселей высота ) начальная позиция первого знака 0x000B (12пикселей ширина ) а потом -позиция дата, позиция дата,позиция дата,позиция дата -зарисовываются символы 12х16 и если не повторять для каждого знака строку а только позицию первый знак сьедается и позиция сдвигается в "-1" а все остальные знаки отображаются и такое не происходит на реальном экране это специфика модели в протеусе или мой экран ls020 работает несмотря на отсутствие повторения номера строчки? 0040 0080 не заливает вообще -заливаю после 0504(Направление) ldi DATA,0x00;;ЦВЕТ ФОНА а потом в цикле задержки 131на175 эту дату отправляю моментально закрашивает
Вернуться наверх
Kezoox
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Вс май 04, 2014 17:02:28
Карма: -3
Рейтинг сообщений: -9
Зарегистрирован: Вт янв 01, 2013 12:36:33Сообщений: 46
Рейтинг сообщения: 0
откопано на лонах интернета оказывется эти команды просто ширмочки
:0x0040 - дисплей залит черным цветом (это не заливка цветом, картинка не стирается из памяти)
0x0080 - дисплей залит белым цветом (то же)
0x0000 - изображение восстанавливается-работает
и если отправлять сначала Y а потом X чаще в модели протеуса чем в lcd наблюдаются разные глюки
Вернуться наверх
Balzercvua
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Пн авг 04, 2014 02:02:10
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт дек 31, 2013 17:36:43Сообщений: 311
Рейтинг сообщения: 0
Ребята у кого то не завалялась дока по L2F50XXXX или кто то поможет разьяснить как проходит иницилизация и какие команды у меня были ls020 я их по впихивал в разнык уст-ва терь остался этот гемор!!!Буду очень благодарен!!!
Вернуться наверх
BigallS
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Пн авг 04, 2014 21:25:25
Опытный кот
Карма: 2
Рейтинг сообщений: 43
Зарегистрирован: Пт апр 15, 2011 21:11:22Сообщений: 744Откуда: Россия, Ставропольский край
Рейтинг сообщения: 2
Balzercvua писал(а):
Ребята у кого то не завалялась дока по L2F50XXXX или кто то поможет разьяснить как проходит иницилизация и какие команды...
Всё что нашёл ранее по этому дисплею во вложенном архиве, сам код не проверял.
Вернуться наверх
mcu51c51
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Чт мар 05, 2015 07:37:14
Зарегистрирован: Чт мар 05, 2015 07:21:08Сообщений: 9
Рейтинг сообщения: 0
Двухбайтовые шрифты не могут быть отображены
Спойлер {0x40,0x00,0x40,0x00,0x40,0x08,0xFC,0x1F,0x44,0x08,0x44,0x08,0xFC,0x0F,0x44, 0x08,0x44,0x08,0xFC,0x0F,0x44,0x00,0x40,0x20,0x40,0x20,0x80,0x3F,0x00,0x00}, {0x00,0x00,0xF8,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00, 0x00,0x00,0x07,0x02,0x02,0x02,0x1F,0x22,0x22,0x22,0x22,0x23,0x20,0x38,0x00}, {0x00,0x00,0x1F,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x3F,0x10,0x00,0x00, 0x00,0x00,0xE0,0x40,0x40,0x40,0xF8,0x44,0x44,0x44,0x44,0xC4,0x04,0x1C,0x00}, {0x02,0x00,0x02,0x00,0x02,0x10,0x3F,0xF8,0x22,0x10,0x22,0x10,0x3F,0xF0,0x22, 0x10,0x22,0x10,0x3F,0xF0,0x22,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00}, Код: /***************************************************** This program was produced by the CodeWizardAVR V1.25.9 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com Chip type : ATmega16 Program type : Application Clock frequency : 14,300000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega16> #include <spi> #include <string> #include <delay> #include <stdio> #define DISP_W 132 #define DISP_H 176 #define CHAR_W 8 #define CHAR_H 14 // строки для примера char txt1[]="Spirit for Datagor.ru"; char txt2[]="Siemens S65"; char txt3[]="display"; char txt4[]="Test programm"; // сопоставление выводов дисплея и микроконтроллера #define RESET PORTB.6 #define CS PORTB.3 // тактовый и информационный вход дисплея // подключены к аппаратному SPI микроконтроллера unsigned int i=0, j=0; unsigned int counter=0; // массив символов flash char ascii_tab[96][14]={ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // space (32) { 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, //! { 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //" { 0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00}, //# { 0x00, 0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18}, //$ { 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x66, 0xc6, 0x00, 0x00}, // % { 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, // & { 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' { 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00}, // ( { 0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00}, // ) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00}, // * { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00}, // + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00}, // ґ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . { 0x00, 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00}, // / { 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xd6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00}, // 0 (48-32) { 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x1e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0x66, 0x3a, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xe6, 0x66, 0x6c, 0x6c, 0x78, 0x6c, 0x6c, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xee, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0e, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x6c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x7c, 0x38, 0x7c, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x8c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x02, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00}, { 0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}, { 0x00, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1c, 0x36, 0x32, 0x30, 0x7c, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x70, 0x1c, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00}, { 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0x00, 0x00, 0x00} }; // определение основных цветов // просто для удобства;) #define BLACK 0x0000 #define RED 0xf800 #define GREEN 0x07e0 #define BLUE 0x001f #define WHITE 0xffff // цвет фона и текста по умолчанию unsigned int textcolor=GREEN; unsigned int bgcolor=0x0000; // запись одного байта в дисплей void lcd_write8(char dat) { spi(dat); } // запись двух байт void lcd_write(unsigned int dat) { lcd_write8(dat>>8); lcd_write8 (dat); } // дергаем выводом CS для обозначения конца передачи данных void lcd_cspulse(void) { CS= 1; #asm("nop") CS= 0; } // выбор регистра в контроллере дисплея void lcd_reg(char register_name) { lcd_write8(0x74); // стартовый байт на передачу команды lcd_write(register_name); lcd_cspulse(); } // отправка двух байт в графическую память дисплея void lcd_dat8(char register_dat1, char register_dat2) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write8(register_dat1); lcd_write8(register_dat2); lcd_cspulse(); } // то же самое, но из 16-и битной переменной void lcd_dat(unsigned int data) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write(data); lcd_cspulse(); } // программа инициализации дисплея void lcd_init_c(void) { RESET=0; CS=1; delay_ms(1); RESET=1; delay_ms(10); CS=0; delay_ms(50); lcd_reg(0x00);lcd_dat(0x0001); lcd_reg(0x03);lcd_dat(0x000c); delay_ms(100); lcd_reg(0x0d);lcd_dat(0x0616); lcd_reg(0x01);lcd_dat(0x0215); delay_ms(150); lcd_reg(0x07);lcd_dat(0x0037); CS= 1; } // заливка дисплея цветом color void fill_screen(unsigned int color) { CS= 0; // select display lcd_reg(0x16);lcd_dat(0x8300); lcd_reg(0x17);lcd_dat(0xAF00); lcd_reg(0x21);lcd_dat(0x0000); lcd_reg(0x22);lcd_write8(0x76); // start data transmission for (i=0; i<DISP_H; i++) { for(j=0;j<DISP_W;j++) { lcd_write(color); } } CS= 1; // deselect display } // поместить символ в графическую память дисплея void put_char(char x, char y, char c, unsigned int color, char rot) { char h,ch,p,mask; CS= 0; switch(rot) { default: case 0: lcd_reg(0x05);lcd_dat(0x0038); lcd_reg(0x17);lcd_dat8(x+CHAR_W-1, x); lcd_reg(0x16);lcd_dat8(y+CHAR_H-1, y); lcd_reg(0x21);lcd_dat8(x,y); lcd_reg(0x22); lcd_write8(0x76); break; case 1: lcd_reg(0x05);lcd_dat(0x0030); lcd_reg(0x16);lcd_dat8(x+CHAR_W-1, x); lcd_reg(0x17);lcd_dat8(y+CHAR_H-1, y); lcd_reg(0x21);lcd_dat8(y, x); lcd_reg(0x22); lcd_write8(0x76); break; } for (h=0; h<CHAR_H; h++) // every column of the character { if (rot==1) ch=ascii_tab[ c-32 ][h]; else ch=ascii_tab[ c-32 ][CHAR_H-h-1]; mask=0x80; for (p=0; p<CHAR_W; p++) // write the pixels { if (ch&mask) { lcd_write(color); } else { lcd_write(bgcolor); } mask=mask/2; } // for p } CS= 1; // deselect display } // записать строку, начиная с координат x, y, цветом color и ориентацией orient // если orient=0, то горизонтально, если =1, то вертикально void put_string(unsigned char x, unsigned char y, char *str, unsigned int color, unsigned char orient) { j=0; while (j<strlen(str)) { put_char(x+j*CHAR_W,y,str[j],orient, color); // 0 deg. rotated j++; } } interrupt [EXT_INT0] void ext_int0_isr(void) { } // прерывание INT1 // запись строк примера в дисплей interrupt [EXT_INT1] void ext_int1_isr(void) { put_string(6,0,txt1,0, textcolor); put_string(25,00,txt2,1, textcolor); put_string(40,15,txt3,1, textcolor); put_string(35,120,txt4,0, textcolor); } interrupt [EXT_INT2] void ext_int2_isr(void) { } void main(void) { PORTA=0x00;DDRA=0x00;PORTB=0x00;DDRB=0xFF;PORTC=0xFF;DDRC=0x00;PORTD=0xFF;DDRD=0x00;TCCR0=0x00; TCNT0=0x00;OCR0=0x00;TCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00; OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;ASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00; GICR|=0xE0;MCUCR=0x0A;MCUCSR=0x00;GIFR=0xE0;TIMSK=0x00;ACSR=0x80;SFIOR=0x00;SPCR=0x50;SPSR=0x01; #asm("sei") lcd_init_c(); // инициализация дисплея fill_screen(bgcolor); // заливка черным while (1) { char cnt[16]; // промежуточная переменная для функции sprint() sprintf(cnt,"%5u",counter); // преобразование числа в строку put_string(68,60,cnt,0, BLUE); // вывод полученной строки counter++; // инкремент переменной }; } ============ ============== 2-байт дисплей Китайский шрифт Невозможно отобразить Дисплей Multi-язык {0x40,0x00,0x40,0x00,0x40,0x08,0xFC,0x1F,0x44,0x08,0x44,0x08,0xFC,0x0F,0x44, 0x08,0x44,0x08,0xFC,0x0F,0x44,0x00,0x40,0x20,0x40,0x20,0x80,0x3F,0x00,0x00}, {0x00,0x00,0xF8,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00, 0x00,0x00,0x07,0x02,0x02,0x02,0x1F,0x22,0x22,0x22,0x22,0x23,0x20,0x38,0x00}, {0x00,0x00,0x1F,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x3F,0x10,0x00,0x00, 0x00,0x00,0xE0,0x40,0x40,0x40,0xF8,0x44,0x44,0x44,0x44,0xC4,0x04,0x1C,0x00}, {0x02,0x00,0x02,0x00,0x02,0x10,0x3F,0xF8,0x22,0x10,0x22,0x10,0x3F,0xF0,0x22, 0x10,0x22,0x10,0x3F,0xF0,0x22,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00},
Последний раз редактировалось mcu51c51 Чт мар 05, 2015 23:34:33, всего редактировалось 1 раз.
Вернуться наверх
mcu51c51
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Чт мар 05, 2015 23:26:30
Зарегистрирован: Чт мар 05, 2015 07:21:08Сообщений: 9
Рейтинг сообщения: 0
mcu51c51 писал(а):
:)
Двухбайтовые шрифты не могут быть отображены
Спойлер {0x40,0x00,0x40,0x00,0x40,0x08,0xFC,0x1F,0x44,0x08,0x44,0x08,0xFC,0x0F,0x44, 0x08,0x44,0x08,0xFC,0x0F,0x44,0x00,0x40,0x20,0x40,0x20,0x80,0x3F,0x00,0x00}, {0x00,0x00,0xF8,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00, 0x00,0x00,0x07,0x02,0x02,0x02,0x1F,0x22,0x22,0x22,0x22,0x23,0x20,0x38,0x00}, {0x00,0x00,0x1F,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x3F,0x10,0x00,0x00, 0x00,0x00,0xE0,0x40,0x40,0x40,0xF8,0x44,0x44,0x44,0x44,0xC4,0x04,0x1C,0x00}, {0x02,0x00,0x02,0x00,0x02,0x10,0x3F,0xF8,0x22,0x10,0x22,0x10,0x3F,0xF0,0x22, 0x10,0x22,0x10,0x3F,0xF0,0x22,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00}, Код: /***************************************************** This program was produced by the CodeWizardAVR V1.25.9 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com Chip type : ATmega16 Program type : Application Clock frequency : 14,300000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega16> #include <spi> #include <string> #include <delay> #include <stdio> #define DISP_W 132 #define DISP_H 176 #define CHAR_W 8 #define CHAR_H 14 // строки для примера char txt1[]="Spirit for Datagor.ru"; char txt2[]="Siemens S65"; char txt3[]="display"; char txt4[]="Test programm"; // сопоставление выводов дисплея и микроконтроллера #define RESET PORTB.6 #define CS PORTB.3 // тактовый и информационный вход дисплея // подключены к аппаратному SPI микроконтроллера unsigned int i=0, j=0; unsigned int counter=0; // массив символов flash char ascii_tab[96][14]={ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // space (32) { 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, //! { 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //" { 0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00}, //# { 0x00, 0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18}, //$ { 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x66, 0xc6, 0x00, 0x00}, // % { 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, // & { 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' { 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00}, // ( { 0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00}, // ) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00}, // * { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00}, // + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00}, // ґ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . { 0x00, 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00}, // / { 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xd6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00}, // 0 (48-32) { 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x1e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0x66, 0x3a, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xe6, 0x66, 0x6c, 0x6c, 0x78, 0x6c, 0x6c, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xee, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0e, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x6c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x7c, 0x38, 0x7c, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x8c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x02, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00}, { 0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}, { 0x00, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1c, 0x36, 0x32, 0x30, 0x7c, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x70, 0x1c, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00}, { 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0x00, 0x00, 0x00} }; // определение основных цветов // просто для удобства;) #define BLACK 0x0000 #define RED 0xf800 #define GREEN 0x07e0 #define BLUE 0x001f #define WHITE 0xffff // цвет фона и текста по умолчанию unsigned int textcolor=GREEN; unsigned int bgcolor=0x0000; // запись одного байта в дисплей void lcd_write8(char dat) { spi(dat); } // запись двух байт void lcd_write(unsigned int dat) { lcd_write8(dat>>8); lcd_write8 (dat); } // дергаем выводом CS для обозначения конца передачи данных void lcd_cspulse(void) { CS= 1; #asm("nop") CS= 0; } // выбор регистра в контроллере дисплея void lcd_reg(char register_name) { lcd_write8(0x74); // стартовый байт на передачу команды lcd_write(register_name); lcd_cspulse(); } // отправка двух байт в графическую память дисплея void lcd_dat8(char register_dat1, char register_dat2) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write8(register_dat1); lcd_write8(register_dat2); lcd_cspulse(); } // то же самое, но из 16-и битной переменной void lcd_dat(unsigned int data) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write(data); lcd_cspulse(); } // программа инициализации дисплея void lcd_init_c(void) { RESET=0; CS=1; delay_ms(1); RESET=1; delay_ms(10); CS=0; delay_ms(50); lcd_reg(0x00);lcd_dat(0x0001); lcd_reg(0x03);lcd_dat(0x000c); delay_ms(100); lcd_reg(0x0d);lcd_dat(0x0616); lcd_reg(0x01);lcd_dat(0x0215); delay_ms(150); lcd_reg(0x07);lcd_dat(0x0037); CS= 1; } // заливка дисплея цветом color void fill_screen(unsigned int color) { CS= 0; // select display lcd_reg(0x16);lcd_dat(0x8300); lcd_reg(0x17);lcd_dat(0xAF00); lcd_reg(0x21);lcd_dat(0x0000); lcd_reg(0x22);lcd_write8(0x76); // start data transmission for (i=0; i<DISP_H; i++) { for(j=0;j<DISP_W;j++) { lcd_write(color); } } CS= 1; // deselect display } // поместить символ в графическую память дисплея void put_char(char x, char y, char c, unsigned int color, char rot) { char h,ch,p,mask; CS= 0; switch(rot) { default: case 0: lcd_reg(0x05);lcd_dat(0x0038); lcd_reg(0x17);lcd_dat8(x+CHAR_W-1, x); lcd_reg(0x16);lcd_dat8(y+CHAR_H-1, y); lcd_reg(0x21);lcd_dat8(x,y); lcd_reg(0x22); lcd_write8(0x76); break; case 1: lcd_reg(0x05);lcd_dat(0x0030); lcd_reg(0x16);lcd_dat8(x+CHAR_W-1, x); lcd_reg(0x17);lcd_dat8(y+CHAR_H-1, y); lcd_reg(0x21);lcd_dat8(y, x); lcd_reg(0x22); lcd_write8(0x76); break; } for (h=0; h<CHAR_H; h++) // every column of the character { if (rot==1) ch=ascii_tab[ c-32 ][h]; else ch=ascii_tab[ c-32 ][CHAR_H-h-1]; mask=0x80; for (p=0; p<CHAR_W; p++) // write the pixels { if (ch&mask) { lcd_write(color); } else { lcd_write(bgcolor); } mask=mask/2; } // for p } CS= 1; // deselect display } // записать строку, начиная с координат x, y, цветом color и ориентацией orient // если orient=0, то горизонтально, если =1, то вертикально void put_string(unsigned char x, unsigned char y, char *str, unsigned int color, unsigned char orient) { j=0; while (j<strlen(str)) { put_char(x+j*CHAR_W,y,str[j],orient, color); // 0 deg. rotated j++; } } interrupt [EXT_INT0] void ext_int0_isr(void) { } // прерывание INT1 // запись строк примера в дисплей interrupt [EXT_INT1] void ext_int1_isr(void) { put_string(6,0,txt1,0, textcolor); put_string(25,00,txt2,1, textcolor); put_string(40,15,txt3,1, textcolor); put_string(35,120,txt4,0, textcolor); } interrupt [EXT_INT2] void ext_int2_isr(void) { } void main(void) { PORTA=0x00;DDRA=0x00;PORTB=0x00;DDRB=0xFF;PORTC=0xFF;DDRC=0x00;PORTD=0xFF;DDRD=0x00;TCCR0=0x00; TCNT0=0x00;OCR0=0x00;TCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00; OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;ASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00; GICR|=0xE0;MCUCR=0x0A;MCUCSR=0x00;GIFR=0xE0;TIMSK=0x00;ACSR=0x80;SFIOR=0x00;SPCR=0x50;SPSR=0x01; #asm("sei") lcd_init_c(); // инициализация дисплея fill_screen(bgcolor); // заливка черным while (1) { char cnt[16]; // промежуточная переменная для функции sprint() sprintf(cnt,"%5u",counter); // преобразование числа в строку put_string(68,60,cnt,0, BLUE); // вывод полученной строки counter++; // инкремент переменной }; } ============ ============== Двухбайтовые шрифты не могут быть отображены Невозможно отобразить Дисплей Multi-язык {0x40,0x00,0x40,0x00,0x40,0x08,0xFC,0x1F,0x44,0x08,0x44,0x08,0xFC,0x0F,0x44, 0x08,0x44,0x08,0xFC,0x0F,0x44,0x00,0x40,0x20,0x40,0x20,0x80,0x3F,0x00,0x00}, {0x00,0x00,0xF8,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00, 0x00,0x00,0x07,0x02,0x02,0x02,0x1F,0x22,0x22,0x22,0x22,0x23,0x20,0x38,0x00}, {0x00,0x00,0x1F,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x3F,0x10,0x00,0x00, 0x00,0x00,0xE0,0x40,0x40,0x40,0xF8,0x44,0x44,0x44,0x44,0xC4,0x04,0x1C,0x00}, {0x02,0x00,0x02,0x00,0x02,0x10,0x3F,0xF8,0x22,0x10,0x22,0x10,0x3F,0xF0,0x22, 0x10,0x22,0x10,0x3F,0xF0,0x22,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00},
Последний раз редактировалось mcu51c51 Чт мар 05, 2015 23:35:20, всего редактировалось 1 раз.
Вернуться наверх
mcu51c51
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Чт мар 05, 2015 23:30:58
Зарегистрирован: Чт мар 05, 2015 07:21:08Сообщений: 9
Рейтинг сообщения: 0
mcu51c51 писал(а):
mcu51c51 писал(а):
:)
Двухбайтовые шрифты не могут быть отображены
Спойлер {0x40,0x00,0x40,0x00,0x40,0x08,0xFC,0x1F,0x44,0x08,0x44,0x08,0xFC,0x0F,0x44, 0x08,0x44,0x08,0xFC,0x0F,0x44,0x00,0x40,0x20,0x40,0x20,0x80,0x3F,0x00,0x00}, {0x00,0x00,0xF8,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00, 0x00,0x00,0x07,0x02,0x02,0x02,0x1F,0x22,0x22,0x22,0x22,0x23,0x20,0x38,0x00}, {0x00,0x00,0x1F,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x3F,0x10,0x00,0x00, 0x00,0x00,0xE0,0x40,0x40,0x40,0xF8,0x44,0x44,0x44,0x44,0xC4,0x04,0x1C,0x00}, {0x02,0x00,0x02,0x00,0x02,0x10,0x3F,0xF8,0x22,0x10,0x22,0x10,0x3F,0xF0,0x22, 0x10,0x22,0x10,0x3F,0xF0,0x22,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00}, Код: /***************************************************** This program was produced by the CodeWizardAVR V1.25.9 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com Chip type : ATmega16 Program type : Application Clock frequency : 14,300000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega16> #include <spi> #include <string> #include <delay> #include <stdio> #define DISP_W 132 #define DISP_H 176 #define CHAR_W 8 #define CHAR_H 14 // строки для примера char txt1[]="Spirit for Datagor.ru"; char txt2[]="Siemens S65"; char txt3[]="display"; char txt4[]="Test programm"; // сопоставление выводов дисплея и микроконтроллера #define RESET PORTB.6 #define CS PORTB.3 // тактовый и информационный вход дисплея // подключены к аппаратному SPI микроконтроллера unsigned int i=0, j=0; unsigned int counter=0; // массив символов flash char ascii_tab[96][14]={ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // space (32) { 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, //! { 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //" { 0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00}, //# { 0x00, 0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18}, //$ { 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x66, 0xc6, 0x00, 0x00}, // % { 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, // & { 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' { 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00}, // ( { 0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00}, // ) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00}, // * { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00}, // + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00}, // ґ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . { 0x00, 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00}, // / { 0x00, 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xd6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00}, // 0 (48-32) { 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x1e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0x66, 0x3a, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xe6, 0x66, 0x6c, 0x6c, 0x78, 0x6c, 0x6c, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xee, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0e, 0x00}, { 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x6c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x7c, 0x38, 0x7c, 0xc6, 0xc6, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x8c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x02, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00}, { 0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}, { 0x00, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x1c, 0x36, 0x32, 0x30, 0x7c, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c}, { 0x00, 0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0xf0, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x70, 0x1c, 0xc6, 0x7c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x66, 0xfe, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00}, { 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0x00, 0x00, 0x00} }; // определение основных цветов // просто для удобства;) #define BLACK 0x0000 #define RED 0xf800 #define GREEN 0x07e0 #define BLUE 0x001f #define WHITE 0xffff // цвет фона и текста по умолчанию unsigned int textcolor=GREEN; unsigned int bgcolor=0x0000; // запись одного байта в дисплей void lcd_write8(char dat) { spi(dat); } // запись двух байт void lcd_write(unsigned int dat) { lcd_write8(dat>>8); lcd_write8 (dat); } // дергаем выводом CS для обозначения конца передачи данных void lcd_cspulse(void) { CS= 1; #asm("nop") CS= 0; } // выбор регистра в контроллере дисплея void lcd_reg(char register_name) { lcd_write8(0x74); // стартовый байт на передачу команды lcd_write(register_name); lcd_cspulse(); } // отправка двух байт в графическую память дисплея void lcd_dat8(char register_dat1, char register_dat2) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write8(register_dat1); lcd_write8(register_dat2); lcd_cspulse(); } // то же самое, но из 16-и битной переменной void lcd_dat(unsigned int data) { lcd_write8(0x76); // стартовый байт на запись данных lcd_write(data); lcd_cspulse(); } // программа инициализации дисплея void lcd_init_c(void) { RESET=0; CS=1; delay_ms(1); RESET=1; delay_ms(10); CS=0; delay_ms(50); lcd_reg(0x00);lcd_dat(0x0001); lcd_reg(0x03);lcd_dat(0x000c); delay_ms(100); lcd_reg(0x0d);lcd_dat(0x0616); lcd_reg(0x01);lcd_dat(0x0215); delay_ms(150); lcd_reg(0x07);lcd_dat(0x0037); CS= 1; } // заливка дисплея цветом color void fill_screen(unsigned int color) { CS= 0; // select display lcd_reg(0x16);lcd_dat(0x8300); lcd_reg(0x17);lcd_dat(0xAF00); lcd_reg(0x21);lcd_dat(0x0000); lcd_reg(0x22);lcd_write8(0x76); // start data transmission for (i=0; i<DISP_H; i++) { for(j=0;j<DISP_W;j++) { lcd_write(color); } } CS= 1; // deselect display } // поместить символ в графическую память дисплея void put_char(char x, char y, char c, unsigned int color, char rot) { char h,ch,p,mask; CS= 0; switch(rot) { default: case 0: lcd_reg(0x05);lcd_dat(0x0038); lcd_reg(0x17);lcd_dat8(x+CHAR_W-1, x); lcd_reg(0x16);lcd_dat8(y+CHAR_H-1, y); lcd_reg(0x21);lcd_dat8(x,y); lcd_reg(0x22); lcd_write8(0x76); break; case 1: lcd_reg(0x05);lcd_dat(0x0030); lcd_reg(0x16);lcd_dat8(x+CHAR_W-1, x); lcd_reg(0x17);lcd_dat8(y+CHAR_H-1, y); lcd_reg(0x21);lcd_dat8(y, x); lcd_reg(0x22); lcd_write8(0x76); break; } for (h=0; h<CHAR_H; h++) // every column of the character { if (rot==1) ch=ascii_tab[ c-32 ][h]; else ch=ascii_tab[ c-32 ][CHAR_H-h-1]; mask=0x80; for (p=0; p<CHAR_W; p++) // write the pixels { if (ch&mask) { lcd_write(color); } else { lcd_write(bgcolor); } mask=mask/2; } // for p } CS= 1; // deselect display } // записать строку, начиная с координат x, y, цветом color и ориентацией orient // если orient=0, то горизонтально, если =1, то вертикально void put_string(unsigned char x, unsigned char y, char *str, unsigned int color, unsigned char orient) { j=0; while (j<strlen(str)) { put_char(x+j*CHAR_W,y,str[j],orient, color); // 0 deg. rotated j++; } } interrupt [EXT_INT0] void ext_int0_isr(void) { } // прерывание INT1 // запись строк примера в дисплей interrupt [EXT_INT1] void ext_int1_isr(void) { put_string(6,0,txt1,0, textcolor); put_string(25,00,txt2,1, textcolor); put_string(40,15,txt3,1, textcolor); put_string(35,120,txt4,0, textcolor); } interrupt [EXT_INT2] void ext_int2_isr(void) { } void main(void) { PORTA=0x00;DDRA=0x00;PORTB=0x00;DDRB=0xFF;PORTC=0xFF;DDRC=0x00;PORTD=0xFF;DDRD=0x00;TCCR0=0x00; TCNT0=0x00;OCR0=0x00;TCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00; OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;ASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00; GICR|=0xE0;MCUCR=0x0A;MCUCSR=0x00;GIFR=0xE0;TIMSK=0x00;ACSR=0x80;SFIOR=0x00;SPCR=0x50;SPSR=0x01; #asm("sei") lcd_init_c(); // инициализация дисплея fill_screen(bgcolor); // заливка черным while (1) { char cnt[16]; // промежуточная переменная для функции sprint() sprintf(cnt,"%5u",counter); // преобразование числа в строку put_string(68,60,cnt,0, BLUE); // вывод полученной строки counter++; // инкремент переменной }; } ============ ============== Двухбайтовые шрифты не могут быть отображены Невозможно отобразить Дисплей Multi-язык {0x40,0x00,0x40,0x00,0x40,0x08,0xFC,0x1F,0x44,0x08,0x44,0x08,0xFC,0x0F,0x44, 0x08,0x44,0x08,0xFC,0x0F,0x44,0x00,0x40,0x20,0x40,0x20,0x80,0x3F,0x00,0x00}, {0x00,0x00,0xF8,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00, 0x00,0x00,0x07,0x02,0x02,0x02,0x1F,0x22,0x22,0x22,0x22,0x23,0x20,0x38,0x00}, {0x00,0x00,0x1F,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x3F,0x10,0x00,0x00, 0x00,0x00,0xE0,0x40,0x40,0x40,0xF8,0x44,0x44,0x44,0x44,0xC4,0x04,0x1C,0x00}, {0x02,0x00,0x02,0x00,0x02,0x10,0x3F,0xF8,0x22,0x10,0x22,0x10,0x3F,0xF0,0x22, 0x10,0x22,0x10,0x3F,0xF0,0x22,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00},
Вернуться наверх
maksmkv
Заголовок сообщения: Re: Дисплей от Siemens S65
Добавлено: Вт окт 20, 2015 01:15:24
Зарегистрирован: Пн июн 16, 2014 01:55:54Сообщений: 18
Рейтинг сообщения: 0
BigallS писал(а):
Balzercvua писал(а):
Ребята у кого то не завалялась дока по L2F50XXXX или кто то поможет разьяснить как проходит иницилизация и какие команды...
Всё что нашёл ранее по этому дисплею во вложенном архиве, сам код не проверял.
Не работает данный код ((( Подключал как на схеме, только вертикальные линии.
Вернуться наверх
Страница 13 из 13
[ Сообщений: 257 ]
... , , , ,
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения