Создадим первую программу для микроконтроллера AVR, для начала помигаем светодиодом. Программу создадим в самом простом, на мой взгляд, компиляторе для начинающих Bascom AVR. Для начала необходимо выбрать микроконтроллер, который мы будем использовать. В принципе для мигания светодиодом можно взять любой микроконтроллер я буду использовать микроконтроллер ATMEGA8, забегая вперед сразу скажу, что можно адаптировать программу под любой камень лишь изменив подключаемый файл описания, далее я опишу, как это можно сделать.
Итак, начнем:
1. Создаем новый файл в программе Bascom AVR с расширением .bas желательно сохранять файл проекта и файл proteusa в одной папке. На рисунке 1 представлен текст программы.
2. Объявляем наш микроконтроллер, подключаем файл описания на данный микроконтроллер.
3. Задаем частоту нашего кварцевого резонатора
4. Настраиваем порты ввода-вывода, чтобы работать с ними, в нашем случаи будем использовать порт PORTB, но можно использовать и другую ножку порта.
Итак, начнем:
1. Создаем новый файл в программе Bascom AVR с расширением .bas желательно сохранять файл проекта и файл proteusa в одной папке. На рисунке 1 представлен текст программы.
2. Объявляем наш микроконтроллер, подключаем файл описания на данный микроконтроллер.
3. Задаем частоту нашего кварцевого резонатора
4. Настраиваем порты ввода-вывода, чтобы работать с ними, в нашем случаи будем использовать порт PORTB, но можно использовать и другую ножку порта.
Текст программы мигание светодиодом:
'-------------------------------------------------------------------
$regfile = "m8def.dat" 'заголовочный файл микроконтроллера
$crystal = 4000000 ' частота кварцевого резонатора
DDRB.0 = 1 ' Ножка порта PORTB.0 на выход
PORTB.0 = 0 ' Вначале на ножке PORTB.0 выставляем ноль
'Основной цикл программы
'-----------------------------------------------------------
Do
'Мигание светодиодом
PORTB.0 = 1 'Зажигаем светодиод
Wait 1 ' Задержка 1 секунда
PORTB.0 = 0 ' Гасим светодиод
Wait 1 ' Задержка 1 секунда
Loop ' Конец цикла
'-----------------------------------------------------------
End 'Конец программы
Если необходимо скажем использовать вместо микроконтроллера ATMEGA8 микроконтроллер ATMEGA128, то достаточно изменить одну строчку программы
$regfile = "m8def.dat" на строчку $regfile = "m128def.dat" и все программа уже будет работать с микроконтроллером ATMEGA128.
Если микроконтроллер ATMEGA32, то соответственно $regfile = "m32def.dat" и все !!!
Если Вы хотите использовать другую ножку порта скажем PORTB.4 , то достаточно в программе изменить везде где встречается текст DDRB.0 и PORTB. 0 на DDRB.4 и PORTB.4 и все! А если необходимо использовать скажем порт С, то соответсвенно будет DDRC и PORTC + незабываем указывать нужный вывод (ножку) порта микроконтроллера.
Рисунок 1 - Программа мигание светодиодом в BASCOM AVR
Рисунок 2 - Испытание программы мигание светодиодом в Proteuse
А если необходима программа мигания светодиодом на языке Си :
//Программа написана в AVR Studio
/*
* Author: Aleksey
*/
#include
#define F_CPU 4000000UL
#include
void main(void)
{
DDRB= 0b00000001; //b7-0 b6-0 b5-0 b4-0 b3-0 b2-0 b1-0 b0-1
// Ножка порта RB0 - на выход
while(1)
{
PORTB |= (1<<0); //зажигаем светодиод
_delay_ms(1000); //задержка 1 секунда
PORTB &= ~(1<<0);//гасим светодиод
_delay_ms(1000); //задержка 1 секунда
}
}
-
Администратор 28.02.2019 12:26 Редактировать УдалитьНапишите отзыв или задайте вопрос.Ответить