Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

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

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Команды передачи управления микроконтроллера 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 / MCS 251.

Обозначения     Резидентная память программ Резидентное ОЗУ Таймеры/счетчики Послед. порт Аналог. входы Число линий В/В Тактовая частота Тип корпуса Секретность   Ключевые особенности
Серия 8051 (Не рекомендуется к использованию в новых разработках)
8031AH нет             D,N,P нет Процессор булевых функций
8051AH 4K ROM             D,N,P P Процессор булевых функций
8751H 4K EPROM             D L1 Один уровнь блокировки ЗУ
8751BH 4K OTP ROM             N,P L2 Два уровня блокировки ЗУ
Серия 8052 (Не рекомендуется к использованию в новых разработках)
8032AH нет             D,N,P нет Три таймера-счетчика
8052AH 8K ROM             D,N,P нет Три таймера-счетчика
8752BH 8K OTP/EPROM             D,N,P L2 Два уровня блокировки ЗУ
Серия 80C51
80C31BH нет           12,16 D,N,P,S нет Режимы управления потреблением
80C51BH 4K ROM           12,16 D,N,P,S P Режимы управления потреблением
87C51 4K OTP/EPROM           12,16,20,24i D,N,P,S L3 Три уровня блокировки ЗУ
Серия 8X52 /54 /58
80C32 нет           12,16,20,24i N,P,S нет Реверсивный таймер-счетчик
80C52 8K ROM           12,16,20,24i N,P,S L1 Реверсивный таймер-счетчик
87C52 8K OTP/EPROM           12,16,20,24i D,N,P,S L3 Реверсивный таймер-счетчик
80C54 нет           12,16,20,24i N,P,S L1 Реверсивный таймер-счетчик
87C54 16K OTP/EPROM           12,16,20,24i D,N,P,S L3 Реверсивный таймер-счетчик
80C58 нет           12,16,20,24i N,P,S L1 Реверсивный таймер-счетчик
87C58 32K OTP/EPROM           12,16,20,24i D,N,P,S L3 Реверсивный таймер-счетчик
Серия 8XL52 /54 /58
80L52 8K ROM           12,16,20* N,S L1 VCC от 2.7В до 3.6В
87L52 8K OTP ROM           12,16,20* N,S L3 VCC от 2.7В до 3.6В
80L54 16K ROM           12,16,20* N,S L1 VCC от 2.7В до 3.6В
87L54 16K OTP ROM           12,16,20* N,S L3 VCC от 2.7В до 3.6В
80L58 32K ROM           12,16,20* N,S L1 VCC от 2.7В до 3.6В
87L58 32K OTP ROM           12,16,20* N,S L3 VCC от 2.7В до 3.6В
Серия 8XC51FA /FB /FC
80C51FA нет           12,16 N,P,S нет Матрица программируемых счетчиков (PCA)
83C51FA 8K ROM           12,16 N,P,S L1 Матрица программируемых счетчиков (PCA)
87C51FA 8K OTP/EPROM*           12,16,20,24i D,N,P,S L3 Матрица программируемых счетчиков (PCA)
83C51FB 16K ROM           12,16,20,24i N,P,S L1 Матрица программируемых счетчиков (PCA)
87C51FB 16K OTP/EPROM*           12,16,20,24i D,N,P,S L3 Матрица программируемых счетчиков (PCA)
83C51FC 32K ROM           12,16,20,24i N,P,S L1 Матрица программируемых счетчиков (PCA)
87C51FC 32K OTP/EPROM*           12,16,20,24i D,N,P,S L3 Матрица программируемых счетчиков (PCA)
Серия 8XL51FA /FB /FC
80L51FA нет           12,16,20* N,S нет VCC от 2.7В до 3.6В, PCA
83L51FA 8K ROM           12,16,20* N,S L1 VCC от 2.7В до 3.6В, PCA
87L51FA 8K OTP ROM           12,16,20* N,S L3 VCC от 2.7В до 3.6В, PCA
83L51FB 16K ROM           12,16,20* N,S L1 VCC от 2.7В до 3.6В, PCA
87L51FB 16K OTP ROM           12,16,20* N,S L3 VCC от 2.7В до 3.6В, PCA
83L51FC 32K ROM           12,16,20* N,S L1 VCC от 2.7В до 3.6В, PCA
Обозначения     Резидентная память программ Резидентное ОЗУ Таймеры/счетчики Послед. порт Аналог. входы Число линий В/В Тактовая частота Тип корпуса Секретность   Ключевые особенности
87L51FC 32K OTP ROM           12,16,20* N,S L3 VCC от 2.7В до 3.6В, PCA
Серия 8XC51RA /RB /RC
80C51RA нет           12,16,20,24i N,P нет Расширенное ОЗУ, PCA, аппаратный WDT
83C51RA 8K ROM           12,16,20,24i N,P L1 Расширенное ОЗУ, PCA, аппаратный WDT
87C51RA 8K OTP ROM           12,16,20,24i N,P L3 Расширенное ОЗУ, PCA, аппаратный WDT
83C51RB 16K ROM           12,16,20,24i N,P L1 Расширенное ОЗУ, PCA, аппаратный WDT
87C51RB 16K OTP ROM           12,16,20,24i N,P L3 Расширенное ОЗУ, PCA, аппаратный WDT
83C51RC 32K ROM           12,16,20,24i N,P L1 Расширенное ОЗУ, PCA, аппаратный WDT
87C51RC 32K OTP ROM           12,16,20,24i N,P L3 Расширенное ОЗУ, PCA, аппаратный WDT
Серия 8XC51GB
80C51GB нет     1+SEP     12,16 N1 нет 8-разрядный АЦП, 2 PCA, 6 портов В/В
83C51GB 8K ROM     1+SEP     12,16 N1 L1 8-разрядный АЦП, 2 PCA, 6 портов В/В
87C51GB 8K OTP ROM     1+SEP     12,16 N1 L3 8-разрядный АЦП, 2 PCA, 6 портов В/В
Серия 8XC152 — Коммуникационные контроллеры
80C152JA нет           12,16 P1,N1 нет Многопротокольный послед. канал, 2 DMA
80C152JB нет           12,16 N1 нет Многопротокольный послед. канал, 2 DMA
83C152JA 8K ROM           12,16 P1,N1 нет Многопротокольный послед. канал, 2 DMA
Серия 8XC51SL — Контроллеры клавиатуры
80C51SL-AH нет             KU нет Управление клавиатурой потребителя
81C51SL-AH 16K ROM1             KU нет Управление клавиатурой потребителя
83C51SL-AH 16K ROM             KU нет Управление клавиатурой потребителя
87C51SL-AH 16K OTP             KU нет Управление клавиатурой потребителя
80C51SL-AL нет             SB нет VCC от 3В до 3.6В, 8-разрядный АЦП
81C51SL-AL 16K ROM1             SB нет VCC от 3В до 3.6В, 8-разрядный АЦП
83C51SL-AL 16K ROM             SB нет VCC от 3В до 3.6В, 8-разрядный АЦП
87C51SL-AL 16K OTP             SB нет VCC от 3В до 3.6В, 8-разрядный АЦП
MCS251 — Новая архитектура
80C251SB нет 1K         12,16 N нет Расшир. архитектура, PCA, аппаратный WDT
83C251SB 16K ROM 1K         12,16 N L1 Расшир. архитектура, PCA, аппаратный WDT
87C251SB 16K OTP ROM 1K         12,16 N L3 Расшир. архитектура, PCA, аппаратный WDT

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных