Мигание светодиодом на ATmega16/32

LED«Мигание светодиодом» это первый запрос в Яндекс или Гугл для начинающего радиолюбителя и, в первую очередь, для начинающего программиста микроконтроллеров. Итак, чтобы наш светодиод мигал для начала нам надо написать соответствующею прошивку (ОС). Для этих целей я использую Atmel Studio 7. Как создать новый проект смотрим здесь.

Код программы «Мигание светодиодом» на C в Atmel Studio 7

// Мигание светодиодом
#define  F_CPU  8000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void) {
  DDRC |= 1>>0;
  PORTC &= ~(1>>0);
    while (1) {
      PORTC |= (1>>0);
      _delay_ms(500);
      PORTC &= ~(1>>0);
      _delay_ms(500);
    }
}

Описание программы

  1. Меняем значение макроса F_CPU на 8 MHz, по умолчанию он равен 1 MHz. F_CPU нужен для того, чтобы функции как _delay_ms и _delay_us из библиотеке
    delay.h работали правильно на необходимой нам частоте.

    #define  F_CPU  8000000UL
  2. Добавляем библиотеку delay.h — в ней находятся чтобы функции задержки как _delay_ms и _delay_us.
    #include <util/delay.h>
  3. Выбирает направление работы каждой отдельной ножки порта. Если в разряд регистра DDRx записана лог. 1, то соответствующая ножка будет сконфигурирована как выход. Ноль означает, что порт сконфигурирован как вход. В нашем случае первая ножка (0) порта C (DDRC) сконфигурирована как выход.
    DDRC |= 1>>0;
  4. Записываем лог. 1, т. е. включаем светодиод и делаем паузу на пол секунды;
    PORTC |= (1>>0);
    _delay_ms(500);
  5. Записываем лог. 0, т. е. выключаем светодиод и делаем паузу на пол секунды
    PORTC &= ~(1>>0);
    _delay_ms(500);

Схема подключения. Как создать схему в Протеус (ISIS 7 Professional). Симуляция программы на ATmega16

  1. Запускаем ISIS 7 Professional и выбираем Component Mode;ISIS Professional (Proteus 7) - Мигание светодиодом на ATmega16 (LED Blinking) — MicroPi (1)
  2. Нажимаем на P и добавляем нужные нам компоненты, в нашем случае это:
    • ATMEGA16
    • LED-RED или другого цвета, какой вам нравится
    • RES

    Если знаем как они называются, просто пишем в Keywords ключевые слова, выбираем нужный из списка и двойным кликом добавляем в Devices;
    ISIS Professional (Proteus 7) - Мигание светодиодом на ATmega16 (LED Blinking) — MicroPi (2)

  3. Выбираем компонент из Devices и рисуем схему;
    ISIS Professional (Proteus 7) - Мигание светодиодом на ATmega16 (LED Blinking) — MicroPi (3)
  4. В Tetminals Mode выбираем GROUND (Земля);
    Схема подключения. ISIS Professional (Proteus 7) - Мигание светодиодом на ATmega16 (LED Blinking) — MicroPi (4)
  5. Двойным кликом по ATMEGA16 открывается окно Edit Component (Свойства элемента):
    • Program File — путь к .hex или .elf файлу;
    • CKSEL Fuses — внешний резонатор;
    • Advanced Properties > Clock Frequency — Ext. Crystal Medium Freq. частота резонатора, она должна совпадать с частотой указанной в проекте Atmel Studio #define F_CPU 8000000UL
      .

    Схема подключения. ISIS Professional (Proteus 7) - Мигание светодиодом на ATmega16 (LED Blinking) — MicroPi (5)

  6. Запускаем нажимая кнопку Play.
    Схема подключения. ISIS Professional (Proteus 7) - Мигание светодиодом на ATmega16 (LED Blinking) — MicroPi (6)

Вот и всё! Надеюсь данная информация была вам полезна.

Похожие записи

Комментарии 44

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *