04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4 (1268620)
Текст из файла
4. ИСПОЛЬЗОВАНИЕ ЯЗЫКОВ ВЫСОКОГО УРОВНЯ ДЛЯПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВСЕМЕЙСТВА MCS-514.1. Компилятор С51 фирмы KeilОбъектные файлы: STARTUP.A51, INIT.A51. Стандартная библиотека Си — C51S.LIB.4.1.1. Инициализация после сброса МКИмеется два файла, уже проассемблированных и включенных в Си-библиотеку(C51S.LIB), содержимое которых можно модифицировать под специальную ситуацию.При компоновке программы код из библиотеки автоматически включается в приложение.Чтобы использовать модифицированные файлы, вы должны включить их в свой проект ив компоновку.PDATA — страничное ОЗУ.IBPSTACK — стек для хранения данных вызванных программ, которые были вызваныеще раз.НачалоПосле сброса МКСюда можно поставить остановWatchDogВыполняется код из файла STARTUP.A51Выполняется код из файла INIT.A51к функции mainОчистка памятиданных и установкастекаСодержит процедуруинициализации для явноинициализированныхпеременных, определенныхв программеРис.
4.1. Схема системной инициализации микроконтроллера4.2. Начальные элементы языка Си4.2.1. КомментарииКомментарии начинаются с пары символов /* и завершаются парой символов */ либоначинаются с пары символов //. В первом случае комментарии могут содержать любоечисло строк, начинаться и заканчиваться в любом месте программы. Т.е. комментариембудет непосредственно то, что заключено между ними. Вложенные комментарии недопускаются. Во втором случае комментарии могут содержать только одну строку.4.2.2. ИдентификаторыИдентификаторы — это имена, присваиваемые переменным, функциям, константам,макросам и типам данных. Они могут включать символы «a-z», «A-Z», «0-9» и «_» (знакподчеркивания), но не должны начинаться с цифры.И хотя языком не запрещено начинать идентификатор со знака подчеркивания, норекомендуется это не делать, т.к.
имена многих переменных библиотечных функцийначинаются со знака подчеркивания. Обычно при написании программ на языке Сиследуют соглашению: имена констант и макросов составляют из прописных букв, именапеременных – из строчных. Строчные и заглавные буквы в компиляторе различаются.Длину меток желательно делать до 31 символа.4.2.3. Ключевые словаЗарезервированные в языке идентификаторы называются ключевыми словами. Последниене могут использоваться в качестве идентификаторов переменных, функций, констант имакросов.
Ключевые слова должны набираться строчными буквами. Ниже представленполный список ключевых слов Сх51, сгруппированных по функциональному назначениюи с пометками расширения стандарта ANSI С.Таблица 4.1. Ключевые слова Сх514.2.4. Константы (литералы)Константа (литерал) — это явное представление значения. Константы в языке Си могутбыть следующих типов: целые (int) и длинные целые (long int); с плавающей точкой (float); символьные (char); строковые (string); перечисляемые (enum).Целые константыЦелые константы могут быть записаны в десятичной, шестнадцатиричной иливосьмеричной системе счисления. Запись десятичной константы не должна начинаться снуля.
Представление шестнадцатиричной константы должно начинаться с пары символов0х (0Х), восьмеричной – с цифры 0. Запись константы может завершаться суффиксом L(l), U (u) ИЛИ UL (ul). Суффиксы означают: L — константа типа long; U — беззнаковаяконстанта; UL — константа типа unsigned long. По умолчанию (суффиксы неиспользованы) константа относится к определенному целому типу по следующимправилам:o константы в диапазоне 0 – 32767 относятся к типу int;o константы в диапазоне 32768 – 65535 относятся к типу unsigned int;o константы в диапазоне 65536 – 2 147 483 647 относятся к типу long;o константы в диапазоне 2 147 483 648 – 4 294 967 295 относятся к типу unsignedlong.#define имя текст#define С1 23— определение константы-//- С3 (С1*С2)—> возможно переполнение и неправильноеопределение типаКонстанты с плавающей точкойКонстанты с плавающей точкой могут быть представлены в традиционной (пример — 1.0или 12F) и в научной нотациях (пример — 1е-4).
Т.к. компилятор Сх51 поддерживаетчисла с плавающей точкой только одинарной точности, то все константы с плавающейточкой имеют тип float.Символьные константыНаиболее часто для кодирования символов используется код ASCII. В наборе кодов ASCIIвыделяются две группы кодов: первой соответствуют печатные символы (имеющиеграфическое представление), второй – непечатные.
Последним соответствуютспециальные управляющие коды в диапазоне 0-31. В языке Си для отображенияуправляющих кодов и некоторых других печатных символов используются такназываемые эскейп-последовательности. Эскейп-последовательность начинается собратной косой черты «\», которая указывает компилятору, что следующий символ илисимволы надо интерпретировать особым образом. В табл. 4.2 представлен полный списокэскейп-последовательностей.
Как следует из табл. 4.2, символы \, ‘ и “ хотя и являютсяпечатными, но должны быть указаны с помощью эскейп-последовательностей. Этопозволяет использовать их в символьных и строковых константах.Таблица 4.2. Эскейп-последовательности и соответствующие им управляющие кодыПоследние две эскейп-последовательности в табл. 4.2 позволяют задавать код любогосимвола в восьмеричной или шестнадцатиричной системе счисления.
Например, часто длязаписи символа с нулевым кодом (null-символ) используется следующая эскейппоследовательность – «\0».Символьная константа — это печатный символ, заключенный в апострофы (одиночныекавычки), или эскейп-последовательность, заключенная в апострофы.
Значениесимвольной константы — числовой код символа в принятой кодировке на данной машине.К символьным константам применимы такие же операции, как и к другим целым, хотячаще они используются в операциях сравнения с другими символами.Строковые константыСтроковая константа — это последовательность из нуля или более символов, заключеннаяв кавычки (двойные кавычки). В строковые константы могут входить эскейппоследовательности. При компиляции отдельно заданные строковые константыобъединяются в одну строку.
Это дает возможность разбивать длинные строки на части ирасполагать их на отдельных строчках, что улучшает читаемость программы.Строковую константу можно рассматривать как массив символов. При размещении строкв памяти компилятор отводит по одному байту на каждый символ, а в конце обязательнодобавляет null-символ «\0». Поэтому памяти для строки требуется на один байт больше,чем число символов, заключенных в кавычки.
Такие строки часто называют ASCIIZстроками, где нулевой байт — это ограничитель строки. Это означает, что нетограничения на длину строки. Однако чтобы определить длину строки, необходимопросмотреть всю строку.Перечисляемые константыПеречисляемые константы являются идентификаторами, обозначающими значения типа,определенного пользователем [3]. Более подробные сведения о перечисляемом типеизложены в [1].Перечисление — это список целых констант.
Это удобный способ присвоить константамимена. Например: еnum boolean {NO, YES};Если для значений констант не было явных присваиваний, то в данном примере NO = 0,YES = 1. В следующем примере используется явное присваивание константам значений:enum escapes {BELL = '\а', BACKSPACE = '\b',TAB = '\t',NEWLINE = '\n',RETURN = '\r', VTAB = ' \ v '};Имена в различных перечислениях должны отличаться друг от друга, а значения внутриодного перечисления могут совпадать.Именованные константыИменованные константы облегчают чтение программы и упрощают ее модификацию.Определения именованных констант обеспечиваются препроцессором языка Си.Определение константы имеет следующий вид:#define NAMETextОтметим, что в конце строки определения именованной константы точка с запятой неставится.
С момента определения константы при любом появлении ее имени NAME онобудет заменяться на соответствующий ему текст Text. Принято имена констант набиратьзаглавными буквами, чтобы они отличались от переменных, набираемых строчнымибуквами. В качестве текста-подстановки может использоваться константа, ранееопределенная именованная константа или константное выражение — выражение,оперирующее только с константами.
Такие выражения вычисляются во времякомпиляции, и поэтому их можно использовать в любом месте, где допустимы константы.Во избежание неожиданных интерпретаций рекомендуется константные выраженияпараметры в макровызовах заключать в круглые скобки. С этой же целью рекомендуетсяпри определении макроса в замещающем имя макроса тексте параметры заключать вкруглые скобки [3]:#define R(x,y) sqrt((х)*( х ) + ( у ) * ( у ) )Это позволяет в макровызовах использовать в качестве фактических параметров сложныевыражения без нарушения приоритетов операций.4.2.5. Базовые типы данныхКомпилятор Сх51 поддерживает стандартные для языка Си типы данных и несколькотипов данных, уникальных для платформы (семейства микроконтроллеров 8051).В табл. 4.3 перечислены поддерживаемые Сх51 типы данных.Таблица 4.3. Базовые типы данныхƗ The bit, sbit, sfr, and sfr16 data types are not provided in ANSI C and are unique to the Cx51 compiler.These data types are described in detail in the following sections.Типы, отмеченные знаком «Ɨ», являются уникальными для Сх51.
Базовые типы данных(кроме void) могут иметь различные спецификаторы (называются также описателями,модификаторами и квалификаторами), предшествующие им в тексте программы. Полныйсписок спецификаторов типов: signed, unsigned, long, shot.bit Fg —битовая переменная; Для РСФ введены специальные обозначения: sfr — адресрегистра, sfr16 — адрес 16-разрядного регистра, sbit — адресация бита регистра; volatile— дополнительная добавка (спецификатор) для переменной (отключение оптимизациичтения содержимого, в этом компиляторе не используется); void — функция ничего невозвращает (пустой тип), т.к.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.