Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ 2013 ШПОРЫ.docx
Скачиваний:
337
Добавлен:
15.04.2015
Размер:
669.17 Кб
Скачать

9. Язык с18 для pic-микроконтроллеров: структура программы, директивы препроцессора, ключевые слова.

Структура программы:

Пример: программа будет просто увеличивать число на 1 и выводить его в порт В.

#include<p18f242.h>

#pragma config WDT = OFF, OSC = HS

unsigned char counter; // переменная counter – беззнаковое однобайтное целое число

void main(void) // здесь начинается главная программа

{

PORTB = 0; // очистить регистр данных порта В

TRISB = 0; // настроить все линии порта В на вывод

counter = 1; // инициализировать counter значением 1

while( 1 )

{

PORTB = counter; // поместить значение counter в порт В

counter = counter + 1; // увеличить counter

}

}

Рассмотрим основные составляющие программы на языке Си.

Комментарии. Это некоторый поясняющий текст, который при компиляции не учитывается. Комментарии бывают двух видов:

  • многострочные (начинаются с комбинации символов /* и заканчиваются */ );

  • однострочные (начинаются с комбинации символов // до конца строки).

Препроцессор. При транслировании программ на языке Си текст сначала обрабатывает специальная программа – препроцессор. Затем измененный препроцессором текст обрабатывается компилятором. Препроцессор обрабатывает так называемые директивы препроцессора, заменяя их текстом. Любая директива начинается со знака #. Первой директивой в рассмотренной программе является #include<p18f242.h>, которая вставляет содержимое заголовочного файла с именем p18f242.h. В нем содержатся определения и расположение всех регистров специальных функций микроконтроллера PIC18F242. Вторая директива в программе #pragma config определяет биты конфигурации МК. В данном случае она отключает сторожевой таймер, чтобы он не влиял на работу программы (WDT = OFF), и устанавливает тип генератора МК - высокочастотный кварцевый (OSC = HS).

Объявления переменных. Строка программы unsigned char counter; объявляет переменную counter как однобайтное целое число без знака. Компилятор по этой информации выделит для переменной counter одну ячейку в памяти данных (один регистр из области РОН).

Функция main. Программы на Си оформляются как функции. Каждая программа должна содержать, по крайней мере, одну функцию, называемую главной. Выполнение программы всегда начинается с главной функции, и программа находится внутри нее. В общем случае в функцию могут передаваться аргументы (параметры), функция может возвращать результат. Главной особенностью компилятора С18 является то, что в главную функцию main не передается никаких параметров и она не возвращает результата. Это обстоятельство указывается специальным словом void (пустой). Таким образом, формат главной функции всегда такой

void main( void )

{ // начало функции

…….. // тело функции

} // конец функции