Руководство пользователя контроллера DL06. Номер руководства D0-06USER-M-RUS - 22

 

  Главная      Учебники - Разные     Руководство пользователя контроллера DL06. Номер руководства D0-06USER-M-RUS (часть 1)

 

поиск по сайту            правообладателям  

 

 

 

 

 

 

 

 

 

 

 

содержание      ..     20      21      22      23     ..

 

 

 

Руководство пользователя контроллера DL06. Номер руководства D0-06USER-M-RUS - 22

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—125

 

» 

 

Encode (ENCO) 

 

Команда

 Encode 

кодирует

 

позицию

 

бита

 

в

 

аккумуляторе

, 

имеющего

 

значение

 1, 

и

 

возвращает

 

соответствующее

 

двоичное

 

представление

. 

Если

 

старший

 

бит

 

установлен

 

в

 1 (

бит

 31), 

то

 

команда

 

Encode 

поместит

 

значение

 1F HEX (

десятичное

 

число

 31) 

в

 

аккумулятор

. 

Если

 

кодируемое

 

значение

 

0000 

или

 0001, 

то

 

команда

 

поместит

 

ноль

 

в

 

аккумулятор

. 

Если

 

кодируемое

 

значение

 

имеет

 

более

 

чем

 

одну

 

позицию

 

бита

, 

установленную

 

в

 «1», 

то

 

самая

 

младшая

 «1» 

будет

 

закодирована

, 

и

 SP53 

будет

 

включен

. 

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

значение

 

операнда

 

больше

, 

чем

 

значение

, 

с

 

которым

 

может

 

работать

 

аккумулятор

 

SP63 «1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

 

 

ПРИМЕЧАНИЕ

. 

Флаги

 

состояния

 

действительны

 

только

 

до

 

того

 

момента

, 

когда

 

будет

 

выполнена

 

другая

 

команда

, 

использующая

 

те

 

же

 

самые

 

флаги

. 

 

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

 

в

 V2000 

загружается

 

в

 

аккумулятор

командой

 Load. 

Позиция

 

бита

, 

установленная

 

в

 «1» 

в

 

аккумуляторе

 

кодируется

 

в

соответствующее

 5-

битовое

 

двоичное

 

значение

 

командой

 Encode. 

Значение

 

в

 

нижних

 16

битах

 

аккумулятора

 

копируется

 

в

 V2010, 

командой

 Out. 

 

 

 

 

 

5—126

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Decode  (DECO) 

 

Команда

 Decode 

декодирует

 5-

битовое

 

двоичное

 

значение

 0-31 (0-1F HEX) 

в

 

аккумуляторе

, 

устанавливая

 

соответствующую

 

позицию

 

бита

 

в

 1. 

Если

 

аккумулятор

 

содержит

 

значение

 F (HEX), 

то

 

в

 

аккумуляторе

 

будет

 

установлен

 

бит

 15. 

Если

 

декодируемое

 

значение

 

больше

, 

чем

 31, 

то

 

число

 

делится

 

на

 32 

до

 

тех

 

пор

, 

пока

 

значение

 

не

 

станет

 

меньше

 32, 

и

 

затем

 

значение

 

декодируется

. 

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

, 

составленное

 

из

 

дискретных

 

ячеек

 

Х

10-

Х

14, 

загружается

 

в

 

аккумулятор

 

командой

 Load Formatted. 

Пять

 

бит

 

в

 

аккумуляторе

 

декодируются

, 

устанавливая

 

соответствующую

 

позицию

 

бита

 

в

 «1», 

командой

 Decode. 

 

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—127

 

» 

 

Команды

 

преобразования

 

чисел

 

в

 

аккумуляторе

 

Binary (BIN) 

 

Команда

 Binary 

преобразует

 BCD 

значение

 

в

 

аккумуляторе

 

в

 

эквивалентное

 

двоичное

 

значение

. 

Результат

 

находится

 

в

 

аккумуляторе

. 

 

Флаги

  

Описание

 

SP63 «1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

SP75 «1», 

когда

 

выполняется

 BCD 

команда

 

