Е6 MOV A,@R0 ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая
F7 MOV @R1,A ;B первом операнде использована косвенно-регистровая адресация, а во втором — неявная
Косвенно-регистровая адресация используется также для обращения к внешней памяти данных. В этом случае с помощью регистров-указателей
Е2 MOVX A,@R0 ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая
F3 MOVX @R1,A ;B первом операнде использована косвенно-регистровая адресация, а во втором — неявная
Если в качестве регистра-указателя используется 16-разрядный указатель данных (
Е0 MOVX A,DPTR ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая
F0 MOVX DPTR,A ;B первом операнде использована косвенно-регистровая адресация, а во втором — неявная
Косвенно-регистровая адресация по сумме базового и индексного регистров (содержимое аккумулятора
83 MOVC A,@A+PC ;В первом операнде использована неявная адресация, а во втором — косвенно-регистровая
93 MOVC A,@A+DPTR ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая
Непосредственная адресация позволяет выбрать из адресного пространства памяти программ константы, явно указанные в команде, например:
7414 MOV A, #14h ;B первом операнде использована неявная адресация, а во втором — непосредственная
902048 MOV DPTR, #2048h ;B первом операнде использована неявная адресация, а во втором — непосредственная
Полный список команд микроконтроллеров семейства MCS-51, упорядоченный по коду команды, приведен в приложении, табл. ПЗ.
Порты ввода-вывода Р0, P1, P2, РЗ являются квазидвунаправленными и обеспечивают обмен информацией между микроконтроллером и внешними устройствами, образуя 32 линии ввода-вывода. Каждый из портов содержит 8-разрядный регистр, имеющий байтовую и битовую адресацию для установки (запись логической 1) или сброса (запись логического 0) разрядов этого регистра с помощью программного обеспечения микроконтроллера. Выходы этих регистров соединены с внешними выводами микросхемы. Все разряды параллельных портов устроены одинаково.
Упрощенная схема одного разряда параллельного порта микроконтроллера показана на рис. 6.2. Отличаются только выводы порта Р0, у которых отсутствуют внутренние генераторы тока в верхней части схемы.
Рис. 6.2.
Один разряд регистра-защелки порта представляет собой D-триггер, запись входных данных в который происходит по высокому уровню синхросигнала. На рис. 6.2 этот сигнал назван «запись в защелку». Сигнал с инвертирующего выхода триггера умощняется при помощи МОП-транзистора и поступает на внешний вывод микросхемы.
Рис. 6.3.
Естественно, что внутреннее устройство порта намного сложнее приведенного на рис. 6.2. Упрощение сделано для облегчения понимания работы параллельных портов микроконтроллера. Желающие более подробно познакомиться с внутренним устройством параллельных портов микроконтроллера могут обратиться к техническому описанию конкретной микросхемы.