русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лекция № 6


Дата добавления: 2015-08-31; просмотров: 1790; Нарушение авторских прав


“Микроконтроллеры – отдельный класс

Микропроцессорных устройств для встроенных применений. Их особенности и выполняемые функции”.

Микроконтроллер – вычислительно-управляющее устройство, предназначенное для выполнения функций контроля и управления периферийным оборудованием.

Уклон в сторону управления накладывает отпечаток на особенность архитектуры микроконтроллеров. Основной из этих особенностей является то, что наряду с процессорным ядром микроконтроллера имеют в своём составе подсистему ввода-вывода и, возможно, подсистему памяти. В последнем случае принято говорить об однокристальных микро-ЭВМ.

Рассмотрим особенности организации каждой из подсистем микроконтроллеров.

Процессорное ядро

Современные микроконтроллеры могут быть построены как по Гарвардской (MCS-51 Intel), так и по Фон Неймановской архитектуре (MCS-96 Intel, 80C166 Siemens). Все они имеют внешнюю системную магистраль для обмена данными с внешней памятью и дополнительными периферийными устройствами. Классические семейства микроконтроллеров (MCS-51) имеют, как правило, мультиплексные шины адреса/данных, что было обусловлено необходимостью минимизировать размер микросхемы. Однако современные быстродействующие микроконтроллеры используют уже демультиплексную шину, что ускоряет работу системы. Некоторые модели микроконтроллеров имеют возможность работать либо мультиплексной либо с демультиплексной шиной, в зависимости от требуемой конфигурации системы. В случае демультиплексной шины контроллер быстрее обменивается данными по магистрали. При работе с мультиплексной шиной, освободившиеся выводы используются как порты ввода-вывода. (MCS251 Intel, 80C166 Siemens).

Практически все микроконтроллеры выполняют только операции с фиксированной точкой. Существуют 8-разрядные (MCS-51 Intel, MC6805 Motorola),16-разрядные (MCS-96 Intel, 80C166 Siemens, MC6816 Motorola),32-разрядные(MC683 Motorola, MPC500 PowerPc) микроконтроллеры. Системы команд микроконтроллеров поддерживает, как правило, широкий набор методов адресации в т.ч. бытовую адресацию.



Подсистема памяти.

Существуют микроконтроллеры с аккумуляторной (MCS-51) и регистровой (MCS-96) организацией. Количество регистров и их разрядность зависит от конкретной модели. Зачастую микроконтроллеры имеют несколько банков регистров (MCS-48, MCS-51, 80C166).

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

Варианты реализации внутренней памяти программ могут быть различными:

  1. она может отсутствовать. В этом случае микроконтроллер выполняет программу, считывая команды из внешней памяти программ через системную магистраль.
  2. Она может быть выполнена в виде масочного ПЗУ. В этом случае микроконтроллер не нуждается во внешней памяти программ. Однако в этом случае программа во внутреннюю память записывается однократно на этапе изготовления кристалла и не может быть изменена в дальнейшем. Как правило, программа, записанная во внутреннюю память, выполняется быстрее, чем из внешней памяти.
  3. Она может быть выполнена в виде однократно программируемого ППЗУ. В этом случае пользователь сам может записать программу во внутреннюю память, но лишь однажды. Для записи программы, как правило, необходим специальный программатор. Однако существуют микроконтроллеры, способные программировать сами себя (MCS-96) (программатор реализован внутри кристалла).
  4. Она может быть выполнена в виде ППЗУ с УФ стиранием. В этом случае память программ может быть многократно перепрограммирована с помощью программатора. Перед очередным программированием она должна быть очищена с помощью УФ излучения.
  5. Она может быть выполнена в виде Flash – памяти. В этом случае память программ может быть многократно перепрограммирована в процессе работы системы.
  6. Она может быть реализована в виде ОЗУ. В этом случае для загрузки программы после включения питания используется так называемый Boot Strep загрузчик. Это механизм, позволяющий после включения питание загрузить начальную программу функционирования по последовательному каналу связи, либо по системной магистрали.