с

 

не

-BCD 

числом

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

 

в

 V2000 

и

 V2001 

загружается

 

в

 

аккумулятор

, 

командой

 Load Double. BCD 

значение

 

в

 

аккумуляторе

 

преобразуется

 

в

 

двоичный

  (

шестнадцатиричный

) 

эквивалент

, 

командой

 Binary. 

Двоичное

 

значение

 

в

 

аккумуляторе

 

копируется

 

в

 V2010 

и

 

V2011 

командой

 Out Double. (

Ручной

 

программатор

 

будет

 

показывать

 

двоичное

 

значение

 

в

 V2010 

и

 V2011 

как

 

шестнадцатиричное

 

значение

.) 

 

 

5—128

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Binary Coded Decimal (BCD) 

 

Команда

 Binary Coded Decimal 

преобразует

 

двоичное

 

значение

 

в

 

аккумуляторе

 

в

 

эквивалентное

 BCD 

значение

. 

Результат

 

находится

 

в

 

аккумуляторе

. 

 

Флаги

  

Описание

 

SP63 «1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

двоичное

 (HEX) 

значение

 

в

 V2000 

и

 V2001 

загружается

 

в

 

аккумулятор

, 

командой

 Load Double. 

Двоичное

 

значение

 

в

 

аккумуляторе

 

преобразуется

 

в

 BCD 

эквивалентное

 

значение

, 

командой

 Binary Coded Decimal. BCD 

значение

 

в

 

аккумуляторе

 

копируется

 

в

 

V2010 

и

 V2011, 

командой

 Out Double. 

 

 

 

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—129

 

» 

 

Invert  (INV) 

 

Команда

 Invert 

инвертирует

 32-

битное

 

значение

 

в

 

обратном

 

коде

 

в

 

аккумуляторе

. 

Результат

 

хранится

 

в

 

аккумуляторе

. 

 

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

 

в

 V2000 

и

 V2001 

будет

 

загружено

 

в

аккумулятор

, 

командой

 Load Double. 

Значение

 

в

 

аккумуляторе

 

инвертируется

,

командой

 Invert. 

Значение

 

в

 

аккумуляторе

 

копируется

 

в

 V2010 

и

 V2011, 

командой

 Out

Double. 

 

 

 

 

5—130

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Ten’s Complement (BCDCPL) 

 

Команда

 Ten’s Complement 

выполняет

 

поразрядное

 

дополнение

 

до

 «10» 8-

ми

 

разрядного

 BCD 

значения

 

в

 

аккумуляторе

. 

Результат

 

находится

 

в

 

аккумуляторе

. 

Вычисления

 

производятся

 

по

 

следующей

 

формуле

: 

 

 

100000000 

– accumulator value 

10’s complement value

 

 

 

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

 

в

 V2000 

и

 V2001 

загружается

 

в

 

аккумулятор

, 

командой

 Load Double. 8-

ми

 

разрядное

 BCD 

значения

 

в

 

аккумуляторе

 

доплняется

 

до

 10 

командой

 Ten’s Complement. 

Значение

 

в

 

аккумуляторе

 

копируется

 

в

 V2010 

и

 V2011, 

командой

 Out Double. 

 

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—131

 

» 

 

Binary to Real Conversion (BTOR) 

 

Команда

 Binary-to-Real 

преобразует

, 

двоичное

 

значение

 

в

 

аккумуляторе

 

в

 

формат

 

эквивалентного

 

вещественного

 

числа

  (

с

 

плавающей

 

запятой

). 

Результат

 

хранится

 

в

 

аккумуляторе

. 

И

 

двоичное

 

значение

, 

и

 

вещественное

 

число

 

может

 

использовать

 

все

 32 

бита

 

аккумулятора

. 

 

 

ПРИМЕЧАНИЕ

.

 

Эта

 

команда

 

работает

 

только

 

с

 

двоичными

 

значениями

. 

Она

 

не

 

будет

 

работать

 

с

 

десятичными

 

значениями

 

со

 

знаком

. 

 

Флаги

  

Описание

 

SP63 «1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

 

в

 V1400 

и

 V1401 

будет

 

загружено

 

в

 

аккумулятор

, 

командой

 Load Double. 

Команда

 BTOR 

преобразует

, 

двоичное

 

значение

 

в

 

аккумуляторе

 

в

 

формат

 

эквивалентного

 

вещественного

 

числа

. 

Старший

 

байт

 

преобразуется

 

в

 

показатель

  (

экспоненту

) 

вещественного

 

числа

,  

добавлением

 127 (

десятичное

 

число

) 

к

 

этому

 

числу

. 

Затем

 

остающиеся

 

биты

 

копируются

 

в

 

мантиссу

 

как

 

показано

 

на

 

рисунке

. 

Значение

 

в

 

аккумуляторе

 

копируется

 

в

 V1500 

и

 V1501, 

командой

 Out Double.. 

Ручной

 

программатор

 

покажет

 

значение

 

ячеек

 V1500 

и

 V1501 

как

 

шестнадцатиричное

 

значение

.  

 

5—132

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Real to Binary Conversion (RTOB) 

 

Команда

 Real-to-Binary 

преобразует

, 

вещественное

 

число

 

в

 

аккумуляторе

 

в

 

двоичное

 

значение

. 

Результат

 

хранится

 

в

 

аккумуляторе

. 

И

 

двоичное

 

значение

, 

и

 

вещественное

 

число

 

может

 

использовать

 

все

 32 

бита

 

аккумулятора

. 

 

ПРИМЕЧАНИЕ

 1:

 

Дробная

 

часть

 

результата

 

будет

 

отсечена

. 

ПРИМЕЧАНИЕ

 2:

 

Если

 

вещественное

 

число

 

отрицательное

, 

оно

 

становится

 

десятичным

 

числом

 

со

 

знаком

. 

 

Флаги

  

Описание

 

SP63 «1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

SP72 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 -  

недопустимое

 

число

 

с

 

плавающей

 

запятой

 

SP73 

«1», 

когда

 

сложение

 

или

 

вычитание

 

со

 

знаком

 

приводит

 

к

 

некорректному

 

биту

 

знака

. 

SP75 

«1», 

когда

 

число

 

невозможно

 

преобразовать

 

в

 

двоичный

 

вид

.  

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

 

в

 V1400 

и

 V1401 

будет

 

загружено

 

в

 

аккумулятор

, 

командой

 Load Double. 

Команда

 RTOB 

преобразует

, 

вещественное

 

число

 

в

 

аккумуляторе

 

в

 

двоичный

 

формат

. 

Значение

 

в

 

аккумуляторе

 

копируется

 

в

 V1500 

и

 V1501, 

командой

 Out Double. 

Ручной

 

программатор

 

покажет

 

значение

 

ячеек

 V1500 

и

 V1501 

как

 

шестнадцатиричное

 

значение

.  

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—133

 

» 

 

Radian Real Conversion (RADR) 

 

Команда

 Radian Real Conversion 

преобразует

 

вещественное

 

число

 

градусов

 

в

 

аккумуляторе

 

в

 

эквивалетное

 

вещественное

 

число

 

радиан

. 

Результат

 

хранится

 

в

 

аккумуляторе

. 

Degree Real Conversion (DEGR) 

 

Команда

 Degree Real 

преобразует

 

вещественное

 

число

 

радиан

 

в

 

аккумуляторе

 

в

 

эквивалетное

 

вещественное

 

число

 

градусов

. 

Результат

 

хранится

 

в

 

аккумуляторе

.. 

 

Две

 

инструкции

, 

описанные

 

выше

 

преобразовывают

 

вещественные

 

числа

 

в

 

аккумуляторе

 

из

 

градусов

 

в

 

радианы

 

и

 

обратно

. 

Полный

 

круг

 

содержит

 360 

градусов

 

и

 

приблизительно

 6.28 

радиан

. 

Оба

 

варианта

 

могут

 

быть

 

положительными

 

и

 

отрицательными

 

вещественными

 

числами

, 

или

 

значениями

 

углов

 

больше

, 

