Электронные часы на микроконтроллере

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

drjivaga писал(а):матрицу про инвертировал часы пошли , но минуты занимают 2 и 3 разряд, а часы 4 и 1 разряд т.е. минуты посередине индикатора часы по краям как это изменить и точка не мигает

Значит неправильно припоял общие катоды. :) проверяй.
матрицу изменить смогу , сразу вопрос изменить надо только матрицу или еще что-то надо менять

Если индикатор такой же как у меня, то только матрицу проинвертировать.
и еще при аноде на индикаторе мигают две последние точки можно ли сделать чтобы мигала средняя точка (вторая) одна

судя по всему у тебя другой индикатор, смотри подпрограмму "Индикация" точнее вот эти строчки:

Код: Выделить всё

andi Ddp,0b00000001 ;обрезка по маске
cpi Ddp,1 ;разность
breq Indicout1 ;если ноль то индикация без запятой
andi Temp1,0b11101111 ;добавление сегмента h запятая

они отвечают за мигание точки, т.е. переменная Ddp увеличивается на 1 каждые 0,5 секунды, когда значение нечетное то без запятой. На том разряде где должна мигать точка поставь эти строки, а на всех остальных обнули по маске нужный бит.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

Kavka писал(а):В качестве идеи...
Часы можно со старых материнок взять - такие прямоугольные чёрные микрухи, а-ля DIP24, только ноги не все.
Например
VIA VT82885P
ODIN OEC12C885, OEC12C887
Dalas DS1387

может все таки взять DS1307 ? http://robozone.su/index.php?newsid=11
http://avrdevices.ru/chasi-realynogo-vremeni-ds1307/
Последний раз редактировалось ooogo Вс авг 15, 2010 20:27:08, всего редактировалось 1 раз.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

drjivaga писал(а):транзисторов нет , но можно поставить кт315 выходной ток 300мА каждого ,

такой ток не потянет порт, он либо сгорит, либо сегменты будут гореть не в полную яркость(если стоят ограничительные резисторы), расчитывай на максимальный постоянный ток через порт 20 мА, проверял лично выдерживает, выше не знаю. Если ток сегмента выше 25 мА, то надо ставить транзистор на каждый сегмент, и если суммарный ток 8 сегментов выше 20 мА, то надо ставить транзистор на общий катод/анод.
http://radiokot.ru/start/mcu_fpga/avr/15/
http://radiokot.ru/start/mcu_fpga/avr/05/
Аватара пользователя
krolaka
Нашел транзистор. Понюхал.
Сообщения: 169
Зарегистрирован: Пн мар 02, 2009 12:23:37
Контактная информация:

Re: Электронные часы на микроконтроллере

Сообщение krolaka »

рекомендую заказать семлы в TI у них есть bq32000 она очень схожа с DS1307 и замечательно работает там даже регистры почти те самые :)) да и имеют внутри уже регистр калибровки :)
Изображение
drjivaga
Родился
Сообщения: 5
Зарегистрирован: Пт авг 13, 2010 17:13:58

Re: Электронные часы на микроконтроллере

Сообщение drjivaga »

если честно то ничего не понял как изменить чтобы мигала точка, часы идут быстрее чем надо , какие фузы надо выставить , спящий режим переделал , в протеусе все проверяю , скинул рисунок на счет точки посмотри по возможности переделай кусок прошивки чтобы та точка мигала
Вложения
Точка.JPG
(196.06 КБ) 653 скачивания
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

так давай с самого начала, если у тебя в протеусе индикатор с общими катодами и нет транзисторов, то нужно проинвертировать еще сигналы на общих катодах, т.е. цифра будет индицироваться та, катод которой сидит на земле через порт это понятно?
смотри подпрограмму индикации

Код: Выделить всё

ldi Temp1, 0b01000011
out PortD,Temp1
lds Temp1,Digit
rcall Decoder
andi Ddp,0b00000001 ;обрезка по маске
cpi Ddp,1 ;разность
breq Indicout ;если ноль то индикация без запятой
andi Temp1,0b11101111 ;добавление сегмента h запятая
Indicout: out PortB,Temp1
rcall Delay ; индикация 1-ого разряда (мл.)

в первых двух строках активизируем нужную цифру, в данном случае при общем аноде активной была та цифра, которая общими анодами висела на PD6, но у тебя уже общие катоды и поэтому станут активными(будут индицироваться) 3 цифры на которых "0".
на схеме общие катоды висят на PD6 PD5 PD4 PD3 соответственно для первой цифры с общим катодом надо поправить первые две строчки

Код: Выделить всё

ldi Temp1, 0b00111011
out PortD,Temp1

что бы вторая цифра индицировалась

Код: Выделить всё

ldi Temp1, 0b01011011
out PortD,Temp1

и т.д.
Или поставь на общие катоды инверторы, которые буду эмулировть работу транзисторов. Можешь поставить обычные транзисторы, но у меня с транзисторами отказывался протеус индикацию показывать.
Фьюзы на память не помню, для кварцевого резонатора, в протеусе в выпадающем списке есть расшифровка, а в другом поле выставляешь частоту работы, если не найдешь глянь в даташите, если и там не найдешь шли проект протеуса будем вместе ковыряться. :)
drjivaga
Родился
Сообщения: 5
Зарегистрирован: Пт авг 13, 2010 17:13:58

Re: Электронные часы на микроконтроллере

Сообщение drjivaga »

Огромное спасибо , что со мной приходиться заниматься, я поставил транзисторы на катоды все прекрасно работает , фузы поставил 4МГц от внешнего кварца, оставил их в ночь на прогонку посмотреть точность хода, Sleep режим также работает проверил в протеусе, есть только одна проблема это точка не мигает и как это исправить еще не понял буду разбираться , опиши по подробнее о точке принцип работы
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

смотри прерывание от таймера

Код: Выделить всё

;***************Обработчик прерывания**********************
Timer1_comp1:

ldi Temp1,0
out Tcnt1h,Temp1
out Tcnt1l,Temp1 ;обнуление счетчика
inc Ddp ; увелечение запятой
inc Chsec ; увелечение секунд
cpi Chsec,120 ; разность 120*0.5c=60c=1мин
brne Output2 ; если не ноль то выход

прерывание происходит 2 раза в секунду это понятно? Если нет, то читай на 3 странцы сообщения Найсмена, он мне там разжевывал, как подбирается предделитель и вершина счета.
дальше интересует эта строчка

Код: Выделить всё

inc Ddp ; увелечение запятой
два раза в секунду происходит инкремент переменной.
дальше смотри подпрограмму индикации и не забудь что запятая у тебя висит на PB4, т.е.интересует 4 бит в матрице которую ты проинвертировал, там 4 биты единицы?

Код: Выделить всё

andi Ddp,0b00000001 ;обрезка по маске, остаеться только нулевой бит
cpi Ddp,1 ;разность - это проверка на четность, т.е. если осталась единица значит нечетный
breq Indicout ;если нечетная Ddp то перепрыгиваем следующую команду, индикация с запятой
andi Temp1,0b11101111 ;если четная, то гашение сегмента h - запятая(4 бит)
Indicout: out PortB,Temp1; вывод соответствующей цифры в порт

добавил коментарии, этот кусок надо вставить на индикацию той цифры, где ты хочешь мигание точки...
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

Я тут ковырялся в поиске и увидал, готовое решение с DS1307, чуток покрамсачить и спящий режим добавить - будут точные часы. :) viewtopic.php?f=20&t=12805&start=120
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

Там даже несколько печаток есть :) , советую присмотреться к этим часам на DS1307, все таки генератор тиньки от температуры плывет, зимой один уход, летом другой, практически не возможно откалибровать.
Аватара пользователя
headshotbacs
Вымогатель припоя
Сообщения: 641
Зарегистрирован: Пт ноя 28, 2008 20:34:39
Откуда: Краматорск

Re: Электронные часы на микроконтроллере

Сообщение headshotbacs »

:)))
Вложения
20100820_1718(2).JPG
(190.64 КБ) 791 скачивание
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

drjivaga чуток покрамсачил прогу Samodelkin (Pervakov Danil)(благодарность ему от меня) , убрал термометр и добавил спящий режим Idle. Из режима power-down по внешнему прерыванию не захотел выходить, не знаю почему, вроде по даташиту должен. Вобщем если время будет погоняй в протеусе и рекомендую собрать. :)
Вложения
ATtiny2313+DS1307.rar
кодвижан + протеус
(97.23 КБ) 321 скачивание
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

Разобрался с режимом power-down, надо только проинвертировать сигнал с замка зажигания. :)
Вложения
ATtiny2313+DS1307.rar
кодвижан и протеус
(145.3 КБ) 300 скачиваний
Аватара пользователя
Skipew
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт янв 08, 2010 21:50:59
Контактная информация:

Re: Электронные часы на микроконтроллере

Сообщение Skipew »

