Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002

.pdf
Скачиваний:
263
Добавлен:
11.03.2016
Размер:
9.1 Mб
Скачать

ПРИЛОЖЕНИЕ 1 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ MCS-51

339

то (С) = 1, (А) =(А) + 60Н (Р) = 0 \1

Команда DEC

По команде DEC операнд-приемник уменьшается на 1 Если в каче­ стве операнда-приемника используется содержимое аккумулятора, то уста­ навливается бит четности (Р) Из состояния О ОВ операнд-приемник пе­ реходит в состояние 1 1В

Синтаксис

 

Байт

 

 

 

Циклов

Тактов

С А

 

 

1

 

 

 

1

12

Код

0

0

0

1

0

1 0

0

 

Операция

DEC

 

 

 

 

 

 

 

 

(А)

= (A) -

1

 

 

 

 

Синтаксис

 

 

 

 

Байт

Циклов

Тактов

DEC Rn

 

 

 

 

 

1

1

12

Код:

0

0

0

1

1

r

r r

 

Операция

DEC

 

 

 

 

 

 

 

(Rn) <- (Rn) - 1

Синтаксис

Байт

Циклов

Тактов

DEC @Ri

1

1

12

Код. 0 0 0 1 0 1 1 i

Операция DEC

((Ri>) <- ((Ri)) - 1

Синтаксис

Байт

Циклов

Тактов

DEC direct

2

1

12

Код

0 0 0 1 0 1 0 1

direct address

340 СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Операция DEC

(direct) <- (direct) - 1

Команда DIV

По команде DIV выполняются следующие действия

содержимое Асе (делимое) делится на содержимое регистра В (дели­

тель),

 

целая

часть результата (частное) записывается в аккумулятор

(Асе),

остаток от деления в регистр В,

признак переноса устанавливается в состояние «О», признак переполнения устанавливается в состояние «1», если делимое

в регистре В равно нулю, или в состояние «О», в противном случае, устанавливается признак четности

Замечание Операнды команды рассматриваются как порядковые числа Если

делитель равен нулю, то результат выполнения команды не определен

Синтаксис

 

 

 

 

Байт

 

Циклов

Тактов

DIV АВ

 

 

 

 

 

1

 

4

48

Код

1

0

0

0

0

1

0

0

 

Операция

DIV

 

 

 

 

 

 

 

 

 

если (В) = 0 то OV

=

С

 

 

иначе OV

0

 

 

 

 

 

 

(ТМР)

=

 

 

 

 

 

 

 

(B) =(А) MOD (В)

 

 

 

(А) = (ТМР)

 

 

 

 

 

 

(C)

= 0

 

 

 

 

 

 

 

 

(Р)

= 0 \1

 

 

 

 

 

 

Команда DJNZ

По команде DJNZ осуществляется ветвление в программе следующим образом

содержимое операнда-приемника уменьшается на единицу, затем, если операнд-приемник не равен нулю, то управление передается в точку назначения (к текущему содержимому счетчика команд прибавляет­ ся позиционно независимое смещение, представленное третьим байтом кода команды S S),

ПРИЛОЖЕНИЕ 1 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ MCS-51

341

в противном случае управление передается следующей команде

При уменьшении операнд-приемник из состояния ООН переходит в со­ стояние 0FFH

Синтаксис

 

 

 

Байт

 

Циклов

Тактов

DJNZ Rn, rel

 

 

 

2

 

2

24

Код

1 1

0

1

1

г г

г

rel address

 

Операция

DJNZ

 

 

 

 

 

 

 

 

(РС)<- (РС)+2

 

 

 

 

 

(Rn)<- (Rn) - 1,

 

 

 

 

 

IF Rn > 0 or Rn < О

 

 

 

 

THEN РСчPC+rel,

 

 

 

Синтаксис

 

 

 

Байт

 

Циклов

Тактов

DJNZ direct,rel

 

 

 

3

 

2

24

Код

1 1 0

1

0

1 0

1

 

direct-address

rel.address

Операция

DJNZ

 

 

 

 

 

 

 

 

(PC)*- (PC)+2

 

 

 

 

(direct)*—(diret)-l IF (direct) > 0 or (direct) < 0, THEN (PC)*- (PC) + rel

Команда INC

 

 

 

 

По команде INC операнд-приемник увеличивается на единицу

 

Если в качестве операнда-источника используется содержимое

акку­

мулятора, то устанавливается бит четности (Р)

 

 

Из состояния 1

1В операнд-приемник переходит в состояние 0

Синтаксис

Байт

Циклов

Тактов

 

INC А

 

 

 

 

Код

0

0

0

0

0

1

0

0

342

 

 

 

 

 

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

 

Код

0 0

0

0

 

0 1

0

0

 

 

Операция

INC

 

 

 

 

 

 

 

 

 

 

 

 

(А) <- (А) +1

 

 

 

 

 

 

Синтаксис

 

 

 

 

 

 

Байт

 

Циклов

Тактов*

INC

Rn

 

 

 

 

 

 

1

 

 

1

12

 

Код*

0

0

 

0

0

1

г

г

г

 

Операция

INC

 

 

 

 

 

 

 

 

 

 

 

 

(Rn) <—(Rn) + 1

 

 

 

 

Синтаксис

 

 

 

 

 

 

Байт

 

Циклов

Тактов

INC

direct

 

 

 

 

 

 

2

 

 

1

12

 

Код:

0

0

 

0

0

 

0

1

0 1

direct address

Операция

INC

 

 

 

 

 

 

 

 

 

 

 

 

(direct)

 

 

(direct) + 1

 

 

Синтаксис

 

 

 

 

 

 

Байт

 

Циклов

Тактов

INC

@Ri

 

 

 

 

 

 

1

 

 

1

12

 

Код

0

0

0

0

0

1

1

1

 

 

Операция

INC

 

 

 

 

 

 

 

 

 

 

 

 

((Ri)) <- ((R i)) + 1

 

 

 

Синтаксис

 

 

 

 

 

Байт

 

Циклов

Тактов

INC

DPTR

 

 

 

 

 

1

 

 

2

24

 

Код

1

0

 

1

0

 

0

0

1

1

 

Операция INC

(DPTR) <- (DPTR) + 1

Команда JB

По команде JB осуществляется ветвление в программе следующим образом

ПРИЛОЖЕНИЕ 1 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ MCS 51

343

если прямо адресуемый бит ячейки внутренней памяти данных или регистра специальной функции равен единице, то управление переда­ ется в точку назначения (к текущему содержимому счетчика ко­

манд прибавляется позиционно независимое смещение, представ­ ленное третьим байтом кода команды S S)

в противном случае управление передается следующей команде

Прямой адрес анализируемого бита данных представляется вторым байтом кода команды I I

Синтаксис

Байт

Циклов

Тактов

JB bit,rel

3

2

24

Код

0 0 1 0 0 0 0 0

bit address

rel address

Операция

JB

 

 

 

(PC)<- (PC)+3

 

 

 

IF (bit)=l

 

 

 

THEN

 

 

 

(PC)<- (PC) + rel,

 

 

Команда JBC

По команде JBC осуществляется ветвление в программе следующим образом

если прямо адресуемый бит ячейки внутренней памяти данных или регистра специальной функции равен единице, то этот бит устанав­ ливается в состояние «нуль», а управление передается в точку назна­ чения (к текущему содержимому счетчика команд прибавляется по­ зиционно независимое смещение, представленное третьим байтом ко­

да команды S S)

в противном случае управление передается следующей команде

Прямой адрес анализируемого бита данных представляется вторым байтом кода команды I I

Синтаксис

Байт

Циклов

Тактов

JBC bit,rel

3

2

24

Код

0 0 0 1

0 0 0 0

b it a d d res s

rel a d d res s

344

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Операция

JBC

 

(РС)<- (РС)+3

 

IF (bit)=l

THEN (bit) <- О (PC)<- (PC) + rel

Команда JC

По команде JC осуществляется ветвление в программе следующим образом

если бит признака переноса С равен единице, то управление передает­ ся в точку назначения (к текущему содержимому счетчика команд

прибавляется позиционно независимое смещение, представленное вто­ рым байтом кода команды S S)

в противном случае управление передается следующей команде

Синтаксис

Байт

Циклов

Тактов

JC rel

2

2

24

Код:

0 1 0 0 0 0 0 0

rel.address

 

Операция

JC

 

 

 

(РС)<- (РС)+2

 

 

 

IF (С)=1

 

 

THEN

(РС)<- (PC) + rel

Команда JMP

По команде JMP осуществляется косвенный переход

Содержимое счетчика команд устанавливается равным сумме содер­ жимого аккумулятора и содержимого регистра DPTR Сумма вычисляется по модулю 2**16, содержимое аккумулятора интерпретируется как целое

число без знака в диапазоне 0

255

 

 

Синтаксис

Байт

Циклов

Тактов

JMP @A+DPTR

1

2

24

Код 0 1 1 1 0 0 1 1

Операция JMP

(РС)<- (А) + (DPTR)

ПРИЛОЖЕНИЕ 1 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ MCS-51

345

Команда JNB

По команде JNB осуществляется ветвление в программе следующим образом

если прямо адресуемый бит ячейки внутренней памяти данных или регистра специальной функции равен нулю, то управление передается

вточку назначения (к текущему содержимому счетчика команд при­

бавляется позиционно независимое смещение, представленное третьим байтом кода команды S S)

в противном случае управление передается следующей команде

Прямой адрес анализируемого бита данных представляется вторым байтом кода команды I I

Синтаксис

Байт

Циклов

Тактов

JNB bit,rel

3

2

24

Код

0 0 1 1 0

0 0 0

bit address

rel.address

Операция

JNB

 

 

 

 

(РС)<- (РС)+3

 

 

 

IF (bit)=0

 

 

 

 

THEN

 

 

 

 

(РС)<- (PC)

+ rel

 

 

Команда JNC

По команде JNC осуществляется ветвление в программе следующим образом

• если бит признака переноса С равен нулю, то управление передается в точку назначения (к текущему содержимому счетчика команд при­ бавляется позиционно независимое смещение, представленное вторым байтом кода команды S S)

в противном случае управление передается следующей команде

Синтаксис

Байт

Циклов

Тактов

JNC rel

2

2

24

Код

0 1 0 1 0 0 0 0

rel address

346

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Операция

JNC

 

(РС)<- (РС)+2

 

IF (С)=0

 

THEN

 

(РС)<- (PC) + rel

Команда JNZ

По команде JNZ осуществляется ветвление в программе следующим образом

если содержимое аккумулятора не равно нулю, то управление переда­ ется в точку назначения (к текущему содержимому счетчика команд прибавляется позиционно независимое смещение, представленное вто­

рым байтом кода команды S S ),

в противном случае управление передается следующей команде

Синтаксис

 

Байт

Циклов

Тактов

JNZ rel

 

2

2

24

Код-

0 1 1 1

0 0 0 0

rel.address

 

Операция

JNZ

 

 

 

 

РС)<- (РС)+2

 

 

 

 

IF (А) *0

 

 

 

THEN (РС)<- (РС)+ге1,

Команда JZ

По команде JZ осуществляется ветвление в программе следующим образом.

если содержимое аккумулятора равно нулю, то управление передается

в точку назначения (к текущему содержимому счетчика команд при­ бавляется позиционно независимое смещение, представленное вторым байтом кода команды S S ),

в противном случае управление передается следующей команде

Синтаксис

Байт

Циклов

Тактов

JZ rel

2

2

24

Код | 0 1 1

1 | 0 0 0 0

rel address

ПРИЛОЖЕНИЕ 1 КОМАНДЫ МИКРОКОНТРОЛЛЕРОВ MCS-51

347

IF (А) =0

THEN (РС)<- (РС)+ге1,

Команда LCALL

По команде LCALL осуществляется вызов подпрограммы,располо­ женной в любой точке памяти программ, следующим образом

содержимое счетчика команд PC (т е полный адрес следующей ко­ манды) записывается в вершину стека (младший байт адреса записы­ вается первым),

содержимое указателя стека SP увеличивается на два,

в счетчик команд записывается полный (16-битный) адрес подпро­ граммы, представленный вторым (старшим) А А и третьим (млад­ шим) А А байтами кода команды

Синтаксис

 

 

Байт

Циклов

Тактов

LCALL addrl6

 

3

2

24

Код-

0 0 0

1

0 0 1 0

addr15-addr8

addr7addrO

Операция

LCALL

 

 

 

 

(PC)

<-

(PC) + 3

 

 

 

(SP)

<-

(SP)+1

 

 

 

((S P ))< -

(PC™)

 

 

 

(SP)

<-

(SP) + 1

 

 

 

((SP)) <-

(PC15.8)

 

 

 

(PC)

<-

addr15-o

 

 

Команда LJMP

По команде LJMP осуществляется безусловный переход в точку на­ значения, расположенную в любом месте памяти команд, следующим об­ разом

в счетчик команд записывается полный (16-битный) адрес точ­ ки назначения, представленный вторым (старшим) А А и третьим (младшим) А А байтами кода команды

Синтаксис

Байт

Циклов

Тактов

LJMP addrl6

3

2

24

348

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Синтаксис

 

Байт

Циклов

Тактов

LJMP

addrl6

3

2

24

Код

0

0 0

0 0 0 1 0

addrl5-addr8

addr7-addr0

Операция

LJMP

 

 

 

 

 

(PC)

<-addri5_o

 

 

Команда MOV

По команде MOV операнд-источник пересылается на место операндаприемника Если местом операнда-приемника является аккумулятор, то устанавливается бит четности

Синтаксис

 

 

Байт

 

Циклов

Тактов

MOV A, Rn

 

1

 

1

12

Код:

1

1 1 0

1

г

г

г

 

Операция

MOV

 

 

 

 

 

 

 

(А) <—(Rn)

 

 

 

 

 

Синтаксис

 

 

Байт

 

Циклов

Тактов

MOV A, direct

 

2

 

1

12

Код-

1

1 1 0

0

1 0

1

direct address

Операция

MOV

 

 

 

 

 

 

 

(А) <—(direct)

 

 

 

 

 

Синтаксис

 

 

Байт

 

Циклов

Тактов

MOV A, @Ri

 

1

 

 

1

12

Код.

1

1 1 0

0

1 1

1

 

Операция

MOV

 

 

 

 

 

 

 

(А) <- ((R 0)

 

 

 

 

 

Синтаксис

 

 

Байт

 

Циклов

Тактов

MOV A, #data

 

 

 

 

 

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]