Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
печать шпоры мпт.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
708.61 Кб
Скачать

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

В настоящее время документация языка Си закреплена в международном стандарте ANSI C. Фирма Microchip создала свой компилятор для языка Си для микроконтроллеров семейства PIC18, который получил название С18. Он является составляющей интегрированной среды разработки MPLAB IDE. Компилятор С18 поддерживает основные положения стандарта ANSI C, однако имеются некоторые различия, связанные с архитектурой PIC18. Рассмотрим основные особенности программы на языке Си с использованием компилятора MPLAB C18. В качестве микроконтроллера выберем PIC18F242 с тремя портами ввода/вывода: PORTA, PORTB, PORTC. Программа будет просто увеличивать число на 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. В общем случае файлы с расширением *.h являются заголовочными файлами стандартных библиотек языка Си. Вторая директива в программе #pragma config определяет биты конфигурации МК. В данном случае она отключает сторожевой таймер, чтобы он не влиял на работу программы (WDT = OFF), и устанавливает тип генератора МК - высокочастотный кварцевый (OSC = HS). Объявления переменных. Строка программы unsigned char counter; объявляет переменную counter как однобайтное целое число без знака. Компилятор по этой информации выделит для переменной counter одну ячейку в памяти данных (один регистр из области РОН).

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

void main( void )

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

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

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