http://forum.getchip.net/

LCD 16*2 или 20*2 или 40*4 или...
http://forum.getchip.net/viewtopic.php?f=17&t=604
Страница 1 из 2

Автор:  @lik [ 23 май 2015, 23:40 ]
Заголовок сообщения:  LCD 16*2 или 20*2 или 40*4 или...

вот собрал на макетке очередные часы...
первые стоят до сих пор... на семисегментниках...
LCD рулит........, т.к. ещё первые часики думал сделать с будильником, но время идёт(часы идут:), интересы растут и вообще просто надо значит надо...
Algoritm Builder хоть в некоторых мелочах и пропустил (сужу со стороны форумов, которые пишут на C, на assembler(avrasm)), но его плюсы очевидны для новичков, взять вот мой пример!!!

P.S. по поводу минусов, так я про такую мелочь как обработка инициализации LCD, знаков (кодировка ASCII) и символов в LCD, которые Я! освоил с помощью Algoritm Builder можно сказать без крови, только потом...


P.S. не знаю пропустят ли? моё сообщение модераторы? Если нет, то посоветуйте пож-та ветку куда можно кинуть(хочу поделиться)...

Вложения:
Mega.rar [84.25 КБ]
Скачиваний: 1028
Комментарий к файлу: с разных компов, вроде оно...
шучу...

Mega.rar [84.25 КБ]
Скачиваний: 1006

Автор:  SVN [ 24 май 2015, 10:12 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

По описанию не понятно, что это – часы, библиотека к LCD или ещё что.

Автор:  GetChiper [ 24 май 2015, 16:45 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

Вроде как часы...
Немного прямолинейно все написано, но если будет описание какое, то это даже будет плюсом - все максимально понятно!

Автор:  @lik [ 25 май 2015, 18:01 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

Описание работы LCD часиков:
всего три клавиши,
1) pinD.0=при нажатии на которую(с некоторой задержкой) происходит переход в режим настройки времени,
опознаётся обнулением всех чисел путем перебегания нижнего курсора и остановки на первом нуле, который соответствует десяткам часов, обнулению не подлежит только 20ХХ года естественно(т.к. год в DS1307 идет двухзначный, а в LCD полный)
2)pinD.1=перебор цифр от меньшей к большей, в плане минут, часов даты и месяца не учел только дату, которую можно поставить 31февраля или 31 апреля. Обратного счета также нет.
3)pinD.2=переводит с одной настройки на другую, с дня месяца на год...
в конце предложит ввести день недели, день недели будет писать русскими буквами (красиво) и также перебирает от меньшого(понедельника) к большому(воскресенье) потом снова. Записать установленное время также эта клавиша только с некоторой задержкой...
P.S. В качестве саморекламы вышла сама-сабой надпись "Шакиров Альнер", которая будет высвечиваться после отключения питания в течении нескольких минут (точнее до первой десятикратной минуты т.е. включили часики в 15:22 25/05/2015, то день недели высветится только в 15:30!!! Если в 16:45, то только 16:50 т.е. само больше будет светиться 10минут...
Это надпись осталась после первых проектов когда только осваивал LCD!!! Она висит в InitLCD её можно попробовать удалить или корректировать под свои РЕКЛАМЫ!!!

Автор:  GetChiper [ 25 май 2015, 23:29 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

Теперь стало понятней
Еще-бы схемку...


П.С. переместил топик в раздел "Я сделал" - так легче будет ее найти

Автор:  @lik [ 26 май 2015, 19:59 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

Ну, да у кого нет протеуса, тому фото самого протеуса со схемой...
P.S. 7-ой вывод с DS1307 я не использовал, но программно включил...

Вложения:
фото и схемка.rar [489.44 КБ]
Скачиваний: 1126

Автор:  @lik [ 31 май 2015, 02:49 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

Теперь вопрос к знатокам LCD? После сборки часиков на монтажной плате, вспомнил про будильник, который всё таки надо сделать в отличие от семисегментников, благо вывода информации теперь хватает...
Вопрос в чём, вот я написал в проге чтоб при нажатии PinD.1 выходила инфа будильника, далее она настраивается (или точнее он - будильник) двумя клавишами (pinD.1 и pinD.2) но все настройки через один регистр общего управления R22 (настройки чч:мм и дни недели)... И ВОПРОС могу ли я после вывода (или настройки) последней инфы прочитать всю строку разом (из LCD в AVR) и записать эту инфу (вторая строчка на LCD) в энергонезависимую память контроллера(EEprom)????
Вопрос относится к LCD там указывается что есть обратная связь или она нужна только для того чтоб определить свободен внутренний контроллер LCD или занят?

Автор:  SVN [ 31 май 2015, 13:43 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

Можно читать с LCD информацию по указанному адресу любой строки… только вот ИМХО это не рационально в данном случае. Лучше запомнить в EEPROM значения регистра выводимой информации на LCD.

Автор:  @lik [ 31 май 2015, 16:54 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

С этим всё понятно спасибо, т.е. прежде чем перейти с десятков минут на единицы минут надо их записать в EEprom и т.д. ...
Другой вопрос, с которым думаю столкнусь после записи в eeprom, а смогу ли я читать (или сверять) будильник также на одном регистре и при чем том же самом r22??? Или мне всё же стоит разобраться с этими регистрами, уложить их все по полочкам, с минимальным их использованием, и сколько по Вашему я могу минимум занять регистров на эти выложенные ранее часики???
Спасибо за развернутый ответ...

Автор:  SVN [ 01 июн 2015, 19:35 ]
Заголовок сообщения:  Re: LCD 16*2 или 20*2 или 40*4 или...

Честно говоря, я не смотрел твой алгоритм реализации часов. Но если ты используешь DS1307, то у него есть 7 регистров (секунды, минуты, часы, день недели, дата, месяц, год). Какие будешь использовать для будильника, это тебе решать. Но ИМХО в EEPROM сохранять лучше каждый регистр будильника индивидуально (секунды, минуты, часы…).

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/