Подсистема ввода-вывода.

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

  1. Порты ввода-вывода. Они могут быть либо однонаправленными ( выполняя функции входа или выхода соответственно), либо квази-двунаправленными. Такие порты могут выполнять функции как входа, так и выхода (в каждый конкретный момент времени либо вход, либо выход). Упрощенная структура квази - двунаправленного порта:

Если порт работает как выход, то один из выходных транзисторов открыт, а другой закрыт, в соответствии с уровнем выходного сигнала. Чтобы порт работал как вход необходимо записать в выходной триггер “1”, тогда транзистор Q2 будет закрыт, а сигнал управления блокирует открытие Q1. Таким образом, образуется высокоимпеданстный вход. Микроконтроллеры , поддерживающие бытовую адресацию способны управлять состоянием каждого вывода порта отдельно.

  1. Таймеры/счетчики. Они представляют собой специализированные счетчики с коммутируемыми источниками синхронизации.

Обобщенная структурная схема таймера/счетчика.

Источником счетных импульсов может быть либо системный синхросигнал с фиксированной частотой (возможно предварительно деленной в заданное число раз), либо один из входов микроконтроллера. В первом случае устройство выполняет функции таймера, так как фактически считает интервалы времени постоянной длительности.

Во втором случае устройство выполняет функции счетчика событий (отрицательных или положительных перепадов) на входе микросхемы. Счет может производиться либо в одном, либо в обоих направлениях. В последнем случае направление счета определяется уровнем сигнала на соответствующем входе микросхемы. При переходе содержимого счетчика из наибольшего состояния в наименьшее и наоборот могут генерироваться соответствующие внутренние запросы на прерывание. Конкретные режимы работы и структура таймеров зависят от конкретной модели микроконтроллера.

3. Модули “Захват/Сравнение”. (Capture/Compare).

Эти модули, называемые ещё модулями быстрого ввода-вывода, предназначены для быстрой генерации события на выходе микросхемы, либо быстрой реакции на событие на её входе без участия процессора. Они имеют два основных режима работы: входной и выходной.

Структурная схема модуля в выходном режиме (Compare).

Таймер модуля считает импульсы, поступающие с постоянной частотой, соответствующей сигналу синхронизации (возможно деленной на предделителе). В регистр времени события предварительно записывается по команде определенное число. Компаратор сравнивает каждый момент времени содержимое таймера и содержимое регистра времени события. В момент, когда их содержимое становится равным друг другу, происходит заданное событие на соответствующем выходе микросхемы и выставляется запрос на прерывание. Таким образом, можно запрограммировать определённое выходное событие в заданное время и осуществить его без участия процессора. Этот режим используется в частности для генерации ШИМ.

Структурная схема модуля во входном режиме (Capture)

 

 

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

  1. Широтно-импульсный модулятор. Встроенный ШИМ предназначен для генерации широтно - модулированного сигнала на выходе микросхемы без участия процессора.

Структурная схема блока ШИМ.

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

При такой организации возможная разрядность ШИМ зависит от частоты сигнала.

В некоторых моделях микроконтроллеров используются специализированные многоканальные модули ШИМ , в частности для управления приводом ( 80C196MC Intel).

5. Модуль последовательного ввода-вывода.

Модуль последовательного ввода-вывода используется для обмена данными между микроконтроллером и удаленным периферийным узлом. Данные передаются в последовательном коде, то есть биты передаются во временной последовательности друг за другом по одному каналу связи. Это даёт возможность использовать один канал связи вместо нескольких в случае параллельного кода. Однако при этом снижается быстродействие канала связи. Различают полудуплексные и дуплексные каналы последовательной связи. В случае полудуплексного канала данные передаются по одному и тому же каналу в обе стороны, но в каждый конкретный момент времени только в одну сторону.

В случае дуплексного канала данные передаются по двум каналам (в одну сторону - по одному, в другую - по другому). При этом появляется возможность передавать информацию в обе стороны одновременно.

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

 

При этом по каналу данных передаются только собственно данные. Такой метод передачи позволяет обеспечить скорость передачи порядка 1Mbit/сек. Однако, для его организации необходим дополнительный канал синхросигнала.

При асинхронном методе передачи канал синхронизации отсутствует. Это вызывает необходимость передавать по каналу данных дополнительную информацию для синхронизации приемной стороны.

Первым в посылке передается “СТАРТ – бит” нулевого уровня. Приняв его, приемная сторона подстраивает фазу своих синхросигналов в соответствии с моментом прихода СТАРТ – бита. После него один за другим следуют биты данных. В конце цепочки данных может следовать бит четности для проверки правильности приема. Заканчивается посылка СТОП – битом единичного уровня. Частота передачи, то есть время передачи одного бита заранее должны быть согласованы на передающей и приемной сторонах. Такой метод передачи позволяет обеспечить скорость передачи до 100 Kbit/сек.

Микроконтроллер может содержать либо отдельные синхронные и асинхронные порты ввода-вывода, либо универсальный порт, способный работать в обоих режимах.

6. Модуль АЦП.

Модуль АЦП предназначен для преобразования входной аналоговой информации в цифровую и передачи ее в процессор для дальнейшей обработки. Микроконтроллеры имеют, как правило, несколько каналов АЦП. Преобразование информации на том или ином канале инициализируются соответствующей командой.

Структурная схема блока АЦП.

Преобразования начинаются выбором требуемого канала, который осуществляется записью номера канала в специальный служебный регистр. Аналоговый мультиплексор пропускает на выход сигнал выбранного канала. После этого подается сигнал фиксации на устройство выборки – хранения. Оно фиксирует уровень выбранного аналогового сигнала на весь период преобразования. Затем подается сигнал начала преобразования. АЦП представляет собой, как правило, АЦП последовательных приближений. Время преобразования составляет обычно около 10m s. После окончания преобразования АЦП выдает сигнал готовности, по которому его выходная информация записывается в буферный регистр, с которого она затем может быть считана процессором по соответствующей команде. При этом вырабатывается запрос на прерывание. Некоторые микроконтроллеры имеют блоки АЦП, способные работать в автоматическом режиме, опрашивая несколько каналов последовательно без участи процессора(80C166, Intel).

  1. Контроллер периферийных событий.

Этот контроллер предназначен для обеспечения некоторого блока событий в заданное время без участия процессора. Заданные события выполняются на микропрограммном уровне. Такими блоками событий могут быть:

  • передача блока информации из одного места памяти (или устройства ВВ) в другое;
  • последовательный опрос нескольких каналов АЦП;
  • передача информации по последовательному каналу связи.

Использование такого механизма обработки событий позволяет снизить загрузку процессора и распараллелить процесс обработки информации.

Конкретный набор устройств ВВ, их характеристики и возможные режимы работы зависят от модели микроконтроллера.

Лекция № 7

“Семейство MCS-51 фирмы Intel - как представитель 8-разрядных микроконтроллеров. Обобщенная архитектура семейства. Состав семейства. Типовая схема включения микроконтроллера.”

Семейство 8-разрядных микроконтроллеров MCS-51 было выпущено фирмой Intel в начале 80-х годов. Микроконтроллеры MCS-51 являются функционально завершенными однокристальными микроЭВМ Гарвардской архитектуры, содержащими все необходимые узлы для работы в автономном режиме, и предназначены для реализации различных цифровых алгоритмов управления. На сегодняшний день семейство MCS-51 содержит несколько десятков типов микросхем, отличающихся конкретной реализацией отдельных узлов и условиями эксплуатации. Все микросхемы семейства обладают аналогичной архитектурой и имеют целый ряд общих узлов.

Структурная схема микроконтроллера MCS-51.

 

Общими узлами всех микроконтроллеров семейства являются:

- 8-разрядный центральный процессор (ЦП), ориентированный на управление исполнительными устройствами. ЦП имеет встроенную схему 8-разрядногог аппаратного умножения и деления чисел. Наличие в наборе команд большого числа операций для работы с прямоадресуемыми битами дает возможность говорить о т.н. “булевом процессоре”;

- внутренняя память программ масочного или репрограммируемого типа, имеющая для различных кристаллов объем от 4 до 32 Кбайт; в некоторых версиях она отсутствует;

- не менее чем 128 байтное резидентное ОЗУ данных, которое используется для организации регистровых банков, стека и хранения пользовательских данных;

-не менее 32 двунаправленных интерфейсных линий (портов), индивидуально настраиваемых на ввод или вывод информации;

- два 16-битных многорежимных счетчика/таймера, используемых для подсчета внешних событий, организации временных задержек и тактирования коммуникационного порта;

- двунаправленный дуплексный последовательный коммуникационный порт, предназначенный для организации каналов связи между микроконтроллером и внешними устройствами;

- двухуровневая приоритетная система прерываний, поддерживающая не менее 5 векторов прерываний от внутренних и внешних источников;

- встроенный тактовый генератор.

Центральный процессор микроконтроллеров MCS-51 имеет следующие технические характеристики:

Разрядность АЛУ - 8 бит.

Число выполняемых команд - 111.

Длина команд - 1, 2, или 3 байта.

Число регистров общего назначения (РОН) - 32.

Число прямоадресуемых битовых переменных - 128.

Число прямоадресуемых битов в области

регистров специальных функций - 128.

Максимальный объем памяти программ - 64 Кбайта.

Максимальный объем памяти данных - 64 Кбайта.

Максимальный объем внутренней памяти данных - 256 байт.

Время выполнения команд при тактовой частоте 12 Мгц:

сложение - 1 мкс;

пересылки “регистр- внешняя память данных” - 2 мкс;

умножение/деление - 4 мкс;

Методы адресации операнда - регистровый, косвенный, прямой, непосредственный.

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

В частности, подсемейство 80XC51FX, в которое входит рад микросхем имеет следующие дополнительные возможности:

- 3 16-битных таймера счетчика.

- Программируемый частотный выход.

- Таймер/счетчик с возможностью прямого и обратного счета.

- Матрица программируемых счетчиков, реализующих режимы:

- сторожевого таймера (Watch Dog Timer);

- широтно-импульсного модулятора;

- захвата/сравнения;

- высокоскоростного выхода.

- Трехуровневая система защиты памяти.

- 256-байтое резидентное ОЗУ.

- Четырехуровневая система прерываний.

- 7 внешних источников прерываний.

- 2 режима уменьшенного энергопотребления.

Типичным представителем данного подсемейства является микросхема 83C51FA.

Синхронизация микроконтроллера.

Базовым интервалом времени, на котором основана синхронизация работы всего микроконтроллера является машинный цикл. Машинный цикл имеет фиксированную длительность и содержит 6 состояний S1-S6, каждое из которых по длительности соответствует такту, и, в свою очередь, состоит из двух временных интервалов, определяемых фазами P1 и P2. Длительность фазы равна периоду следования внешнего сигнала синхронизации.

Таким образом каждый машинный цикл состоит из 12 периодов входного тактового сигнала и при частоте последнего 12 Мгц составляем 1 мкс. Дважды за один машинный цикл формируется сигнал ALE.

Входной тактовый сигнал вырабатывается либо встроенным тактовым генератором микроконтроллера при подключении к его выводам X1 и X2 кварцевого резонатора или LC-цепочки, либо внешним источником тактовых сигналов.

В случае LC-цепочки частота опорного синхросигнала определяется выражением

В случае внешнего тактового генератора его выход подключается ко входу X1, а вывод X2 подключается к общей шине.

Внешний интерфейс микроконтроллера.

Внешний интерфейс микроконтроллера предназначен для организации взаимодействия его с внешней памятью программ и данных и устройствами ввода-вывода. Обмен данными осуществляется по внешней мультиплексной магистрали микроконтроллера. Эта магистраль использует выводы порта P0 для выдачи младшего байта адреса и чтения/записи байта данных, а выводы порта P2 - для выдачи старшего байта адреса. Обращение к внешней памяти данных требует двух машинных циклов. Поэтому второй импульс ALE внутри машинного цикла при обращении к внешней памяти данных не генерируется.

Цикл чтения из внешней памяти данных.

По заднему фронту сигнала ALE младший байт адреса, поступающий с выводов порта P0 должен быть зафиксирован во внешнем регистре-защелке. Старший байт адреса держится на выводах порта P2 в течение всего цикла и не требует внешней фиксации. Данные считываются в фазе P1 состояния S3 текущего машинного цикла. К этому моменту они должны быть заведомо установлены на шине данных.

Цикл записи во внешнюю память данных.

При обращении к внутренней памяти данных сигналы RD и WR не вырабатываются. Однако сигнал ALE вырабатывается всегда.

Для обращения ко внешней памяти программ используется механизм отличный от механизма обращения к памяти данных. Для фиксации слов программы используется специальный сигнал PSEN. При этом сигналы ALE и PSEN вырабатываются дважды за машинный цикл. Если второй выбираемый байт в команде не используется то он игнорируется. При переходе к выполнению следующей команды он будет считан вторично.

Цикл чтения внешней памяти программ.

Так же, как и в случае памяти данных, младший байт адреса должен быть зафиксирован во внешнем регистре по заднему фронту сигнала ALE. Байты программы считываются в фазе P1 состояний S4 и S1 текущего машинного цикла. При обращении к внутренней памяти программ сигнал PSEN не генерируется.

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

Начальная установка микроконтроллера.

Начальная установка (аппаратный сброс) производится с целью запуска или перезапуска микроконтроллера после подачи на него напряжения питания. Сброс осуществляется подачей на вход RESET высокого уровня и удержания его в течение не менее двух машинных циклов. Этот сигнал может подаваться асинхронно по отношению к внутреннему тактированию. Вход RESET постоянно опрашивается микроконтроллером в момент S5P2 каждого машинного цикла. После сигнала сброса порты ввода-вывода находятся в неизменном состоянии в течение 19-ти периодов тактирования, после чего в промежутке между 19-м и 31-м тактом переводятся в начальное “единичное” состояние. При этом сигналы ALE и PSEN находятся в неактивном высоком состоянии. По сигналу сброса микроконтроллер устанавливает все служебные регистры в начальное состояние. На содержимое внутренней памяти данных сигнал RESET не влияет. При включении питания она устанавливается в произвольное состояние. Длительность сигнала RESET должна быть не меньше времени необходимого для запуска внутреннего генератора плюс 2 машинных цикла. В свою очередь время установки генератора зависит от частоты синхронизации и добротность кварцевого резонатора. При частоте 10 Мгц оно обычно составляет около 1 мкс.

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

После снятия сигнала RESET проходит от 1 до 2 тактовых периодов до их активизации. При этом микроконтроллер начинает выполнять программу с адреса 0000h внутренней либо внешней памяти программ (в зависимости от уровня сигнала EA).

Удержание выводов ALE и PSEN в активном (нулевом) состоянии при активном сигнале RESET приводит к переводу всех выводов микросхемы в высокоимпедансное состояние (режим “ONCE”). Этот режим используется для отладки системы.

Лекция № 8

“ Организация системы памяти микроконтроллера 8xC51Fx.”

Все микроконтроллеры семейства MCS-51 имеют Гарвардскую архитектуру, т.е. раздельное адресное пространство программ и данных. Такое разделение позволяет осуществлять доступ к памяти данных по 8-битным адресам, что способствует более быстрой обработке данных в ЦП. Тем не менее, возможно использование и 16-битных адресов данных.

Программная память доступна исключительно по чтению. Общий объем ее адресного пространства составляет 64 Кбайта. В различных версиях кристаллов может присутствовать до 32 Кбайт внутренней памяти программ. При обращении к этим областям памяти используются циклы обмена по внутренней магистрали микроконтроллера. При необходимости можно расширить память программ за счет внешнего ПЗУ.

Карта памяти программ.

 

После сигнала RESET микроконтроллер начинает выполнение программы с адреса 0000h либо внешней либо внутренней памяти программ, в зависимости от состояния сигнала EA.

Память данных доступна как по чтению, так и по записи. Общий объем ее адресного пространства составляет 64 Кбайта. Адрес может иметь размер 1 или 2 байта. Однобайтная адресация часто используется при страничной организации ОЗУ.

Карта памяти данных.

Внутренняя память данных может быть разделена на три условных блока - нижний, верхний и пространство Регистров Специальных Функций (SFR).

Карта внутренней памяти данных.

Внутренняя память данных всегда адресуется байтом, что подразумевает 256 байт адресного пространства. Однако, фактически можно обращаться к 384-м байтам. Прямая адресация ячейки с адресом свыше 7Fh осуществляет доступ к области регистров специальных функций, а косвенная - к верхней области внутренней памяти данных. Т.о. эти две области занимают одно и то же адресное пространство, хотя и разделены физически. Все байты в нижней 128-байтной половине внутренней памяти данных могут адресоваться как прямо, так и косвенно.

Первые 32 байта в нижней области внутреннего ОЗУ сгруппированы в 4 банка по 8 регистров. Инструкции программы могут оперировать с ними как с регистрами общего назначения R0-R7. Два бита регистра PSW определяют, какой из банков используется в текущий момент. Это позволяет более эффективно использовать память программ, поскольку регистровые инструкции короче, чем прямая адресация. Переключение регистровых банков эффективно заменяет операции сохранения регистров в стеке на время обработки прерывания.

Следующие за регистровыми банками 16 байт образуют блок побитно адресуемого пространства. Набор инструкций MCS-51 содержит широкий набор операций над битами, а 128 бит (16 байт по 8) в этом блоке могут быть прямо адресованы. Битовые адреса имеют значения от 00h до 7Fh.

Карта нижней области внутреннего ОЗУ.

7Fh ... 30h Побайтно-адресуемая область внутреннего ОЗУ
  Побитно-адресуемая область внутреннего ОЗУ
2Fh 7Fh 7Eh 7Dh 7Ch 7Bh 7Ah 79h 78h
2Eh 77h 76h 75h 74h 73h 72h 71h 70h
2Dh 6Fh 6Eh 6Dh 6Ch 6Bh 6Ah 69h 68h
2Ch 67h 66h 65h 64h 63h 62h 61h 60h
2Bh 5Fh 5Eh 5Dh 5Ch 5Bh 5Ah 59h 58h
2Ah 57h 56h 55h 54h 53h 52h 51h 50h
29h 4Fh 4Eh 4Dh 4Ch 4Bh 4Ah 49h 48h
28h 47h 46h 45h 44h 43h 42h 41h 40h
27h 3Fh 3Eh 3Dh 3Ch 3Bh 3Ah 39h 38h
26h 37h 36h 35h 34h 33h 32h 31h 30h
25h 2Fh 2Eh 2Dh 2Ch 2Bh 2Ah 29h 28h
24h 27h 26h 25h 24h 23h 22h 21h 20h
23h 1Fh 1Eh 1Dh 1Ch 1Bh 1Ah 19h 18h
22h 17h 16h 15h 14h 13h 12h 11h 10h
21h 0Fh 0Eh 0Dh 0Ch 0Bh 0Ah 09h 08h
20h 07h 06h 05h 04h 03h 02h 01h 00h
1Fh ... 18h Регистровый банк 3
17h ... 10h Регистровый банк 2
0Fh ... 08h Регистровый банк 1
07h ... 00h Регистровый банк 0

Для 16 адресов в пространстве SFR имеется возможность как битовой, так и байтовой адресации. Побитово-адресуемыми регистрами являются те, чей шестнадцатеричный адрес заканчивается на “0” или “8”. Битовые адреса в этой области располагаются со значения 80h по FFh.

Наиболее часто используемыми регистрами специальных функций являются:

- Аккумулятор (байтовый адрес 0E0h). Используется во всех арифметических и логических операциях в качестве операнда;

- Регистр B (байтовый адрес - 0F0h). Используется при операциях умножения и деления, а также как сверхоперативный регистр;

- Слово состояния программы PSW (байтовый адрес - 0D0h). Содержит информацию о состоянии программы;

- Указатель стека (байтовый адрес -081h). Используется для указания на вершину стека в операциях записи в стек и чтения из него. По аппаратному сбросу устанавливается в значение 07h (область стека в этом случае начинается с адреса 08h) и инкрементируется при каждой записи в стек. Запись в SP производится для предопределения положения стека во внутренней памяти данных микроконтроллера;

- Указатель данных DPTR (байтовые адреса 082h, 083h). Состоит из двух байт: старшего - DPH и младшего - DPL. Используется как 16-ти или 8-битовый указатель адреса при обращении к внешней памяти или выполнении команды перехода по косвенному адресу.

Слово состояния программы PSW.

Слово состояния программы PSW содержит ряд статусных битов, отражающих текущее состояние процессора.

Формат PSW.

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0
CY AC F0 RS1 RS0 OV - P

Назначение отдельных битов PSW.

Бит Назначение
CY Флаг переноса.
AC Флаг дополнительного переноса.
F0 Флаг пользователя 0.
RS1, RS0 Биты выбора используемого регистрового банка: 00 - банк 0; 01 - банк 1; 10 - банк 2; 11 - банк 3.
OV Флаг переполнения.
- Зарезервирован. Доступен по чтению и записи.
P Флаг четности

Бит переноса кроме арифметических, используется также и в булевых операциях. Биты RS0 и RS1 используются для выбора одного из 4-х регистровых банков. Бит четности отражает число установленных бит в аккумуляторе: P=1, если аккумулятор содержит нечетное число единиц, и P=0, если четное. Т.о., количество ненулевых битов в аккумуляторе плюс P является всегда четным числом. Два бита в PSW ни с чем не связаны и могут использоваться как флаги состояний.

Лекция № 9

“Система команд микроконтроллеров семейства MCS-51.”

Система команд MCS-51 поддерживает единый набор инструкций, который предназначен для выполнения 8-битовых алгоритмов управления исполнительными устройствами. Существует возможность использования быстрых методов адресации к внутреннему ОЗУ, осуществления битовых опреаций над небольшими структурами данных. Имеется развернутая система адресации однобитовых переменных, как самостоятельного типа данных, позволяющая использовать отдельные биты в логических и управляющих командах булевой алгебры.

Режимы адресации.

Набор команд MCS-51 поддерживает следующие режимы адресации:

Прямая адресация. Операнд определяется 8-битовым адресом в инструкции. Прямая адресация используется только для младшей половины внутренней памяти данных и регистров SFR.

Косвенная адресация. Инструкция адресует регистр, содержащий адрес операнда. Данный вид адресации используется для внешнего и внутреннего ОЗУ. Для указания 8-битовых адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP. Для 16-битовой адресации используется только регистр указателя данных DPTR.

Регистровые инструкции. Регистры R0-R7 текущего регистрового банка могут быть адресованы через конкретные инструкции, содержащие 3-хбитовое поле, указывающее номер регистра в самой инструкции. В этом случае сооответствующее поле адреса в команде отсутствует.

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

Непосредственные константы. Константа может находиться прямо в команде за кодом операции.

Индексная адресация. Индексная адресация может использоваться только для доступа к программной памяти и только в режиме чтения. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или программный счетчик) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее.



<== предыдущая лекция | следующая лекция ==>
Обзор существующих типов архитектур микропроцессоров. | Арифметические и логические инструкции.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.071 сек.