Логин:
Пароль:
Меню
Вопросы/ответы
500

Первая программа на МК

Введение Первая программа на МК

Для начала следует начать с чего-нибуть простого, например, мигания светодиодом, ну а потом несколькими светодиодами. Но прежде чем начать нашу беседу о программе, следует скачать необходимое ПО, а именно CodeVisionAVR (Вы можете скачать программу абсолютно бесплатно на нашем сайте).

 Могу смело заявить, что если Вы освоите эту статью, то основы программирования микроконтроллеров вы будете знать. Дальше уже идут навороты, но не об этом...
 Итак, смотрим на схему:
 

На ней мы видим:
1)15 светодиодов - индикаторов - призваны сообщать нам результаты работы нашей программы
2)Кварц на частоту от 1 до 4 Мегагерц (1000 - 4000 килогерц) - частотозадающий генератор, то есть при частоте кварца в 3 Мегагерца, одна операция будет выполняться за время 1/3000 000 секунды
3)2 конденсатора рядом с кварцем
4)Резистор 100 Ом, мощность любая, достаточно и 0,125Вт
5)Сокет DIP-20 под микросхему AT90S2313
6)Выводы к батарейкам, я использую две 3-х вольтовых, батареек хватает надолго, энергии жрет немного, 2-х батареек в идеале хватает на около 30-ти часов работы
"+ 6 вольт" означает, что этот контакт нужно подключить к плюсу 6-ти вольтовой батареи(!) (ну или 2 трех вольтовых или еще каких-нибудь, лиж бы в итоге выдавало 6 smile )
7)Желтым цветом выделен Порт Б, голубым - Порт Д, в дальнейшем это понадобится.

На схеме конечно не показано, но рекомендуется подключить к каждому из проводков (идущих от порта ЛПТ к МК) присоединить резисторы на 100 Ом, но если Вам пока сложно и с этим разобраться, то это делать не обязательно.
Если все понятно - паяем схему, если нет, то перечитываем теорию.

Проверьте, что точно правильно все спаяли, даже если уверены в этом! Так, на всякий случай... Теперь займемся написанием прошивки для него...

Здесь нам потребуется программа Code Vision AVR
Запускаем...
Видим кнопку , нажимаем, выбираем "Source" и жмем "Ок"
Перед Вами появился файл, в котором можно написать программу для микроконтроллера
На всякий случай нажмите File => Save As... и сохраните под каким-либо простым именем, теперь в процессе программирования периодически нажимайте Ctrl+S, это сохранит результаты вашего труда
Видим кнопку , нажимаем, выбираем "Project" и жмем "Ок", далее открываем меню Project=>Configure, выбираем созданный *.C файл жмем ОК и сохраняем проект

Программы в данной оболочке пишутся на языке Си, поэтому, наша первая программа будет выглядеть так:

#include <90s2313.h>
void main(void)
{
DDRB=0xff;
PORTB.0 = 1;
}

Данная программа делает следующее:
#include <90s2313.h> - подключается файл с информацией о контроллере

void main(void)
{
} - Тело главной функции, не спрашивайте пока зачем, потом все поймете сами, пока "Просто так надо", между круглых скобок пишутся все команды, каждая команда заканчивается символом ";"

DDRB=0xff; - команда, ставящая все лапки порта B на вывод, для установки на ввод нужно написать DDRB=0x00;, но в данном случае этого делать НЕЛЬЗЯ!
PORTB.0 = 1; - команда, значащая следующее: "Подать на ногу 0 порта Б(см схему) напряжение", то есть в нашем случае - зажечь светодиод
Соответственно чтобы дать команду "Погасить светодиод" нужно написать "PORTB.0 = 1;", но об этом позже
Как вы догадались, чтобы зажечь допустим светодиоды B2, B5 и D3(! другого порта), между круглых скобок нужно написать:
PORTB.2=1;
PORTB.5=1;
PORTD.3=1;

Можете поэксперементировать на эту тему, только не забывайте устанавливать порты на вывод, одни это делают, другие нет, но лучше делать )
Теперь нам нужно записать нашу программу в микроконтроллер... для этого:
Жмем Shift+F9, читаем отчет, должны присутствовать фраза
 No errors
 No warnings
Если пишет что есть ошибки, то слева раскрываем появившуюся красную вкладку, тыкаем на ошибку в списке, программа указывает место ошибки, исправляем, пытаемся откомпилировать снова
Если же ошибок не выдал, тогда сворачиваем программу и заходим в папку "C:\cvavreval\bin", если при установке она не изменялась вами, и копируем файл "/имя вашей программы/.hex" например, на рабочий стол, устанавливаем микроконтроллер в сокете в сокет программатора (не вверх ногами!), спаянного в предыдущей статье, и запускаем программу PonyProg (ее также можно скачать у нас абсолютно бесплатно), теперь нажимаем кнопки и , в открывшемся меню нажимаем "Yes", если все PonyProg настроен как в предыдущей статье и программатор спаян правильно, то должна проползти процентная полоска и выскочить сообщение мол записалось удачно, если выскочил Error - ошибка в сборке схемы программатора, читаем предыдущую статью и исправляем ошибки...
Теперь осталось отсоединить микроконтроллер в сокете от сокета программатора (в торце есть щель, в нее можно вставить скажем нож и поддеть...) и установить его в сокет спаянного нами устройства.
Если все сделано правильно, то должны зажечься именно те светодиоды, которые нам нужно и можно кричать "Ура! Заработало!", иначе - ищи ошибку...
Следующий этап - заставить светодиоды мигать. Об этом мы расскажем в следующей статье (она будет немного проще чем эта, хотя я думаю не стоит пугаться большого количества деталей)

Автор: AsonD©.