Общие принципы построения микроконтроллеров, страница 7

ORL A, @ Rn (ORA M)

XRL A, @ RN (XRA M)

ANL A, # DATA (ANID8)

ORL A, # DATA (ORID8)

XRL A, # DATA (XRID8)

ANL Pp, # DATA; ANL BUS, # DATA; - маскирование регистров портов ввода/вывода,

ORL Pp, # DATA; ORL BUS, # DATA; - занесение единиц в разряды регистров портов ввода-вывода,

RRA (RRC); RLA (RLC); RRCA (RAR); RLCA (RAL); - циклический сдвиг,

ADD A, Rr (ADD R)

ADD A, Rr (ADC R)

ADD A, @ Rr (ADD M)

ADDC A, @ Rr (ADC M) - арифметические преобразования,

ADD A, # DATA (ADI D8)

ADDC A, # DATA (ACI D8)

CLRA (XRA A) (clear) - обнуление аккумулятора,

CPL A (CMA) - инверсия аккумулятора,

DA (DAA) - десятичная коррекция,

INC A (INR A)

INC Rr (INR R)

INC @ RN (INR M) инкремент/декремент

DEC A (DCR A)

DEC Rr (DCR R)

Сброс и инвертирование признаков:

CLR C (clear C) - сброс C,

CPL C (CMC) инверсия C,

CLR FO, CLR F1; CLL FO, CPL F1; - сброс и инверсия признаков программиста F0 или F1,

Выбор номера банка:

SEL MBO (select memory bank 0) - выбор нулевого банка программной памяти,

SEL MB1 - выбор первого банка программной памяти,

SEL RBO (select register bank 0) - выбор нулевого банка регистров,

SEL RB1 - выбор первого банка регистров.

  Команды передачи управления. Служат для изменения естест­венного порядка следования команд и делятся на команды безуслов­ного и условного перехода. Безусловный переход передает управление либо внутри выбранного банка, либо внутри текущей страницы про­граммной памяти. В последнем случае адрес перехода ограничивается одним байтом.

JMP ADDRESS (JMP ADR16) - переход внутри банка, старшие разряды адреса перехода располагаются в старших раз­рядах кода операции ADR{10:8} = КОП {7:5},

JMPP @ А - (jump within page) — переход внутри текущей стра­ницы по содержимому аккумулятора,

Условный переход организуется по ряду признаков:

  • ризнаки результата выполнения команд обработки данных c, z;
  • программно-устанавливаемые флаги F0, Fl;
  • значения входных сигналов TO, TI, INT;
  • признак переполнения таймера TF (timer flag)
  • наличие единицы в указанном разряде аккумулятора Bb (bit of number b).

Адрес перехода ограничивается одним байтом; переход осущест­вляется внутри текущей страницы.

Jcon ADDRESS (J-con ADR16).

C,NC,Z,NZ - аналогично МП580

F0, Fl - переход, если флаговый разряд установлен в "1",

ТО, NTO, T1, NT1, NI (noinerruption) - переход по единичному или нулевому уровню входных сигналов,

TF (timerflag) - переход, если произошло переполнение таймера,

ВЬ (b = 0+ 7) — переход, если b-й разряд аккумулятора установлен в "1". Номер разряда располагается в трех старших разрядах кода операции b {2:0}= КОП {7:5}.

Имеется комплексная команда, объединяющая команды декремента регистра номера r и условного перехода по признаку NZ

DJNZ Rr ADDRESS

Безусловный переход с возвратом (переход на подпрограмму) осуществляется внутри текущего банка программы. Для обеспечения возврата в стеке запоминается полный адрес команды возврата и старший полубайт PSW:

CALL ADDRESS (CALL ADR16) — старшие разряды адреса перехода располагаются в трех старших разрядах кода операции.

Возврат на основную команду происходит при выполнении одной из двух команд возврата (return):

RET (RET) — возврат из подпрограммы обслуживания прерыва­ний без восстановления содержимого регистра состояний;

RETR — то же с восстановлением старшей тетради регистра со­стояний.

Вспомогательные команды:

ENI (ЕI); DIS (DI) - разрешение и запрет внешних прерываний ко входу;

EN TCNTI; DIS TCNTI; - разрешение и запрет внутренних прерываний к переполнению таймера счетчика;

STRT T (start timer/counter); STRT CNT; - запуск таймера и счетчика внешних событий по входу Т1;

STOP TCNT - останов таймера - счетчика событий;

NOP (NOP) - нет операции.

2.3. Особенности программирования однокристальных микроконтроллеров