Многоуважаемый ooogo можете переделать вашу прошивку для индикатора CA56-21GWA что вы делали только убрать режим ожидания ? Если не сложно переделайте...
Последний раз редактировалось Skipew Сб янв 15, 2011 19:19:32, всего редактировалось 1 раз.
[url=http://arminfans.ru/][img]http://flash.es-radio.ru/images/userbars/2.gif[/img][/url]
leowka
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср мар 24, 2010 08:08:20
Контактная информация:

Re: Электронные часы на микроконтроллере

Сообщение leowka »

Еси кто хочет может попробовать на mega8 + внешний часовой кварц, без лишних микрух. http://ffix.ru/index.php?option=com_k2&view=item&id=10:простые-часы-на-atmega8&Itemid=43
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

Skipew писал(а):Многоуважаемый ooogo можете переделать вашу прошивку для индикатора CA56-21GWA что вы делали только убрать режим ожидания ? Если не сложно переделайте...

сейчас не могу занят другим проектом(вспоминать долго_, попробуйте разобраться сами, помогу чем смогу :)
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Электронные часы на микроконтроллере

Сообщение ooogo »

Skipew писал(а):Многоуважаемый ooogo можете переделать вашу прошивку для индикатора CA56-21GWA что вы делали только убрать режим ожидания ? Если не сложно переделайте...

Вы просили переделать прошивку под CA56-21GWA viewtopic.php?f=20&t=2268&start=200i=pm&folder=outbox, если мне не изменяет память, то у меня тоже индикаторы с общим анодом, поэтому корректировка программы не нужна, а по поводу спящего режима, то соедините тот порт который идет на "зажигание" с плюсом или минусом питания(не знаю какая версия вам требуется) и они никогда не перейдут в спящий режим.
Аватара пользователя
Skipew
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт янв 08, 2010 21:50:59
Контактная информация:

Re: Электронные часы на микроконтроллере

Сообщение Skipew »

ooogo писал(а):
Skipew писал(а):Многоуважаемый ooogo можете переделать вашу прошивку для индикатора CA56-21GWA что вы делали только убрать режим ожидания ? Если не сложно переделайте...

Вы просили переделать прошивку под CA56-21GWA viewtopic.php?f=20&t=2268&start=200i=pm&folder=outbox, если мне не изменяет память, то у меня тоже индикаторы с общим анодом, поэтому корректировка программы не нужна, а по поводу спящего режима, то соедините тот порт который идет на "зажигание" с плюсом или минусом питания(не знаю какая версия вам требуется) и они никогда не перейдут в спящий режим.

Спасибо, да индикатор ОА...
[url=http://arminfans.ru/][img]http://flash.es-radio.ru/images/userbars/2.gif[/img][/url]
brownfox
Родился
Сообщения: 17
Зарегистрирован: Чт май 21, 2009 19:04:19
Откуда: Москва

Re: Электронные часы на микроконтроллере

Сообщение brownfox »

Вот у меня проблемка образовалась - надеюсь, в тему.
Надо мне сделать часы на MSP430. Ну, разумеется, не просто часы, а некий девайс, в котором нужно время.
Казалось бы, чего проще - у процессора есть в явном виде часы-календарь, все работает автоматически.
Только мне надо точные часы. Ну, насколько вообще реально сделать точные при сохранении микропотребления.
Хотелось бы получить хотя бы +-0.2...0.5 с в сутки, причем в хорошем диапазоне температур. Подбор кварцев исключается (мелкосерийное производство), но допустима программная калибровка.
Вот и думаю, как поступить.
Первый путь - отложить в сторону готовый календарь, а сделать это полностью программно - скажем, по секундным прерываниям - и периодически добавлять-убирать такты. Только алгоритм получается совсем не тривиальный. Надо температурную зависимость как-то аппроксимировать (датчик температуры есть), да еще и принцип коррекции выдумывать. Готовых алгоритмов я не видел, но математически это должно напоминать построение прямой по пикселам.
Второй путь - поискать отдельный генератор, который гарантированно выдает частоту с нормированной точностью.
Есть идеи?
Bodya_a
Родился
Сообщения: 18
Зарегистрирован: Пн янв 31, 2011 14:57:18

Re: Электронные часы на микроконтроллере

Сообщение Bodya_a »

Парни, подскажите.
Мне нужна схема простых часов на pic16f628a, чтобы счет времени шел от 00-00.
И была кнопка сброса в 00-00.
В общем нужен простецкий секундомер без останова, сохранения результата и прочих прибамбасов.
Что-то вроде этого
http://www.kaligraf.narod.ru/clock_4c_02.html
Интересно, при выкл-вкл часы будут переходить в 00-00?
Подскажите кто чем может...
Ответить

Вернуться в «Разные вопросы по МК»