Пусть стоит задача : Создать электронные часы со светодиодным индикатором на базе микроконтроллера. Задача разбивается на 3 этапа :
1 этап.
Это этап технического задания. Формируем техническое задание, согласно нужных характеристик у часов :
1. Должно отображаться время в формате ЧЧ. ММ.
2. Задавать время с клавиатуры при редактировании (корректировка времени).
3. Переход в режим будильника (режим с установкой времени срабатывания и выдачи звукового сигнала) .
4.Возможность использования часов в режиме таймера (секундомера) с отображением времени в формате ММ. СС.
5. Возможность регулировать яркость индикатора.
6. Использовать четырехразрядный семи сегментный индикатор.
7. Использовать клавиатуру из четырех замыкающих кнопок.
8. Использовать звуковой индикатор.
9. Использовать сетевое и автономное питание.
Итак , техническое задание поставлено. Теперь можно приступить к поиску необходимых радиоэлементов ( для выполнения нужных характеристик) . Рисуем электрическую принципиальную схему . Микроконтроллер ATMEGA8 c DIP корпусом подходит ,чтобы выполнить поставленную задачу . Портов достаточно .
1. Можно подключить семи сегментный индикатор и осуществить динамическую индикацию.
2.Можно подключить клавиатуру из 4-х кнопок.
3.Можно задействовать звуковой индикатор.
4. Есть ножки через которые будем производить программирование ( ножки микроконтроллера SCK,MISO,MOSI ) .
5. У микроконтроллера 3 таймера ,что достаточно для режимов : отображения часов и минут , отображения секундомера ( минут и секунд ) , будильника.
6. Регулировать яркость индикатора можно управляя транзисторами .
7. Сетевое и автономное питание можно осуществить схемным решением.
Изучив архитектуру микроконтроллера ATMEGA8 ,воспользуемся ресурсами
микроконтроллера:
Генератор RC — внутренний 1 МГц, к TOSC1 и TOSC2 подключим кристалл 32768 Гц. Timer0 – будет генератором прерываний с частотой 250 Гц для обслуживания индикатора , клавиатуры. Timer1 –будет генератором звукового сигнала программируемой частоты на выходе PB1 (OC1A), формируя звуковой сигнал в форме меандра. Timer2 – будет генератором прерываний с частотой 1 Гц (для вычисления времени), формируя на выходе PB3 (OC2) импульсы длительностью 1 с (0.5 Гц).
Индикацию отдадим портам: Portd для сегментов, Portc0…Portc3 — для знакоместа (позиции). Этот же порт будем использовать и для сканирования клавиатуры. Семи сегментный индикатор выберем с общим анодом. Активным уровнем на выходе из порта будет «0». Порту Portc5 назначим «+5 В» — сигнал «Включение сети».
В итоге ( после анализа ) сформируется следующая принципиальная электрическая схема :
Воспользуемся специальной средой , чтобы (виртуально собрать выше нарисованную электрическую принципиальную схему часов) , без покупки радиоэлементов . Такие программы (среды) есть. К примеру — ISIS PROTEUS. (показана на рисунке).
В PROTEUS можно позже развести и печатную плату для изготовления опытного образца , воспользовавшись ARES PROTEUS .
2 этап .
Этап разработки программного обеспечения. Создаем скелет программы , разбивая ее на подпрограммы. Последовательно решаем одну задачу за другой, с отладкой каждой задачи. Определяемся , что Timer0 – обслуживает клавиатуру и семи сегментный индикатор с общим анодом ( 0 с порта С открывает транзисторы ).
Timer1- будет формировать сигнал в форме меандра для создания звука в динамике.
Timer2 – нацелен на создание импульсов с частотой в 0,5 Гц , период которых будет
равен 1 сек. Данные из программ обработки прерываний ( подпрограмм ) будут передаваться главной программе. К примеру, обработка прерывания таймера 2 будет происходить 1 раз в секунду. Программу пишем в бесплатной среде AVR Studio , изображенной на этом рисунке.
После успешной компиляции получим ( хекс код — файл с расширением .hex) , который можно загрузить в виртуальную модель микроконтроллера АTMEGA8 ( в среде PROTEUS ISIS ) и проверить работу схемы.
3 этап ( разработка опытного образца ) .
В случае успешной работы на этапе 2 , можно приступить к разработке печатной платы и закупать радиодетали , согласно схеме часов ( на 1 этапе) . Для разработки печатной платы воспользуемся тем же Протеусом , а именно — программой ARES PROTEUS.
Прошивку микроконтроллера хекс кодом (файл с расширением .hex) производим программатором , соединенным с ножками микроконтроллера SCK,MISO,MOSI . Программатор можно собрать самостоятельно . Схема программатора показана на рисунке
( схема программатора разработана Janis(ом)
и работает совместно с программой IC Prog ) .
Далее приступаем к пайке радиодеталей на плату . Затем проверяем в работе уже не виртуальный , а опытный образец . В случае успеха , приступаем к производству ( размещаем образец в корпус ) .