Читаем Микроконтроллеры AVR: от простого к сложному полностью

Для перевода минут, часов и установки будильника используются кнопки S1…S3. Обновление показаний индикатора происходит каждую секунду. При нажатии более чем на одну кнопку управляющая программа игнорирует нажатие кнопок. Для установки будильника следует нажать кнопку ALARM и подождать двукратного звукового сигнала (не более секунды) для входа в режим будильника. Для перехода обратно в режим часов кнопку ALARM нужно удерживать до подачи однократного сигнала. В качестве выхода для сигнала будильника используется вывод РВ.7 порта В, а в качестве усилителя — схема на транзисторе VT5. В роли сигнализатора применен звонок от импортных часов сопротивлением около 15 Ом. Для отключения будильника используется выключатель S4 (лучше всего — кнопка с фиксацией).

Питаются часы от стабилизированного источника напряжением 6 В. Причем индикация работает только при работе часов от сети. Ток потребления при наличии индикации — около 80 мА. При работе от аккумуляторов (четыре аккумулятора типа Д-0,26) индикация отключается, но часы продолжают идти и функционирует будильник. Диоды D5…D7 обеспечивают правильное использование источников питания при работе от сети и от аккумуляторов, сами же аккумуляторы при работе часов от сети заряжаются через резистор R10. Поскольку при отсутствии индикации часы потребляют ток около 6 мА, предложенный UPS способен поддерживать работу часов более суток, что чрезвычайно удобно. Лично я не люблю наводить часы всякий раз после броска сетевого напряжения. Кстати, это явилось одной из движущих сил данного проекта.

Краткое описание управляющей программы

Управляющая программа часов написана на ассемблере.

Сразу после включения часов программа разрешает прерывания, настраивает порты контроллера соответствующим образом и устанавливает указатель стека на старшие адреса внутренней памяти данных (стек растет «сверху вниз», как в семействе 80X86). Далее программа переводит устройство в режим часов, настраивает будильник на 6 часов 55 минут, после чего запускает цикл сканирования индикатора и цикл счета времени. Вся дальнейшая работа программы состоит в реализации пустого цикла, из которого ее выводят запросы прерываний от таймеров-счетчиков и в который она снова возвращается после завершения обработчика.

Основой программы являются два обработчика прерываний от таймеров. Обработчик прерывания от таймера-счетчика Т/С0 используется для динамической индикации, а обработчик от таймера-счетчика Т/C1 считает время. Естественно, можно было бы организовать сканирование индикатора и без привлечения прерывания от таймера и применить более дешевый кристалл, например AT90S1200. Но непривычность работы с аппаратным стеком (автор много лет до этого занимался 80X86), недостаточный объем памяти и незначительное отличие между этими контроллерами в цене говорят явно не в пользу такого решения.

Обработчик счета времени вызывается каждую секунду. Он является более приоритетным, чем обработчик сканирования индикатора. В этом обработчике также выполняется определение состояния клавиш часов и при необходимости — перевод времени, переход в режим часов/будильника, а также проверяется равенство текущего времени установкам будильника. Обработчик сканирования индикатора вызывается около 1600 раз в секунду и по очереди отображает каждую из цифр текущего времени, т. е. каждая цифра появляется на индикаторе примерно 400 раз в секунду. Кстати, изменяя в разумных пределах частоту сканирования, легко регулировать яркость свечения индикатора.

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

Резюме

К сожалению, автору не удалось численно определить точность хода часов. Можно сказать лишь одно — за месяц часы отстали примерно на минуту, что, согласитесь, вполне приемлемо для устройства такого класса.

Файлы, относящиеся к проекту, находятся на компакт-диске, прилагаемом к книге.

Автор: Игорь Коваль (E-mail: [email protected]).

<p>6.17. Подключение внешнего статического оперативного запоминающего устройства</p>

Разработчики устройств на микроконтроллерах постоянно сталкиваются с задачей временного хранения данных, однако объема внутреннего SRAM (Static Random Access Memory — статическое запоминающее устройство с произвольным доступом, далее — память) зачастую недостаточно.

Для облегчения решения такой задачи микроконтроллер AT90S8515 (AT90LS8515) снабжен интерфейсом для подключения внешней памяти объемом до 64 Кбайт.

Интерфейс для подключения внешней памяти

Интерфейс включает в себя:

• порт А: шина младшего байта адреса / шина данных;

• порт С: шина старшего байта адреса;

• контакт ALE (Address Latch Enabled): разрешение фиксации адреса;

• контакты RD и WR: стробы записи и считывания.

Перейти на страницу:

Все книги серии Библиотека инженера

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника