2. Язык, программа, компиляция... это просто!
В прошлой главе мы кратко познакомились с этими странными существами
под названием микроконтроллер и теперь будем разбиратся как же
заставить микроконтроллер делать то что нам нужно и что бы он нас
понял... Для этого нам понадобится сначала написать программу в
любом редакторе, затем скомпилировать ее - превратить в прошивку. Но
сначала нам надо определится на каком языке мы будем писать нашу
программу, языков программирования для МК существует великое множество,
однако самым популярным и пожалуй на данный момент востребованным
является язык Си, с него мы и начнем наше знакомство с
программированием для МК. Итак с языком определились, это будет Си, а
что же собой представляет процесс компиляции? Компиляция это ничто
другое как преобразование нашей программы написанной на Си в HEX файл,
этим процессом как раз и занимается компилятор. Ну вроде пока все
понятно, значит начнем?
Итак написание программы, программу можно писать в любом текстовом редакторе, да хотя бы в том же блокноте, однако это крайне не удобно. Компилировать программу также можно всякими разными прогами, что опять таки добавляет кучу неудобств и возможной путаницы, особенно начинающему программисту. Значит этот вариант не для нас, мы возьмем такую прогу в которой совмещено и написание программы и ее компиляция, прога эта называется Keil uVision4 - C51 и взять ее можно здесь. Устанавливаем ее и "лечим", подробней о процессе лечения, если у Вас возникают с этим трудности, я могу рассказать в личной переписке пишите мне на LeftRadio@lavabit.com. Итак запускаем ее и видим следующую картину:
Итак написание программы, программу можно писать в любом текстовом редакторе, да хотя бы в том же блокноте, однако это крайне не удобно. Компилировать программу также можно всякими разными прогами, что опять таки добавляет кучу неудобств и возможной путаницы, особенно начинающему программисту. Значит этот вариант не для нас, мы возьмем такую прогу в которой совмещено и написание программы и ее компиляция, прога эта называется Keil uVision4 - C51 и взять ее можно здесь. Устанавливаем ее и "лечим", подробней о процессе лечения, если у Вас возникают с этим трудности, я могу рассказать в личной переписке пишите мне на LeftRadio@lavabit.com. Итак запускаем ее и видим следующую картину:
Далее выбираем пункт меню Project > New
Project, даем имя например test и сохраняем в любую подходящую папку.
Далее программа предложит выбор МК, выбираем C8051F320 нажимаем ОК и и
отказываемся от предложения добавить в наш проект стандартный код
инициализации на ассемблере. В левом меню у нас должна появится папка -
Target 1 и подпапка - Sourse Group 1, теперь в меню File нажимаем New.. и вставляем в созданный файл следующее:
//Заголовочного файл, зависит от того, для какой микросхемы пишется софт.
#include "C8051F320.h"
sbit LED1 = P0^0; //Дадим название выводу P0.2 - LED1
sbit LED2 = P0^1; //Дадим название выводу P2.2 - LED2
int counter = 0; //Переменная типа int, для организации пауз.
//Функция инициализации устройства, пока пустая.
void Init_Device(void)
{
P0MDOUT = 0xFF; //Настраиваем выводы P0.0 Р0.7 на вход
XBR1 = 0x40; //Включаем кроссбар
}
//Основная функция программы.
void main(void)
{
PCA0MD &= ~0x40; //Выключаем сторожевой таймер
Init_Device(); //Вызываем функцию инициализации
while(1) //Основной цикл программы
{
counter = 500;
while(counter > 0) counter = counter -1; //вычитаем из переменной counter 1 пока counter больше нуля.
LED1 = 0; //Включаем первый светодиод
LED2 = 1; //И выключаем второй
counter = 500;
while(counter > 0) counter = counter -1; //вычитаем из переменной counter 1 пока counter больше нуля.
LED1 = 1; //Выключаем первый светодиод
LED2 = 0; //И включаем второй
}
}
Сохраняем наш файл и даем ему название test.c, затем клацаем правой клавишей мыши по директории Sourse Group 1 и выбираем пункт меню Add Files to group 'Sourse Group 1', выбираем наш сохраненный файл test.с и нажимаем Add. Все наш проект создан и первая программа написана, теперь ее надо скомпилировать. Делается это очень просто, надо просто нажать F7 и Вы увидите результаты компилирования в нижней части экрана, если при компиляции возникли какие нибудь ошибки компилятор сообщит об этом и напишет причины вызвавшие данные ошибки.
//Заголовочного файл, зависит от того, для какой микросхемы пишется софт.
#include "C8051F320.h"
sbit LED1 = P0^0; //Дадим название выводу P0.2 - LED1
sbit LED2 = P0^1; //Дадим название выводу P2.2 - LED2
int counter = 0; //Переменная типа int, для организации пауз.
//Функция инициализации устройства, пока пустая.
void Init_Device(void)
{
P0MDOUT = 0xFF; //Настраиваем выводы P0.0 Р0.7 на вход
XBR1 = 0x40; //Включаем кроссбар
}
//Основная функция программы.
void main(void)
{
PCA0MD &= ~0x40; //Выключаем сторожевой таймер
Init_Device(); //Вызываем функцию инициализации
while(1) //Основной цикл программы
{
counter = 500;
while(counter > 0) counter = counter -1; //вычитаем из переменной counter 1 пока counter больше нуля.
LED1 = 0; //Включаем первый светодиод
LED2 = 1; //И выключаем второй
counter = 500;
while(counter > 0) counter = counter -1; //вычитаем из переменной counter 1 пока counter больше нуля.
LED1 = 1; //Выключаем первый светодиод
LED2 = 0; //И включаем второй
}
}
Сохраняем наш файл и даем ему название test.c, затем клацаем правой клавишей мыши по директории Sourse Group 1 и выбираем пункт меню Add Files to group 'Sourse Group 1', выбираем наш сохраненный файл test.с и нажимаем Add. Все наш проект создан и первая программа написана, теперь ее надо скомпилировать. Делается это очень просто, надо просто нажать F7 и Вы увидите результаты компилирования в нижней части экрана, если при компиляции возникли какие нибудь ошибки компилятор сообщит об этом и напишет причины вызвавшие данные ошибки.