21.03.2017 20:18 Количество просмотров материала 2647 Время на чтение ~3.5 мин
Увеличить | Уменьшить Распечатать страницу

Программирование AVR урок 2 — включаем светодиод

Программирование AVR урок 2 — включаем светодиод

Всем привет. В комментарии к предыдущей статье, мне предложили использовать в качестве среды для программирования 7-ю «atmel studio». Полностью согласен с этим предложением :-) Ставиться 7-ка также просто, как и версия 6.2. В этой статье будут представлены скриншоты программы с версий 6.2 и 7. Со следующей статьи будут скриншоты только 7 версии.

Программирование AVR урок 2 — включаем светодиод

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

Примечание: проект в 7-ке создаётся аналогично версии 6.2.

Программирование AVR урок 2 — включаем светодиод

Перед нами шаблон, который создан программной средой «atmel studio» (далее – ПС). Разберёмся, что в него входит. Первым делом в начале кода стоит директива «include». Директива, даёт команду компилятору использовать текст файла, что заключен в скобки или кавычки. Когда название файла записано в скобках – это стандартный файл компилятора. Если же название записано в кавычках, то это пользовательский файл, который находится в папке проекта.

Далее идёт главная функция int main (void) и цикл while (1) (бесконечный цикл по условию).

Приступим к написанию программы. Команда DDRх (вместо «х» может стоять индекс порта, в случае atmega8 - B,C или D) определяет, в каком состоянии будут находиться выводы (ножки) порта, конфигурация либо на вывод (высокий логический уровень) либо на ввод данных. Для того, чтобы включить светодиод, нужно подать высокий логический уровень на вывод (ножку), к которому подключен светодиод.

Все выводы порта сконфигурированы на вывод данных.

DDRD = 0b111111111; равносильная запись DDRD = 0xFF;

Команда PORTх (вместо «х» может стоять индекс порта, в случае atmega8 - B,C или D) выставляет логический уровень на выводах (ножках), если порт работает на вывод данных.

Примечание: «=» - оператор, который присваивает величину справа, переменной, что находится слева.

Выставили 0 на всех ножках порта, кроме нулевой, на которой будет висеть светодиод.

PORTD = 0b00000001;

Вариант готовой программы выглядит так:

Программирование AVR урок 2 — включаем светодиод

Рис. 3 - версия "atmel studio" 6.2

Программирование AVR урок 2 — включаем светодиод

Рис. 4 - версия "atmel studio" 7

Соберём проект.

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

PORTD = 0b00000010;

PORTD = 0b00000100;

Снова соберём проект.

Поставим контрольные точки. Для этого кликнем на левую кнопку мыши слева от строки. Затем нажмём на зеленый треугольник (F5).

Программирование AVR урок 2 — включаем светодиод

Рис. 5 - версия "atmel studio" 6.2

Программирование AVR урок 2 — включаем светодиод

Рис. 6 - версия "atmel studio" 7

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

debug -> windows -> I/O view

Программирование AVR урок 2 — включаем светодиод

Рис. 7 - версия "atmel studio" 6.2

Программирование AVR урок 2 — включаем светодиод

В появившемся окошке кликаем левой кнопкой на PORTD. Видим регистр DDRD (отвечает за направления порта). Выставлены все единицы.

Программирование AVR урок 2 — включаем светодиод

Программирование AVR урок 2 — включаем светодиод

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

Программирование AVR урок 2 — включаем светодиод

Программирование AVR урок 2 — включаем светодиод

 

Программирование AVR урок 2 — включаем светодиод

Программирование AVR урок 2 — включаем светодиод

Удаляем две добавленные строки. Пересобираем проект.

После того, как мы отладили программу в ПС, перейдём к отладки программы в Proteus (программа для проектирования электронных схем). Скачиваем. Устанавливаем. Запускаем.

Как и в случае с ПС создаём новый проект.

Программирование AVR урок 2 — включаем светодиод

Присваиваем имя. Сохраняем проект в той же папке, что и проект ПС.

Программирование AVR урок 2 — включаем светодиод

Нажимаем Next. Выбираем «create a schematic» DEFAULT

Нажимаем Next -> Next ->Finish

Программирование AVR урок 2 — включаем светодиод

Программирование AVR урок 2 — включаем светодиод

Программирование AVR урок 2 — включаем светодиод

Открылась рабочая область. Для начала добавим радиоэлементы. Кликаем на «Component Mode». Нажимаем «р». В поисковой строке добавляем название микроконтроллера – atmega8. Делаем двойной щелчок, после чего МК попадает в меню. Добавляем токоограничивающий резистор. Напоследок добавим светодиод. Закрываем окно выбора деталей.

Программирование AVR урок 2 — включаем светодиод

Размещаем atmega8 на рабочей области. Кликаем на названии элемента, после чего кликаем на выбранном месте на рабочей области.

Программирование AVR урок 2 — включаем светодиод

Примечание: Если у вашего МК больше 28 ножек, нужно это исправить нажимаем на МК. Выбираем ...28....

Программирование AVR урок 2 — включаем светодиод

Выбираем файл прошивки. Он создается автоматически после компиляции (собирания) программы в папке debug и имеет расширение hex. Выбираем его и жмём ок.

Программирование AVR урок 2 — включаем светодиод

Вешаем резистор на лапку PD0. Меняем значение на 220 ом. Для этого кликаем на текущем значении сопротивления резистора. В появившемся окне меняем 10k на 220. Для того, чтобы соединить элементы на схеме, кликаем на вывод элемента, а затем кликаем на другой вывод, с которым нужно создать соединение.  Затем добавляем светодиод.

Программирование AVR урок 2 — включаем светодиод

Кликаем на «terminals mode». Выбираем «GROUND». Кликаем на рабочей области. Соединяем вывод светодиода с "землей". Запускаем. Видим результат.

На этом пока всё. Продолжение следует.

Картотека программирования

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]


Вверх