Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Микропроцессорная техника. Введение в Keil C51

Покупка
Артикул: 799103.01.99
Доступ онлайн
300 ₽
В корзину
Учебное пособие нацелено на формирование у студентов практических навыков разработки и программирования микропроцессорных устройств автоматики физических установок, приборов радиационной безопасности человека и окружающей среды, а также различных приборов биофизического и медицинского назначения. Предназначено для студентов технических специальностей Физико-технологического института Уральского федерального университета всех уровней обучения
Огородников, И. Н. Микропроцессорная техника. Введение в Keil C51 : учебное пособие / И. Н. Огородников ; М-во науки и высшего образования РФ. - Екатеринбург : Изд-во Уральского ун-та, 2021. - 100 с. - ISBN 978-5-7996-3301-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1936358 (дата обращения: 02.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования  
Российской Федерации

Уральский федеральный университет 
имени первого Президента России Б. Н. Ельцина

И. Н. Огородников

МИКРОПРОЦЕССОРНАЯ ТЕХНИКА.
ВВЕдЕНИЕ В Keil C51

Учебное пособие

Рекомендовано методическим советом 
Уральского федерального университета для студентов вуза, 
обучающихся по направлениям подготовки 
14.03.02 «Ядерные физика и технологии», 
12.03.04 «Биотехнические системы и технологии», 
14.05.04 «Электроника и автоматика физических установок»

Екатеринбург
Издательство Уральского университета
2021

УДК 004.31:004.42(075.8)
ББК 32.973.26-04я73
          О-39

Рецензенты:
кафедра высшей математики и физики Уральского технического института 
связи и информатики СибГУТИ (завкафедрой высшей математики 
и физики, канд. физ.-мат. наук, доц. В. Т. Куанышев);
директор ООО «Инжетех» С. В. Богушевич

Научный редактор — канд. физ.-мат. наук, доц. И. Н. Анцыгин

Для оформления обложки использовано изображение из личного архива автора.

О-39
Огородников, И. Н.
Микропроцессорная техника. Введение в Keil C51 : учебное 
пособие / И. Н. Огородников ; М-во науки и высшего образования 
РФ. — Екатеринбург : Изд-во Урал. ун-та, 2021. — 100 с.

ISBN 978-5-7996-3301-1

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

Библиогр.: 11 назв. Табл. 20. Рис. 28.
УДК 004.31:004.42(075.8)
ББК 32.973.26-04я73

ISBN 978-5-7996-3301-1
© Уральский федеральный 
     университет, 2021

Содержание

Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5

1. Синтаксис Keil C51 . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.1. Символы, ключевые слова и идентификаторы
. . . . . .
7
1.2. Форматы данных . . . . . . . . . . . . . . . . . . . . . . .
12
1.3. Специальные ключевые слова
. . . . . . . . . . . . . . .
14
1.4. Операторы и выражения
. . . . . . . . . . . . . . . . . .
19
1.5. Указатели . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
1.6. Передача параметров и возвращение данных . . . . . . .
21

2. Взаимодействие A- и C-программ . . . . . . . . . . . . . . . .
23
2.1. Соглашения по взаимодействию программ
. . . . . . . .
23
2.1.1.
Настройка стартового адреса C-программы . . . .
23
2.1.2.
Обращение к регистрам в C-программе . . . . . .
24
2.1.3.
Вызов A-подпрограммы из C-программы . . . . .
25
2.1.4.
Доступ к регистрам ПЛИС из C-программы . . . .
28
2.1.5.
Программирование прерываний
. . . . . . . . . .
29
2.2. Доступ к стандартным библиотекам . . . . . . . . . . . .
36
2.3. Дополнительные возможности . . . . . . . . . . . . . . .
39
2.3.1.
Поддержка языка PL/M-51 . . . . . . . . . . . . .
39
2.3.2.
Реентерабельные функции
. . . . . . . . . . . . .
40

3. Библиотека функций sdk_base . . . . . . . . . . . . . . . . .
41
3.1. Библиотечные A-функции доступа к оборудованию . . .
41
3.1.1.
Функции досупа к регистрам ПЛИС . . . . . . . .
42
3.1.2.
Внешний параллельный порт ПЛИС . . . . . . . .
46
3.1.3.
Последовательный порт UART
. . . . . . . . . . .
46
3.1.4.
Последовательный порт I2C . . . . . . . . . . . .
47
3.1.5.
Аналого-цифровые и цифро-аналоговые преобразователи
. . . . . . . . . . . . . . . . . . . . . . .

53
3.2. Вызов библиотечных A-функций из С-программы . . . .
56
3.2.1.
Доступ к регистрам ПЛИС
. . . . . . . . . . . . .
56
3.2.2.
Доступ к внешнему параллельному порту
. . . .
59
3.2.3.
Доступ к последовательному порту UART . . . . .
59
3.2.4.
Доступ к последовательному порту I2C
. . . . .
61
3.2.5.
Доступ к АЦП и ЦАП . . . . . . . . . . . . . . .
64

3

Содержание

4. Требования к оформлению C-программ . . . . . . . . . . . .
67
4.1. Соглашения по идентификаторам
. . . . . . . . . . . . .
67
4.1.1.
Подбор идентификаторов . . . . . . . . . . . . . .
69
4.1.2.
Написание идентификаторов . . . . . . . . . . . .
70
4.2. Соглашения по самодокументированности C-программ
.
70
4.2.1.
Комментарии . . . . . . . . . . . . . . . . . . . . .
70
4.2.2.
Спецификация функций . . . . . . . . . . . . . . .
71
4.2.3.
Спецификация программного файла или модуля .
72
4.3. Соглашения по читаемости программ . . . . . . . . . . .
73
4.3.1.
Длина строк программного текста . . . . . . . . .
73
4.3.2.
Количество операторов в строке . . . . . . . . . .
73
4.3.3.
Отступы . . . . . . . . . . . . . . . . . . . . . . . .
74
4.3.4.
Операторные скобки . . . . . . . . . . . . . . . . .
76
4.3.5.
Пробелы
. . . . . . . . . . . . . . . . . . . . . . .
78
4.3.6.
Пустые строки . . . . . . . . . . . . . . . . . . . .
78
4.3.7.
Улучшение читаемости программ
. . . . . . . . .
79

Алфавитный указатель
. . . . . . . . . . . . . . . . . . . . . . . . .
81

Список библиографических ссылок . . . . . . . . . . . . . . . . .
84

Приложение А. Подключение стенда к usb-порту компьютера 85

Приложение Б. Функции и константы библиотеки sdk_base 86

Приложение В. Курсовая работа по микропроцессорной тех-
нике . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87

Приложение Г. Документы для выполнения курсовой работы 97

4

Предисловие

Представляемое учебное пособие подготовлено на практическом
материале, накопленном автором при преподавании в Уральском феде-
ральном университете двухсеместрового курса по основам микропро-
цессорной техники, который изучается студентами Физико-техноло-
гического института УрФУ, специализирующимися в областях элек-
троники и автоматики физических установок, приборов для приме-
нения в области радиационной безопасности человека и окружаю-
щей среды, защиты от излучений, радиационной экологии, биоме-
дицинской инженерии. Пособие может быть полезно студентам дру-
гих родственных специальностей. Рассмотрены практические вопросы
программирования микропроцессорных устройств, а также оформле-
ния программ, разработанных при проектировании микропроцессор-
ных устройств. Данное учебное пособие касается лишь практиче-
ской части учебного курса по основам микропроцессорной техники.
Оно содержит дополнительный теоретический материал и техниче-
скую информацию, которые необходимы студентам при программи-
ровании микропроцессорных устройств на платформе x51 во время
практических занятий, лабораторного практикума, а также при вы-
полнении индивидуального домашнего задания и курсовой работы.
Отсюда название — введение в Keil C51. При подготовке учебно-
го пособия и подборе материалов к нему автор полагал, что чита-
тель уже знаком (в объеме программы технического вуза) с основами
следующих дисциплин: теория цепей и сигналов, физические основы
и элементная база электронной техники, аналоговая схемотехника,
цифровая и импульсная техника, основы микропроцессорной техники,
программирование на языках высокого и низкого уровней. Для углуб-
ленного восприятия излагаемого материала желательно предваритель-
ное знакомство читателя с теоретическими и практическими основами
микропроцессорной техники, краткое изложение которых содержится
в ранее изданных автором учебнике [1] и учебном пособии [2]; осно-
вами программирования микроконтроллеров семейства x51 на языках
ассемблера [3] и C51 [4]; возможностями инструментальных средств
для платформы x51: руководство [5], а также прил. А.
Следует отметить, что микропроцессорная техника представляет
собой обширную, динамично развивающуюся область знаний. В по-
собие включен лишь ограниченный круг вопросов, выбор и глуби-
на освещения которых продиктованы требованиями федеральных го-
сударственных образовательных стандартов высшего образования по
направлениям подготовки 14.03.02 «Ядерные физика и технологии»,
12.03.02 «Биотехнические системы и технологии» и специальности
14.05.04 «Электроника и автоматика физических установок».

5

Предисловие

В первой главе приведены необходимые сведения о синтаксисе язы-
ка программирования Keil C51. После общей характеристики и опи-
сания синтаксиса, используемых символов, ключевых слов и иден-
тификаторов обсуждаются форматы данных и подробно раскрывает-
ся значение наиболее важных ключевых слов, включая директивы
и модификаторы памяти. Далее идет обсуждение операторов языка
программирования и выражения. Уделено внимание понятию указате-
лей, используемых в архитектуре микроконтроллера x51: нетипизи-
рованные (generic pointer) и память-зависимые (memory-specific) ука-
затели. Специальное внимание уделено обсуждению различий в объ-
явлениях этих указателей, форматы, получаемый ассемблерный код,
быстродействие фрагментов кода, в котором применяются данные ука-
затели, явный и неявный способы преобразования типов указателей.
В завершении главы рассматриваются механизмы передачи парамет-
ров и возвращения данных при взаимодействии программ и функций.
Вторая глава посвящена особенностям взаимодействия программ-
ных модулей, написанных на языка ассемблера (A-программа) и Keil
C51 (C-программа): соглашение по взаимодействию, настройка старто-
вого адреса, обращение к регистрам, программирование прерываний,
вызову A-программ из C-программ. Кратко обсуждаются стандартные
библиотеки компилятора Keil C51.
Третья глава посвящена разработке и описанию авторской биб-
лиотеки учебных программ sdk_base, предназначенных для досту-
па к оборудованию учебного стенда: регистрам ПЛИС, параллельным
и последовательным (UART и I2C) портам, дисплею, клавиатуре и т. п.
Приведены
примеры
вызова
различных
библиотечных
процедур
(A-функция) из C-программы. Обсуждаются организация и исходные
тексты библиотечных модулей, краткая сводка которых дана в прил. Б.
В четвертой главе сформулированы общие требования к оформле-
нию учебных C-программ: соглашения по идентификаторам, самодо-
кументированности и читаемости C-программ.
Для закрепления теоретического материала в рамках учебной дис-
циплины предусмотрена курсовая работа. В прил. В и Г обсуждаются
вопросы организации курсовой работы и оформления отчета: общие
положения, нормативные документы, цели, задачи и тематика работ,
порядок выполнения, общие требования к составу работы и оформле-
нию отчета, этапы контроля и отчетности по курсовой работе.
Отметим, что рассматриваемый двухсеместровый курс основ мик-
ропроцессорной техники является вводным курсом перед последую-
щим изучением более сложного профессионально-ориентированного
курса «Микропроцессорные системы».

6

1. Синтаксис Keil C51

Keil C51 – это язык программирования высокого уровня, пред-
назначенный для применения в качестве инструмента структурно-мо-
дульного программирования платформы x51. В общем случае в состав
любой программы, написанной на языке С51, могут входить несколь-
ко различных модулей. Наличие в программе хотя бы одного модуля
является обязательным, поэтому в крайнем случае программа на С51
должна состоять как минимум из одного модуля. Исходный текст каж-
дого модуля при этом компилируется отдельно и размещается в от-
дельном файле.
Структура любой программы, созданной компилятором x51, со-
стоит из нескольких подпрограмм, одна из которых получает обяза-
тельное имя main, содержит одноименную точку входа и называется
далее основной программой. Выполнение любой программы, создан-
ной компилятором Keil C51, всегда начинается с основной программы
main, которая может вызывать другие подпрограммы, размещенные
в различных модулях. Программный проект может содержать несколь-
ко объектных модулей, сохраненных в разных файлах и написанных,
возможно, на разных языках программирования, но удовлетворяющих
соглашения о передаче параметров и возвращаемых значениях, приня-
тых в Keil C51. При разработке любых программ для компилятора Keil
C51 необходимо обязательно учитывать требования синтаксиса этого
языка, которые рассматриваются ниже.

1.1. Символы, ключевые слова и идентификаторы

При назначении ключевых слов и идентификаторов используются
буквы английского алфавита, цифры и символ подчеркивания
_
. От-
метим, что компилятор различает прописные и строчные буквы. Так,
например, bytes и Bytes в языке C51 являются двумя различны-
ми идентификаторами. Для создания операторов языка и организации
вычислительного процесса в Keil C51, так же, как и в стандартном
ANSI C, используются специальные символы (табл. 1.1).
Помимо ключевых слов и идентификаторов, исходный текст про-
граммы содержит также разделительные и управляющие символы.
К разделительным символам относятся пробел, символы табуляции,
перевода строки, возврата каретки, символы новой страницы и новой
строки. Все они служат для разделения лексических единиц языка
программирования, таких как ключевые слова, константы, идентифи-

7

1. Синтаксис Keil C51

Таблица 1.1
Специальные символы языка Keil C51

Символ
Наименование
Символ
Наименование

,
Запятая
)
Круглая скобка правая

