Операторы языка программирования C-51
В языке программирования C-51 используется два типа операторов: операторы объявления и выполняемые операторы. Все операторы C-51 заканчиваются точкой с запятой.
Операторы объявления
Объявление является неисполняемым оператором, который объявляет некоторый объект или набор объектов, связывает с ним один или несколько идентификаторов и, если это необходимо, распределяет память микроконтроллера.
В объявлении могут быть объявлены три типа объектов: переменные, метки и функции. В программе для каждого имени допустимо только одно объявление. Метка полностью объявлена, если она стоит перед выполняемым оператором и заканчивается двоеточием ':'.
Переменные, константы, литералы и подпрограммы должны быть объявлены раньше, чем они будут использоваться в исполняемом операторе. Объявление переменной заключается в задании типа этой переменной и ее имени. Тип переменной записывается перед именем переменной.
В языке программирования C-51 нет необходимости знать конкретный адрес переменной, достаточно обратиться к ней по имени Rejim или Schet.
Функция объявляется точно так же как и переменные. То есть перед именем подпрограммы-функции записывается тип переменной, которую возвращает подпрограмма после своего завершения. Так как в подпрограмму в свою очередь тоже могут передаваться переменные, которые называются параметрами подпрограммы, то эти переменные записываются в скобках после имени подпрограммы-функции. Перед каждой переменной обязательно указывается ее тип. Например:
char PrinjatByte(void); //Подпрограмма, предназначенная для приёма одного байта.
Так как подпрограмме приёма обычно не требуется никаких дополнительных переменных, то вместо переменной-параметра подпрограммы указано слово void, обозначающее, что у подпрограммы-функции нет параметров.
Исполняемые операторы
· Оператор присваивания:
· Условный оператор.
· Структурный оператор.
· Оператор цикла for.
· Оператор цикла с проверкой условия до тела цикла.
· Оператор цикла с проверкой условия после тела цикла
· Оператор continue.
· Оператор выбора.
· Оператор безусловного перехода.
· Оператор выражение.
· Оператор возвращения из подпрограммы.
· Пустой оператор.
При вычислении операторов используются выражения в состав которых входят одноместные, двухместные и трёхместные операции.
Оператор присваивания
Оператор присваивания записывается в виде:
Переменная=выражение;
Выражение вычисляется, и полученное значение присваивается переменной. Достаточно часто требуется изменять значение какой-либо переменной. То есть и источником и приёмником данных служит одна и та же переменная. В этом случае можно воспользоваться составным оператором присваивания.
Условный оператор
Оператор if обеспечивает условное выполнение операторов. Он записывается в следующей форме:
if(<выражение>)
<operator-1>;
[else
<operator-2>;]
При этом ключевое слово else со следующим за ним исполняемым оператором представляют собой необязательную часть условного оператора. Если результат вычисления выражения равен 1 (истина), то выполняется operator-1. Если результат вычисления выражения равен 0 (ложь), то выполняется operator-2. Если выражение ложно и отсутствует оператор-2, то выполняется оператор, следующий за условным.
Условный оператор может использоваться в неполном варианте, когда одно из плеч алгоритма отсутствует.
5.6.5 Структурный оператор {}
Существует два основных способа использования структурного оператора:
1. Структурный оператор может рассматриваться в качестве отдельного оператора языка С-51 и использоваться в программе везде, где может встречаться отдельный исполняемый оператор. Это используется в операторах for, while, do while, switch of и if;
2. Структурный оператор ограничивает область действия локальных переменных.
Каждый оператор внутри структурного оператора может являться любым оператором языка C-51, в том числе и объявлением, при условии, что все объявления внутри структурного оператора должны быть выполнены до первого исполняемого оператора.
Структурный оператор начинается с открывающей скобки '{' и записывается в следующем виде:
{<operator-1>; //Здесь могут быть объявления переменных
<operator-2>;
...
<operator-n>;
}
Оператор цикла for
Оператор for - это наиболее общий способ организации цикла. Оператор цикла for записывается в следующей форме:
for ( выражение 1 ; выражение 2 ; выражение 3 ) тело цикла;
Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла. В качестве тела цикла может служить любой исполняемый оператор языка C-51, в том числе и составной оператор. Внутри составного оператора может быть заключено любое количество исполняемых операторов.
Схема выполнения оператора for:
1. Вычисляется выражение 1.
2. Вычисляется выражение 2.
3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.
Обратите внимание, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.
Пример использования оператора for: вычисление квадрата чисел от 1до 9
for(i=1;i<10;i++) //от i равного 1 до 10 с шагом 1 выполнить
b=i*i;
При написании программ для микроконтроллеров достаточно часто требуется реализовать бесконечный цикл. В этом случае оператор цикла for принимает следующий вид:
For(;;) //Постоянно
{Knop=P2; //опрашивать порт P2