чем

 

полный

 

круг

. 

Эти

 

функции

 

очень

 

полезны

 

при

 

использовании

 

с

 

трансцендентными

 

тригонометрическими

 

функциями

. 

 

Флаги

  

Описание

 

SP63 

«1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 

«1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

SP71 

«1» 

в

 

любое

 

время

, 

когда

 

определено

, 

что

 

указатель

 

ссылается

 

на

 

недопустимую

 

ячейку

 V-

памяти

 

SP72 

«1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 -  

допустимое

 

число

 

с

 

плавающей

 

запятой

 

SP74 

«1» 

в

 

любое

 

время

, 

когда

 

математическая

 

операция

 

с

 

плавающей

 

запятой

 

приводит

 

к

 

ошибке

 

переполнения

. 

SP75 «1», 

когда

 

выполняется

 BCD 

команда

 

с

 

не

-BCD 

числом

 

 

 

Следующий

 

пример

 

вычисляет

 

синус

 45 

градусов

. 

Так

 

как

 

эти

 

трансцендентные

 

функции

 

функционируют

 

только

 

с

 

вещественными

 

числами

, 

то

 

мы

 

выполняем

 

команду

 LDR (

загрузка

 

вещественного

 

числа

) 45. 

Тригонометрические

 

функции

 

функционируют

 

только

 

в

 

радианах

, 

так

 

что

 

мы

 

должны

 

преобразовать

 

градусы

 

в

 

радианы

,  

используя

 

команду

 RADR. 

После

 

выполнения

 

команды

 SINR, 

мы

 

используем

 

команду

 OUTD, 

чтобы

 

переместить

 

результат

 

от

 

аккумулятора

 

в

 V-

память

. 32-

битный

 

результат

 

требует

 

применения

 

команды

 Out Double. 

 

5—134

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

ASCII-to-HEX (ATH) 

 

Команда

 ASCII-to-HEX 

преобразует

 

таблицу

 

ASCII 

значений

 

в

 

таблицу

 

шестнадцатиричных

 

значений

. ASCII 

значения

 

состоят

 

из

 

двух

 

цифр

, 

а

 

их

 

шестнадцатиричные

 

эквиваленты

 — 

из

 

одной

. 

 

Это

 

означает

, 

что

 ASCII 

таблица

 

четырех

 

ячеек

 V-

памяти

 

будет

 

требовать

 

только

 

две

 

ячейки

 V-

памяти

 

для

 

эквивалентной

 

шестнадцатиричной

 

таблицы

. 

Функциональные

 

параметры

 

загружаются

 

в

 

стек

 

аккумулятора

 

и

 

в

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

Ниже

 

перечислены

 

шаги

, 

необходимые

 

для

 

создания

 

программы

 

с

 

функцией

 

преобразования

 ASCII 

в

 

HEX. 

Пример

 

на

 

следующей

 

странице

 

показывает

 

программу

 

для

 

функции

 

преобразования

 ASCII 

в

 HEX. 

 

Шаг

 1:

 

загрузите

 

число

 

ячеек

 V-

памяти

 

для

 ASCII 

таблицы

 

в

 

первый

 

уровень

 

стека

 

аккумулятора

. 

Шаг

 2:

 

загрузите

 

начальную

 

ячейку

 V-

памяти

 

для

 ASCII 

таблицы

 

в

 

аккумулятор

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

значением

. 

Шаг

 3:

 

определите

 

стартовую

 

ячейку

 V-

памяти

 (Vaaa) 

для

 

шестнадцатиричной

 

таблицы

 

в

 

команде

 ASCII-to-HEX. 

Полезная

 

подсказка

:

 

для

 

параметров

, 

которые

 

требуют

 

шестнадцатиричных

 

значений

 

при

 

ссылке

 

на

 

ячейки

 

памяти

, 

может

 

быть

 

использована

 

команда

 

LDA 

для

 

преобразования

 

восьмеричного

 

адреса

 

в

 

шестнадцатиричный

 

эквивалент

 

и

 

загрузки

 

значения

 

в

 

аккумулятор

. 

 

