Урок номер 1

Задача: Ще разработим програма за управление на един светодиод. При натискане на бутона светодиодът светва, когато се освободи, той изгасва.

Първо ще разработим схематична диаграма на устройството. За свързване на външни устройства към микроконтролера се използват I/O портове. Всеки от портовете може да работи като вход и изход. Свържете светодиода към един от портовете и бутона към другия. За това изживяване ще използваме контролер Atmega8. Тази микросхема съдържа 3 I/O порта, има 2 осембитови и 1 шестнадесет битов таймер/брояч. Също така на борда има 3-канален ШИМ, 6-канален 10-битов аналогово-цифров преобразувател и много други. Според мен микроконтролерът е чудесен за изучаване на основите на програмирането.

За да свържем светодиода, ще използваме линията PB0, а за да прочетем информацията от бутона, ще използваме линията PD0. Диаграмата е показана на фиг. 1.

урок

Чрез резистора R2 към входа PD0 се подава плюс от захранващото напрежение, което съответства на сигнал логика-един. Когато бутонът е затворен, напрежението пада до нула, което съответства на логическа нула. В бъдеще R2 може да бъде изключен от веригата, като го замени с вътрешен издърпващ резистор, като въведе необходимите настройки в програмата. Светодиодът е свързан към изхода на порта PB0 чрез резистор за ограничаване на тока R3. За да светне светодиодът, е необходимо да се изпрати сигнал на логическа единица към линията PB0. Ще използваме генератора на главния часовник с вътрешен честота от 4MHz, тъй като устройството няма високи изисквания за честотна стабилност.

Първо, нека добавим стандартния описателен текст за Atmega8, използвайки външния оператор за прикачване на файлове: #include

директивен синтаксис #include

#include
#include “filename.h”

Ъгловите скоби казват на компилатора да търси първо включване на файлове в стандартната папка WinAvr с име include. Двойните кавички „и“ казват на компилатора да започне да търси от директорията, където се съхранява проектът.

Всеки тип микроконтролер има свой собствен заглавен файл. За ATMega8 този файл се нарича iom8.h, за ATtiny2313 - iotn2313.h. В началото на всяка програма трябва да включим заглавния файл на микроконтролера, който използваме. Но има и общ заглавен файл io.h. Препроцесорът обработва този файл и в зависимост от настройките на проекта включва необходимия заглавен файл в нашата програма.

За нас първият ред от програмата ще изглежда така:

Всяка програма C трябва да съдържа една основна функция. Наречен е основен. Изпълнението на програмата винаги започва с изпълнението на основната функция. Функцията има заглавна част - int main (void) и тяло - тя се разграничава от фигурни скоби <>.