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

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

Сообщение ooogo »

drjivaga писал(а):матрицу про инвертировал часы пошли , но минуты занимают 2 и 3 разряд, а часы 4 и 1 разряд т.е. минуты посередине индикатора часы по краям как это изменить и точка не мигает
Значит неправильно припоял общие катоды. :) проверяй.
матрицу изменить смогу , сразу вопрос изменить надо только матрицу или еще что-то надо менять
Если индикатор такой же как у меня, то только матрицу проинвертировать.
и еще при аноде на индикаторе мигают две последние точки можно ли сделать чтобы мигала средняя точка (вторая) одна
судя по всему у тебя другой индикатор, смотри подпрограмму "Индикация" точнее вот эти строчки:

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

andi Ddp,0b00000001 ;обрезка по маске
cpi Ddp,1 ;разность 
breq Indicout1 ;если ноль то индикация без запятой
andi Temp1,0b11101111 ;добавление сегмента h запятая
они отвечают за мигание точки, т.е. переменная Ddp увеличивается на 1 каждые 0,5 секунды, когда значение нечетное то без запятой. На том разряде где должна мигать точка поставь эти строки, а на всех остальных обнули по маске нужный бит.
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение 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 раз.
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

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

Сообщение krolaka »

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

Сообщение drjivaga »

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

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

Сообщение drjivaga »

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

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

Сообщение ooogo »

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

Сообщение ooogo »

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

Сообщение headshotbacs »

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

Сообщение ooogo »

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

Сообщение ooogo »

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

Сообщение 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]
Контактная информация:
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср мар 24, 2010 08:08:20

Сообщение leowka »

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

Сообщение ooogo »

Skipew писал(а):Многоуважаемый ooogo можете переделать вашу прошивку для индикатора CA56-21GWA что вы делали только убрать режим ожидания ? Если не сложно переделайте...
сейчас не могу занят другим проектом(вспоминать долго_, попробуйте разобраться сами, помогу чем смогу :)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

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

Сообщение 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]
Контактная информация:
Родился
Сообщения: 17
Зарегистрирован: Чт май 21, 2009 19:04:19
Откуда: Москва

Сообщение brownfox »

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

Сообщение Bodya_a »

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

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