.
Точка
(
Круглая скобка левая

;
Точка с запятой
}
Фигурная скобка правая

:
Двоеточие
{
Фигурная скобка левая

?
Вопросительный знак
<
Меньше

Апостроф
>
Больше

!
Восклицательный знак
[
Квадратная скобка правая

|
Вертикальная черта
]
Квадратная скобка левая

/
Дробная черта
#
Октоторп (решетка)

\
Обратная черта
%
Процент

~
Тильда
&
Амперсанд

*
Астериск (звездочка)
^
Исключающее ИЛИ

+
Плюс
=
Равно

Минус
"
Кавычки

каторы и т. п. Если в тексте программы встречается подряд несколько
одинаковых разделительных символов (например, последовательность
пробелов или символов табуляции), то компилятор интерпретирует их
как один разделительный символ.
Особую группу символов составляют управляющие последователь-
ности языка Keil C51, которые представляют собой специальные сим-
вольные комбинации, используемые в функциях ввода-вывода данных.
Управляющая последовательность всегда начинается с символа «об-
ратный слеш»
\
(англ. backslash), за которым следует комбинация
латинских букв и цифр (табл. 1.2).
Так, любой символ из кодовой таблицы ASCII или ANSI можно
представить в виде последовательности восьмеричных или шестна-
дцатеричных цифр, используя управляющие последовательности \OOO
или \xHHH (табл. 1.2). Например, символ возврата каретки, для ко-
торого определена индивидуальная управляющая последовательность
\r, можно представить также через восьмеричный (\015) или шест-
надцатеричный (\x00D) коды.
В табл. 1.2 приведен исчерпывающий список управляющих после-
довательностей компилятора C51. Если попытаться записать произ-
вольную последовательность, состоящую из обратного слеша и какого-
либо символа, который не перечислен в табл. 1.2 и не является циф-
рой, то компилятор попросту проигнорирует знак обратного слеша,
а следующий за ним символ будет трактовать как литеральный
(т. е. одиночный) символ.

8

1.1. Символы, ключевые слова и идентификаторы

Таблица 1.2
Управляющие последовательности языка Keil C51

Управляющая
Шестнадца-

последова-
Наименование
теричный

тельность
код

\a
Звонок
007

\b
Возврат на шаг
008

\t
Горизонтальная табуляция
009

\n
Переход на новую строку
00A

\v
Вертикальная табуляция
00B

\r
Возврат каретки
00D

\f
Новая страница
00C

\"
Кавычки
022

\’
Апостроф
027

\0
Нуль-символ
000

\\
Обратная дробная черта
05C

\000
8-ричный код ASCII- или ANSI-символа
—

\xHHH
16-ричный код ASCII- или ANSI-символа
HHH

Для примера составим последовательность
\c
. Компилятор будет
воспринимать ее как одиночный символ
с
. Если эту последователь-
ность указать в строке среди других символов, то компилятор воспри-
мет ее как символ
с
в составе строковой или символьной константы,
т. е. "Ab\cdef" = "Abcdef".
На практике обратный слеш можно использовать в качестве сим-
вола продолжения, когда длинную строку необходимо разбить на две
короткие строки. Если за символом
\
следует управляющий сим-
вол возврата каретки, то оба эти символа игнорируются и компилятор
считает следующую строку продолжением предыдущей.
Для определения имени переменной, подпрограммы, символиче-
ской константы или метки оператора в языке Keil C51 используются
идентификаторы, длина которых может достигать 255 символов. Одна-
ко при распознавании идентификаторов компилятор различает только
первые 31 символ и игнорирует все остальные символы.
Идентификатор состоит из последовательности символов, в кото-
рую могут входить любые прописные или строчные буквы латинского
алфавита, символ подчеркивания
_
, цифры. При определении иден-
тификатора следует учитывать два ограничения: 1) первым символом
идентификатора должна быть буква или символ подчеркивания
_
,
но не цифра; 2) компилятор Keil C51 различает регистр букв.
Непосредственное создание идентификатора происходит при объ-
явлении переменной, функции, структуры, объединения и т. п. Иден-
тификатор не должен совпадать ни с ключевыми словами, ни с за-

9

1. Синтаксис Keil C51

резервированными словами, ни с именами функций из библиотеки
компилятора языка Keil C51. Отметим, что символ подчеркивания
_
широко используется в именах системных функций и переменных,
поэтому настоятельно не рекомендуется использовать его в качестве
первого символа в создаваемых пользователем идентификаторах, по-
скольку такой идентификатор может совпасть с именем какой-либо
системной функции или переменной, которая в результате этого ста-
нет недоступной.
В языке программирования Keil C51 определены те же самые клю-
чевые слова, которые применяют в стандартном ANSI C. Однако в до-
полнение к этому в Keil C51 используется целый ряд новых ключевых
слов, используемых только при программировании платформы x51,
которых в большинстве своем нет в стандартном ANSI C (табл. 1.3).

Таблица 1.3
Ключевые слова Keil C51 для платформы x51

№ п/п
Слово
№ п/п
Слово
№ п/п
Слово
№ п/п
Слово

1.
_at_
6.
compact
11.
pdata
16.
sfr16

2.
alien
7.
data
12.
_priority_
17.
small

3.
bdata
8.
far
13.
reentrant
18.
_task_

4.
bit
9.
idata
14.
sbit
19.
using

5.
code
10.
interrupt
15.
sfr
20.
xdata

Идентификаторы пользователя не должны совпадать с ключевыми
словами. Далее будет проведено подробное обсуждение смысла каж-
дого из ключевых слов, перечисленных в табл. 1.3.
В языке Keil C51 предусмотрено определение констант, которые
так же, как и в классическом ANSI C, предназначены для введения
чисел в состав выражений операторов языка программирования C51.
Константы всегда начинаются с цифры в отличие от идентификаторов,
которые всегда начинаются с буквы. В языке C51 можно использовать
следующие типы констант:

целые знаковые и беззнаковые константы;

константы с плавающей точкой;

символьные константы и литеральные строки.
Для записи целочисленных констант используются восьмеричная,
десятичная или шестнадцатеричная формы представления. При этом
десятичная константа, состоящая из одной или нескольких десятич-
ных цифр, не может начинаться с нуля, иначе компилятор интерпре-
тирует это число как восьмеричное.
Восьмеричная константа всегда начинается с обязательного ну-
ля. За ним могут следовать одна или несколько восьмеричных цифр,
каждая из которых лежит в диапазоне от 0 до 7. Шестнадцатерич-
ная константа всегда начинается с обязательного префикса – после-

10

1.1. Символы, ключевые слова и идентификаторы

довательности символов 0х или 0Х. После префикса следуют одна
или несколько шестнадцатеричных цифр, каждая из которых лежит
в диапазоне от 0 до F. Приведем примеры записи беззнаковых (англ.
unsigned) целочисленных констант: 11, 127 (десятичные константы);
013, 077 (восьмеричные константы); 0x2A, 0x1F (шестнадцатерич-
нык константы). Знаковая (англ. signed) целочисленная константа мо-
жет иметь положительное значение (знак «плюс» перед константой
обычно опускают) или отрицательное значение (знак «минус» пред-
шествует константе), например, -14, -0x2A, -057.
При объявлении любой целочисленной константы ей обязательно
присваивается тип, который задает необходимые преобразования, что-
бы константу можно было использовать в выражениях. Так, десятич-
ные константы трактуются как знаковые числа, которым присваивает-
ся тип int (целое число) или long (длинное целое число) в зависи-
мости от численного значения этой константы. Пороговой величиной
является число 215 ( 32768 ): если значение константы меньше поро-
говой величины, то ей присваивается тип int, в противном случае
константе присваивается тип long. Восьмеричные и шестнадцатеричные 
константы, в зависимости от своей численной величины, могут
быть преобразованы к типу int, uint, long или unsigned long.
Для представления константы с плавающей точкой (англ. floating
point, FP) используется стандартная экспоненциальная форма записи,
состоящая из мантиссы (англ. mantissa) и порядка (англ. exponent)
числа:
N = M × 10 P,

где N – представляемое число; M – мантисса, т. е. дробное знаковое 
действительное число с десятичной точкой (1 ⩽ M < 10); P –
порядок, т. е. целое знаковое число.
Компьютерный способ экспоненциальной записи вместо основания
показательной функции (10) использует букву E (англ. exponent), следом 
за которой записывается показатель P. Компьютерный формат
константы с плавающей точкой имеет следующий общий вид:
[ цифры ].[ цифры ] [ E | e [+ |
] цифры ].
Приведем несколько примеров записи констант с плавающей точкой: 
75.19, 1.1Е–3, –0.003, .015, –0.32e2.
Запись символьной константы состоит из ASCII- или ANSI-символа, 
заключенного в апострофы. Отметим, что управляющие последовательности 
также могут быть представлены в виде символьных
констант, однако они при этом рассматриваются как один символ.
Приведем несколько примеров символьных констант:

– пробел;

S
– буква S;

\n
– символ новой строки;

11

1. Синтаксис Keil C51

\\
– обратная дробная черта;

\v
– вертикальная табуляция.
Символьным константам присваивается тип int, а при преобразо-
вании типов константы могут дополняться каким-либо знаком.
Для отображения сообщений в языке Keil C51 предусмотрены стро-
ковые константы, или, по-другому, строковые литералы (англ. literal),
которые представляет собой последовательности любых символов (бук-
вы и цифры), заключенных в кавычки ( "..." ). Приведем приме-
ры строковых констант: "Character input", "Output value".
В строковых константах допустимо использовать пробелы.
Следует отметить, что для представления в литеральной строке
управляющих символов, таких как кавычка
"
, обратный слеш
\
и символ новой строки
\n
, необходимо использовать соответствую-
щие управляющие последовательности.
Символы литеральной строки могут размещаться в памяти про-
грамм или памяти данных. Компилятор добавляет дополнительный
нуль-символ
\0
в конец каждой литеральной строки. Нуль-символ
указывает на завершение строки, поскольку компилятор Keil C51,
как и для случая классического ANSI C, выполняет операции над
строками, завершающимися обязательным нуль-символом (англ. null-
terminated string).
При обработке литеральной строки компилятор интерпретирует
ее как символьный массив. При этом общее количество элементов
символьного массива равно числу символов в строке плюс единица,
т. к. учитывается завершающий символ
\0
.

1.2. Форматы данных

В языке программирования Keil C51 предусмотрены различные ти-
пы данных, с которыми может работать компилятор. В табл. 1.4 при-
ведена сводная информация об этих типах данных и их форматах.
Битовые данные (bit) принимают значения 0 или 1, недоступны
через указатели, т. к. специфичны для C51 и не входят в ANSI C.
Однобайтовые символы: со знаком (signed char) и без знака
(unsigned char или uchar). Можно использовать общепринятое
сокращение и писать uchar вместо unsigned char.
Двухбайтовые целые: со знаком (signed int, signed short)
и без знака (unsigned int или uint, unsigned short). Мож-
но использовать общепринятое сокращение и писать uint вместо
unsigned int. В языке Keil C51 тип короткие целые (short) по
формату не отличается от типа данных целые (int).
Четырехбайтовые длинные целые со знаком (signed long) и без
знака (unsigned long). В этом случае сокращения не используют.

12

Доступ онлайн
300 ₽
В корзину