Кирилл84 Опубликовано 21 июля, 2012 Поделиться Опубликовано 21 июля, 2012 Уважаемые, значит приобрёл себе дисплейчик по практиковаться с графическими дисплеями. Но вот беда, ни как не могу настроить контрастность в нём( подключаю 3 пин "Vo" как по даташиту через переменный резистор на 10 КОм, по суте регулировка контрастности! Но эфекта ноль. Прочитал в просторах инета что: "Управление контрастностью осуществляется отрицательным напряжением с вывода Vee." Поставил тупо перемычку между 3 пином "Vo" и 18 пином "Vee" и тут чудо, появилось изображение, но на столько тусклое что при поподании на дисплей света от обычной лампы, ни черта не видно( вот фото: Уважаемые, помогите пожалуйста решить проблему контрасности!!! весь инет уже перерыл 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
hd44780 Опубликовано 22 июля, 2012 Поделиться Опубликовано 22 июля, 2012 (изменено) Лови http://mega-avr.ucoz.ru/publ/codevisionavr_connect_display_wg12864b_and_microcontroller_atmega8535_part1/1-1-0-6 http://mega-avr.ucoz.ru/publ/codevisionavr_connect_display_wg12864b_and_microcontroller_atmega8535_part2/1-1-0-7 http://mega-avr.ucoz.ru/publ/codevisionavr_connect_display_wg12864b_and_microcontroller_atmega8535_part3/1-1-0-9 http://radiokot.ru/lab/controller/15/ У меня такой же, как и у Вас, но я пока с ним не игрался . Изменено 22 июля, 2012 пользователем hd44780 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Кирилл84 Опубликовано 22 июля, 2012 Автор Поделиться Опубликовано 22 июля, 2012 Спасибо вам большое hd44780 Но ни черта не получается у меня с контрастностью((( подключаю как вот тут ну ни как( где отрецательное напряжение на выводе "Vee" у меня там -3.07v где то. Такое ощущение что ему хочется минус 5 вольт для нормальной контрастности..... Может вы попробуете подключить свой диспейчик? может у меня просто тупо LCD бракованый попался... 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
TDSS Опубликовано 22 июля, 2012 Поделиться Опубликовано 22 июля, 2012 Моя ссылка 0 Иван Сусанин - первый полупроводник Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл84 Опубликовано 22 июля, 2012 Автор Поделиться Опубликовано 22 июля, 2012 (изменено) Блин, решил проблему!!! у меня была просадка напряжения всего в 0.2v((( Видать пора менять свою старую макетную плату. Решил спаять на другой макетной плате (для меги 32 в TQFP корпусе специально берёг) и немного поднть напряжение до 5.5v - 5.8v на всякие случаи поставил резисторы что бы не спалить не контроллер не дисплей. И вуаля заработал мой измучанный WG12864A вот фотка Кстати контрастность подключил через переменный резистор на 5КОм только от отрецательного напряжения вот: Спасибо огромное всем кто помог. кстати может оставить тему? Может по программе будут вопросы, а они обязательно будут! Изменено 22 июля, 2012 пользователем Кирилл84 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
vitiv Опубликовано 23 июля, 2012 Поделиться Опубликовано 23 июля, 2012 (изменено) Конечно оставить. ) Я когда разбирался, брал инфу от сюда. Правда тут мега 8535. ) __http://mega-avr.ucoz.ru/publ/codevisionavr_connect_display_wg12864b_and_microcontroller_atmega8535_part1/1-1-0-6__ Изменено 23 июля, 2012 пользователем vitiv 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 23 июля, 2012 Поделиться Опубликовано 23 июля, 2012 Тоже сейчас пытаюсь, разобраться с лсд но нифига не получается , контрастность работает а вот на сам дисплей ничего не выводится Дисплей у меня lcm1602k, контроллер atmega16, ципляю на порт С Программа вот: #include <mega16.h> //Включаем библиотеку для работы с микроконтроллером ATMega16 #asm .equ __lcd_port=0x18 ;PORTC #endasm // Инициализируем PORTС как порт ЖКИ #include <lcd.h> //Включаем библиотеку для работы с ЖКИ void main(void) { char *_str="12345"; //Создаем выводимую строку lcd_init(16); // Инициализация ЖКИ на 16 символов lcd_gotoxy(0, 0); // Переводим курсор на первый символ первой строки lcd_puts(_str); // Выводим строку _str на дисплей ЖКИ while (1) { }; } Может кто найдет ошибку, а то уже целый день мучаюсь, никак не заведу 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл84 Опубликовано 23 июля, 2012 Автор Поделиться Опубликовано 23 июля, 2012 (изменено) Значит так уважаемые: появиласть куча вопросов по программной части! Из статей которые предоставил многоуважаемый hd44780 попытался вывести изображение на свой LCD переделав немного программу под мегу8 и поменяв порты (ибо перепаивать не охото было) решил проверить сначало в протеусе, после нескольких манипуляций и подгонки кода в протеусе появилось долгожданное изображение))) но как только я залил прошивку в настоящее железо, увы, экран молчит((( как такое может быть? в протеусе работает на ура, а в настоящем железе нет. На всякие случаи решил перепрошить МК на старую "тестовую" версию прошивки где в самом начале темы на фотке моей, так работает с ней! подскажите пожалуйста, что не так ? вот проектик test wg12864a.rar vitiv спасибо вам за ссылочку, я именно от туда и брал инфу. Но чет ни как не могу реализовать в железе( m777dv58rus странный какой у вас дисплейчик чёт я даже даташита на него не могу найти Изменено 23 июля, 2012 пользователем Кирилл84 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 23 июля, 2012 Поделиться Опубликовано 23 июля, 2012 Ну почему странный? 2 ссылка в гугле)) 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл84 Опубликовано 23 июля, 2012 Автор Поделиться Опубликовано 23 июля, 2012 m777dv58rus блин, простите, действительно есть даташит, у меня просто голова уже кругом от моего графического LCD у вашего LCD контроллер "KS0066U" он идентичен "HD44780" вот я проверил ваш код, у меня всё ок, правда в протеусе))) Вы подключаетесь по 4 битной шине? на железе не смогу помочь, но в протеусе у меня все гуд. вот проектик LCD.rar 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 (изменено) Про шину не знаю, но у меня всего 7 проводков + питание И еще я заливаю прошивку через сина прог , так как у меня программатор Usbbit на ft232 , через СV авр заливать не получается Может че во фьюзах еще надо делать?? Щас вашу прошивку попробую залить НИ*ЕРА СЕБЕ!!!!! ОН ЗАРАБОТАЛ!!! Изменено 24 июля, 2012 пользователем m777dv58rus 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
hd44780 Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 (изменено) m777dv58rus, я не знаю, что у Вас заработало и где. Кирилл Вам правильно написал у вашего LCD контроллер "KS0066U" он идентичен "HD44780" Оба они СИМВОЛЬНЫЕ, графики там никакой нету (кроме 7 или 8 пользовательских знаков, но это не графика, а обман трудящихся ). А у Кирилла дисплей настоящий графический, никаким KS0066U и HD44780 там и не пахнет. Поэтому там и схемы подключения и работа с ним совершенно разные. У дисплея WG12864 контроллер KS0107/KS0108. Могу pdf дать, если сомневаетесь. Изменено 24 июля, 2012 пользователем hd44780 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 (изменено) Я так и не понял в чем же была ошибка? Сейчас уже часики на них собрал))) Изменено 24 июля, 2012 пользователем m777dv58rus 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
hd44780 Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 m777dv58rus, положите фотку девайса, может быть, мы друг друга не поняли ... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 (изменено) Вот Изменено 24 июля, 2012 пользователем m777dv58rus 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
hd44780 Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 (изменено) Вот Ну всё правильно. Этот дисплей не графический, а символьный (алфавитно-цивровой). На контроллере HD44780 или KS0066U - в принципе всё равно. А с какого поста темы Вы брали прошивку? Если с 10-го, то всё нормально. Там Вам Кирилл и дал прошивку именно под Ваш дисплей. Это на его графическом она не пойдёт. Изменено 24 июля, 2012 пользователем hd44780 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 Брал из 10 поста, только вот до сих пор не пойму, почему же он раньше не работал Программы вроде как индентичны кроме вот этой строки: .equ __lcd_port=0x18 ;PORTC , тут 18 , а в прошивке из 10 поста 0х15, что вообще это означает??? 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
codenamehawk Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 .equ __lcd_port=0x18 ;PORTC , тут 18 , а в прошивке из 10 поста 0х15, что вообще это означает??? "Ничего страшного", просто используется другой порт. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
hd44780 Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 0x15 == PORTC 0x18 == PORTB Можете сами в разделе "Registers Summary" глянуть. Откуда у ВАс там 0x18 взялось, не знаю. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 значит в это и была проблема :) 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл84 Опубликовано 24 июля, 2012 Автор Поделиться Опубликовано 24 июля, 2012 (изменено) m777dv58rus Хорошо, что у вас получилось Я сам когда изучал символьные LCD пришлось "попотеть" но к счастю далось легко! Кстати, если интересно, вот пару видео как я изучал символьные LCD не обращайте внимание на секунды, я только учился)))) Может вдохновит на что нибуть))) И всё же уважаемые, мы помойму немного от темы ушли( мне бы с моим графическим что нибуть замутить Изменено 24 июля, 2012 пользователем Кирилл84 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
m777dv58rus Опубликовано 24 июля, 2012 Поделиться Опубликовано 24 июля, 2012 (изменено) Я со своим символьным буду собирать синтезатор частоты и RDS кодер для пиратской радиостанции попробуй осциллограф на нем сделать как вот тут http://radiokot.ru/circuit/digital/measure/21/ Изменено 24 июля, 2012 пользователем m777dv58rus 0 Пришел, увидел, нафлудил... много баса не бывает, бывают еще не достаточно "размятые" уши! Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл84 Опубликовано 24 июля, 2012 Автор Поделиться Опубликовано 24 июля, 2012 (изменено) m777dv58rus спасибо большое за статейку, но у меня меги 32 под рукой нет, что бы проверить. Госпада, вот код который в протеусе у меня выводит на LCD букву "L" в центре каждого кристала /***************************************************** 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 Project : Version : Date : 24.07.2012 Author : Kirill Company : Home Comments: Chip type : ATmega8 Program type : Application Clock frequency : 8,000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega8.h> #include <delay.h> enum DisplMode{ command,data }; //command - 0, data - 1 enum DisplCrystal{ cs1,cs2,cstwo }; //cs1 - 0, cs2 - 1, cstwo - 3 #define port_ddrdata DDRD #define pin_data PIND #define port_data PORTD #define port_command PORTB #define port_ddrcom DDRB #define nop #asm("nop") #define array 6 #define flags_busy 0x80 #define __direction_in port_ddrdata=0x00;port_data=0xff #define __direction_out port_ddrdata=0xff;port_data=0x00 #define __port_init port_ddrdata=0xff;port_ddrcom=0xff //********************************************************// #define cd_data port_command|=0x01 //DI #define cd_command port_command&=0xFE #define rw_read port_command|=0x02 //RW #define rw_write port_command&=0xFD #define e_on port_command|=0x04 //E #define e_off port_command&=0xFB #define cs1_off port_command|=0x08 //CS1 #define cs1_on port_command&=0xF7 #define cs2_off port_command|=0x10 //CS2 #define cs2_on port_command&=0xEF #define rst_off port_command|=0x20 //RESET #define rst_on port_command&=0xDF //********************************************************// void display_reset( void ) { rst_on; delay_us( 10 ); rst_off; } unsigned char read_flags_busy( unsigned char crystal ) { unsigned char status; unsigned char temp; if( !crystal ){ cs1_on; cs2_off; }else{ cs1_off; cs2_on; } __direction_in; //Шина данных - вход cd_command; //DI = 0 команда rw_read; //RW = 1 чтение delay_us( 4 ); e_on; nop; nop; e_off; temp=pin_data; //Чтение c шины значение регистра статуса if( temp==flags_busy ){ status = 1; } //контроллер занят else { status = 0; } //контроллер освободился __direction_out; //Шина данных - выход return ( status ); //возвращает результат выполнения функции } void write_data_display( unsigned char mode, unsigned char data, unsigned char cs ) { switch( cs ) //выбор контроллера LCD { case cs1: cs1_on; cs2_off; break; case cs2: cs1_off; cs2_on; break; case cstwo: cs1_on; cs2_on; break; } if( mode ){ cd_data; }else{ cd_command; } //DI = 1 или DI = 0 rw_write; //RW = 0 - запись nop; //пустая команда ( ассемблер ) nop; //нужно подбирать под определ.частоту port_data = data; //засылаемые данные в выбранный контроллер LCD e_on; //логический перепад nop; //на выводе Е nop; //для того, чтобы контроллер e_off; //зафиксировал управ.сигналы и данные cs1_off; //контроллеры LCD не доступны cs2_off; //на всякий случай while( read_flags_busy( cs1 ) !=0 ); //проверяем флаг занятости while( read_flags_busy( cs2 ) !=0 ); } void display_init( void ) { __port_init; display_reset( ); //Обязательно! write_data_display( command,0xC0,cstwo ); //стартовая линия дисплея в нуль write_data_display( command,0x3F,cstwo ); //включение дисплея ( отображение RAM ) } void display_xy( unsigned char x,unsigned char y,unsigned char cs ) { write_data_display( command,0xb8+y,cs ); //Устанавливаем регистр Х адреса + значение y write_data_display( command,0x40+x,cs ); //Устанавливаем счетчик Y адреса + значение х } void display_clear( unsigned char cs ) { char x,y; for( x=0;x<64;x++ ){ for( y=0;y<8;y++ ){ display_xy( x,y,cs ); //устанавливаем регистры write_data_display( data,0,cs ); //записываем нули в 8-битные ячейки памяти RAM } } } void display_out_byte( unsigned char byte, unsigned char cs ) { write_data_display( data,byte,cs ); } void main( void ) { display_init( ); display_clear( cstwo ); //cstwo – оба контроллера display_xy( 16,3,cs1 ); //указываем начальное значение отображения RAM //при каждой записи данных в память,счетчик Y //адреса увлечивает свое значение на 1 // ПЕРВЫЙ ЭКРАН //записываем побайтно данные в память RAM display_out_byte( 0b11111111,cs1 ); //L display_out_byte( 0b11111111,cs1 ); display_out_byte( 0b10000000,cs1 ); display_out_byte( 0b10000000,cs1 ); display_out_byte( 0b10000000,cs1 ); // или display_out_byte( 0x80,cs1 ); display_out_byte( 0b10000000,cs1 ); display_out_byte( 0b00000000,cs1 ); display_out_byte( 0b00000000,cs1 ); // ВТОРОЙ ЭКРАН //записываем побайтно данные в память RAM display_xy( 56,3,cs2 ); display_out_byte( 0b11111111,cs2 ); //L display_out_byte( 0b11111111,cs2 ); display_out_byte( 0b10000000,cs2 ); display_out_byte( 0b10000000,cs2 ); display_out_byte( 0b10000000,cs2 ); display_out_byte( 0b10000000,cs2 ); display_out_byte( 0b00000000,cs2 ); display_out_byte( 0b00000000,cs2 ); while( 1 ); } вот прин скрин протеуса ну ни в какую не хочет на железе работать Изменено 25 июля, 2012 пользователем Alex Перекопипастил код с нормальными комментами 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
hd44780 Опубликовано 25 июля, 2012 Поделиться Опубликовано 25 июля, 2012 ну ни в какую не хочет на железе работать А как именно не хочет? Вообще не рисует, рисует, не не то, ...? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Кирилл84 Опубликовано 25 июля, 2012 Автор Поделиться Опубликовано 25 июля, 2012 Вообще не рисует Есть подозрение, что в этом коде не правильно "как минимум" задана инициализация LCD. Хотя весь день вчера сверял, вроде норм. может попробуем разобрать функцию инициализации? P.S. Одна голова хорошо, а две лучше 0 Для любого процесса найдётся такой, без завершения которого невозможен данный Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.