Андрей Смирнов
Время чтения: ~10 мин.
Просмотров: 66

Часы-будильник на микроконтроллере АТ89С2051 и DS1307

Previous Entry | Next Entry

Программатор для AT89C2051 и AT89C4051

Понадобилось недавно перешить микроконтроллер AT89C2051. Так как с атмелами до этого я дела не имел, то подумал, что это какой-нибудь контроллер из обычных AVR. Тем более как раз разводил печатку программатора для всех AVR под существующие DIP корпуса. Каков же был облом, когда после сбора программатора в списке поддерживаемых контроллеров не оказалось AT89C2051. Немного позалипав, пошел искать схему очередного программатора. Нашел, и даже не одну. В итоге был выбран этот программатор.Схема программатора для AT89C2051 и AT89C4051Оригинальная печатка (300 dpi, 83.5 x 49.8 мм)Расположение деталей на оригинальной платеПечатка была немного переделана: под другой разъем для внешнего питания и добавлен светодиод с SMD резистором. А при сборке обнаружилось жуть как много косяков, и в схеме, и в расположении деталей. Ниже идет переделанная и исправленная версия.Исправленная схема программатораПеределанная печатка (300 dpi, 90.2 x 61.0 мм)Расположение деталей на переделанной платеИзменения в схеме:

  • C5 => C7;
  • U2: 1 => 3, 3 => 1.

Изменения в расположении деталей:

  • C4 => C10;
  • C5 => C7;
  • U2 => U1;
  • T3 => Q1;
  • T4 => Q3;
  • T5 => Q2.

Так программатор выглядит в сборе:Собранный программаторАрхив с программой был взят с того же сайта. Он содержит версии программы для контроллеров обоих типов: prog2051.exe для AT89C2051 и prog4051.exe для AT89C4051. Как пишет автор в инструкции, запускать программу следует из-под DOS.Настройки параллельного порта следующие:

  • LPT1: адрес 378h, IRQ 7;
  • LPT2: адрес 278h, IRQ 5;
  • Режим порта: двунаправленный (bidirectional).

Далее приведу немного своей инструкции с переводом.При запуске программа сообщает, что можно указать в командной строке номер LPT порта, к которому подключен программатор, по умолчанию выбирается LPT1:

 Specificare la Porta Parallela 1 o 2 nella linea di comando.  Uso: PROG2051 | 2>  LPT1 verra' presa come porta di default - Premi un tasto per continuare! 
 Укажите параллельный порт 1 или 2 в командной строке.  Использование: PROG2051 | 2>  LPT1 будет использован по умолчанию - Нажмите любую клавишу для продолжения! 

Затем следует сообщение:

 PROCEDURA DI AVVIO!  Spegni l'alimentazione  Inserisci il CHIP  Accendi l'alimentazione  Premi un tasto per continuare! 
 Выполните следующий порядок действий!  Выключите питание  Установите микроконтроллер  Включите питание  Нажмите любую клавишу для продолжения! 

И выводится меню:

 MENU DI SELEZIONE - PROGRAMMATORE 89C2051  Cancella il Chip        C Leggi il Chip           R Carica il File          L Dump della Memoria      D Cancella la Memoria     Z Programma il Chip       P Verifica il Chip        V Salva su File           S Blank Check             B Leggi Signature         J Scrivi Lock Bit 1       M Scrivi Lock Bit 2       N Esci                    X  Seleziona una lettera: 
 Меню выбора - программатор 89C2051  Очистить чип                 C Прочитать чип                R Загрузить файл в память      L Вывести дамп памяти          D Очистить память              Z Программировать чип          P Проверить чип                V Сохранить память в файл      S Проверить, очищен ли чип     В Прочитать идентификатор чипа J Записать 1-ый бит блокировки M Записать 2-ой бит блокировки N Выход                        X  Выберите букву: 

В архиве с программой шли исходники, потому удалось лучше понять логику работы программы и назначение всех вышеперечисленных функций, для которых была составлена такая табличка:

Профиль

wierus

Календарь

Январь 2011
Вс Пн Вт Ср Чт Пт Сб
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

View All Archives

Записи

  • (Анонимно) : (без темы)[+0]
  • (Анонимно) : программирование микроконтроллера[+5]
  • (Анонимно) : AT89c2051[+3]
  • (Анонимно) : (без темы)[+0]
  • (Анонимно) : программатор[+0]
  • (Анонимно) : (без темы)[+1]
  • (Анонимно) : (без темы)[+2]
  • (Анонимно) : (без темы)[+0]
  • (Анонимно) : Шьет 30% памяти[+0]

Теги

View my Tags page

Категории