Тип

 

данных

 

операнда

 DL06 

Диапазон

 

 A

aaa 

V-

память

 

V

Смотри

 

карту

 

памяти

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

значение

 

операнда

 

больше

, 

чем

 

значение

,  

с

 

которым

 

может

 

работать

 

аккумулятор

 

 

 

В

 

примере

 

на

 

следующей

 

странице

, 

когда

 

Х

1 

включен

, 

константа

  (

К

4) 

загружается

 

в

 

аккумулятор

, 

командой

 Load Double 

и

 

будет

 

помещена

 

в

 

первый

 

уровень

 

стека

 

аккумулятора

, 

когда

 

выполнится

 

следующая

 

команда

 

Load. 

Стартовая

 

ячейка

 

для

 ASCII 

таблицы

 (V1400) 

загружается

 

в

 

аккумулятор

 

командой

 Load Address. 

Стартовая

 

ячейка

 

для

 

шестнадцатиричной

 

таблицы

 (V1600) 

указывается

 

в

 

команде

 ASCII-to-HEX. 

Таблица

 

ниже

 

показывает

 

список

 

возможных

 ASCII 

значений

 

для

 

преобразования

 ASCII 

в

 HEX. 

 

Возможные

 

значения

 ASCII 

для

 

преобразования

 HEX 

в

 ASCII 

Значение

 ASCII 

HEX 

значение

 

Значение

 ASCII 

HEX 

значение

 

30 0 38 8 
31 1 39 9 
32 2 41 A 
33 3 42 B 
34 4 43 C 
35 5 44 D 
36 6 45 E 
37 7 46 F 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—135

 

» 

 

 

 

 

HEX-to-ASCII (HTA) 

 

Команда

 HEX-to-ASCII 

преобразует

 

таблицу

 

шестнадцатиричных

 

значений

 

в

 

таблицу

 ASCII 

значений

. 

Шестнадцатиричные

 

значения

 

состоят

 

из

 

одной

 

цифры

, 

а

 

их

 ASCII 

эквиваленты

 — 

из

 

двух

. 

 

Это

 

означает

, 

что

 

шестнадцатиричная

 

таблица

 

двух

 

ячеек

 V-

памяти

 

будет

 

требовать

 

четыре

 

ячейки

 V-

памяти

 

для

 

эквивалентной

 ASCII 

таблицы

. 

Функциональные

 

параметры

 

загружаются

 

в

 

стек

 

аккумулятора

 

и

 

в

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

Ниже

 

перечислены

 

шаги

, 

необходимые

 

для

 

создания

 

программы

 

с

 

функцией

 

преобразования

 HEX 

в

 

ASCII. 

Пример

 

на

 

следующей

 

странице

 

показывает

 

программу

 

для

 

функции

 

преобразования

 HEX 

в

 ASCII. 

 

Шаг

 1:

 

загрузите

 

число

 

ячеек

 V-

памяти

 

для

 

шестнадцатиричной

 

таблицы

 

в

 

первый

 

уровень

 

стека

 

аккумулятора

. 

Шаг

 2:

 

загрузите

 

начальную

 

ячейку

 V-

памяти

 

для

 

шестнадцатиричной

 

таблицы

 

в

 

аккумулятор

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

значением

. 

Шаг

 3:

 

определите

 

стартовую

 

ячейку

 V-

памяти

 (Vaaa) 

для

 ASCII 

таблицы

 

в

 

команде

 HEX-to-ASCII. 

Полезная

 

подсказка

:

 

для

 

параметров

, 

которые

 

требуют

 

шестнадцатиричных

 

значений

 

при

 

ссылке

 

на

 

ячейки

 

памяти

, 

может

 

быть

 

использована

 

команда

 

LDA 

для

 

преобразования

 

восьмеричного

 

адреса

 

в

 

шестнадцатиричный

 

эквивалент

 

и

 

загрузки

 

значения

 

в

 

аккумулятор

. 

 

 

 

 

5—136

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Тип

 

данных

 

операнда

 DL06 

Диапазон

 

 A

aaa 

V-

память

 

V

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

значение

 

операнда

 

больше

, 

чем

 

значение

,  

с

 

которым

 

может

 

работать

 

аккумулятор

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

константа

 (

К

2) 

загружается

 

в

 

аккумулятор

 

командой

 Load. 

Стартовая

 

ячейка

 

для

 

шестнадцатиричной

 

таблицы

 (V1500) 

загружается

 

в

 

аккумулятор

, 

командой

 Load Address. 

Стартовая

 

ячейка

 

для

 ASCII 

таблицы

 (V1400) 

указывается

 

в

 

команде

 HEX-to-ASCII. 

 

 

Возможные

 

значения

 ASCII 

для

 

преобразования

 HEX 

в

 ASCII 

HEX 

значение

 

Значение

 ASCII 

HEX 

значение

 

Значение

 ASCII 

0 30 8 38 
1 31 9 39 
2 32 A 41 
3 33 B 42 
4 34 C 43 
5 35 D 44 
6 36 E 45 
7 37 F 46 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—137

 

» 

 

Segment (SEG) 

 

Команда

 BCD/Segment 

преобразует

 4-

х

 

разрядное

 

шестнадцатиричное

 

значение

 

в

 

аккумуляторе

 

в

 

формата

 7-

сегментного

 

дисплея

. 

Результат

 

сохраняется

 

в

 

аккумуляторе

.  

 

В

 

следующем

 

примере

, 

когда

 X1 

включен

, 

значение

 

в

 V1400 

загружается

 

в

 

младшие

 16 

бит

 

аккумулятора

, 

используя

 

команду

 Load. 

Двоичное

 

значение

 

(HEX) 

в

 

аккумуляторе

 

преобразуется

 

в

 

семь

 

формата

 7-

сегментного

 

дисплея

, 

используя

 

команду

 Segment. 

Комбинация

 

бит

 

в

 

аккумуляторе

 

копируется

 

в

 

выходные

 

ячейки

  Y20-Y57, 

используя

 

команду

 Out Formatted. 

 

 

 

 

 

 
 

5—138

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Gray Code (GRAY) 

 

Команда

 Gray Code 

преобразует

 16-

битное

 

значение

 

в

 

коде

 

Грэя

  (

двоичный

 

циклический

 

код

) 

в

 BCD 

значение

. BCD 

преобразование

 

требует

 10 

бит

 

аккумулятора

. 

Верхние

 22 

бита

 

установлены

 

в

 «0». 

Эта

 

команда

 

создана

 

для

 

использования

 

с

 

устройствами

 

(

обычно

 

энкодерами

), 

которые

 

используют

 

код

 

Грэя

 

для

 

схем

 

оцифровки

. 

Команда

 Gray Code 

непосредственно

 

преобразует

 

число

 

в

 

коде

 

Грэя

 

в

 BCD 

число

 

для

 

устройств

, 

имеющих

 

разрешение

 512 

или

 1024 

точек

 

на

 

цикл

. 

Чтобы

 

использовать

 

устройство

, 

имеющее

 

разрешение

 360 

точек

 

на

 

цикл

, 

Вы

 

должны

 

вычесть

 BCD 

значение

 76 

из

 

преобразованного

 

значения

. 

Для

 

устройства

, 

имеющего

 

разрешение

 720 

точек

 

на

 

цикл

, 

Вы

 

должны

 

вычесть

 BCD 

значение

 152. 

 
 

Флаги

  

Описание

 

SP63 «1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

двоичное

 

значение

, 

представленное

 

в

 

Х

10-

Х

27 

загружается

 

в

 

аккумулятор

, 

командой

 Load 

Formatted. 

Значение

 

в

 

коде

 

Грэя

 

в

 

аккумуляторе

 

преобразуется

 

в

 BCD, 

командой

 Gray Code. 

Значение

 

в

 

нижних

 16 

битах

 

аккумулятора

 

копируется

 

в

 

V2010. 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—139

 

» 

 

Shuffle Digits (SFLDGT) 

 

Команда

 Shuffle Digits 

меняет

 

местами

 

максимум

 

