Е6 MOV A,@R0     ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая

F7 MOV @R1,A     ;B первом операнде использована косвенно-регистровая адресация, а во втором — неявная

Косвенно-регистровая адресация используется также для обращения к внешней памяти данных. В этом случае с помощью регистров-указателей R0 и R1 (рабочего банка рабочих регистров) выбирается ячейка из блока 256 байт внешней памяти данных. Номер блока предварительно задается содержимым порта Р2.

Е2 MOVX A,@R0    ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая

F3 MOVX @R1,A    ;B первом операнде использована косвенно-регистровая адресация, а во втором — неявная

Если в качестве регистра-указателя используется 16-разрядный указатель данных (DPTR), то можно выбрать любую ячейку внешней памяти данных объемом до 64 Кбайт. (В некоторых моделях микроконтроллеров семейства MSC-51 таким образом можно обращаться к внутренней памяти данных объемом более 256 байт).

Е0 MOVX A,DPTR   ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая

F0 MOVX DPTR,A   ;B первом операнде использована косвенно-регистровая адресация, а во втором — неявная

Косвенно-регистровая адресация по сумме базового и индексного регистров (содержимое аккумулятора А) упрощает просмотр таблиц, записанных в памяти программ. Любой байт из таблицы может быть выбран по адресу, определяемому суммой содержимого DPTR или PC и содержимого A, например:

83 MOVC A,@A+PC       ;В первом операнде использована неявная адресация, а во втором — косвенно-регистровая

93 MOVC A,@A+DPTR   ;B первом операнде использована неявная адресация, а во втором — косвенно-регистровая

Непосредственная адресация позволяет выбрать из адресного пространства памяти программ константы, явно указанные в команде, например:

7414 MOV A, #14h               ;B первом операнде использована неявная адресация, а во втором — непосредственная

902048 MOV DPTR, #2048h   ;B первом операнде использована неявная адресация, а во втором — непосредственная

Полный список команд микроконтроллеров семейства MCS-51, упорядоченный по коду команды, приведен в приложении, табл. ПЗ.

Устройство параллельных портов микроконтроллеров MCS-51

Порты ввода-вывода Р0, P1, P2, РЗ являются квазидвунаправленными и обеспечивают обмен информацией между микроконтроллером и внешними устройствами, образуя 32 линии ввода-вывода. Каждый из портов содержит 8-разрядный регистр, имеющий байтовую и битовую адресацию для установки (запись логической 1) или сброса (запись логического 0) разрядов этого регистра с помощью программного обеспечения микроконтроллера. Выходы этих регистров соединены с внешними выводами микросхемы. Все разряды параллельных портов устроены одинаково.

Упрощенная схема одного разряда параллельного порта микроконтроллера показана на рис. 6.2. Отличаются только выводы порта Р0, у которых отсутствуют внутренние генераторы тока в верхней части схемы.

Рис. 6.2. Упрощенная схема одного бита параллельного порта

Один разряд регистра-защелки порта представляет собой D-триггер, запись входных данных в который происходит по высокому уровню синхросигнала. На рис. 6.2 этот сигнал назван «запись в защелку». Сигнал с инвертирующего выхода триггера умощняется при помощи МОП-транзистора и поступает на внешний вывод микросхемы.

Рис. 6.3.Схема подключения светодиодных индикаторов к параллельному порту

Естественно, что внутреннее устройство порта намного сложнее приведенного на рис. 6.2. Упрощение сделано для облегчения понимания работы параллельных портов микроконтроллера. Желающие более подробно познакомиться с внутренним устройством параллельных портов микроконтроллера могут обратиться к техническому описанию конкретной микросхемы.

Перейти на страницу:

Поиск

Похожие книги