ТОП 10:

Периферийные средства МК – 51



Параллельные каналы связи. Подсистема ВВ микроконтроллера МК - 51 размещается непосредственно на кристалле. Для ВВ данных и управления процессом их передачи в состав МК введен ряд портов данных и регистров управления/состояния, совокупность которых образует набор специальных регистров.

Физическая система ВВ микроконтроллера МК - 51 состоит из четырех двунаправленных 8-разрядных портов Р0 - РЗ. Все порты ВВ отображены в пространстве внутренней памяти DSEG по адресам 80Н, 90Н, 0А0Н, 0В0Н и ничем не отличаются от обычных ячеек памяти. Отказ от изолированного пространства ВВ, используемого в архитектуре ВЕ48, позволил увеличить вычислительную эффективность МС интенсивного ВВ, привел к более регулярной структуре набора команд ВЕ51. Любая команда с операндом из внутренней памяти может быть применена к содержимому портов Р0 - РЗ.

Кроме того, порты Р0 - РЗ совмещены с битовым пространством BSEG, что обеспечивает доступ к отдельным его разрядам независимо от других. Порты Р0 - РЗ занимают адреса BSEG: 80Н - 87Н, 90Н -97Н, 0А0Н -0А7Н и 0В0Н - 0В7Н соответственно.

Расширение пространства ВВ может быть выполнено за счет области XSEG или другими средствами с помощью самих портов Р0 - РЗ и SBUF.

При обращении к внешней памяти программ или данных порты Р0, Р2 выполняют функции системных шин AD и АВ соответственно. Младший байт адреса и данные передаются через Р0 в мультиплексном режиме: сначала выводится адрес, а затем для передачи данных используется порт. Старший байт адреса формируется на Р2. Линии порта РЗ реализуют управление циклами обмена и другие специальные функции аппаратного уровня

 

Таблица 3 - Линии порта РЗ

РЗ.0 RxD Вход приемника последовательного канала
Р3.1 TxD Выход передатчика последовательного канала
Р3.2 INT0 Вход запроса на прерывание 0
РЗ.З INT1 Вход запроса на прерывание 1
Р3.4 T0 Внешний вход таймера/счетчика 0
Р3.5 Tl Внешний вход таймера/счетчика 1
Р3.6 WR Строб записи в XSEG
Р3.7 RD Строб чтения XSEG

Последовательный канал связи. В состав МК-51 входит дуплексный канал последовательной связи с буферизацией, который может быть запрограммирован для работы в одном из четырех режимов:

режим 0-синхронный последовательный ВВ со скоростью OSC/12;

режим 1-асинхронный с 10-битовым кадром и переменной скоростью передачи;

режим 2 - асинхронный с 11-битовым кадром и фиксированной скоростью передачи OSC/32 или OSC/64;

режим 3-асинхронный с 11-битовым кадром и переменной скоростью передачи.

Входные и выходные данные хранятся в буферном регистре SBUF с адресом 99Н. Управление работой приемопередатчиков осуществляется через слово управления и состояния SCON, расположенное в регистре по адресу 98Н:

SCON.0 RI Флаг прерывания приемника

SCON.l TI Флаг прерывания передатчика

SCON.2 RB8 Восьмой бит приемника в режимах 2 и 3.

В режиме 1, если SM2 = 0, то отображает стоп-бит. В режиме 0 не используется.

SCON.3 ТВ8 Восьмой бит передатчика в режимах 2 и 3

SCON 4 REN Разрешение приема

SCON.5 SM2 Запрещение приема кадров с нулевым восьмым

битом данных. В режиме 0 должен быть сброшен

SCON.6 SMI Младший разряд для кодирования номера режима

SCON.7 SM0 Старший разряд для кодирования номера режима:

 

SM0 SM1 Режим SM0 SM1 Режим

