«Это 28-й день моего участия в ноябрьском испытании обновлений. Подробную информацию об этом событии см.:Вызов последнего обновления 2021 г."
Правила языка C в однокристальном микрокомпьютере
основная пунктуация
В C51 много знаков препинания.При написании программы обратите особое внимание на два момента
- Невозможно использовать метод ввода на китайском языке или метод ввода на английском языке, отличный от стандарта США, из других стран.
- Знак препинания, состоящий из двух символов без пробелов между ними.
Ключевые слова языка C и пять основных утверждений
Язык C в основном состоит из пяти операторов: суждение, цикл, условный цикл, выбор и переход.
C51 содержит в общей сложности 32 ключевых слова и более десяти специальных ключевых слов C51.
32 ключевых слова
32 ключевых слова | Роль ключевых слов |
---|---|
Ключевое слово 1:if | Условные операторы |
Ключевое слово 2:else | Ветвь отрицания условного оператора (используется с if) |
Ключевое слово 3:do | Тело цикла оператора цикла |
Ключевое слово 4:while | Циклическая оценка оператора цикла |
Ключевое слово 5:for | конечное количество петель |
Ключевое слово 6:switch | для операторов switch |
Ключевое слово 7:case | ветвь инструкции switch |
Ключевое слово 8:default | другие ветки в операторах switch |
Ключевое слово 9:break | вырваться из текущей петли |
Ключевое слово 10:goto | безусловный переход |
Ключевое слово 11:static | объявить статические переменные |
Ключевое слово 12:auto | Объявить автоматические переменные, не записанные по умолчанию |
Ключевое слово 13:const | Объявите переменные только для чтения и сохраните константы в памяти |
Ключевое слово 14:extern | объявить переменные или функции в других файлах |
Ключевое слово 15:char | Объявить (8-битную) символьную переменную или возвращаемый тип функции |
Ключевое слово 16:short | Объявить (16-битную) короткую переменную или возвращаемый тип функции |
Ключевое слово 17:long | Объявить (32-битную) длинную переменную или возвращаемый тип функции |
Ключевое слово 18:float | Объявление (десятичной) переменной с плавающей запятой или типом возвращаемого значения функции |
Ключевое слово 19:double | Объявите переменную двойной точности с плавающей запятой или тип возвращаемого значения функции. |
Ключевое слово 20:int | Объявить целочисленную переменную или функцию |
Ключевое слово 21:signed | Объявление переменной или функции знакового типа |
Ключевое слово 22:unsigned | объявить переменную или функцию беззнакового типа |
Ключевое слово 23:typedef | Используется для псевдонимов типов данных |
Ключевое слово 24:void | Объявить функцию без возвращаемого значения или без параметров, без указателя типа |
Ключевое слово 25:return | Оператор возврата подпрограммы |
Ключевое слово 26:struct | объявить тип структуры |
Ключевое слово 27:union | объявить тип объединения |
Ключевое слово 28:enum | объявить тип перечисления |
Ключевое слово 29:volatile | Переменные, украшенные им, могут быть предотвращены компилятором для оптимизации. |
Ключевое слово 30:register | объявить регистровую переменную |
Ключевое слово 31:continue | завершить текущий цикл |
Ключевое слово 32:sizeof | Вычислить тип данных или длину переменной (то есть количество занятых байтов) |
специальные ключевые слова
специальные ключевые слова | Роль специальных ключевых слов |
---|---|
Ключевое слово 1:bit | Объявите битовую переменную или функцию битового типа |
Ключевое слово 2:sbit | Объявить переменную с битовой адресацией |
Ключевое слово 3:sfr | Объявить регистр специальной функции (8 бит) |
Ключевое слово 4:sfr16 | Объявить регистр специальной функции (16 бит) |
Ключевое слово 5:data | Внутренняя память данных 8051 с прямой адресацией |
Ключевое слово 6:bdata | Внутренняя память данных 8051 с побитовой адресацией |
Ключевое слово 7:idata | Внутренние регистры данных 8051 с косвенной адресацией |
Ключевое слово 8:pdata | Внутренняя память данных с адресацией 8051 "Paged" |
Ключевое слово 9:xdata | Внешняя память данных 8051, внутри расширенного оборудования STC xdata может быть назначена случайным образом, если не присвоено значение |
Ключевое слово 10:code | 8051 программная память |
Ключевое слово 11:interrupt | Определить функцию входа в прерывание |
Ключевое слово 12:reentrant | определить функцию повторного входа |
Ключевое слово 12:using | Определение рабочего банка регистров 8051 |
Ключевые слова предварительной обработки микроконтроллера C51
Ключевые слова предварительной обработки микроконтроллера C51 | Роль предобработки ключевых слов в микроконтроллере C51 |
---|---|
Ключевое слово 1:# | Пустая команда, никакого эффекта |
Ключевое слово 2:#include | содержит файл исходного кода |
Ключевое слово 3:#define | определить макрос |
Ключевое слово 4:#undef | Отменить определенный макрос |
Ключевое слово 5:#if | Скомпилируйте следующий код, если данное условие верно |
Ключевое слово 6:#ifdef | Если макрос уже определен, скомпилируйте следующий код |
Ключевое слово 7:#ifndef | Если макрос не определен, скомпилируйте следующий код |
Ключевое слово 8:#elif | Компилирует код, если #если заданное условие ложно, текущее условие истинно |
Ключевое слово 9:#endif | Завершает блок условной компиляции #if...#else |
Ключевое слово 9:#error | Остановить компиляцию с сообщением об ошибке |
Константы MCU (не могут быть изменены)
После загрузки, когда микроконтроллер работает нормально, данные только для чтения сохраняются во флэш-памяти (ПЗУ) объемом 16 КБ после загрузки. В C51 он отмечен кодом ключевого слова, таким как подрежим точечной матрицы, шрифт цифровой трубки и важные параметры, представленные символом.
Например:code a = 5; //Определяем константу a, фиксированное значение 5 Код во флэш-ПЗУ эквивалентен жесткому диску компьютера.
Переменные MCU
Когда микроконтроллер работает нормально, данные, которые могут быть стерты и записаны в любое время, временно хранятся в 4096-байтовом регистре ОЗУ общего назначения.
Типы данных: bit (1 бит) char (8 бит) short (16 бит) long (32 бита) float (десятичный) int (16 бит или 32 бита)
Место для хранения: bdata (сохранить 8 байт, переменная битового типа) data (кэш первого уровня, 128 байтов включают 8 байтов bdata) idata (кэш второго уровня) pdata xdata (карта памяти)
Жизненный цикл: динамический (авто), статический (статический), внешний (внешний)
Область действия переменных: локальные переменные, используемые внутри функций, глобальные переменные между функциями.
Тип конструкции: Массив
Поставьте в очередь несколько констант или переменных одного типа и сохраните их последовательно, что представляет собой набор одномерных массивов.
Массивы используются как одиночные переменные или константы, такие как
тип данных -- позиция -- имя массива [длина массива]
unsigned char xdata a[3] = {255,100,8};
a[2]=0x55;//赋值给数组第三个数(编号2)
P3 = a[1];//取数组的第二个数(编号1)
Двумерный массив: расположите несколько одномерных массивов одного и того же типа в определенном порядке, а затем создайте коллектив высокого уровня, адреса следуют друг за другом.
тип данных -- позиция -- имя массива [двумерный] [одномерный]
char xdata Buffer[3][2]={{a,b},{c,d},{e,f}};
char a[] = "hello bit";//一维字符串
Для представления значения ASCII в строку следует добавить двойные кавычки.Например, указанный выше P3 = a[0], для запроса кода ASCII код h равен 0x68, а порт P3 равен 0x68;
Обратите особое внимание на разницу между RAM и ROM.
Оперативная память с произвольным доступом
ОЗУ -- оперативная память оперативная памятьНестабильность, отключение питания и потеря памяти
Человеческое объяснение:Оперативная память — это объем памяти, эквивалентный объему карты памяти.Чем больше объем оперативной памяти, тем больше программ может выполнять телефон.Чем быстрее вы можете открывать и переключать программы и тем меньше вы застреваете в запущенных играх и программах.
ПЗУ только 4 памяти для чтения
ПЗУ -- память только для чтенияНаписать один раз Прочитать несколько раз
**Объяснение человеческими словами: **ROM — это объем памяти машины, который эквивалентен памяти компьютера. Условно говоря, чем больше объем памяти, тем больше программ можно установить. Грубо говоря, функция эквивалентна на сд карту.
Тип конструкции: структура
Объедините разные типы данных в коллекцию в виде массива, чтобы сформировать новый тип данных.
Тип конструкции: Указатель
Указатель: используется для прямого чтения или изменения значений памяти.
Определение и назначение переменных-указателей
Указатель переменной:Начальный адрес переменной в памяти
указательная переменная:Используйте новую переменную для хранения адресов памяти других переменных
Уведомление
Переменная-указатель — это адрес сохранения каких-то данных, тогда тип данных указателя должен соответствовать типу данных переменной
массив указателей
Массив указателей: набор нескольких переменных-указателей.
указатель массива
Указатель массива: первый адрес разных массивов в памяти.
указатель на многомерный массив
Указатель многомерного массива: для указания многомерных индексов