Электроника. Радиотехника

Принцип работы микроконтроллера. Запуск программы, структура памяти, регистры или с чего начинать изучение микроконтроллеров.

Память, регистры, адреса регистров, банки памяти, регистры специального и общего назначения, адреса памяти.

Несколько раз одолевало огромное любопытство — как же они работают, хотелось понять сущьность этих неведомых ранее контроллеров. В процессе же обучения некоторые наиболее интересные темы были законспектированы, а в последствии выложены в сеть на этих страницах этого сайта.

Память микроконтроллера

Основа для микроконтроллера — это ядро. Но изучение и понимание работы микроконтроллера и процессов происходящих в микроконтроллере — нужно начинать с памяти.

  • Память в микроконтроллерах разделяется на несколько видов.
  • Микроконтроллер имеет энергонезависимую и энергозависимую память.

энергонезависимая память

разновидность запоминающих устройств с произвольным доступом, которые способны хранить данные при отсутствии электрического питания.

энергозависимая память

компьютерная память, которая требует постоянного использования электропитания для возможности удерживать записанную на неё информацию.

Эти разные виды памяти и использует процессор (так мы будем иногда называть микроконтроллер) для разных своих «нужд».

Энергозависимая (ОП, RAM) память всегда пуста (за исключением конечно того момента, когда микроконтроллер работает).
Энергонезависимая (FLASH) память заполнена.

Прошивка, програмное обеспечение, операционная система, не важна на данном моменте разница, как мы назовем программу, управляюшую микроконтроллером, хранится в энергонезависимой памяти на FLASH.

При включении микроконтроллера, загружается программа, записанная во FLASH памяти, текст программы — это код написанный программистом.

При включении микроконтроллера ячейки энергозависимой оперативной памяти пусты (точнее, их содержимое неизвестно).
Данные они же (числа) загружаются в оперативную память в ходе выполнения программы, которая как уже говорилась находится на FLASH. Программа, это инструкция, указываюшая, куда в оперативную память записать то или иное знычение. И так, при включении микроконтроллера он берет некоторые данные из энергонезависимой памяти и записывает их в энергозависимую. Зачем?

Регистры микроконтроллера

Оперативная память состоит из ячеек, называются эти ячейки регистрами. В PIC контроллерах Существуют 2 вида регистров: регистры общего назначения (GRP) и регистры специального назначения (SFR). Регистры микроконтроллера правильней бы было называть регистрами оперативной памяти микроконтроллера, именно в ней он хранит информацию,а как мы знаем, оперативная память, это энергозависимая память — следовательно значения в ней будут меняться и сохраняться только при включении питания микроконтроллера.

В PIC16F84A оперативная память состоит из 36 ячеек.

Каждый регистр содержит 1 байт, а в одном байте содержится 8 бит.

Адрес регистра
Каждый регистр имеет свой порядковый номер, т.е. адрес. АДРЕС РЕГИСТРА традиционно
обозначается числом из шестнадцатеричной системы счисления, например, 1A.
Шестнадцатеричное число представляет собой комбинацию 16 символов: 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, A, B, C, D, E, F. В нашем случае 1A – это десятичное число 26. Перевод чисел из одной
системы в другую несложно сделать в стандартном калькуляторе Windows (в настройках
калькулятора выбрать вид «инженерный»). Рекомендую скачать конвертер BinHexDec –
многое в системах счисления станет понятнее. В конце адреса каждого регистра стоит буква h (признак 16-ричной системы исчисления).


Банки памяти
Регистры в МК объединены в группы, так называемые БАНКИ ПАМЯТИ. Банки нумеруются
десятичными числами и называются BANK0, BANK1 и т.д. Количество банков зависит от
количества регистров, т.е. зависит от размера памяти и её организации в МК. Например,
BANK0 содержит регистры с адресами в диапазоне от 0 до 127, BANK1 содержит регистры с
адресами в диапазоне от 128 до 255. Для наглядности здесь диапазоны указаны в десятичном
представлении.
В МК различают регистры специального и общего назначения.


Регистры специального назначения Special function register (SFR) — Регистры специальных функций.
В РЕГИСТРАХ СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ содержится служебная информация,
определяющая настройки работы МК. Под настройками понимается запись восьмибитных
чисел в регистры специального назначения, где каждый бит в этих числах определяет ту или
иную настройку. Регистры специального назначения находятся в области оперативной
памяти.
Регистры специального назначения имеют жестко определенные адреса и
регламентированные наименования, которые определены в документации для того или иного
МК. Как правило, в разных МК адреса регистров специального назначения совпадают, что
подтверждает простоту переноса программ из одних МК в другие. Регистры специального
назначения в оперативной памяти МК как правило расположены в самом начале, например,
имеется 10 регистров специального назначения, занимающих диапазон адресов от 00 до 0A.

РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ (GRP)
Используются для записи и хранения переменных и
констант. Регистры общего назначения также находятся в области оперативной памяти и
нумерация их адресов продолжает нумерацию регистров специального назначения.
Ранее мы определили, что каждый регистр имеет адрес, но мы не определили, что такое
имена регистров или наименования. Для удобства программирования «числовым» адресам
регистров сопоставляют «буквенные» имена. Например, регистру с адресом 03 можно дать
имя STATUS.
Необходимо запомнить:
– регистры специального назначения имеют определенные имена, которые отражены в
документации; не рекомендуется регистрам специального назначения присваивать другие
имена (например, регистр STATUS переименовать в STAT);
– регистрам общего назначения, как правило, не присваивают имена, определенные для
регистров специального назначения;
– имена регистров не должны совпадать по написанию с командами;в тексте программы
необходимо придерживаться единообразного написания имени. Например, имя PER, Per и per
разные имена; рекомендую придерживаться единого стиля в написании имена набираются на
английской раскладке без пробелов «разумной» длины, допускается символ нижнего
подчеркивания «_» и цифры.

Программирование на Ассемблере для PIC https://disk.yandex.ru/d/g_SA76OuuF9E3g

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить