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

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

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

ГЛАВА 6 ИНСТРУМЕНТАЛЬНЫЕ И УЧЕБНЫЕ СРЕДСТВА

329

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

Лабораторный практикум по проектированию систем на микроконтрол­ лерах MCS-51 в целом аналогичен практикуму по микроконтроллерам

AVR

Лабораторный практикум «Проектирование цифровых устройств на ПЛИС» описан в параграфе 5 7

ПРИЛОЖЕНИЕ 1

Система комавд микроконтроллеров MCS-51

Команда ACALL

По команде ACALL осуществляется вызов подпрограммы, располо­ женной в текущем банке памяти команд (2 Кбайта), следующим образом

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

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

в разряды 0- 10 счетчика команд записывается длинный ( 11-битный) адрес подпрограммы, хранящийся в коде команды Содержимое раз­ рядов 11-15 счетчика команд не изменяется

Таким образом, точка назначения команды ACALL должна разме­ щаться в том же банке памяти программ, что и ее первый байт

Синтаксис

Байт

Циклов

Тактов

ACALL

addrl 1

2

12

24

Код

а10а 9 а 8 1

0 0 0 1

а7 аб а5 а4 аЗ а2 а1 аО

Операция ACALL

(PC) <- (PC) + 2 (SP) = (SP) + 1

((SP)) = (PC7.0)

(SP) = (SP) + 1 ((SP)) = (PC,M )

(РСю-о) = AAA A A

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

331

Команда ADD

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

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

устанавливаются биты признаков результата (С), (AC), (OV), (Р)

Синтаксис

 

Байт

Циклов

 

 

Тактов

ADD A, Rn

 

1

 

1

 

 

 

12

Код

О

0

1

0

1

г

г

г

 

Операция

ADD

 

 

 

 

 

 

 

 

 

(А) <- (А) + (Rn)

 

 

 

 

Синтаксис

 

 

 

Байт

 

Циклов

Тактов

ADD A, direct

 

 

 

2

 

1

 

12

Код.

0

0

1

1 0

1

0

1

direct address

Операция

ADD

 

 

 

 

 

 

 

 

 

(А) <- (А) + (direct)

 

 

 

Синтаксис

 

Байт

Циклов

 

 

Тактов

ADD А,@ Ri

 

1

 

1

 

 

 

12

Код

0

0

1

0

0

1

1

1

 

Операция ADD

( А ) < - (А) + « R i»

Синтаксис

Байт

Циклов

Тактов

ADD A,#data

2

1

12

о

о

1 0 0 1 0

0

immediate data

Операция ADD

(А) < г - (А)+ #data

332

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

Команда ADDC

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

складываются операнд-источник, бит признака переноса С и содер­ жимое аккумулятора,

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

устанавливаются биты признаков результата (C),(AC),(OV),(P)

Синтаксис

 

Байт

Циклов

 

Тактов

ADDC A, Rn

 

1

1

 

 

12

Код1 0

0

1

1

1 г

г г

 

Операция

ADDC

 

 

 

 

 

 

(А) <- (А) + (С) + (Rn)

 

Синтаксис

 

 

 

Байт

Циклов

Тактов

ADDC A, direct

 

 

2

 

1

12

Код.

0

0

1 1

0

1 0

1

direct address

Операция

ADDC

 

 

 

 

 

 

(А)

(А) +(С) + (direct)

 

Синтаксис

 

Байт

Циклов

 

Тактов

ADDC А,@ Ri

 

1

1

 

 

12

Код.

0

0

1 1

0

1 1 1

 

Операция ADDC

(А) <- (А) + (С) + ((Ri))

Синтаксис

 

Байт

Циклов

Тактов

ADDC A,#data

2

1

12

Код

0

0 1 1

0 1 0 0

immediate data

Операция

ADDC

 

 

 

(А) < -

(А)+

(С) + #data

 

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

333

Команда AJMP

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

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

дов) байтом А А кода команды

содержимое разрядов 11-15 счетчика команд соответствует адресу следующей команды

Таким образом, точка назначения команды AJMP должна размещать­ ся в том же банке памяти программ, что и ее первый байт

Синтаксис

 

Байт

Циклов

Тактов

AJMP addrll

2

2

24

Код а10

а9 а8

0

0 0 0 1

а7 аб а5 а4 аЗ а2 а1 аО

Операция

AJMP

 

 

 

(PC) <- (PC) + 2 (PCio-o)<-Page address

Команда ANL

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

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

Синтаксис

Байт

Циклов

Тактов

ANL A,Rn

1

1

12

Код

0 1 0

1 1

г г

Операция ANL

(А) л ((Rn))

33 4

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

Синтаксис

 

 

 

Байт

Циклов

Тактов

ANL A,direct

 

 

 

2

 

1

 

12

Код

0

1

0

1

0

1

0

1

direct address

Операция

ANL

 

 

 

 

 

 

 

 

 

( А ) < - (А) л (direct)

 

 

 

 

Синтаксис

 

 

 

Байт

Циклов

Тактов

ANL А,@ Ri

 

 

 

1

 

1

 

12

Код

0

1

0

1

0

1

1

1

 

Операция ANL

(А) <- (А) л ((Ri))

Синтаксис

Байт

Циклов

Тактов

ANL A,#data

2

1

12

Код

0 1 0 1 0

1 0 0

immediate data

Операция ANL

( А ) < - (А) л #data

Синтаксис

 

 

 

 

Байт

Циклов

Тактов

ANL

direct, А

 

 

 

2

1

24

 

Код.

0

1

0

1

0 0 1 0

direct address

Операция

ANL

 

 

 

 

 

 

 

(direct)*—(direct) л (А)

 

 

Синтаксис

 

 

 

 

Байт

Циклов

Тактов

ANL direct, #data

 

 

3

2

24

Код

0 1

0

1 0

0

1 1

direct address

immediate data

Операция

ANL

 

 

 

 

 

 

 

(direct)*-(direct)A#data

 

 

Синтаксис

 

 

 

 

Байт

Циклов

Тактов

ANL С, bit

 

 

 

 

2

2

24

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

335

Код 1 0 0 0 0 0 1 0 bit address

Операция

ANL

 

 

 

 

 

 

 

 

 

 

(С) <- (C)A(bit)

 

 

 

 

 

Синтаксис

 

 

 

 

Байт

 

 

 

Циклов

Тактов

ANL С,/b it

 

 

 

2

 

 

 

2

24

Код

1

0

1

1

0

0

0

0

bit.address

Операция

ANL

 

 

 

 

 

 

 

 

 

 

(С) ч

( С ) л /(bit)

 

 

 

 

 

Команда CJNE

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

если операнд-приемник не равен операнду-источнику, то управление

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

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

Синтаксис

 

Байт

Циклов

Тактов

CJNE A, direct, rel

3

2

24

Код

1 0 1 1

0 1 0 1

direct address

rel address

Операция (РС)<—(РС)+3

 

 

 

IF (А) < >(direct)

 

 

 

THEN

 

 

 

 

(РС)<- (PC)+relative offset

 

 

IF (A) < (direct) THEN

 

 

 

(C) <— 1,

 

 

 

 

ELSE (C) <- 0

 

 

Синтаксис

 

Байт

Циклов

1 актов

CJNE A, #data, rel

3

2

24

336

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

Код

1 0 1 1 0 1 0 0

immediate data

rel address

Операция (РС)<- (РС)+3 IF (А) < >(data) THEN

(PC) <- (PC)+relative offset IF (A) < (data) THEN

(C) <— 1, ELSE (C) <- 0

Синтаксис

 

 

Байт

Циклов

Тактов

CJNE Rn, #data, rel

3

2

24

Код

1 0

1 1 1

r r r

immediate data

rel address

Операция

(PC)<- (PC)+3

 

 

 

IF ((Rn)) < >data

 

 

 

THEN

 

 

 

 

(PC) «- (PC)+relative offset

 

 

IF (Rn) < (data) THEN

 

 

 

(C) <—1,

 

 

 

 

ELSE (C) <- 0

 

 

Синтаксис

 

 

Байт

Циклов

Тактов

CJNE @Ri, #data,rel

3

2

24

Код

1 0

1 1 0

1 1 1

immediate data

rel.address

Операция (РС)<- (РС)+3 IF (Ri) < >data THEN

(PC) <- (PC)+relative offset IF ((Ri)) < data THEN

(C) <—1, ELSE (С) <- 0

Команда CLR

По команде CLR операнд-приемник устанавливается в состояние «нуль» Если в качестве операнда-приемника используется содержимое аккумулятора, то устанавливается бит четности

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

337

Синтаксис

Байт

Циклов

Тактов

CLR А

1

1

12

Код

1 1 1 0 | 0 1

0 0

 

Операция CLR (А) 0

Синтаксис

CLR С

Код 1 1 0

 

Байт

Циклов

Тактов

 

1

1

12

о

о

о

 

Операция

CLR

 

 

 

 

(С )< -

О

 

 

Синтаксис

 

Байт

Циклов

Тактов

CLR bit

 

2

1

12

Код

1 1

0 0 0 0 1 0

bit address

 

Операция

CLR

 

 

 

 

(bit)<-

0

 

 

Команда CPL

По команде CPL операнд-приемник инвертируется

Синтаксис

 

 

 

 

Байт

 

 

Циклов

Тактов

CPL А

 

 

 

 

1

 

 

1

12

Код-

1

1

1

1

0

1 0

 

0

 

Операция

CPL

 

 

 

 

 

 

 

 

 

(А) <- (А)

 

 

 

 

 

 

Синтаксис

 

 

 

 

Байт

 

 

Циклов

Тактов

CPL С

 

 

 

 

1

 

 

1

12

Код

1

0

1

1

0

0

1

1

 

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

Операция

CPL

 

 

 

 

(С) < -/(С )

 

 

Синтаксис

 

Байт

Циклов

Тактов

CPL bit

 

2

1

12

Код.

1 0

1 1 0 0

1 0

 

Операция

CPL

 

 

 

 

(bit)<-

/(b it)

 

 

Команда DA

По команде DA результат двоичного сложения упакованных двоично­ десятичных чисел в аккумуляторе (сложение выполняется командой ADD или ADDC) преобразуется в упакованное двоично-десятичное число следующим образом

если число в младших 4-х разрядах аккумулятора больше 9 (т е

ХХХХ1010В ХХХХ1111В) или бит признака вспомогательного пе­ реноса равен 1, то к содержимому аккумулятора прибавляется число б При переносе из 3-го разряда аккумулятора, признак переноса ус­ танавливается в 1,

если число в старших 4-х разрядах аккумулятора больше 9 (те

1010ХХХХВ 1111ХХХХВ) или бит признака переноса равен 1, то к содержимому аккумулятора прибавляется число 60Н При переносе из 7-го разряда аккумулятора, признак переноса устанавливается в 1

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

Синтаксис

 

 

 

 

Байт

 

Циклов

Тактов

DA А

 

 

 

 

1

 

1

12

Код

1

1

0

1

0

1 0

0

 

Операция

DA

 

 

 

 

 

 

 

 

если (АЗ-0) > 9 или (АС) = 1,

 

 

то если ((АЗ-0) + 6 ) > OFH,

 

 

то (С) =

1,

 

 

 

 

 

(А)

=(А) + 6

 

 

 

 

если (А7-4) > 9 или (С) = 1, то если ((А7-4) + 6 ) > OFH,