Команды передачи управления микроконтроллера 8051.
Группа представлена командами безусловного и условного переходов, командами вызова подпрограмм и командами возврата из подпрограмм.
В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица.11.Команды передачи управления
Название команды | Мнемокод | КОП | Т | Б | Ц | Операция |
Длинный переход в полном объеме ПП | LJMP ad16 | (PC) ad16 | ||||
Абсолютный переход внутри страницы в 2 Кб | AJMP ad11 | a10a9a800001 | (PC) (PC) + 2, (PC0-10) ad11 | |||
Короткий относительный переход внутри страницы в 256 байт | SJMP rel | (PC) (PC) + 2, (PC) (PC) +rel | ||||
Косвенный относительный переход | JMP @A+DPTR | (PC) (A) + (DPTR) | ||||
Переход, если аккумулятор равен нулю | JZ rel | (PC)(PC)+2, если (A)=0, то (PC)(PC)+rel | ||||
Переход, если аккумулятор не равен нулю | JNZ rel | (PC)(PC)+2, если (A)≠0, то (PC)(PC)+rel | ||||
Переход, если перенос равен единице | JC rel | (PC)(PC)+2, если (С)=1, то (PC)(PC)+rel | ||||
Переход, если перенос равен нулю | JNC rel | (PC)(PC)+2, если (С)=0, то (PC)(PC)+rel | ||||
Переход, если бит равен единице | JB bit, rel | (PC)(PC)+3, если (b)=l, то (PC)(PC)+rel | ||||
Переход, если бит равен нулю | JNB bit, rel | (PC)(PC)+3, если (b)=0, то (PC)(PC)+rel | ||||
Переход, если бит установлен, с последующим сбросом бита | JBC bit, rel | (PC) (PC) + 3, если (b)=1, то (b) 0 и (PC) (PC) + rel | ||||
Декремент регистра и переход, если не нуль | DJNZ Rn, rel | 11011rrr | (PC) (PC) + 2, (Rn) (Rn) - 1, если (Rn) ≠ 0, то (PC) (PC) + rel | |||
Декремент прямоадресуемого байта и переход, если не нуль | DJNZ ad, rel | (PC) (PC) + 2, (ad) (ad) - 1, если (ad) ≠ 0, то (PC) (PC) + rel | ||||
Сравнение аккумулятора с прямоадресуемым байтом и переход, если не равно | CJNE A, ad, rel | (PC) (PC) + 3,если (A) ≠ (ad), то (PC) (PC) + rel,если (A) < (ad), то (C) 1, иначе (C) 0 | ||||
Сравнение аккумулятора с константой и переход, если не равно | CJNE A, #d, rel | (PC) (PC) + 3,если (A) ≠ #d, то (PC) (PC) + rel,если (A) < #d, то (C) 1, иначе (С) 0 | ||||
Сравнение регистра с константой и переход, если не равно | CJNE Rn, #d, rel | 10111rrr | (PC) (PC) + 3,если (Rn) ≠ #d, то (PC) (PC) + rel,если (Rn) < #d, то (C) 1, иначе (С) 0 | |||
Сравнение байта в РПД с константой и переход, если не равно | CJNE @Ri,#d,rel | 1011011i | (PC) (PC) + 3,если ((Ri)) ≠ #d, то (PC) (PC) + rel,если ((Ri)) < #d, то (C) 1, иначе (C) 0 | |||
Длинный вызов подпрограммы | LCALL adl6 | (PC) (PC) + 3, (SP) (SP) +1, ((SP)) (PC0…7), (SP) (SP) + 1, ((SP)) (PC8…15), (PC) ad16 | ||||
Абсолютный вызов подпрограммы в пределах страницы в 2 Кб | ACALL ad11 | a10a9a810001 | (PC) (PC) + 2, (SP) (SP) + 1, ((SP)) (PC0…7), (SP) (SP) + 1, ((SP)) (PC8…15), (PC0-10) ad11 | |||
Возврат из подпрограммы | RET | (PC8…15) ((SP)), (SP) (SP) - 1, (PC0…7) ((SP)), (SP) (SP) – 1 | ||||
Возврат из подпрограммы обработки прерывания | RETI | (PC8…15) ((SP)), (SP) (SP) - 1, (PC0…7) ((SP)), (SP) (SP) – 1 | ||||
Пустая операция | NOP | (PC) (PC) + 1 |
Команда безусловного перехода LJMP (L – long – длинный) осуществляет переход по абсолютному 16-битному адресу, указанному в теле команды, т. е. команда обеспечивает переход в любую точку памяти программ.
Действие команды AJMP (А – absolute – абсолютный) аналогично команде LJMP, однако в теле команды указаны лишь 11 младших разрядов адреса. Поэтому переход осуществляется в пределах страницы размером 2 Кбайт, при этом надо иметь в виду, что сначала содержимое счетчика команд увеличивается на 2 и только потом заменяются 11 разрядов адреса.
В отличие от предыдущих команд, в команде SJMP (S – short – короткий) указан не абсолютный, а относительный адрес перехода. Величина смещения reI рассматривается как число со знаком, а, следовательно, переход возможен в пределах – 128...+127 байт относительно адреса команды, следующей за командой SJMP.
Команда косвенного перехода JMP @A+DPTR позволяет вычислять адрес перехода в процессе выполнения самой программы.
Командами условного перехода можно проверять следующие условия:
- JZ — аккумулятор содержит нулевое значение;
- JNZ — аккумулятор содержит не нулевое значение
- JC — бит переноса С установлен;
- JNC — бит переноса С не установлен;
- JB — прямо адресуемый бит равен 1
- JNB — прямо адресуемый бит равен 0;
- JBC — прямо адресуемый бит равен 1 и сбрасывается в нулевое значение при выполнении команды.
Все команды условного перехода рассматриваемых микро-ЭВМ содержат короткий относительный адрес, т. е. переход может осуществляться в пределах—128... +127 байт относительно следующей команды.
Команда DJNZ предназначена для организации программных циклов. Регистр Rn или байт по адресу ad, указанные в теле команды, содержат счетчик повторений цикла, а смещение rеl — относительный адрес перехода к началу цикла. При выполнении команды содержимое счетчика уменьшается на 1 и проверяется на 0. Если значение содержимого счетчика не равно 0, то осуществляется переход на начало цикла, в противном случае выполняется следующая команда.
Команда CJN удобна для реализации процедур ожидания внешних событий. В теле команды указаны "координаты" двух байт и относительный адрес перехода rel. В качестве двух байт могут быть использованы, например, значения содержимого аккумулятора и прямо адресуемого байта или косвенно адресуемого байта и константы. При выполнении команды значения указанных двух байт сравниваются и в случае, если они не одинаковы, осуществляется переход. Например, команда
WAIT: CJNE A, P0, WAIT
будет выполняться до тех пор, пока значения на линиях порта P0 не совпадут со значениями содержимого аккумулятора.
Действие команд вызова процедур полностью аналогично действию команд безусловного перехода. Единственное отличие состоит в том, что они сохраняют в стеке адрес возврата.
Команда возврата из подпрограммы RET восстанавливает из стека значение содержимого счетчика команд, а команда возврата из процедуры обработки прерывания RETI, кроме того, разрешает прерывание обслуженного уровня. Команды RET и RETI не различают, какой командой – LCALL или ACALL – была вызвана подпрограмма, так как и в том, и в другом случае в стеке сохраняется полный 16-разрядный адрес возврата.
В заключение следует отметить, что большинство Ассемблеров допускают обобщенную мнемонику JMP – для команд безусловного перехода и CALL – для команд вызова подпрограмм. Конкретный тип команды определяется Ассемблером, исходя из "длины" перехода или вызова.
Дополнительные устройства в расширенных вариантах микроконтроллера.
В процессе совершенствования появились усовершенствованные модели микроконтроллеров семейства MCS-51, оснащенные дополнительными периферийными устройствами.
5.0.1.Расширения микропроцессоров семейства MCS-51/52.
Наряду с созданием сложных и высокоинтегрированных схем, Intel также совершенствует микросхемы, выпуск которых был освоен давно, например, 8-раз-рядные микроконтроллеры или однокристальные ЭВМ из семейства MCS-51 (отечественный аналог KM1816BE51). Эти микросхемы хорошо зарекомендовали себя в недорогих и сравнительно несложных устройствах. Основными направлениями модернизации данных Микроконтроллеров являются:
- увеличение внутренней памяти программ до 32К, причем она может быть масочной, однократно программируемой или с ультрафиолетовым стиранием;
- снижение потребляемой мощности путем применения КМОП-технологии и специальных режимов пониженного энергопотребления;
- увеличение тактовой частоты до 20 Мгц;
- модификация режимов работы счетчиков-таймеров и последовательного порта;
- размещение на кристалле дополнительного оборудования.
Эти микроконтроллеры выпускаются в PLCC, DIP и QFP корпусах и могут работать в следующих температурных диапазонах:
- коммерческий (0°C — +70°C);
- расширенный (-40°C — +85°С):
- для военного использования (-55°C — +125°С).
Все микроконтроллеры из семейства MCS-51 имеют общую систему команд. Наличие дополнительного оборудования влияет только на количество регистров специального назначения.
5.0.2.8052.
В состав этого семейства входят микро-ЭВМ 80С52, 80С54, 80С58 с масочно программируемым ПЗУ версии 87С52, 87С54 и 87С58 с ПЗУ, стираемым УФ облучением, а также микро-ЭВМ 80С32, не имеющая внутреннего ПЗУ. Между собой они различаются также корпусами, рабочими интервалами температур, предельно допустимой тактовой частотой и рядом других параметров, отражаемыми в буквенно-цифровой информации после обозначения типа микро-ЭВМ. Эту информацию можно получить из фирменных руководств Intel, AMD и других производителей микро-ЭВМ рассматриваемого семейства.
В отличие от 8051 микро-ЭВМ семейства 8052 имеют:
- встроенное ПЗУ объемом 8 (80С52), 16 (80С54) и 32 Кбайт (80С58);
- встроенное ОЗУ объемом 256 байт;
- дополнительные специальные функциональные регистры;
- таймер/счетчик 2 (далее для краткости — Т/С2), способный работать в режимах защелки, тай мера/счетчика, допускающего счет как на увеличение, так и на уменьшение, и генератора скорости передачи в бодах;
- программируемый последовательный интерфейс с детектированием ошибок передачи и автоматическим распознаванием адреса;
- шесть источников прерываний;
- расширенный режим снижения потребляемой мощности; — флаг отключения питания; — режим ONCE.
Микро-ЭВМ 8052 используют стандартный набор команд семейства 8051, их выводы взаимно однозначно соответствуют выводам этих микро-ЭВМ. Отличие заключается лишь в том, что, помимо ввода\вывода информации, выводы Р1.0 и Р1.1 8052 могут выполнять альтернативные функции: первый из них играет роль внешнего входа для Т/С2, а второй управляет перезагрузкой/защелкиванием информации в регистры Т/С2.
XC51FA .
В качестве одной из перспективных моделей MCS-51 можно считать микросхему 8XC51FA. В ее состав входят:
- четыре 8-битных параллельных порта;
- модуль РСА:
- последовательный порт;
- три 16-битных счетчика— таймера.
Микроконтроллеры с внутренней памятью программ позволяют защищать свои программные коды от копирования. Для этого используется схема блокировки внутренней памяти программ, которая состоит из специальных битов (Lock bits) и кодирующего массива (Encryption Array). Запрограммировав один или несколько таких битов, можно полностью или частично заблокировать эту память. При полной блокировке будет невозможно: — чтение с внешней шины внутренней памяти программ; — дальнейшее программирование кристалла; — выполнение команд и внешней памяти программ. При частичной блокировке возможно запретить или разрешить вышеперечисленные действия по отдельности. Кодирующий массив используется для поразрядного выполнения логической операции XNOR над байтами из внутренней памяти программ и байтами из этого массива при верификации, если она разрешена.
Основным отличием моделей 8ХС51РА от отечественных аналогов является наличие модуля РСА (Programmable Counter Array) .
Это устройство состоит из 16-разрядного счетчика-таймера и пяти модулей сравнения-захвата. В качестве входных импульсов для счетчика-таймера могут служить сигналы:
- частота резонатора /12;
- переполнение от Timer 0;
- частота резонатора /4;
- внешний сигнал на контакте Р1.2.
Каждый из пяти модулей сравнения-захвата может работать в следующих режимах :
- захват положительного или отрицательного фронта;
- программный таймер;
- скоростной вывод;
- генератор прямоугольных импульсов с заданной скважностью.
Четвертый модуль имеет также режим Watchdog Timer .
РСА рекомендуется использовать для измерения таких параметров, как ширина импульса, разность фаз, скважность и частота, а также для формирования на внешних выводах микроконтроллера прямоугольных сигналов. В принципе, для этих целей можно использовать счетчики-таймеры, которые имеются на кристалле. Однако при использовании РСА повышается точность за счет того, что счетчик-таймер, входящий в состав РСА, может изменять свое значение трижды за машинный цикл. Отметим, что обычные счетчики-таймеры могут изменять свое значение лишь один раз за машинный цикл. Кроме того, РСА требует значительно меньшего вмешательства процессора.
XC51GB.
Большой интерес для разработчиков электронной аппаратуры могут представлять микроконтроллеры 8XC51GB. На кристалле этого устройства имеется следующее оборудование:
- шесть 8-битных параллельных портов:
- два модуля РСА ;
- три 16-битных счетчика— таймера;
- детектор падения частоты;
- два последовательных порта;
- отдельный Watchdog Timer:
- 8-канальный, 8-битный АЦП поразрядного приближения .
С152 .
Развитие коммуникационных возможностей MCS-51 нашло отражение в микроконтроллере 80С152, где наряду с обычным последовательным портом появляется GSC (Global Serial Channel). Это устройство поддерживает стандартные протоколы SDLC и применяемый в сетях Ethernet CSMA/CD. Также возможно использование протоколов, определенных пользователем. GSC обеспечивает работу на физическом и канальном уровнях согласно базовой модели открытых систем ISO. Для передачи информации используются NRZI и манчестерский коды. Кроме GSC микроконтроллер 80С152 имеет пять 8-битных параллельных портов для 48-выводного DIP корпуса (семь для 68-выводного PLCC), два канала ПДП и два счетчика-таймера.
Дата добавления: 2016-03-27; просмотров: 1337;