Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микро_Контр_андр4.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
880.86 Кб
Скачать

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 мкс.