8 

знаков

, 

располагая

 

их

 

в

 

заданном

 

порядке

. 

Эта

 

функция

 

требует

 

загрузки

 

параметров

 

в

 

первый

 

уровень

 

стека

 

аккумулятора

 

и

 

в

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

Ниже

 

показаны

 

необходимые

 

шаги

 

для

 

использования

 

функции

 Shuffle Digits. 

Пример

 

на

 

следующей

 

странице

 

показывает

 

программу

 

для

 

функции

 

Shuffle Digits. 

 

Шаг

 1:

 

загрузите

 

меняемые

 

значения

  (

цифры

) 

в

 

первый

 

уровень

 

стека

 

аккумулятора

. 

Шаг

 2:

 

загрузите

 

в

 

аккумулятор

 

порядок

, 

по

 

которому

 

будут

 

переставлены

 

цифры

. 

Шаг

 3:

 

вставьте

 

команду

 Shuffle Digits. 

 

 

Примечание

:

 

если

 

число

, 

используемое

 

для

 

определения

 

порядка

, 

содержит

 0 

или

 9-F, 

то

 

соответствующая

 

позиция

 

будет

 

установлена

 

в

 0. 

Примечание

:

 

если

 

число

, 

используемое

 

для

 

определения

 

порядка

, 

содержит

 

идентичные

 

числа

, 

то

 

действительно

 

старшее

 

из

 

них

. 

 

Флаги

  

Описание

 

SP63 «1», 

когда

 

в

 

результате

 

выполнения

 

команды

 

значение

 

в

 

аккумуляторе

 

является

 

нулем

 

SP70 «1» 

в

 

любое

 

время

, 

когда

 

значение

 

в

 

аккумуляторе

 

отрицательное

 

 

Блок

-

схема

 Shuffle Digits 

 

Могут

 

быть

 

переставлены

 

максимум

 8 

цифр

. 

Разряды

 

в

 

первом

 

уровне

 

стека

 

аккумулятора

 

определяют

 

цифры

, 

которые

 

будут

 

переставлены

. 

Они

 

соответствуют

 

разрядам

 

в

 

акумуляторе

, 

которые

 

определяют

 

порядок

, 

по

 

которому

 

будут

 

переставлены

 

цифры

. 

Цифры

 

меняются

 

местами

 

и

 

результат

 

остается

 

в

 

аккумуляторе

. 

 

 

5—140

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

значение

 

в

 

первом

 

уровне

 

стека

 

аккумулятора

 

будет

 

реорганизовано

 

в

 

порядке

, 

определенном

 

значением

 

в

 

аккумуляторе

. 

Пример

 

А

 

показывает

, 

как

 Shuffle Digits 

работает

, 

когда

 0 

или

 9-F 

не

 

используются

 

при

 

определении

 

порядка

 

перестановки

 

цифр

, 

а

 

также

 

не

 

имеется

 

идентичных

 

чисел

 

при

 

определении

 

порядка

. 

Пример

 

В

 

показывает

, 

как

 Shuffle Digits 

работает

, 

когда

 0 

или

 9-F 

используются

 

при

 

определении

 

порядка

 

перестановки

 

цифр

. 

Обратите

 

внимание

, 

что

 

при

 

выполнении

 

команды

 Shuffle Digits, 

разрядные

 

позиции

 

в

 

первой

 

ячейке

 

стека

, 

которые

 

имели

 

соответственно

 0 

или

 9-F 

в

 

аккумуляторе

 

(

определенный

 

порядок

), 

устанавливаются

 

в

 «0». 

Пример

 

С

 

показывает

, 

как

 Shuffle Digits 

работает

, 

когда

 

идентичные

 

числа

 

используются

 

при

 

определении

 

порядка

 

перестановки

 

цифр

. 

Обратите

 

внимание

, 

что

 

при

 

выполнении

 

команды

 Shuffle Digits, 

в

 

результате

 

используется

 

старшее

 

из

 

идентичных

 

чисел

. 

 

 

 

 

 

 

 

 

 

 

 

содержание      ..     20      21      22      23     ..