View my Categories page Разработано LiveJournal.com

  • Цена: $1,55+$0,61(доставка)

Данные часы уже несколько раз обозревались, но я надеюсь, что мой обзор будет тоже Вам интересным. Добавил описание работы и инструкцию. Конструктор покупался на ebay.com за 1.38 фунтов (0.99+0.39 доставка), что эквивалентно 2.16$. На момент покупки это самая низкая цена из всех предложенных. Доставка заняла около 3х недель, набор пришел в обычном полиэтиленовом пакетике, который в свою очередь был упакован в небольшой «пупырчатый» пакет. На выводах индикатора был небольшой кусочек пенопласта, остальные детали были без какой либо защиты. Из документации только небольшой листочек формата А5 со списком радиодеталей с одной стороны и принципиальной электрической схемой с другой.

1. Принципиальная электрическая схема, используемые детали и принцип работы

Основой или «сердцем» часов является 8-ми разрядный КМОП микроконтроллер AT89C2051-24PU оснащенный Flash программируемым и стираемым ПЗУ объемом 2кб.Узел тактового генератора собран по схеме (рис.1) и состоит из кварцевого резонатора Y1 двух конденсаторов C2 и С3, которые образуют вместе параллельный колебательный контур. Изменением емкости конденсаторов можно в небольших пределах изменять частоту тактового генератора и соответственно точность хода часов. На рисунке 2 показан вариант схемы тактового генератора с возможностью регулировки погрешности часов.Узел начального сброса служит для установки внутренних регистров микроконтроллера в начальное состояние. Он служит для подачи после подключения питания на 1 вывод МК единичного импульса длительностью не менее 1 мкс (12 периодов тактовой частоты). Состоит из RC цепочки, образуемой резистором R1 и конденсатором C1.Схема ввода состоит из кнопок S1 и S2. Программно сделано так, что при одиночном нажатии любой из кнопок в динамике раздается одиночный сигнал, а при удержании двойной.Модуль индикации собран на четырехразрядном семисегментном индикаторе с общим катодом DS1 и резистивной сборке PR1. Резистивная сборка представляет собой набор резисторов в одном корпусе:Звуковая часть схемы представляет собой схему собранную на резисторе R2 10кОм, pnp транзисторе Q1 SS8550(выполняющего роль усилителя) и пьезоэлемента LS1.Питание подается через разъем J1 с подключенным параллельно сглаживающим конденсатором C4. Диапазон питающих напряжений от 3 до 6В.

2. Сборка конструктора

Сборка трудностей не вызвала, на плате подписано, куда какие детали паять.Много картинок — сборка конструктора спрятана под спойлеромЯ начал с панельки, так как она единственная не является радиодеталью: Следующим шагом я припаял резисторы. Перепутать их невозможно, они оба на 10кОм: После этого установил на плату соблюдая полярность электролитический конденсатор, резисторную сборку (также обращая внимание на первый вывод) и элементы тактового генератора — 2 конденсатора и кварцевый резонатор Следующим шагом припаиваю кнопки и конденсатор фильтра питания: После этого очередь за звуковым пьезоэлементом и транзистором. В транзисторе главное установить правильной стороной и не перепутать выводы: В последнюю очередь припаиваю индикатор и разъем питания: Подключаю к источнику напряжением 5В. Все работает!!!

3. Установка текущего времени, будильников и ежечасового сигнала.

После включения питания дисплей находится в режиме («ЧАСЫ: МИНУТЫ») и отображает время по умолчанию 12:59. Ежечасный звуковой сигнал включен. Оба будильника включены. Первый установлен на время срабатывания 13:01, а второй – 13:02. При каждом кратковременном нажатии на кнопку S2 дисплей будет переключаться между режимами («ЧАСЫ: МИНУТЫ») и («МИНУТЫ: СЕКУНДЫ»). При длительном нажатии кнопки S1 происходит вход в меню настроек, состоящее из 9 подменю, обозначенных буквами A, B, C, D, E, F, G, H, I. Подменю переключаются кнопкой S1, значения изменяются кнопкой S2. После подменю I следует выход из меню настроек.А: Установка показаний часов текущего времени При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю B.B: Установка показаний минут текущего времени При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для перехода в подменю С.C: Включение ежечасного звукового сигнала По умолчанию включено (ON) – каждый час с 8:00 до 20:00 подается звуковой сигнал. При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в подменю D.D: Включениевыключение первого будильника По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю E и F пропускаются.E: Установка показаний часов первого будильника При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю F.F: Установка показаний минут первого будильника При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для перехода в подменю С.G: Включениевыключение второго будильника По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю H и I пропускаются и происходит выход из меню настроек.H: Установка показаний часов второго будильника При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю I.I: Установка показаний минут второго будильника При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для выхода из меню настроек.Коррекция секунд В режиме («МИНУТЫ: СЕКУНДЫ») необходимо удержать кнопку S2 для обнуления секунд. Далее коротким нажатием на кнопку S2 запустить отсчет секунд.

