Материал: Основы программирования микроконтроллеров на языке step 7. Слепокуров Ю.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

угол, выраженный в радианах. Сохранить угол в виде числа с плавающей точкой в аккумуляторе 1.

TAN Образовать тангенс числа с плавающей точкой, представляющего угол, выраженный в радианах. Сохранить угол в виде числа с плавающей точкой в аккумуляторе 1.

ASIN Образовать арксинус числа с плавающей точкой в аккумуляторе 1. Результатом является угол, выраженный в радианах. Значение будет находиться в следующем диапазоне: -π / 2 ≤ арксинус (ACCU 1) ≤ +

π / 2, где π = 3.14...

ACOS Образовать арккосинус числа с плавающей точкой в аккумуляторе 1. Результатом является угол, выраженный в радианах. Значение будет находиться в следующем диапазоне: 0 ≤ арккосинус (ACCU 1)

≤ + π, где π = 3.14...

ATAN Образовать арктангенс числа с плавающей точкой в аккумуляторе 1. Результатом является угол, выраженный в радианах. Значение будет находиться в следующем диапазоне: -π / 2 ≤ арктангенс (AKKU 1) ≤ + π / 2, где π = 3.14...

Команды тригонометрических функций следующим образом влияют на биты слова состояния:

Результат в аккумуляторе 1

СС1

СС0

OV

OS

+ qNaN

1

1

1

1

+ бесконечность (переполнение)

1

0

1

1

+ нормализован

1

0

0

+ не нормализован (потеря значимости)

0

0

1

1

+ нуль

0

0

0

нуль

0

0

0

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

0

0

1

1

нормализован

0

1

0

бесконечность (переполнение)

0

1

1

1

– qNaN

1

1

1

1

21. ОПЕРАЦИИ СРАВНЕНИЯ

Команды Сравнить можyj использовать для сравнения следующих пар числовых значений:

два целых числа (16 битов);

два двойных целых числа (32 бита);

два вещественных числа (числа с плавающей точкой в формате IEEE,

105

32 бита).

Числовые значения, подлежащие сравнению, предварительно загружаютсяв аккумуляторы 1 и 2. Команда Сравнить сравнивает значение в аккумуляторе 1 со значением в аккумуляторе 2 в соответствии с критериями, перечисленными в табл. 11.1.

Результатом сравнения является логической величиной, т.е. 1 или 0. 1 указывает, что результат сравнения является истиной; 0 указывает, что результат сравнения является ложью. Этот результат сохраняется в бите результата логической операции (бит RLO). Этот результат вы можете использовать в своей программе для дальнейшей обработки.

Когда CPU выполняет команду сравнения, он также устанавливает биты в слове состояний. Другие команды AWL могут анализировать биты слова состояния. CPU выполняет команды сравнения независимо от результата логической операции.

 

 

Табл. 11.1

Символ (ы)

Критерий

Вид числового значения

для команды

сравнения

в аккумуляторах 1 и 2

= = I

равно

Целое число (16 бит) в младшем слове

 

 

аккумулятора 2 равно целому числу в младшем

 

 

слове аккумулятора 1.

= = D

равенство

Двойное целое число (32 бита) в аккумуляторе 2

 

 

равно двойному целому числу в аккумуляторе 1.

= = R

равенство

Число с плавающей точкой (32 бита, IEEE) в

 

 

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

 

 

(32 бита, IEEE) в аккумуляторе 1.

< > I

не равно

Целое число (16 бит) в младшем слове

 

 

аккумулятора 2 не равно целому числу в младшем

 

 

слове аккумулятора 1.

< > D

не равно

Двойное целое число (32 бита) в аккумуляторе 2 не

 

 

равно двойному целому числу в аккумуляторе 1.

< > R

не равно

Число с плавающей точкой (32 бита, IEEE) в

 

 

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

 

 

точкой (32 бита, IEEE) в аккумуляторе 1.

> I

больше

Целое число в младшем слове аккумулятора 2

 

 

больше целого числа в младшем слове

 

 

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

> D

больше

Двойное целое число в аккумуляторе 2 больше

 

 

двойного целого числа в аккумуляторе 1.

> R

больше

Число с плавающей точкой (32 бита, IEEE) в

 

 

аккумуляторе 2 больше числа с плавающей точкой

 

 

(32 бита, IEEE) в аккумуляторе 1.

< I

меньше

Целое число в младшем слове аккумулятора 2

106

Символ (ы)

Критерий

Вид числового значения

 

для команды

сравнения

в аккумуляторах 1 и 2

 

 

 

меньше целого числа в младшем слове

 

 

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

 

< D

меньше

Двойное целое число в аккумуляторе 2

меньше

 

 

двойного целого числа в аккумуляторе 1.

 

< R

меньше

Число с плавающей точкой (32 бита, IEEE) в

 

 

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

 

 

(32 бита, IEEE) в аккумуляторе 1.

 

>= I

больше

Целое число в младшем слове аккумулятора 2

 

или равно

больше или равно целому числу в младшем слове

 

 

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

 

>= D

больше

Двойное целое число в аккумуляторе 2 больше или

 

или равно

равно двойному целому числу в аккумуляторе 1.

>= R

больше

Число с плавающей точкой (32 бита, IEEE) в

 

или равно

аккумуляторе 2 больше или равно числу с

 

 

плавающей точкой (32 бита, IEEE) в аккумуляторе

 

 

