Необходимость и преимущества определения расширения типа данных C51
2023/11/7 12:23:15
Вид:24
Элементы данных, также известные как информационные единицы, описываются атрибутами, которые определяют, идентифицируют, представляют и позволяют значениям создавать семантически корректные, независимые и однозначные единицы данных для конкретной концептуальной семантики. В конкретном контексте элементы данных используются для создания информационных единиц, которые обычно организованы в структурированный целый, известный как модель данных.
Обычно элементы данных состоят из трех частей:
(1) Класс объекта: он представляет собой коллекцию вещей в реальном мире или абстрактных концепций с четкими границами и значениями. Классы объектов следуют последовательным правилам для их характеристик и поведения и могут быть однозначно идентифицированы.
(2) Свойство: это свойство, общее для всех членов класса объектов и служит основой для различения одного объекта от других.
(3) Представление: включает в себя комбинацию диапазона значений, типа данных и метода представления, иногда включая информацию, такую как единицы измерения и наборы символов. Классы объектов представляют сущности, которые мы хотим исследовать, собирать и хранить связанные с ними данные, такие как индивидуумы, оборудование, организации, окружающая среда или предметы. Свойства - это способы идентификации и разграничения вещей, такие как имя, пол, рост, вес, должность или модель, калибр, высота, длина и дальность стрельбы танка. Представление описывает, как представлены элементы данных. Любое изменение любой части компонентов представления приводит к другому представлению. Например, рост человека можно представить с использованием разных единиц измерения (например, сантиметров или метров), что приводит к разным представлениям элементов данных. Представления элементов данных часто используют осмысленные термины в качестве меток, такие как имена, коды, суммы, количество, даты, проценты и многое другое.
В основной модели элементов данных классы объектов соответствуют сущностям в модели данных, а свойства и представления соответствуют атрибутам в модели данных.
Внутри микроконтроллеров существует множество регистров специальных функций, каждый из которых имеет уникальный адрес внутри микроконтроллера. Обычно этим регистрам присваивают имена на основе их функций. Когда нам нужно манипулировать этими регистрами специальных функций в программе, мы должны объявить эти имена в начале программы. Процесс объявления связывает адреса этих регистров в памяти с их именами, позволяя компилятору распознавать эти имена как ссылки на соответствующие регистры. Для большинства начинающих эти объявления регистров уже содержатся в заголовочном файле объявления регистров специальных функций "reg51.h" для микроконтроллера 51, поэтому начинающие могут использовать эти объявления без необходимости глубокого понимания.
Вот несколько общеиспользуемых объявлений для регистров специальных функций:
- sfr: Объявляет 8-битный регистр специальных функций.
- sfr16: Объявляет 16-битный регистр специальных функций.
- sbit: Объявляет специальный бит регистра, то есть объявляет определенный бит в регистре специальных функций.
- bit: Объявляет битовую переменную, которая может использоваться для определения битовой переменной.
Например: sfr SCON=0x98;
В этом примере SCON - это регистр управления последовательным портом микроконтроллера, и его адрес в памяти микроконтроллера составляет 0x98. С помощью этого объявления мы можем напрямую манипулировать SCON в программе, и компилятор будет понимать, что ф На примере: sfr16 T2=0xCC;
Это объявление указывает на объявление 16-битного регистра специальных функций с начальным адресом 0xCC.
На примере: sbit TI=SCON^1;
В этом случае SCON - это 8-битный регистр, и SCON^1 представляет второй младший бит этого регистра, где SCON^0 представляет самый младший бит, а SCON^7 - самый старший бит. Это объявление используется для объявления TI как представления второго младшего бита регистра SCON. В будущем, если нам потребуется манипулировать вторым младшим битом регистра SCON, мы сможем делать это напрямую через TI.
Обычно используется несколько заголовочных файлов в C51, включая reg51.h, reg52.h, math.h, ctype.h, stdio.h, stdlib.h, absacc.h и intrins.h. Среди них reg51.h и reg52.h используются для определения регистров специальных функций и битовых регистров для микроконтроллеров 51 и 52. Большая часть их содержания аналогична, за исключением того, что reg52.h содержит дополнительные определения для регистра таймера T2, который присутствует в микроконтроллере 52, но отсутствует в микроконтроллере 51.
math.h используется для определения общих математических операций, таких как модуль, квадратный корень, синус, косинус и т. д. При необходимости эти функции можно вызывать напрямую.
После того как у нас есть базовое понимание регистров специальных функций, мы можем создавать собственные заголовочные файлы и определять имена регистров специальных функций по мере необходимости. Например, на плате для обучения с микроконтроллером TX-1C мы используем микроконтроллеры с ядром 51 от компании STC Corporation. Эти микроконтроллеры обладают некоторыми дополнительными функциями, которые требуют дополнительной настройки регистров специальных функций. Когда нам нужно использовать эти дополнительные функции, мы должны сами определить имена регистров специальных функций на основе адресов, указанных в документации к микросхеме. Подробнее о таких расширениях мы расскажем в будущих практических применениях.