
- •«Национальный минерально-сырьевой университет «горный»
- •1 Контрольная работа №1
- •1.1 Задание на контрольную работу №1
- •1.2 Решение контрольной работы №1
- •2 Контрольная работа №2
- •2.1 Задание на контрольную работу №2
- •2.2 Решение контрольной работы №2
- •3 Работа с микропроцессором кр580
- •3.1 Составление программ
- •3.1.1 Составление программы сложения
- •3.1.2 Составление программы умножения
- •Приложение а (справочное) − Алфавитный перечень мнемокодов мп к580
- •Приложение б (справочное) − Символы и обозначения, используемые в командах мп
- •Литература
2 Контрольная работа №2
2.1 Задание на контрольную работу №2
Разработать алгоритм f1 и f2 (см. контрольную работу №1), оценить время ti вычисления каждой функции, а также требуемую емкость ПЗУ и ОЗУ. Построить схему сопряжения МП с АЦП и ЦАП.
Исходными данными для контрольной работы №2 являются исходные данные и результаты расчета разрядной сетки, полученные в контрольной работе №1. Целью разработки алгоритма и программы специализированной микроЭВМ является обеспечение требуемого времени ti и точности p.i < доп.i вычисления каждой функции fi, а также определение требуемой емкости постоянной (LПЗУ) и оперативной (LОЗУ) памяти.
При выполнении контрольной работы №2 в учебных целях рекомендуется ориентироваться на микропроцессорный комплект К580.
При фиксированной длине машинного слова, равной одному байту, требуемая точность арифметических операций достигается программным путем.
Для приведения исходных данных, промежуточных и окончательных результатов к диапазону изменении машинных чисел необходимо выполнить масштабирование. Процесс масштабирования заключается в умножении каждой физической переменной z на соответствующий масштабный множитель mz для получения ее машинного изображения z : z = mz z.
Целью масштабирования является исключение выхода машинных переменных за пределы рабочей зоны, обеспечение заданной точности решения при минимальном числе операций перемасштабирования и обеспечение согласования диапазонов исходных данных и результатов с сигналами устройств ввода и вывода.
В специализированных микроЭВМ используют, как правило, представление чисел с фиксированной запятой, причём запятая фиксируется левее старшего разряда машинного изображения числа, поэтому абсолютная величина машинной переменной должна удовлетворять условию z 1 – 2-n, где n – число разрядов в машинном изображении числа. На масштабный множитель в этом случае накладывается ограничение mz (1 – 2-n) / z max.
Цена единицы младшего разряда машинного изображения числа 2-n/mz определяет погрешность вычислений. Если эта цена слишком велика, следует увеличить число разрядов n, либо mz. Выбор масштабов, кратных основанию системы счисления mz =2d, где d – целое число или 0, упрощает операции масштабирования. Однако, если значения mz существенно отличаются от (1 – 2-n) / z max, из-за сокращения используемого диапазона представления машинных чисел может потребоваться увеличение числа разрядов n.
2.2 Решение контрольной работы №2
Для расчета используем функции: f1 (x1, x2, x3) = x2(x12+x3) и f2 (x1, x2, x3) = (x1x2x3), x1 max = b1 = 30, x2 max = b2 = 10, x3 max = b3 = 20, nоп.1 = 8, nоп.2 = 10.
Рассмотрим функцию f1 (x1, x2, x3) = x2(x12+x3). В данном случае x1 max = b1 = 30, x2 max = b2 = 10, x3 max = b3 = 20, nоп.1 = 8, поэтому mx1-1 (1 – 2-8)/ x1 max = mx1-1 (1 – 2-8)/30 = 0,996/30 ≈ 1/32, mx1-2 (1 – 2-8)/ x2 max = (1 – 2-8)/10 = 0,996/10 ≈ 3/32, mx1-3 (1 – 2-8)/ x3 max = (1 – 2-8)/20 = 0,996/20 ≈ 3/64 (подойдет и 51/1024). Соответственно, окончательно получим: mx1-1 = 1/32, mx1-2 = 3/32, mx1-3 = 3/64.
Представим функцию в виде f1 = y = s1-1s1-2, где s1-1 = x2 и s1-2 = (x12+x3). Введем масштабы ms1-1 и ms1-2 для s1-1 и s1-2, соответственно. Тогда для s1-1 имеем:
,
где
.
Найдем |S1-1|max = x2 = 10 и из условия:
10,
выбираем ближайшее
значение
.
=
min{
,
}
= min {
,
3/32} = 3/32,
.
Для s1-2 = (x12+x3) имеем:
где
;
Поскольку
,
масштаб
должен быть квадратом целого числа.
Для суммы s1-2 имеем:
|S1-2|max = x12+x3 = 302 + 20 = 920 и из условия:
920
выбираем ближайшее
значение
.
Тогда:
,
,
Рассмотрим функцию f2 (x1, x2, x3) = (x1x2x3), x1 max = b1 = 30, x2 max = b2 = 10, x3 max = b3 = 20, nоп.2 = 10, поэтому:
mx2-1 (1 – 2-10)/ x1 max = mx2-1 (1 – 2-10)/30 = 0,999/30 ≈ 1/32,
mx2-2 (1 – 2-10)/ x2 max = (1 – 2-10)/10 = 0,999/10 ≈ 3/32,
mx2-3 (1 – 2-10)/ x3 max = (1 – 2-10)/20 = 0,999/20 ≈ 3/64.
Соответственно, при mx2-1 = 1/32, mx2-2 = 3/32, mx2-3 = 3/64 окончательно получим масштаб произведения:
mp = mx2-1 · mx2-2 · mx2-3 = (1/32) · (3/32) · (3/64) = 9/65536 = (32)/(216) = (3/28)2.
Найдем:
.
Масштабные
коэффициенты
,
,
хранятся в ПЗУ в двоичной системе
счисления:
,
Поскольку
и
,
машинные вычисления для функции f1
производятся по формуле
.
Для масштабирования к одной операции
умножения добавляется еще одна операция
умножения, поэтому общее число операций
умножения и округления становится
равным nумн.1 = lокр.1
= 2 + 1 = 3, число сложений nсл.1
= 1.
Поскольку операнды – однобайтные числа, операция сложения на МП К580 с помощью команды ADD M требует сл = 7 тактов. Для выполнения умножений в формате 8 · 8 = 16 используем подпрограмму У88В, для которой умн = 499 тактов. Длина подпрограммы У88В LУ88В = 22 байта. Если на МП К580 работает на частоте f = 2 МГц, вычисления f1 составит примерно:
t1 (nсл.1 · сл + nумн.1 · умн)/ f = (1 · 7 + 2 · 499)/2 = 503 мкс.