1.

 

<= I

меньше

Целое число в младшем слове аккумулятора 2

 

или равно

меньше или равно целому числу в младшем слове

 

 

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

 

<= D

меньше

Двойное целое число в аккумуляторе 2

меньше

 

или равно

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

 

 

1.

 

<= R

меньше

Число с плавающей точкой (32 бита, IEEE) в

 

или равно

аккумуляторе 2 меньше или равно

числу с

 

 

плавающей точкой (32 бита, IEEE) в аккумуляторе

 

 

1.

 

22. КОМАНДЫ ПРЕОБРАЗОВАНИЯ

Следующие команды можно использовать для преобразования чисел, представленных в двоично-десятичном коде, и целых чисел в другие виды чисел:

Мнемоника

Команда

Функция

BTI

BCD в целое

команда преобразует находящееся в младшем

 

 

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

 

 

в двоично-десятичном коде, в 16-битовое

107

 

 

 

 

целое число.

 

 

BTD

BCD

в

двойное

команда

преобразует

находящееся

в

 

целое

 

 

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

 

 

 

 

двоично-десятичном коде, в 32–битовое целое

 

 

 

 

число.

 

 

 

ITB

Целое в BCD

команда преобразует 16–битовое целое число

 

 

 

 

в младшем слове аккумулятора 1 в двоично-

 

 

 

 

десятичное число.

 

 

ITD

Целое

в

двойное

команда преобразует 16–битовое целое число

 

целое

 

 

в младшем слове аккумулятора 1 в 32–

 

 

 

 

битовое целое число.

 

 

DTB

Двойное

целое

команда преобразует 32–битовое целое число

 

число в BCD

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

 

 

 

 

число.

 

 

 

DTR

Двойное

целое

команда преобразует 32–битовое целое число

 

число

 

в

в аккумуляторе 1 в 32– битовое число с

 

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

плавающей

точкой в

формате

IEEE

 

 

 

 

(вещественное число).

 

 

BCD в целое: BTI

Команда BCD в целое (BTI) преобразует трехразрядное число, записанное в двоично-десятичном коде (BCD-число, см. рис. 12.1) в младшем слове аккумулятора 1 в 16–битовое целое число. BCD-число может находиться в диапазоне от –999 до +999. Результат преобразования сохраняется в младшем

слове аккумулятора 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

14

13

12

11

10

9

8

7

6

5

 

4

3

2

1

 

0

 

s

s

s

s

n

n

n

n

n

n

n

n

n

n

n

n

 

 

 

 

 

 

сотни

 

 

десятки

 

 

единицы

 

Значение BCD числа

эти биты при преобразовании не используются

Знак: 0000 для положительного числа, 1111 – для отрицательного

Рис. 12.1. Структура двоично-десятичного числа, которое должно быть преобразовано в целое число

Если какой-либо разряд BCD–числа находится в недопустимом диапазоне между 10 и 15, то при попытке преобразования возникает ошибка BCDF. Имеет место один из следующих случаев:

CPU переходит в состояние STOP. В диагностический буфер вносится

108

запись «BCD Conversion Error [Ошибка BCD-преобразования]» с идентификатором события номер 2521;

Если запрограммирован OB121, то он вызывается.

BCD в двойное целое: BTD

Команда BCD в двойное целое (BTD) преобразует семиразрядное число, записанное в двоично-десятичном коде (BCD–число) в аккумуляторе 1 в 32– битовое целое число. BCD–число может находиться в диапазоне от –9 999 999 до +9 999 999. Результат преобразования сохраняется в аккумуляторе 1.

Если какой-либо разряд BCD–числа находится в недопустимом диапазоне между 10 и 15, то при попытке преобразования возникает ошибка BCDF. Имеет место один из следующих случаев:

CPU переходит в состояние STOP. В диагностический буфер вносится запись «BCD Conversion Error [Ошибка BCD-преобразования]» с идентификатором события номер 2521;

Если запрограммирован OB121, то он вызывается.

Целое в BCD: ITB

Команда Целое в BCD (ITB) преобразует 16–битовое целое число, находящееся в младшем слове аккумулятора 1 в трехразрядное число, записанное в двоичнодесятичном коде. BCD–число может находиться в диапазоне от–999 до +999. Результат преобразования сохраняется в младшем слове аккумулятора 1.

Если целое число слишком велико, чтобы быть представленным в формате BCD, то преобразование не производится, биты переполнения (OV) и сохраняемого переполнения (OS) в слове состояния устанавливаются в 1.

Целое в двойное целое: ITD

Команда Целое в двойное целое (ITD) преобразует 16–битовое целое число, находящееся в младшем слове аккумулятора 1, в 32–битовое целое число. Результат преобразования сохраняется в аккумуляторе 1.

Двойное целое в BCD: DTB

Команда Двойное целое в BCD (DTB) преобразует 32–битовое целое число, находящееся в аккумуляторе 1, в семиразрядное число, записанное в двоичнодесятичном коде. BCD–число может находиться в диапазоне от –9 999 999 до +9 999 999. Результат преобразования сохраняется в аккумуляторе 1.

Если двойное целое число велико, чтобы быть представленным в формате BCD, то преобразование не выполняется, биты переполнения (OV) и сохраняемого переполнения (OS) в слове состояния устанавливаются в 1.

109

Смотрите также:

12
1673
271
2863
2994
3788
3857
54
5719
605