Таймеры/счетчики. К стандартным средствам поддержки режима реального времени относятся таймеры/счетчики и подсистема прерываний. Если таймеры необходимы для организации системных меток реального времени и отработки временных интервалов, то подсистема прерываний обеспечивает своевременную реакцию МК на асинхронные события, происходящие как внутри МС, так и вне ее.

В состав МК - 51 входят два 16-разрядных таймера/счетчика СТ0, СТ1. Еще один (СТ2) добавлен в архитектуре 8052. Состояние таймеров/счетчиков отражается программно-доступными регистровыми парами (TH0, TL0), (TH1, ТЫ) и (ТН2, TL2) соответственно, размещенными в пространстве DSEG по адресам (8СН, 8АН), (8DH, 8ВН) и (0CDH, 0ССН).

Таймеры/счетчики СТ0 - СТ2 могут быть запрограммированы для работы либо в качестве таймера, либо в качестве счетчика. Функция таймера состоит в счете числа машинных циклов, следующих с частотой OSC/12. Функция счетчика заключается в отслеживании числа переходов из 1 в 0 на соответствующих входах Т0, Tl, T2.

Управление режимом работы СТ0, СТ1 осуществляет регистр TMOD (Timer/Counter Mode), который расположен по адресу 89Н. Регистр разбит на два 4-разрядных подрегистра T0MOD и T1MOD, которые ответственны за управление СТО и СТ1 соответственно:

 

Таблица 4

TMOD.0 M0 Младший бит поля управления режимом СТ0
TMOD.l Ml Старший бит поля управления режимом СТ0:
    М0 Ml Режим М0 Ml Режим
   
   
TMOD.2 C/TN Выбор функции таймера или счетчика СТ0. При
    С/Т - 0 выбирается функция таймера, в противном случае счетчика
TMOD.3 GATE Флажок управления работой СТО. При GATE = 1 работа разрешается, если INTO = 1 и TR0 = 1(см. TCON). При GATE=0 работа счетчика зависит только от состояния TR0
TMOD.4 М0 То же, но для СТ1
TM0D.5 Ml То же, но для СТ1
TMOD.6 С/Т То же, но для СТ1
TMOD.7 GATE То же, но для СТ1

Система прерываний. Архитектура МК- 51 поддерживает двухуровневую приоритетную систему прерываний с пятью (или шестью в случае 8052) источниками запросов на обслуживание, имеющими фиксированные векторы прерываний. Программное управление системой осуществляется через два 8-разрядных регистра: IP (Interrupt Priopity) - регистр приоритета прерываний и IE (Interrupt Enable) - регистр разрешения прерываний.

Для приема внешних запросов на прерывание служат линии INT0 и INT1, которые могут быть запрограммированы на срабатывание как по переходу из одного состояния в другое, так и по уровню входного сигнала независимо друг от друга. Управление типом входа осуществляется флажками IT0/TCON.0 (Interrupt Туре 0) и IT1/TCON.2. При ITi = l устанавливается режим срабатывания по переходу из 1 в 0, в противном случае - по напряжению низкого уровня на входе INTi, i = 0-1. Запросы на прерывание от внешних источников INT0 или INT1 устанавливают флажки IE0/TCON.1 (Interrupt Edge 0) и IE1/TCON.3. В случае работы по переходу эти флажки сбрасываются автоматически при входе в соответствующую процедуру обслуживания прерывания. В случае режима работы по уровню флажки отслеживают состояние сигналов на входных линиях INT0 и INT1, повторяя все их изменения.

Источниками внутренних запросов могут быть: флажок TF0/TCON.5 (Timer Flag 0) - признак переполнения СТ0, с флажок TF1/TCON.7 - признак переполнения СП, а также флажок TI/SCON.1 (Transmit Interrupt) или флажок RI/SCON.O (Recive Interrupt).

Вывод:

Рассмотрены основные технические характеристики, структура микроконтроллера МК – 51, входящего в семейство iMCS51. Приводится материал по организации памяти, адресации и встроенных интерфейсных системах.

 

Контрольные вопросы:

1 По каким параметрам классифицируются современные микропроцес-соры?

2 В чем отличие микропроцессоров от микроконтроллеров?

3 Поясните основные параметры микроконтроллера МК-51.

4 Какие пространства памяти имеет микроконтроллер МК-51?

5 К какому типу архитектур относится микроконтроллер МК-51?

6 Как запрограммировать таймер/счетчик в режим таймера?

7 Сколько встроенных параллельных портов содержит МК-51? В чем их отличие?

8 Поясните систему прерываний, организованную в МК-51.

Тема 2.2 Система команд

План:

1 Типы команд

2 Расширение памяти программ и данных

Отладка и настройка микроконтроллерных систем

Типы команд

Система команд предоставляет большие возможности обработки данных, обеспечивает реализацию логических и арифметических операций, а также управление в режиме реального времени. Реализована побитовая, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных. Синтаксис большинства ассемблерных команд состоит из мнемонического обозначения функции, вслед за которым идут операнды, указывающие методы адресации и типы данных. Рассмотрим типы команд базового микроконтроллера:

- арифметические инструкции;

- логические инструкции;

- инструкции передачи данных во внутренней памяти данных;

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

- инструкции передачи данных, использующие память программ;

- булевы инструкции;

- инструкции безусловных переходов;

- инструкции условных переходов;

В командах реализуются следующие режимы адресации:

- Dir - прямая (регистры специальных функций или память данных);

- Ind - косвенная (допустима только относительно регистров R0 и R1; в символической записи обозначается @R0 или @R1 соответственно) ;

- Reg - регистровая;

- Imm - непосредственная (в символической записи начинается с #);

- byte - прямоадресуемый байт;

- bit - прямоадресуемый бит (в регистрах специальных функций или битовой памяти);

- битовый аккумулятор - бит переноса в PSW.

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

В инструкции MUL AB производится перемножение содержимого аккумулятора и регистра B. Старшие разряды произведения помещаются в аккумулятор, а младшие - в регистр B.

В инструкции DIV AB содержимое аккумулятора делится на содержимое регистра B. Частное помещается в аккумулятор, а остаток - в регистр B. Операнды рассматриваются как целые числа без знака:

- & -конъюнкция;

- v - дизъюнкция;

- E -"ИСКЛЮЧАЮЩЕЕ-ИЛИ";

- ^ - логическое"НЕ";

- ЦСЛ - циклический сдвиг влево;

- ЦСП - циклический сдвиг вправо;

- В операциях сдвига через бит С участвует 9-ти разрядный регистр (8-ми разрядный аккумулятор и бит переноса С) ;

- <=> - обмен местами операндов;

- в инструкции xchd a,@ri осуществляется обмен только младших тетрад операндов;

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

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

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

Некоторые Ассемблеры для инструкции вызова подпрограммы и инструкции безусловного перехода требуют от программиста явного указания длины генерируемого адреса перехода, то есть записи в программе инструкций ACALL, LCALL, AJMP, LJMP, SJMP и не воспринимают инструкции CALL, JMP. Другие Ассемблеры самостоятельно генерируют инструкции, имеющие необходимую длину поля адреса в зависимости от месторасположения адреса перехода и поэтому допускают использование лишь инструкций CALL.

 

2 Расширение памяти программ и данных

Однокристальные микроЭВМ имеют гарвардскую архитектуру, одной из отличительных черт которой является наличие физически и логически отделенных друг от друга памяти программ и памяти данных. Память данных, в свою очередь, включает в себя блок регистров общего назначения, область стека, область прямо адресуемых битов ("битовая память"), блок специальных регистров и собственно память данных, организованную в виде традиционного ОЗУ. Различные модификации микроЭВМ семейства МК51 отличаются объемом и распределением памяти между внешними и внутренними блоками.

Память данных. Память данных МК - 51, расположенная на кристалле (внутренняя память данных), имеет объем 256 байт. Она может быть расширена до 64К байт за счет подключения блоков внешней памяти данных. Внутренняя память данных состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 00h-7Fh и области регистров специальных функций, занимающей адреса 80h-FFh. Помимо возможности использования ОЗУ в качестве массива оперативной памяти, отдельные её области имеют самостоятельное значение. Часть ОЗУ используется в качестве регистров общего назначения, часть имеет прямо адресуемый доступ к отдельным битам, образуя так называемую битовую память. В ОЗУ располагается также и область стека. Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров общего назначения в каждом (БАНК0 - БАНК3). Определение рабочего в данный момент банка, то есть банка регистров, к которому обращается программа при использовании имен R0-R7, осуществляется установкой битов RS0, RS1 в регистре слова состояния PSW. Начальное состояние (RS0=RS1=0) этих разрядов после прохождения сигнала RESET определяет БАНК0 в качестве рабочего. Наличие нескольких банков регистров сокращает длину команд, а также уменьшает время, необходимое для сохранения и восстановления регистров при работе с подпрограммами и обработчиками прерываний, что характерно для задач, решаемых однокристальными микроЭВМ.

Область ОЗУ данных с адресами 20h-2Fh образует область ячеек, к которым возможна побитная адресация. Система команд МК51 содержит значительное количество инструкций, позволяющих работать с отдельными битами, используя при этом прямую адресацию. Область в 128 бит, составляющая рассматриваемую область внутреннего ОЗУ данных и имеющая адреса 00h-7Fh, предназначена для работы с такими инструкциями. Таким образом, к ячейке с адресом, например, 21h можно обратиться как к байту, используя её прямой адрес 21h, а можно обратиться к её отдельным битам в командах, работающих с битовой информацией. При этом младший бит этого байта имеет адрес 08h, а старший - 0Fh.

Область регистров специальных функций содержит защелки портов, регистры таймеров/счетчиков, регистры управления и т.п. Эти регистры допускают только прямую адресацию. Регистры, адрес которых кратен 8-ми, то есть заканчивается на 000b, допускают как байтовую, так и побитовую адресацию. Положение области стека во внутреннем ОЗУ не фиксировано, а определяется значением указателя стека SP. Начальное значение SP после системного сброса- 07h. SP указывает на верхнюю занятую ячейку стека. При обращении к стеку на запись сначала значение SP увеличивается на 1, а затем производится запись во внутреннюю память программ по адресу, хранящемуся в SP. Считывание из стека производится по адресу, хранящемуся в SP, после чего значение SP уменьшается на 1. Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации. Внутреннее ОЗУ, содержащее регистры специальных функций, адресуется с использованием только прямой адресации. К внешней памяти данных можно обращаться только с использованием специальных команд MOVX, которые осуществляют запись и считывание из неё информации и не влияют на внутреннюю память данных МК.

Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00h-0Fh и внешняя память данных с адресами 0000h-FFFFh.

Память программ.В зависимости от модификации, различные типы БИС МК51 имеют разное распределение внутренней и внешней памяти программ, оставляя неизменным общий её объем в 64К байт. Память программ адресуется при помощи 16-разрядной адресной шины с использованием счетчика команд (PC) или инструкций, которые вырабатывают 16-разрядные адреса. Она имеет байтовую организацию и доступна только по чтению.

Обращение к внутренней или внешней памяти программ происходит автоматически с использованием аппаратных средств микроЭВМ. При этом, в зависимости от состояния управляющего входа DEMA , вся память трактуется либо как только внешняя (при DEMA=0), либо как внутренняя, занимающая младшие адреса адресного пространства, и внешняя, занимающая адреса от старшего адреса внутренней памяти до максимально допустимого FFFFh (при DEMA=1). С точки зрения программиста имеется только один массив памяти объемом 64К байт.

 







Последнее изменение этой страницы: 2016-04-19; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.238.62.144 (0.01 с.)