Мегаобучалка Главная | О нас | Обратная связь


Структура программ С-51



2015-11-07 2061 Обсуждений (0)
Структура программ С-51 0.00 из 5.00 0 оценок




Язык программирования С-51 является структурно-модульным языком. Каждый оператор в программе является частью, по крайней мере, одного модуля. Каждая программа, написанная на языке программирования С-51, состоит из одного или более модулей. Каждый модуль записывается в отдельном файле и компилируется отдельно.

В модуле помещаются операторы, составляющие программу. Эти операторы объявляют константы или переменные и выполняют необходимые действия. Операторы, выполняющие действия, обязательно должны быть помещены в подпрограммы. Исполнение программы всегда начинается с подпрограммы с именем main (Т.е. в простейшем случае достаточно написать только эту подпрограмму).

Подпрограмма начинается с заголовка подпрограммы, в который входит тип возвращаемой переменной, имя подпрограммы и круглых скобок, внутри которых объявляются переменные-параметры подпрограммы. В подпрограмме main (а также во всех подпрограммах, где не нужно возвращать переменные) вместо типа переменной указывается слово void. Исполняемые операторы заключаются в фигурные скобки.

Все переменные и константы, которые будут использоваться в программе, обязательно должны быть объявлены до подпрограммы, где они будут использованы первый раз.

При написании программы для микроконтроллеров всегда необходимо видеть перед глазами принципиальную схему устройства, для которого пишется программа, так как схема и программа тесно связаны между собой и дополняют друг друга. Для иллюстрации простейшей программы, написанной на языке программирования C-51 воспользуемся схемой, приведённой на рис. 5.1.

Рис. 5.1. Пример простейшей схемы устройства, построенной с использованием микроконтроллера.

Для примера заставим гореть светодиод VD1. Этот светодиод будет светиться только тогда, когда через него будет протекать ток. Для этого на шестом выводе порта P0 должен присутствовать нулевой потенциал. Запишем его первой же командой нашей программы:

#include<reg51.h>

 

void main(void)

{

P0=0; //Включение светодиода

while(1); //Бесконечный цикл

}

Эта программа содержит только один исполняемый оператор. Это оператор присваивания 'P0=0;'. Следующий оператор 'while(1);' обеспечивает зацикливание программы. Зацикливание программы сделано для того, чтобы микроконтроллер не выполнял больше никаких действий. В противном случае микроконтроллер перейдёт к следующей ячейке памяти и будет выполнять команды, которые мы не записывали.

Обратите внимание, что язык программирования знает где находится порт P0. Эта информация содержится в строке #include<reg51.h>.

Для того, чтобы получить более полное представление о структуре программ, написанных на языке программирования С-51, приведём пример исходного текста программы с использованием подпрограмм.

#include<reg51.h>

 

void svGorit(void)

{

P0=0; // Включение светодиода

}

 

void main(void)

{

svGorit(); //Вызов подпрограммы с именем svGorit

while(1); //Бесконечный цикл

}

В приведённом примере использование подпрограммы никаких преимуществ не даёт, но в более сложных программах использование "говорящих" имён переменных может приблизить исходный текст программы к алгоритму, и, тем самым, сделать программу более понятной. Это в свою очередь значительно уменьшит время отладки программы.

Элементы языка программирования С-51

Символы

Как и в любом другом текстовом файле, в исходном тексте программы, написанной на языке программирования С51, используются ASCII или ANSI символы. Символы в языке программирования С-51 можно разделить на пять групп.

1. Символы, используемые для образования ключевых слов и идентификаторов (табл. 5.1). В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что язык программирования С-51 различает прописные и строчные буквы.

 

 

Символы языка C-51. Буквы.

Таблица 5.1

Прописные буквы латинского алфавита A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Строчные буквы латинского алфавита a b c d e f g h i j k l m n o p q r s t u v w x y z
Символ подчеркивания _
Арабские цифры 0 1 2 3 4 5 6 7 8 9

2. Прописные и строчные буквы русского алфавита табл. 5.2.

Символы языка C-51. Буквы русского алфавита.

Таблица 5.2

Прописные буквы русского алфавита А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я
Строчные буквы русского алфавита а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я

3. Знаки нумерации и специальные символы (табл. 5.3). Эти символы используются для организации процесса вычислений, а также для передачи компилятору определенного набора инструкций.

Символы языка C-51. Специальные знаки.

Таблица 5.3

Символ Наименование Символ Наименование
, запятая ) круглая скобка правая
. точка ( круглая скобка левая
; точка с запятой } фигурная скобка правая
: двоеточие { фигурная скобка левая
? вопросительный знак < меньше
' апостроф > больше
! восклицательный знак [ квадратная скобка
| вертикальная черта ] квадратная скобка
/ дробная черта # номер
\ обратная черта % процент
~ тильда & амперсанд
* звездочка ^ исключающее ИЛИ
+ плюс = равно
- минус " кавычки

4. Управляющие и разделительные символы. К этой группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, символы новой страницы и новой строки. Эти символы отделяют друг от друга лексические единицы языка, к которым относятся ключевые слова, константы, идентификаторы и т.д. Последовательность разделительных символов компилятор видит как один символ.

5. Управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность начинается с использования обратной косой черты (\), за которой следует комбинация латинских букв и цифр. Список управляющих последовательностей приведён в табл. 5.4.

Управляющие последовательности.

Таблица 5.4

Управляющая последовательность Наименование Шестнадцатеричный код
\a Звонок
\b Возврат на шаг
\t Горизонтальная табуляция
\n Переход на новую строку 00A
\v Вертикальная табуляция 00B
\r Возврат каретки 00D
\f Новая страница 00C
\" Кавычки
\' Апостроф
\0 Ноль-символ
\\ Обратная дробная черта 05C
\OOO Восьмеричный код ASCII или ANSI символа  
\xHHH Шестнадцатеричный код ASCII или ANSI символа HHH

Управляющие последовательности \OOO и \xHHH (здесь O обозначает восьмеричную цифру; H обозначает шестнадцатеричную цифру) позволяет представить символ из кодовой таблицы ASCII или ANSI как последовательность восьмеричных или шестнадцатеричных цифр соответственно.

Следует отметить, что в строковых константах всегда обязательно задавать все три цифры управляющей последовательности.

Отметим, что, если обратная дробная черта предшествует символу не являющемуся управляющей последовательностью (т.е. не включенному в табл.5-4) и не являющемуся цифрой, то эта черта игнорируется, а сам символ представляется как литеральный.

Кроме определения управляющей последовательности, символ обратной дробной черты (\) используется также как символ продолжения. Если за (\) следует символ возврата каретки, то оба символа игнорируются, а следующая строка является продолжением предыдущей. Это свойство может быть использовано для записи длинных строк. Например:

printf("Превед, очень длинный\

медвед!")

Компилятор С-51 выдает сообщение об ошибке, если в тексте исходной программы встречается символ, отличающийся от символов, перечисленных выше.



2015-11-07 2061 Обсуждений (0)
Структура программ С-51 0.00 из 5.00 0 оценок









Обсуждение в статье: Структура программ С-51

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2061)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)