Часы – термометр на AT89C2051,DS1307 и DS18B20

Эти часы просто содраны на необьятных просторах Интернета и немного доработаны в плане прошивки. Хочу поделиться с другими желающими поупражняться в прошивании мелкоконтроллеров.Очень простые и удобные часики с термометром .Прошивал AT89C2051 программатором типа DL2TM,напечатанном в журнале Радио № 3, 2004год стр52.




Устройство выполнено на контроллере 51 семейства с внутренней FLASH памятью, для измерения температуры используется, широко известный, дешевый (относительно), доступный датчик DS18B20, для подсчета времени решено было использовать микросхему (называемую «первичные часы») – DS1307.

Датчик температуры. Датчик DS18B20 очень широко известен, он используется практически в каждой второй схеме измерителя температуры. Подробную информацию о нем достаточно легко найти на страницах Интернета. Здесь лишь отмечу самое важное – датчик посылает данные (или обмен данными ведется) по интерфейсу MicroLan, или иначе называемом, 1-Wire. На мой взгляд, не самый удобный интерфейс, с той точки зрения, что трудно его реализовать на Си (проблемы с вызовом вполне конкретных временных задержек), в остальном же интерфейс достойный внимания и современный.

Часы реального времени. Микросхема DS1307 внутри себя имеет много чего: кварцевый генератор, кучу счетчиков (от секунд до годов), 56 байт памяти, схему отслеживания питания, контроллер интерфейса I2C. Возможностей у этой микросхемы много, но у меня используется лишь их незначительная часть – я не использую внутренний календарь, внутренне ОЗУ, хотя можно. Самое что главное – это то, что работать с этой микросхемой очень легко. Интерфейс I2C после моего изучения мне очень понравился – простой, надежный, понятный, легко реализуемый. Но самое главное в этой микросхеме то, что при сбросе питания время не сбрасывается!

Устройство работает так: в микроконтроллере постоянно работает таймер, который уже ранее объясненным способом генерирует прерывания с частотой раз в секунду, они в свою очередь подсчитываются, и когда их количество становится равно 8, происходит смена показаний на табло и измерение температуры. На этом функции программы обработки прерывания исчерпываются. В основном цикле программы постоянно осуществляется индикация (она динамическая) и опрос клавиатуры. Питание устройства осуществляется от зарядного устройства (не импульсного) для телефонов фирмы NOKIA, при этом обязательно ставить слагающий конденсатор (тот, что 680 мкФ) на входе (т к пульсации на выходе с зарядника очень велики – там внутри нет этого самого конденсатора).

Примечание: Вывод 7 микросхемы DS1307 в плату не запаивается – он остается в воздухе, я его просто загибал.
В архиве два варианта плат, под конкретный индикатор и вторая под какой кто найдёт с ОА.
Часы собраны и воткнуты в вот такой вот раритетный корпус откуда выброшена вся нерабочая механизма laughing


Архив с нужными файлами У вас нет доступа к скачиванию файлов с нашего сервера
Видео работы часов http://www.youtube.com/watch?v=xhs6OkAjaRg

4 комментария

macsim_37 7 февраля 2012 17:23
Здраствуйте.Решил попробовать собрать этот вариант часов,но не запускаеются.Подскажите,с чего начать выявление причины?Кварцы все работают
voyajer 14 марта 2012 00:23
Я тоже собрал . Всё запустилось . И вроде работает . Яркость индикаторов надо подобрать .
А если не запускаются . Думаю стоит проверить плату на КЗ . И прошивку .
Сам долго ковырялся с программатором . Никак не хотел шить контроллер .
Запись шла , а потом при чтении нули одни были .
macsim_37 28 марта 2012 21:00
Часы запустились.Только есть вопросы по поводу работы:точка разделительная мигает без определенного интервала.Через какой-то срок время в часах останавливается,потом запускается снова,но уже с отставанием,всегда по разному.В чем может быть проблема,подскажите?
voyajer 31 марта 2012 00:20
Скорее всего питания не хватает ( явный признак если на индикаторе периодически появляются ( F F F F ) . ( внешнего питания для RTC уже не хватает а для переключения на резервное питание ещё не хватает ) .
Ещё стоит проверить конденсатор на первую ножку .. он отвечает за запуск контроллера.
Ну и ещё раз проверить что нет случайных перемычек и канифоль весь смыт особенно там где кварц .
Ещё может быть глюк из за датчика температуры (на землю пробивается ) . Попробуй без него пусть поработают . ( резистор подтяжки 4,7 К ... не забываем )
Ваше имя: *
Ваш e-mail: *
Войти через
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Введите два слова, показанных на изображении:
© 2010-2017 Все права соблюдены.