В данном уроке соберём простой девайс на микроконтроллере AVR, который будет просто мигать светодиодом, примечательно, что программа для сего устройства пишется в среде BASCOM-AVR. Для наглядности работы данного устройства, я нарисовал блок схему его работы:
Как видно из блок схемы, сначала подаётся логическая 1 на порт микроконтроллера, потом следует задержка на 250 миллисекунд, далее подаётся логический 0 и опять следует задержка на 250 миллисекунд и всё повторяется заново.
Для устройства я решил использовать AVR микроконтроллер Attiny13, в предыдущих уроках я сделал для него простую отладочную плату, на которой можно реализовать данный проект. Порт у микроконтроллера я выбрал PB2. Можно, конечно, использовать и другие порты микроконтроллера. Для этого, в программе впишите имя другого порта. Итак, после недолгого раздумья родилась такая схема:
Небольшое описание к схеме: IC1- микроконтроллер Attiny13, резистор R2 — токоограничивающий для светодиода HL1, светодиод HL1 — любой светодиод, резистор R1 – подтягивающий, он подтягивает ножку RESET микроконтроллера к «плюсу» питания, это делается для того, чтобы предотвратить случайный сброс микроконтроллера. Вот из серии сборки «железа» всё, но не спешите включать девайс, ведь без программы ничего не заработает. А программа для микроконтроллера не такая уж сложная и работает по алгоритму, описанному выше в блок схеме.
Программа:
$regfile = «attiny13.dat» ‘задаём регистрационный файл для микроконтроллера Attiny13
$crystal = 9600000 ‘задаём частоту на которой будет работать тактовый генератор микроконтроллера
Config Portb.2 = Output ‘конфигурируем PORTB.2 (7 нога) на выход
Do ‘открываем операторную скобку бесконечного цикла
Portb.2 = 1 ‘устанавливаем на PORTB.2 логическую единицу
Waitms 250 ‘задержка в 250 миллисекунд
Portb.2 = 0 ‘устанавливаем на PORTB.2 логический ноль
Waitms 250 ‘задержка в 250 миллисекунд
Loop ‘закрываем операторную скобку бесконечного цикла
End ‘конец программы
Как видно выше, программа очень простая и хорошо прокомментирована, теперь только напишите всё это в BASCOM-AVR и откомпилируйте, в результате вы получите HEX файл — это и есть уже готовая программа для микроконтроллера, осталось только прошить её в микроконтроллер и установить фьюз биты. Фьюз биты, устанавливаем на 9.6МГц без делителя на 8 (смотрите картинку ниже).
Про прошивку микроконтроллера я уже рассказывал уроком ранее.
Теперь прошивайте микроконтроллер и вставляйте его в панельку устройства и подавайте питание. О чудо, светодиод замигал! Если же нет, то ищите ошибки в монтаже или при программировании!
И видео работы на отладочной плате:
Скачать исходники проекта и прошивку
Автор: Яковлев Александр Вячеславович (г.Витебск, Беларусь)
cxem.net