
- •6. Язык программирования с-51.
- •6.1 Применение.
- •6.2 Отладка программ.
- •6.3 Структура программ с-51.
- •6.4. Символы языка программирования с-51.
- •6.4.1 Лексические единицы, разделители и использование пробелов.
- •6.4.2 Идентификаторы.
- •6.4.3 Ключевые слова.
- •6.4.4 Константы.
- •6.5 Выражения в операторах языка программирования c-51.
- •6.6 Приоритеты выполнения операций.
- •6.7 Операторы языка программирования c-51.
- •6.7.1 Операторы объявления.
- •6.7.2 Исполняемые операторы.
- •6.7.3 Оператор присваивания.
- •6.7.4 Условный оператор.
- •6.7.5 Структурный оператор {}.
- •6.7.6 Оператор цикла for.
- •6.7.7 Оператор цикла с проверкой условия до тела цикла while.
- •6.7.8 Оператор цикла с проверкой условия после тела цикла do while.
- •6.7.9 Оператор break.
- •6.7.10 Оператор continue.
- •6.7.11 Оператор выбора switch.
- •6.7.12 Оператор безусловного перехода goto.
- •6.7.13 Оператор выражение.
- •6.7.14 Оператор возвращения из подпрограммы return.
- •6.7.15 Пустой оператор.
- •6.8 Объявление переменных в языке программирования c-51.
- •6.8.1 Категории типов данных.
- •6.8.2 Целые типы данных.
- •6.8.3 Числа с плавающей запятой.
- •6.8.4 Переменные перечислимого типа.
- •6.9 Объявление массивов в языке программирования c-51.
- •6.10 Структуры.
- •6.10.1 Поля битов.
- •6.11 Объединения (смеси).
- •6.12 Объявление указателей в языке программирования c-51.
- •6.12.1 Нетипизированные указатели.
- •6.12.2 Память зависимые указатели.
- •6.13. Объявление новых типов переменных.
- •6.14. Инициализация данных.
- •6.15. Использование подпрограмм в языке программирования с-51.
- •6.15.1 Определение подпрограмм.
- •6.15.2 Параметры подпрограмм.
- •6.15.3 Предварительное объявление подпрограмм.
- •6.15.4 Вызов подпрограмм.
- •6.15.5 Рекурсивный вызов подпрограмм.
- •6.15.6 Подпрограммы обработки прерываний.
- •6.15.7 Области действия переменных и подпрограмм.
- •6.16. Многомодульные программы.
6.7.2 Исполняемые операторы.
Оператор присваивания:
Условный оператор.
Структурный оператор.
Оператор цикла for
Оператор цикла с проверкой условия до тела цикла
Оператор цикла с проверкой условия после тела цикла
Оператор continue
Оператор выбора
Оператор безусловного перехода
Оператор выражение
Оператор возвращения из подпрограммы
Пустой оператор
При вычислении операторов используются выражения в состав которых входят одноместные, двухместные и трёхместные операции.
6.7.3 Оператор присваивания.
Оператор присваивания записывается в виде: Переменная=выражение;
Выражение вычисляется, и полученное значение присваивается переменной. Достаточно часто требуется изменять значение какой-либо переменной. То есть и источником и приёмником данных служит одна и та же переменная. В этом случае можно воспользоваться составным оператором присваивания.
6.7.4 Условный оператор.
Оператор if обеспечивает условное выполнение операторов. Он записывается в следующей форме:
if(<выражение>)
<operator-1>;
[else
<operator-2>;]
При этом ключевое слово else со следующим за ним исполняемым оператором представляют собой необязательную часть условного оператора. Если результат вычисления выражения равен 1 (истина), то выполняется operator-1. Если результат вычисления выражения равен 0 (ложь), то выполняется operator-2. Если выражение ложно и отсутствует оператор-2, то выполняется оператор, следующий за условным.
6.7.5 Структурный оператор {}.
Существует два основных способа использования структурного оператора:
Структурный оператор может рассматриваться в качестве отдельного оператора языка С-51 и использоваться в программе везде, где может встречаться отдельный исполняемый оператор. Это используется в операторах for, while, do while, switch of и if;
Структурный оператор ограничивает область действия локальных переменных.
Каждый оператор внутри структурного оператора может являться любым оператором языка C-51, в том числе и объявлением, при условии, что все объявления внутри структурного оператора должны быть выполнены до первого исполняемого оператора.
Структурный оператор начинается с открывающей скобки '{' и записывается в следующем виде:
{<operator-1>; //Здесь могут быть объявления переменных
<operator-2>;
...
<operator-n>;
}
6.7.6 Оператор цикла for.
Оператор for - это наиболее общий способ организации цикла. Оператор цикла for записывается в следующей форме:
for ( выражение 1 ; выражение 2 ; выражение 3 ) тело цикла;
Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла. В качестве тела цикла может служить любой исполняемый оператор языка C-51, в том числе и составной оператор. Внутри составного оператора может быть заключено любое количество исполняемых операторов.
Схема выполнения оператора for:
Вычисляется выражение 1.
Вычисляется выражение 2.
Если значения выражения 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
ObrabSobyt(); //и обрабатывать нажатие кнопок
}
Оператор цикла for - это универсальный оператор, поэтому его реализация в машинных командах достаточно сложна. Для написания программ часто достаточно более простых операторов цикла. Использование таких операторов обычно приводит к более компактным и быстродействующим программам.