4. Общие впечатления от часов.

Плюсы: + Низкая цена + Легкая сборка, минимум деталей + Удовольствие от самостоятельной сборки + Достаточно низкая погрешность (у меня за сутки отстали на несколько секунд)Минусы: — После отключения питания не держит время — Отсутствие какой либо документации, кроме схемы (данная статья частично решила этот минус) — Прошивка в микроконтроллере защищена от считывания

5. Дополнительно:

1) На безграничных просторах интернета нашел инструкцию к этим часам на английском языке и перевел ее на русский. Скачать ее можно здесь 2) Проблему аварийного питания при отключении электроэнергии можно решить при помощи батарейки на 3В и двух диодов:

Схема самодельных часов-будильника для установки в приборную панель автомобиля. Устройство питаются от автомобильного аккумулятора. Однако, они с таким же успехом могут использоваться и дома.

В этом случае просто отсутствует подсветка дисплея, а питание осуществляется от любого сетевого адаптера, дающего напряжение не ниже 6V. Ток потребления, не считая тока подсветки, всего 5-7мА.

Для автомобилиста данные часы будут интересны тем, что позволяют в течении одного дня установить несколько значений времени, в которое должен прозвучать сигнал.

Это поможет В«дальнобойщикуВ» правильно дозировать отдых и работу, избегая переутомления и достигая наибольшей работоспособности и безопасности движения, исходя из индивидуальных качеств водителя.

Принципиальная схема

В основе прибора — микросхема DS1307 (Л.1), представляющая собой часы реального времени. Данная микросхема В«общается с внешним миромВ» посредством стандартной шины І2С.

Задача контроллера D1 состоит не в отсчете времени, а в обеспечении взаимодействия D2 с такими устройствами как плата жидкокристаллического дисплея, кнопки -органы управления, звуковой сигнализатор.

shema-20088-35.png

Рис. 1. Принципиальная схема часов-будильника на АТ89С2051 и DS1307.

Поэтому, на сам отсчет времени контроллер влияния не оказывает. Это позволяет, например, вместо показанного на схеме резонатора Q1 на 6 МГц использовать другой резонатор, на меньшую частоту, например, резонатор от видеотехники на 4,43 МГц. Просто реакция меню будет медленнее.

Микросхема D1 питается от резервного гальванического источника напряжением ЗV. В идеале, это должна быть литиевая батарея, но можно использовать, например, два дисковых элемента питания от микрокалькулятора. Ток потребления — микроамперы, поэтому энергии хватает на очень долго.

Акустическая сигнализация посредством миниатюрного активного звукоизлучателя В1 типа НРА24АХ. Можно использовать любой другой активный звукоизлучатель (со встроенным генератором) на напряжение питание 4-6V. Если излучатель будет на 12V, -подключите R7 не к выходу стабилизатора А1, а к его входу.

Детали и конструкция

Схема питается напряжением 5V, получаемым с выхода стабилизатора А1. Диод VD1 защищает часы от неправильного подключения к электросхеме автомобиля. Такую же функцию несет и VD2.

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

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

Точность хода часов зависит от точности частоты тактового генератора D1, стабилизированного кварцевым резонатором Q2. Добиться наибольшей точности можно подстройкой С7. Контрастность дисплея регулируется подстроечным резистором R9.

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

То есть, значение кнопок постоянно меняется, согласно надписям на дисплее. Конструктивно, кнопки S1 и S2 расположены под дисплеем, — слева S2, справа S1. В общем, разобраться очень легко и особых пояснений не требуется.

Часы были собраны на макетной печатной плате, поэтому разводка платы для них не разрабатывалась. Дисплей и кнопки управления расположены на приборной панели автомобиля, на месте пластмассовой заглушки. А плата расположена глубже, в более удобном месте.

Дисплей связан с платой ленточным кабелем, а для кнопок проложены отдельные провода.

В микроконтроллер необходимо ввести управляющую программу, распечатку НЕХ-файла можно скачать ниже.

Прошивка для МК — Скачать (3 КБ).

Кожухин В. А. (kozux@bk.ru)

backit-582x72.pngИспользуемые источники:

  • https://wierus.livejournal.com/1861.html
  • https://mysku.ru/blog/ebay/33936.html
  • http://radiostorage.net/5094-chasy-budilnik-na-mikrokontrollere-at89s2051-i-ds1307.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации