Проектирование цифровых устройств на микроконтроллерах семейства MCS-51
Основой микроконтроллера (см. рис. 1) является 8-ми битовое Арифметическое-Логическое устройство (АЛУ). Память МК логически разделена: на память программ — ПП (внутреннюю или внешнюю), адресуемую 16-ти битовым счетчиком команд (СК) и память данных — внутреннюю (Резидентная память данных — РПД) 128 (или 256) байт, а также внешнюю (Внешняя память данных — ВПД) до 64 Кбайт. Физически память программ… Читать ещё >
Проектирование цифровых устройств на микроконтроллерах семейства MCS-51 (реферат, курсовая, диплом, контрольная)
Проектирование цифровых устройств на микроконтроллерах семейства MCS-51
1. Структурная схема микроконтроллеров семейства MCS-51
Принятые сокращения:
8ADR | ; | младшие 8 бит адреса Программной Памяти (ПП); | |
11ADR | ; | 11-ти битовый адрес в текущей странице Программной Памяти (ПП) по 2 Кбайта; | |
16ADR | ; | 16-ти битовый адрес Программной Памяти; | |
bit | ; | 8-ми битовый адрес прямоадресуемого бита в Резидентной Памяти Данных (РПД) или в блоке Регистров Специальных функций (РСФ); | |
#DAT | ; | 8-ми битовый непосредственный операнд; | |
#D16 | ; | 16-ти битовый непосредственный операнд; | |
dir | ; | 8-ми битовый адрес прямоадресуемого байта в РПД или РСФ; | |
DPTR | ; | Регистр указатель данных | |
Ft | ; | Частота кварцевого генератора; | |
PC | ; | Программный счетчик; | |
Р0, Р1, Р2, Р3 — 8- ми битовые двунаправленные Порты ввода/вывода; | |||
PSW | ; | Слово состояния процессора; | |
rel | ; | 8-ми битовое смещение адреса Программной Памяти (со знаком в дополнительном коде); | |
Ri | ; | Регистры косвенной адресации (R0, R1); | |
i | ; | Двоичный код регистра косвенной адресации; | |
Rn | ; | Регистры Общего Назначения (РОНы) — (R0_R7); | |
r r r | ; | Двоичный код РОНа; | |
SFR | ; | Блок Регистров Специальных Функций (РСФ); | |
S0_S7 | ; | Страницы Программной Памяти (ПП) по 256 байт; | |
sss | ; | (A10,A9,A8 — три бита адреса) — двоичный код номера страницы ПП по 256 байт; | |
SP | ; | Указатель стека; | |
& | ; | Логическая команда «И» | |
; | Логическая команда «ИЛИ» | ||
(+) | ; | Логическая команда «ИСКЛЮЧАЮЩЕЕ ИЛИ» | |
~ | ; | Логическая команда «ИНВЕРСИЯ» | |
<> | ; | Неравенство | |
[ ] | ; | В скобках указаны номера битов; | |
() | ; | В скобках указан адрес операнда в Резидентной Памяти Данных (РПД) или Внешней Памяти Данных (ВПД); | |
(()) | ; | В скобках указан адрес операнда в Памяти Программ (ПП) (Резидентной или Внешней); | |
Таблица 1 — Отличительные особенности микроконтроллеров семейства MCS-51
Контроллер | ROM/ EPROM (кбайт) | RAM (байт) | Т/С | Макс. Ft (МГц) | Особенности группы | |
8031AH | ; | n-MOS технология, Базовая конфигурация, 4 порта | ||||
8051AH | 4K ROM | |||||
8751H | 4K EPROM | |||||
80C31BH | ; | 12, 16 | CMOS технология, Режим понижен. энерго-потребл., 3 бита защиты | |||
80C51BH | 4K ROM | 12, 16 | ||||
87C51BH | 4K EPROM | 16, 20 | ||||
8032AH | ; | n-MOS технология, 4 порта, 3 бита защиты | ||||
8052AH | 8K ROM | |||||
8752BH | 8K EPROM | |||||
80С32 | ; | 20, 24 | CMOS технология, Таймер/счетчик с прямым и обратным счетом, 3 бита защиты | |||
80С52 | 8K ROM | 20, 24 | ||||
87C52 | 8K EPROM | 20, 24 | ||||
80C54 | 16K ROM | 20, 24 | ||||
87C54 | 16K EPROM | 20, 24 | ||||
80C58 | 32K ROM | 20, 24 | ||||
87C58 | 32KEPROM | 20, 24 | ||||
80L52 | 8K ROM | 16, 20 | Контроллеры с пониженным напряжением питания 2,7…3,6 Вольт | |||
87L52 | 8K EPROM | 16, 20 | ||||
80L54 | 16K ROM | 16, 20 | ||||
87L54 | 16K EPROM | 16, 20 | ||||
80L58 | 32K ROM | 16, 20 | ||||
87L58 | 32KEPROM | 16, 20 | ||||
80C31FA | ; | 20, 24 | Модуль РСА, Т/С с прямым и обратным счетом | |||
80C51FA | 8K ROM | 20,24 | ||||
87C51FA | 8K EPROM | 20,24 | ||||
83C51FB | 16K ROM | 20, 24 | Сторожевой таймер, 3 бита защиты | |||
87C51FB | 16K EPROM | 20, 24 | ||||
83C51FC | 32K ROM | 20, 24 | ||||
87C51FC | 32KEPROM | 20, 24 | ||||
80С51GB | ; | 20, 24 | АЦП (8 кан/8 разрядов), 2 РСА, 6 портов I/O, Сторожевой таймер | |||
83C51GB | 8K ROM | 20, 24 | ||||
87C51GB | 8K EPROM | 20, 24 | ||||
Новое семейство микроконтроллеров 8xC151Sx (MCS-151) по системе команд, набору программно доступных ресурсов, системе прерываний, набору блоков ввода-вывода и функциям выводов корпуса совместимы с микроконтроллерами 8xC51Fx. Усовершенствования коснулись, в основном, операционного ядра. Введены: конвейер команд, режим страничной адресации памяти и др.
В результате при конвейерной выборке в пределах одной страницы время выполнения команды составляет два периода частоты задающего кварцевого генератора (вместо 12 периодов у предыдущего семейства MCS-51).
Микроконтроллеры семейства MCS-251 являются развитием архитектуры семейств MCS-51 и MCS-151. В основу положена «старая» система команд и устоявшийся набор блоков ввода/вывода: три таймера-счетчика, последовательный порт, блок РСА и сторожевой таймер.
Центральный процессор микроконтроллеров MCS-251 построен с использованием конвейера команд (время выполнения команд — 2 периода частоты кварцевого генератора) и регистрового файла. Система команд дополнена инструкциями, оперирующими 16-ти и 32-х разрядными операндами.
Основой микроконтроллера (см. рис. 1) является 8-ми битовое Арифметическое-Логическое устройство (АЛУ). Память МК логически разделена: на память программ — ПП (внутреннюю или внешнюю), адресуемую 16-ти битовым счетчиком команд (СК) и память данных — внутреннюю (Резидентная память данных — РПД) 128 (или 256) байт, а также внешнюю (Внешняя память данных — ВПД) до 64 Кбайт. Физически память программ реализована на ПЗУ (доступна только по чтению), а память данных — на ОЗУ (возможна запись и чтение данных).
Прием и выдача внешних сигналов осуществляется через 4 восьмибитовых порта Р0. Р3. При обращении к внешней памяти программ (ВПП) или памяти данных (ВПД) порты Р0 и Р2 используются как мультиплексированная внешняя шина Адрес/Данные. Линии порта Р3 могут выполнять также альтернативные функции (см. табл. 2).
16-ти битовый регистр DPTR формирует адрес ВПД или базовый адрес Памяти программ в команде преобразования Аккумулятора. Регистр DPTR может также использоваться как два независимых 8-ми битовых регистра (DPL и DPH) для хранения операндов.
8-ми битовый внутренний регистр команд (РК) принимает код выполняемой команды; этот код дешифрируется схемой управления, которая генерирует управляющие сигналы (см. рис. 1).
Обращение к регистрам специальных функций — РСФ (SFR — на рис. 1 они обведены пунктирной линией) возможно только с использованием прямой байтовой адресации в диапазоне адресов от 128 (80h) и более.
Резидентная память данных (РПД) в первых моделях микроконтроллеров семейства MCS-51 имела объем 128 байт. Младшие 32 байта являются одновременно и регистрами общего назначения — РОН (4 банка по 8 РОНов). Программа может обратиться к одному из 8-ми РОНов активного банка. Выбор активного банка РОНов осуществляется программированием двух бит в регистре состояния процессора — PSW (см. табл. 5). Переключение банков РОНов упрощает выполнение подпрограмм и обработку прерываний, т.к. не нужно пересылать в стек содержимое РОНов основной программы при вызове подпрограммы.
Таблица 2 — Назначение выводов MCS-51
№ выв. | Обозначение | Назначение | |
1.8 | Р1[0.7] | 8-ми битовый квазидвунаправленный порт ввода/вывода | |
RST | Сигнал сброса (активный уровень — высокий); Сигнал RST обнуляет: PC и большинство Регистров Специальных Функций (SFR), запрещая все прерывания и работу таймеров; выбирает Банк РОНов 0; записывает в порты Р0_Р3 «все единицы», подготавливая их на ввод; записывает код 07H в указатель стека (SP); | ||
10.17 | P3[0.7] P3[0] P3[1] P3[2] P3[3] P3[4] P3[5] P3[6] P3[7] | 8-ми битовый квазидвунаправленный порт ввода/вывода; после записи в соответствующий разряд «1» — выполняет дополнительные (альтернативные) функции: Вход последовательного порта — RxD; Выход последовательного порта — TxD; Вход внешнего прерывания 0 — ~INT0; Вход внешнего прерывания 1 — ~INT1; Вход таймера/счетчика 0 — Т0; Вход таймера/счетчика 1 — Т1; Выход строб. сигнала при записи в ВПД — ~WR; Выход строб. сигнала при чтении из ВПД — ~RD; | |
18, 19 | X1, X2 | Выводы для подключения кварцевого резонатора или LC-контура; | |
GND | Общий вывод; | ||
21.28 | P2[0.7] | 8-ми битовый квазидвунаправленный порт ввода /вывода; или выход адреса A[815] в режиме работы с внешней памятью (ВПП или ВПД); | |
PME | Строб чтения Внешней Памяти Программ, выда-ется только при обращении к внешнему ПЗУ; | ||
ALE | Строб адреса Внешней памяти (ВПП или ВПД); | ||
ЕА | Отключение РПП, уровень «0» на этом входе пе-реводит МК на выборку команд только из ВПП; | ||
39.32 | Р0[0.7] | 8-ми битовый двунаправленный порт ввода/ вывода; при обращении к Внешней Памяти выдает адреса A[07] (которые записываются во внешний регистр по сигналу ALE), а затем обменивается байтом синхронно с сигналом ~PME (для команд) или ~WR,~RD (для данных в ВПД), при обращении к Внешней Памяти в регистр порта Р0 записываются все единицы, разрушая хранимую там информацию; | |
Ucc | Вывод напряжения питания | ||
Обращение к РПД возможно с использованием косвенной или прямой байтовой адресации.
Расширенная область РПД (у микроконтроллеров семейства MCS-52 и последующих семейств) с адреса 128 (80h) до 255 (FFh) может адресоваться только с использованием косвенного метода адресации.
Таблица 3 — Блок Регистров Специальных Функций (s f r)
Адрес Dir | Мнемо-код | Наименование | |
0E0h | * ACC | Аккумулятор | |
0F0h | * B | Регистр расширитель аккумулятора | |
0D0h | * PSW | Слово состояния процессора | |
0B0h | * P3 | Порт 3 | |
0A0h | * P2 | Порт 2 | |
90h | * P1 | Порт 1 | |
80h | * P0 | Порт 0 | |
0B8h | * IP | Регистр приоритетов прерываний | |
0A8h | * IE | Регистр маски прерываний | |
99h | SBUF | Буфер последовательного приемо-передатчика | |
98h | * SCON | Регистр управления/статуса последовательного порта | |
89h | TMOD | Регистр режимов таймеров/счетчиков | |
88h | * TCON | Регистр управления/статуса таймеров/счетчиков | |
8Dh | TH1 | Таймер 1 (старший байт) | |
8Bh | TL1 | Таймер 1 (младший байт) | |
8Ch | TH0 | Таймер 0 (старший байт) | |
8Ah | TL0 | Таймер 0 (младший байт) | |
83h | DPH | Регистр-указатель данных (DPTR)(старший байт) | |
82h | DPL | Регистр-указатель данных (DPTR)(младший байт) | |
81h | SP | Регистр-указатель стека | |
87h | PCON | Регистр управления мощностью потребления | |
* - Отмеченные регистры допускают адресацию отдельных бит (см. табл. 4)
2. Программная модель MCS-51
2.1 Карта прямоадресуемых бит
В Резидентной Памяти Данных В блоке Регистров Спец. Функций
7Fh | ||||||||||||||||||
Адреса РПД | Адреса | |||||||||||||||||
SFR | ||||||||||||||||||
30h | Регистр В | |||||||||||||||||
2Fh | 7F | 7E | 7D | 7C | 7B | 7A | 0F0h | F7 | F6 | F5 | F4 | F3 | F2 | F1 | F0 | |||
2Eh | ||||||||||||||||||
2Dh | 6F | 6E | 6D | 6C | 6B | 6A | ||||||||||||
2Ch | Регистр АСС | |||||||||||||||||
2Bh | 5F | 5E | 5D | 5C | 5B | 5A | 0E0h | E7 | E6 | E5 | E4 | E3 | E2 | E1 | E0 | |||
2Ah | ||||||||||||||||||
29h | 4F | 4E | 4D | 4C | 4B | 4A | ||||||||||||
28h | ||||||||||||||||||
27h | 3F | 3E | 3D | 3C | 3B | 3A | ||||||||||||
26h | IP | |||||||||||||||||
25h | 2F | 2E | 2D | 2C | 2B | 2A | 0B8h | BC | BB | BA | B9 | B8 | ||||||
24h | ||||||||||||||||||
23h | 1F | 1E | 1D | 1C | 1B | 1A | Порт Р3 | |||||||||||
22h | 0B0h | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | |||||||||
21h | 0F | 0E | 0D | 0C | 0B | 0A | ||||||||||||
20h | IE | |||||||||||||||||
1Fh | R7 | 0A8h | AF | AC | AB | AA | A9 | A8 | ||||||||||
Порт Р2 | ||||||||||||||||||
18h | R0 | 0A0h | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | ||||||||
17h | R7 | |||||||||||||||||
SCON | ||||||||||||||||||
98h | 9F | 9E | 9D | 9C | 9B | 9A | ||||||||||||
10h | R0 | |||||||||||||||||
R7 | Порт Р1 | |||||||||||||||||
90h | ||||||||||||||||||
08h | R0 | TCON | ||||||||||||||||
07h | R7 | 88h | 8F | 8E | 8D | 8C | 8B | 8A | ||||||||||
Порт Р0 | ||||||||||||||||||
00h | R0 | 80h | ||||||||||||||||
2.2 Типы команд MCS-51
Почти половина команд выполняется за 1 машинный цикл (МЦ) (см. таблицы 8.12). При частоте кварцевого генератора 12 МГц время выполнения такой команды — 1 мкс. Остальные команды выполняются за 2 машинных цикла, т. е. за 2мкс (см. таблицы 8.12). Только команды умножения (MUL) и деления (DIV) выполняются за 4 машинных цикла.
За время одного машинного цикла происходит два обращения к Памяти Программ (внутренней или внешней) для считывания двух байтов команды или одно обращение к Внешней Памяти Данных (ВПД).
3. Методы (способы) адресации MCS-51
1. РЕГИСТРОВАЯ АДРЕСАЦИЯ — 8-ми битовый операнд находится в РОНе выбранного банка регистров;
2 НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ — операнд находится во втором (а для 16-ти битового операнда и в третьем) байте команды;
3 КОСВЕННАЯ АДРЕСАЦИЯ — операнд находится в Памяти Данных (РПД или ВПД), а адрес ячейки памяти содержится в одном из РОНов косвенной адресации (R0 или R1); в командах PUSH и POP адрес содержится в указателе стека SP; регистр DPTR может содержать адрес ВПД объемом до 64К;
4 ПРЯМАЯ БАЙТОВАЯ АДРЕСАЦИЯ — (dir) — используется для обращения к ячейкам РПД (адреса 00h…7Fh) и к регистрам специальных функций SFR (адреса 80h…0FFh);
5 ПРЯМАЯ БИТОВАЯ АДРЕСАЦИЯ — (bit) — используется для обращения к отдельно адресуемым 128 битам, расположенным в ячейках РПД по адресам 20H…2FH и к отдельно адресуемым битам регистров специальных функций (см. табл. 2.3);
6 КОСВЕННАЯ ИНДЕКСНАЯ АДРЕСАЦИЯ — упрощает просмотр таблиц в Памяти Программ, адрес ПП определяется по сумме базового регистра (PC или DPTR) и индексного регистра (Аккумулятора);
7 НЕЯВНАЯ (ВСТРОЕННАЯ) АДРЕСАЦИЯ — в коде команды содержится неявное (по умолчанию) указание на один из операндов (чаще всего на Аккумулятор).
ФОРМАТ СЛОВА СОСТОЯНИЯ ПРОЦЕССОРА (PSW)
Прямой байтовый адрес PSW: dir — 0D0H.
Допускается адресация отдельных бит PSW: bit — 0D0H_0D7H.
C — флаг переноса, выполняет также функции «булевого Аккумулято-ра» в командах, оперирующих с битами;
AC — флаг вспомогательного (дополнительного) переноса;
F0 — флаг пользователя — устанавливается, сбрасывается и проверяется программно;
OV — Флаг арифметического переполнения; его значение определяется операцией «Исключающее ИЛИ» сигналов входного и выходного переносов старшего разряда АЛУ; единичное значение этого флага указывает на то, что результат арифметической операции в дополнительном коде занял знаковый разряд; при выполнении операции деления флаг OV сбрасывается, а в случае деления на ноль — устанавливается; при умножении флаг OV устанавливается, если результат больше 255 (0FFH);
Разряд PSW[1] - Резервный, содержит триггер, доступный по записи или чтению; P — флаг паритета — является дополнением аккумулятора до четности; формируется комбинационной схемой (программно доcтупен только по чтению).
В микроконтроллерах MCS-51 отсутствует флаг «Z». Но в командах условного перехода (JZ, JNZ) проверяется комбинационной схемой текущее (нулевое) содержимое Аккумулятора
Таблица 5 — Таблица ассемблера MCS-51
Rn | @Ri | R0 | R1 | Прямая адресация | Непосредственная | |||||||||||||||
MOV A, Rn | E8 | E9 | EA | EB | EC | ED | EE | EF | MOV A,@Ri | E6 | E7 | MOV A | E5 | , dir | MOV A | #DAT | ||||
MOV Rn, A | F8 | F9 | FA | FB | FC | FD | FE | FF | MOV @Ri, A | F6 | F7 | MOV dir | F5 | A | MOV dir | #DAT | ||||
MOV Rn | 7A | 7B | 7C | 7D | 7E | 7F | #DAT | MOV @Ri | #DAT | MOV dir | B5 | dir | ||||||||
MOV Rn | A8 | A9 | AA | AB | AC | AD | AE | AF | dir | MOV @Ri | A6 | A7 | dir | PUSH | C0 | dir | MOV DPTR | #D16 | ||
MOV dir | B8 | B9 | BA | BB | BC | BD | BE | BF | Rn | MOV dir | B6 | B7 | @Ri | POP | D0 | dir | ||||
XCH A, Rn | C8 | C9 | CA | CB | CC | CD | CE | CF | XCH A,@Ri | C6 | C7 | XCH A | C5 | , dir | ||||||
SWAP A | C4 | <�Обмен тетрад Аккумулятора | XCHD A,@Ri | D6 | D7 | <�Обмен младших тетрад | ||||||||||||||
Пересылки ВПД с Акк | MOVX A,@DPTR | E0 | MOVX A,@Ri | E2 | E3 | Пересылки из Пам. Прогр. в Акк | MOVC A,@A+DPTR | |||||||||||||
MOVX @DPTR, A | F0 | MOVX @Ri, A | F2 | F3 | MOVC A,@A+PC | B3 | ||||||||||||||
Арифметические и логические команды
Комментарии | Rn | @Ri | R0 | R1 | Прям. адресация | Непосредственная | |||||||||||||
А<�А+() | ADD A, Rn | 2A | 2B | 2C | 2D | 2E | 2F | ADD A,@Ri | ADD A | dir | ADD A, | #DAT | |||||||
A<�А+()+C | ADDC A, Rn | 3A | 3B | 3C | 3D | 3E | 3F | ADDC A,@Ri | ADDC A | dir | ADDC A | #DAT | |||||||
A<�А-()-C | SUBB A, Rn | 9A | 9B | 9C | 9D | 9E | 9F | SUBB A,@Ri | SUBB A | dir | SUBB A | #DAT | |||||||
()< () + 1 | INC Rn | 0A | 0B | 0C | 0D | 0E | 0F | INC @Ri | INC | dir | INC A | ||||||||
()< () — 1 | DEC Rn | 1A | 1B | 1C | 1D | 1E | 1F | DEC @Ri | DEC | dir | DEC A | ||||||||
А<�А & () | ANL A, Rn | 5A | 5B | 5C | 5D | 5E | 5F | ANL A,@Ri | ANL A | dir | ANL A | #DAT | |||||||
()<() & А | ANL dir | A | ANL dir | #DAT | |||||||||||||||
А<�А / () | ORL A, Rn | 4A | 4B | 4C | 4D | 4E | 4F | ORL A,@Ri | ORL A | dir | ORL A | #DAT | |||||||
()<() / А | ORL dir | A | ORL dir | #DAT | |||||||||||||||
А<�А (+) () | XRL A, Rn | 6A | 6B | 6C | 6D | 6E | 6F | XRL A,@Ri | XRL A | dir | XRL A | #DAT | |||||||
()<() (+) А | XRL dir | A | XRL dir | #DAT | |||||||||||||||
BA < A? B | MUL AB | A4 | INC DPTR | Сброс | CLR A | E4 | Циклический сдвиг | RL A | RR A | ||||||||||
A. B < A / B | DIV AB | B4 | DA A | D4 | Инверсия | CPL A | F4 | Сдвиг через перенос | RLC A | RRC A | |||||||||
Флаг OV при выполнении операции деления — сбрасывается, а в случае деления на ноль — устанавливается; при умножении флаг OV устанавливается, если результат больше 255 (0FFH)
Флаги: Р (четности Аккумулятора) и Z (нулевого содержимого Аккумулятора) формируются комбинационными схемами. Эти флаги модифицируются любыми командами, изменяющими содержимое Аккумулятора Таблица 7 — Таблица дизассемблера MCS-51
NOP | AJMP S0+8ADR | LJMP 16ADR | RR A | INC A | INC dir | INC @R0 | INC @R1 | ||
JBC bit, rel | ACALL S0+8ADR | LCALL 16ADR | RRC A | DEC A | DEC dir | DEC @R0 | DEC @R1 | ||
JB bit, rel | AJMP S1+8ADR | RET | RL A | ADD A,#DAT | ADD A, dir | ADD A,@R0 | ADD A,@R1 | ||
JNB bit, rel | ACALL S1+8ADR | RETI | RLC A | ADDC A,#DAT | ADDC A, dir | ADDC A,@R0 | ADDC A,@R1 | ||
JC rel | AJMP S2+8ADR | ORL dir, A | ORL dir, #DAT | ORL A,#DAT | ORL A, dir | ORL A,@R0 | ORL A,@R1 | ||
JNC rel | ACALL S2+8ADR | ANL dir, A | ANL dir, #DAT | ANL A,#DAT | ANL A, dir | ANL A,@R0 | ANL A,@R1 | ||
JZ rel | AJMP S3+8ADR | XRL dir, A | XRL dir, #DAT | XRL A,#DAT | XRL A, dir | XRL A,@R0 | XRL A,@R1 | ||
JNZ rel | ACALL S3+8ADR | ORL C, bit | JMP @A +DPTR | MOV A,#DAT | MOV dir, #DAT | MOV @R0, #DAT | MOV @R1, #DAT | ||
SJMP rel | AJMP S4+8ADR | ANL C, bit | MOVC A,@A+PC | DIV AB | MOV dir, dir | MOV dir,@R0 | MOV dir,@R1 | ||
MOV DPTR, #D16 | ACALL S4+8ADR | MOV bit, C | MOVC A,@A+ DPTR | SUBB A,#DAT | SUBB A, dir | SUBB A,@R0 | SUBB A,@R1 | ||
A | ORL C,/bit | AJMP S5+8ADR | MOV C, bit | INC DPTR | MUL AB | MOV @R0,dir | MOV @R1,dir | ||
B | ANL C,/bit | ACALL S5+8ADR | CPL bit | CPL C | CJNE A,#DAT, rel | CJNE A, dir, rel | CJNE @R0,#D, rel | CJNE @R1,#D.rel | |
C | PUSH Dir | AJMP S6+8ADR | CLR bit | CLR C | SWAP A | XCH A, dir | XCH A,@R0 | XCH A,@R1 | |
D | POP dir | ACALL S6+8ADR | SETB bit | SETB C | DA A | DJNZ dir, rel | XCHD A,@R0 | XCHD A,@R1 | |
E | MOVX A, @DPTR | AJMP S7+8ADR | MOVX A,@R0 | MOVX A,@R1 | CLR A | MOV A, dir | MOV A,@R0 | MOV A,@R1 | |
F | MOVX @DPTR, A | ACALL S7+8ADR | MOVX @R0,A | MOVX @R1,A | CPL A | MOV dir, A | MOV @R0,A | MOV @R1,A | |
Таблица дизассемблера MCS-51
INC R0 | INC R1 | INC R2 | INC R3 | INC R4 | INC R5 | INC R6 | INC R7 | ||
DEC R0 | DEC R1 | DEC R2 | DEC R3 | DEC R4 | DEC R5 | DEC R6 | DEC R7 | ||
ADD A, R0 | ADD A, R1 | ADD A, R2 | ADD A, R3 | ADD A, R4 | ADD A, R5 | ADD A, R6 | ADD A, R7 | ||
ADDC A, R0 | ADDC A, R1 | ADDC A, R2 | ADDC A, R3 | ADDC A, R4 | ADDC A, R5 | ADDC A, R6 | ADDC A, R7 | ||
ORL A, R0 | ORL A, R1 | ORL A, R2 | ORL A, R3 | ORL A, R4 | ORL A, R5 | ORL A, R6 | ORL A, R7 | ||
ANL A, R0 | ANL A, R1 | ANL A, R2 | ANL A, R3 | ANL A, R4 | ANL A, R5 | ANL A, R6 | ANL A, R7 | ||
XRL A, R0 | XRL A, R1 | XRL A, R2 | XRL A, R3 | XRL A, R4 | XRL A, R5 | XRL A, R6 | XRL A, R7 | ||
MOV R0, #DAT | MOV R1, #DAT | MOV R2, #DAT | MOV R3, #DAT | MOV R4, #DAT | MOV R5, #DAT | MOV R6, #DAT | MOV R7, #DAT | ||
MOV dir, R0 | MOV dir, R1 | MOV dir, R2 | MOV dir, R3 | MOV dir, R4 | MOV dir, R5 | MOV dir, R6 | MOV dir, R7 | ||
SUBB A, R0 | SUBB A, R1 | SUBB A, R2 | SUBB A, R3 | SUBB A, R4 | SUBB A, R5 | SUBB A, R6 | SUBB A, R7 | ||
MOV R0, dir | MOV R1, dir | MOV R2, dir | MOV R3, dir | MOV R4, dir | MOV R5, dir | MOV R6, dir | MOV R7, dir | A | |
CJNE R0,#D, rel | CJNE R1,#D, rel | CJNE R2,#D, rel | CJNE R3,#D, rel | CJNE R4,#D, rel | CJNE R5,#D, rel | CJNE R6,#D, rel | CJNE R7,#D, rel | B | |
XCH A, R0 | XCH A, R1 | XCH A, R2 | XCH A, R3 | XCH A, R4 | XCH A, R5 | XCH A, R6 | XCH A, R7 | C | |
DJNZ R0, rel | DJNZ R1, rel | DJNZ R2, rel | DJNZ R3, rel | DJNZ R4, rel | DJNZ R5, rel | DJNZ R6, rel | DJNZ R7, rel | D | |
MOV A, R0 | MOV A, R1 | MOV A, R2 | MOV A, R3 | MOV A, R4 | MOV A, R5 | MOV A, R6 | MOV A, R7 | E | |
MOV R0, A | MOV R1, A | MOV R2, A | MOV R3, A | MOV R4, A | MOV R5, A | MOV R6, A | MOV R7, A | F | |
Таблица 8 — Команды пересылки, обмена и загрузки
Комментарии | Мнемокод | К О П | ТК | Б | МЦ | |
A < Rn; Пересылка из РОНа в Акк | MOV A, Rn | 11101rrr | ||||
A < (Ri); Пересыдка из РПД в Акк | MOV A,@Ri | 111 0011i | ||||
A < (dir); Пересылка из РПД в Акк | MOV A, dir | |||||
A < #DAT; Загрузка байта в Акк | MOV A,#DAT | |||||
Rn < A; Пересылка из Акк. в РОН | MOV Rn, A | 11111rrr | ||||
(Ri) < A; Пересылка из Акк. в РПД | MOV @Ri, A | 111 1011i | ||||
(dir) < A; Пересылка из Акк. в РПД | MOV dir, A | |||||
(dir) < #DAT; Загрузка байта в РПД | MOV dir,#DAT | |||||
Rn < #DAT; Загрузка байта в РОН | MOV Rn,#DAT | 01111rrr | ||||
(Ri) < #DAT; Загрузка байта в РПД | MOV @Ri,#DAT | 11 1011i | ||||
(dir)<(dir); Пересыл. из РПД в РПД | MOV dir, dir | |||||
Rn < (dir); Пересылка из РПД в РОН | MOV Rn, dir | 10101rrr | ||||
(Ri)<(dir); Пересылка из РПД в РПД | MOV @RI, dir | 101 0011i | ||||
(dir) | MOV dir, Rn | 10001rrr | ||||
(dir)<(Ri); Пересылка из РПД в РПД | MOV dir,@Ri | 100 0011i | ||||
DPTR |