«Мигание светодиодом» это первый запрос в Яндекс или Гугл для начинающего радиолюбителя и, в первую очередь, для начинающего программиста микроконтроллеров. Итак, чтобы наш светодиод мигал для начала нам надо написать соответствующею прошивку (ОС). Для этих целей я использую 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); } }
Описание программы
- Меняем значение макроса
F_CPU
на 8 MHz, по умолчанию он равен 1 MHz.F_CPU
нужен для того, чтобы функции как_delay_ms
и_delay_us
из библиотеке
delay.h
работали правильно на необходимой нам частоте.#define F_CPU 8000000UL
- Добавляем библиотеку
delay.h
— в ней находятся чтобы функции задержки как_delay_ms
и_delay_us
.#include <util/delay.h>
- Выбирает направление работы каждой отдельной ножки порта. Если в разряд регистра DDRx записана лог. 1, то соответствующая ножка будет сконфигурирована как выход. Ноль означает, что порт сконфигурирован как вход. В нашем случае первая ножка (0) порта C (DDRC) сконфигурирована как выход.
DDRC |= 1>>0;
- Записываем лог. 1, т. е. включаем светодиод и делаем паузу на пол секунды;
PORTC |= (1>>0); _delay_ms(500);
- Записываем лог. 0, т. е. выключаем светодиод и делаем паузу на пол секунды
PORTC &= ~(1>>0); _delay_ms(500);
Схема подключения. Как создать схему в Протеус (ISIS 7 Professional). Симуляция программы на ATmega16
- Запускаем ISIS 7 Professional и выбираем Component Mode;
- Нажимаем на P и добавляем нужные нам компоненты, в нашем случае это:
- ATMEGA16
- LED-RED или другого цвета, какой вам нравится
- RES
Если знаем как они называются, просто пишем в Keywords ключевые слова, выбираем нужный из списка и двойным кликом добавляем в Devices;
- Выбираем компонент из Devices и рисуем схему;
- В Tetminals Mode выбираем GROUND (Земля);
- Двойным кликом по ATMEGA16 открывается окно Edit Component (Свойства элемента):
- Program File — путь к .hex или .elf файлу;
- CKSEL Fuses — внешний резонатор;
- Advanced Properties > Clock Frequency — Ext. Crystal Medium Freq. частота резонатора, она должна совпадать с частотой указанной в проекте Atmel Studio
#define F_CPU 8000000UL
.
- Запускаем нажимая кнопку Play.
Вот и всё! Надеюсь данная информация была вам полезна.
Приобретение школьного аттестата с официальным упрощенным обучением в Москве