с исходными ногами data в протеусе все работает нормально, а если изменить схему и определение ног в lcd_lib.h, то выходят косяки, то протеус ругается, Attepmet to read after witing a single nibble, то при несколько другом расположении ног, просто крякозябры выходят. прилагаю проекты в протеусе и WinAVR
Немного промазал, извините Доброго времени суток! Занялся освоением контроллеров и решил сделать термометор на TINY2313 и WH0802A. Написал програмулину и работает, но кривовато отображение. При работе заголовок выводится в 2-х строках в дальнейшем все отображение только в верхней строке (lcd_goto(0,1)-не работает). Также заметил, что если между выводом между 1 и 2 строкой вставить любую строку с кодом, то вывод второй строки будет в первой. Фьюзы-заводские. Пробовал с WH1202A тоже... Програмирую Pony prog. Вот часть кода на Си: /****Вывод заставки о производителе****/ lcd_gotoxy(0,0); lcd_putsf("Thermo"); lcd_gotoxy(0,1); lcd_putsf("Alex"); delay_ms(1500); lcd_clear();
if(ds1820_devices==0) { lcd_putsf("Nosensor"); delay_ms(1000); } else { /**Выводим информацию о найденных датчиках**/ lcd_gotoxy(0,0); lcd_putsf("Find:"); show(ds1820_devices); delay_ms(1000); lcd_gotoxy(0,1); lcd_putsf("Devices"); delay_ms(1000); lcd_clear();
Заставка-Ок! А вот вывод кол-во датчиков и далее, только в верхней строке Если закоментить строки: show(ds1820_devices); delay_ms(1000); то выводятся 2 строки С Любой из этих строк вывод накладывается в первой строке. Ваше мнение в чем проблемма?
Уважаемые радиокоты Который день мучаюсь с МЭЛТ MT-16S2H-2YLG. Ну не хочет она инициализироваться в 4-х битном режиме. Что здесь не так Инициализация по датишу, а на выходе - ничего. Проект в CV.
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт авг 12, 2010 22:43:19
Поставщик валерьянки для Кота
Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22 Сообщений: 2401 Откуда: Россия, Волгоград
Рейтинг сообщения:0 Медали: 1
МЭЛТ MT-16S2H-2YLG - весчь практически не убиваемая, работает даже после подачи 12В, если не работает ищи косяки в программе. Если все правильно - прекрасно работает и в 4-х битном и в 8-и.
_________________ Чем дальше, тем больше становлюсь занудой...
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Сб авг 28, 2010 21:11:17
Родился
Зарегистрирован: Пн мар 29, 2010 23:13:24 Сообщений: 12
Рейтинг сообщения:0
Просмотрел документацию на ЖКИ MT-16S2S. Там описана возможность работы по 3-х и 4-х проводном последовательном интерфейсе. Пробовал ли кто-нибудь работать с этими интерфейсами?
Просмотрел документацию на ЖКИ MT-16S2S. Там описана возможность работы по 3-х и 4-х проводном последовательном интерфейсе. Пробовал ли кто-нибудь работать с этими интерфейсами?
М.ПРЕДКО Справочник по PIC микроконтроллерам с.250-258 приведена схема и программа двухпроводного интерфейса от МК до ЖКИ с использованием промежуточного сдвигового регистра...
_________________ «Просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам; ибо всякий просящий получает, и ищущий находит, и стучащему отворят». Матф.гл. 7, ст. 7—8
сам не пробовал. думаю должно завестись с первого раза. Посмотрев на инициализацию 3-х и 4-х проводного интерфейса понял, что это бесполезная вещь. При инициализации используются 6 ног индикатора (DB0... DB5), а для управления индикатором уже из последовательного режима используется 3 ноги, но не те что были при инициализации, а DB5...DB7!!! ппц бред... "МЭЛТ - Хотели как лучше, получилось как всегда!"
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вс сен 05, 2010 19:05:16
Родился
Зарегистрирован: Вс сен 05, 2010 08:17:52 Сообщений: 2
Рейтинг сообщения:0
У меня проблема с выводом кириллических символов, но не обычная. Компилирую winavr2010 в среде Code::Blocks. LCD рабочий, кириллические символы выводит если выводить их через код, а если напрямую, то не получается. Причем некоторые чисто кириллические символы выводит верно. Ну вот пример:
Код:
lcd_putc(0xc6);
в данном случае на экран выдаст 'ю' А если так
Код:
lcd_putc('ю');
на экран выдаст пробел
В библиотеке имеется функция
Код:
unsigned char CharToCode(char C) { switch(C) { case 'А' : return (0x41); case 'Б' : return (0xa0); case 'В' : return (0x42); case 'Г' : return (0xa1);
case 'ш' : return (0xc1); case 'щ' : return (0xe6); case 'ъ' : return (0xc2); case 'ы' : return (0xc3); case 'ь' : return (0xc4); case 'э' : return (0xc5); case 'ю' : return (0xc6); case 'я' : return (0xc7); } return ( 0x80 ); }
Так вот если бы Code::Blocks/Winavr видел при компиляции кириллицу, то и выводил бы верно. Пробова в родном блокноте Winavr, выдавал просто каракули вместо пробелов. В общем как я понимаю - проблема в том, что не воспринимаются некоторые символы кириллицы именно при компиляции, а некоторые воспринимаются. сама библиотека вроде рабочая и с английскими буквами проблем нет. Менял в Code::Blocks во вкладке settings -> editor опцию encoding на KOI-8R и UTF8, не помогло.
Bobrik Кодировка символов для матричных индикаторов отличается от кодировок ASCII, ANSI и др. принятых в компьютерах. Поэтому если писать напрямую, то на экран будет выводится всякий бред(т.к. номера символов не совпадут). Или у вас сам редактор не понимает русский язык?
Насчет функции CharToCode(char C). Написана она крайне не оптимально и будет кушать много лишнего кода. Лучше ее записать в виде массива, т.е.:
CharToCode[256]={0,1,2,....,0x41,0xa0...};
А потом выводить символы: lcd_putc(CharToCode['ю']);
Можно записать функцию, выводящую строки с перекодировкой: void lcd_putsf(char flash *str) { char k; while (k=*str++) lcd_putc(CharToCode[k]); }
И обращаться к ней так: lcd_putsf("Здравствуй мир!");
Купил индикатор Winstar WH1602D-YGH-CTK#, он со светодиодной подсветкой. До этого работал с ЖКИ без подсветок. Смотрел документацию, но мне так и не стало ясно как правильно включать подсветку: напрямую подавать 5V на анод-катод или через гасящий резистор?
Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт сен 16, 2010 22:50:54
Родился
Зарегистрирован: Пн мар 29, 2010 23:13:24 Сообщений: 12
Рейтинг сообщения:0
Товарисчи, скажите у кого-нибудь работает модель ЖКИ в Proteus 7.7 по 4-х битной шине? А то уж какой день мучаюсь, и подозреваю, что с моделью что-то не то. По 8-ми битной шине все нормально.
Если поставить интегрирующую цепочку на выход ШИМ, то получим напряжение, а не импульсы - а это то что нужно для управления контрастностью. Сам не пробовал, но мысли тоже были по этому поводу. Думаю скоро попробовать.
короче такие дела. Контроллер ПИК18Ф4550. ЖКИ - 2х16 на ks0066u. Вот прога... Писал битовыми командами, т.к. мне так понятнее. Писал по даташиту. Иначе запутался бы. 4-х битный интерфейс. Прошиваю этой инициализацией и ничего... На ЖКИ как были квадратики так и остались. Задержка перед каждой пачком команд 4мс. Проверял в стопвотче. В общем, мож кто подскажет где я протупил... Зараннее благодарю тех, кто будет читать мой ламерский код
;********************************* initialization_LCD;(см. даташит на КS0066U, стр.26) movlw D'200' movwf count3 dec nop nop decfsz count3,1 goto dec call delay_4ms; *power on delay ;Function set bcf lcd_D,RS; *bit set bcf lcd_C,RW; *bit set bsf lcd_D,DB7_busy_flag; *2-line mode bcf lcd_D,DB6; *LCD off
movlw D'200' movwf count3 dec1 nop nop decfsz count3,1 goto dec1 call delay_4ms;wait, т.к. ЖКИ тормознутая падла ;Display ON/OFF control bcf lcd_D,RS; *bit set bcf lcd_C,RW; *bit set bsf lcd_D,DB7_busy_flag; *bit set bsf lcd_D,DB6; *LCD on bsf lcd_C,DB5; *cursor on bsf lcd_C,DB4; *blink on
movlw D'200' movwf count3 dec2 nop nop decfsz count3,1 goto dec2 call delay_4ms;wait ;Display clear bcf lcd_D,RS; *bit set bcf lcd_C,RW; *bit set bcf lcd_D,DB7_busy_flag; *bit set bcf lcd_D,DB6; *bit set bcf lcd_C,DB5; *bit set bcf lcd_C,DB4; *bit set
movlw D'200' movwf count3 dec3 nop nop decfsz count3,1 goto dec3 call delay_4ms;wait ;Entry Mode Set bcf lcd_D,RS; *bit set bcf lcd_C,RW; *bit set bcf lcd_D,DB7_busy_flag; *bit set bcf lcd_D,DB6; *bit set bsf lcd_C,DB5; *increment mode bcf lcd_C,DB4; *entire shift on ;Initialization end
Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 19733 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Roman Venom писал(а):
В общем, мож кто подскажет где я протупил... Зараннее благодарю тех, кто будет читать мой ламерский код
Мля, это пипец а не код. Где хотя бы комменты? Могу посоветовать давать самую первую команду на инициализацию два раза (с паузой, естессно). Мне помогло.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения