AFON // радиотехник affonya@mail.ru
← Радиотехника

Проекты на AVR контроллерах

Практические устройства на микроконтроллерах AVR с полным исходным кодом на ассемблере: схема, детали, алгоритм и проверенный листинг для каждого проекта.

О разделе

Здесь собраны практические проекты на микроконтроллерах AVR, написанные на ассемблере (MPASM). Каждый проект — это законченное устройство: задача, список деталей, схема подключения, алгоритм и полный листинг с построчными комментариями. Все листинги проверены ассемблером и собираются без ошибок, рядом лежит готовый HEX-файл.

Проекты выстроены по возрастанию сложности: от мигающего светодиода до устройств с индикаторами, датчиками и связью. Базовый контроллер — ATmega8 (классика для обучения), часть проектов рассчитана на ATmega328P и ATtiny2313. Теорию по архитектуре смотрите на странице микроконтроллеры AVR, настройку среды — в статье программирование PIC на C.

План раздела

ПроектыТемаСтатус
1–10Основы: порты, кнопки, релеготово
11–18Индикация: 7 сегментов, LCD, матрицаготово
19–26Таймеры, прерывания и ШИМготово
27–34Измерения: АЦП, датчики, частотаготово
35–42Связь: UART, I²C, SPI, ИКготово
43–50Управление: двигатели, клавиатура, автоматикаготово
AVR//

Проекты

50

Готовые устройства с полным исходным кодом на ассемблере. Раздел пополняется — всего запланировано 50 проектов.

AVR.01
Мигающий светодиод

Порт на выход, стек и программная задержка

AVR.02
Бегущие огни

Сдвиг регистра командой lsl

AVR.03
Кнопка и антидребезг

Внутренняя подтяжка и подавление дребезга

AVR.04
Кнопка-триггер

Инверсия бита через eor и ожидание отпускания

AVR.05
Бегущий огонь «туда-обратно»

Сдвиги lsl и lsr в обе стороны

AVR.06
Двоичный счётчик

Порт показывает двоичный код от 0 до 255

AVR.07
Управление реле

Транзисторный ключ и обратный диод

AVR.08
Генератор меандра 1 кГц

Расчёт задержки в тактах процессора

AVR.09
Переключение режимов кнопкой

Три эффекта и ветвление по номеру режима

AVR.10
Светофор

Полный цикл с мигающим зелёным

AVR.11
7-сегментный индикатор

Таблица сегментов во flash и команда lpm

AVR.12
Динамическая индикация

Два разряда на общей шине сегментов

AVR.13
Счётчик 0…99

Двухразрядный счёт с переносом

AVR.14
LCD HD44780

Инициализация дисплея в 4-битном режиме

AVR.15
Вывод текста на LCD

Строки во flash и автоинкремент указателя

AVR.16
Светодиодная матрица 8×8

Развёртка по столбцам через дешифратор

AVR.17
Индикатор уровня

Столбик светодиодов и формирование маски

AVR.18
Бегущая строка

Кольцевой буфер и прокрутка изображения

AVR.19
Точная задержка на таймере T0

Предделитель, флаг TOV0 и расчёт интервала

AVR.20
Прерывание по таймеру

Вектор, сохранение SREG и фоновая задача

AVR.21
Программный ШИМ

Плавное разгорание и затухание

AVR.22
Аппаратный ШИМ на T1

Fast PWM формируется без участия ядра

AVR.23
Счётчик импульсов

Таймер как счётчик внешних событий

AVR.24
Секундомер с кнопкой

Пуск и стоп одной кнопкой, счёт 00…99

AVR.25
Часы на прерывании (CTC)

Ровно секунда без подбора констант

AVR.26
Таймер обратного отсчёта

Отсчёт до нуля и отключение реле

AVR.27
АЦП: чтение потенциометра

Первое аналоговое измерение на AVR

AVR.28
Цифровой вольтметр

Перевод кода АЦП в вольты и десятые

AVR.29
Термометр на LM35

Внутреннее опорное 2,56 В: код равен градусам

AVR.30
Датчик освещённости

Пороговое включение света с гистерезисом

AVR.31
Передача по USART

Вывод строки в терминал ПК

AVR.32
Приём по USART с эхо

Принятый символ возвращается обратно

AVR.33
Управление командами с ПК

Реле включается символом из терминала

AVR.34
EEPROM 24C02 по I²C

Аппаратный модуль TWI: запись и чтение

AVR.35
Сдвиговый регистр по SPI

Восемь выходов ценой трёх выводов

AVR.36
Приём ИК-пульта RC-5

Декодирование посылки по таймингам

AVR.37
Связь двух микроконтроллеров

Кнопка на одном — светодиод на другом

AVR.38
Радиоканал 433 МГц

Передатчик с преамбулой и контролем

AVR.39
Сервопривод SG90

Аппаратный ШИМ с периодом 20 мс

AVR.40
Шаговый двигатель

Полношаговая последовательность и реверс

AVR.41
Двигатель: ШИМ и реверс

Плавный разгон через драйвер L293D

AVR.42
Матричная клавиатура 4×4

Шестнадцать кнопок на восьми выводах

AVR.43
Кодовый замок

Проверка последовательности из четырёх клавиш

AVR.44
Сигнализация с датчиком движения

Постановка на охрану и сирена

AVR.45
Термостат с гистерезисом

Два порога вместо одного

AVR.46
Метроном

Щелчки с регулировкой темпа

AVR.47
Ультразвуковой дальномер

Измерение времени полёта эха

AVR.48
Энкодер вращения

Определение направления по двум каналам

AVR.49
Термометр DS18B20

Протокол 1-Wire вручную

AVR.50
Энергосбережение и сон

Режим Power-down и пробуждение по прерыванию