Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп лек по ЭиУА.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
934.4 Кб
Скачать

7.4 Целочисленное деление

Алгоритм целочисленного деления показан на примере деления 35 на 10 в таблице 7.3. Из алгоритма в таблице видно, что, если делитель равен нулю, то программа зациклится.

Таблица 7.3 - Алгоритм целочисленного деления

Цикл

Частное

Действие

Значение бита «С»

С=0?

Действие

INC

DEC

0

Rab_peg=35

1

1

Rab_peg= Rab_peg- Delitel=25

1

Нет

Повторяем цикл

2

2

Rab_peg= Rab_peg- Delitel=15

1

Нет

Повторяем цикл

3

3

Rab_peg= Rab_peg- Delitel=5

1

Нет

Повторяем цикл

4

Rab_peg= Rab_peg- Delitel=-5

0

Да

Возвращаемся назад на 1 шаг

3

Ostatok = Rab_peg+Delitel=5

Результат деления: частное=3, остаток =5, т.е. 35/10=3 (5)

Delenie; подпрограмма. Входы Delimoe и Delitel, выходы Chastnoe и Ostatok.

CLRF Chastnoe

MOVF Delimoe, W;

MOVWF Rab_peg; копируем Delimoe в рабочий регистр.

MOVF Delitel, W; копируем Delitel в W.

BTFSC STATUS, Z; защита от деления на нуль, Delitel=0?

GOTO NUL; если Delitel=0, выходим из программы.

Metka INCF Chastnoe, F; накапливаем частное.

SUBWF Rab_peg, F; вычитаем Rab_peg=Rab_peg-Delitel.

BTFSC STATUS, C; проверяем разность отрицательная? C=1?

GOTO Metka; выполняется только при C=1.

; Было выполнено одно лишнее вычитание. Возвращаемся на один шаг.

DECF Chastnoe, F; восстанавливаем частное, уменьшая его на 1. ADDWF Rab_peg, W; восстанавливаем предыдущее значение Rab_peg.

MOVWF Ostatok; запоминаем остаток, он равен W.

RETURN

NUL MOVLW D'255'; защита от деления на ноль.

MOVWF PORTC; сигнализируем о зацикливании программы.

END

7.5 Умножение на дробное число

Умножение на дробное число можно выполнить с точностью до целых с помощью умножения заданного числа на целое число (множитель), и затем деления результата на другое целое число (делитель). Множитель и делитель подбираются на калькуляторе или MSExcel.

Пример. Выполним умножение числа 6 на 0,8. Сначала на калькуляторе подберем целочисленный множитель и целочисленный делитель, таким образом, чтобы получить примерно заданный коэффициент. В данном случае подходят множитель 4 и делитель 5, поскольку 4/5=0,8. Далее умножаем заданное число на четыре, и затем результат делим на пять. Остаток будет определять погрешность проведённых вычислений.

8 Программирование клавиатуры. Дешифратор

Цель работы: создание программ с вводом данных клавиатурой, рассмотрение схем дешифратора и компаратора.

Краткое содержание лекции. Подключение клавиатуры и её опрос. Дребезг контактов, защита от дребезга контактов. Дешифратор и его работа. Компаратор и его работа.