Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » 04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4

04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4 (Лекция)

PDF-файл 04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4 (Лекция) Системное программное обеспечение (СПО) (111678): Лекции - 5 семестр04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4 (Лекция) - PDF (111678) - СтудИзба2021-09-20СтудИзба

Описание файла

Файл "04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4" внутри архива находится в папке "Лекция". PDF-файл из архива "Лекция", который расположен в категории "". Всё это находится в предмете "системное программное обеспечение (спо)" из 5 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

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 — функция ничего невозвращает (пустой тип), т.к.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5221
Авторов
на СтудИзбе
429
Средний доход
с одного платного файла
Обучение Подробнее