Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ_L_к.doc
Скачиваний:
35
Добавлен:
27.08.2019
Размер:
20.33 Mб
Скачать

8.5. Перетворення кодів між системами числення

Перетворення коду із одної позиційної системи числення в іншу здійснюється діленням вихідного числа на основу нової системи числення. При цьому ділення повинно виконуватись за правилами вихідної системи числення.

Наприклад, для перетворення двійкового числа в двйково-десяткове – вихідне двійкове число необхідно поділити на 10. Ділення необхідно виконувати за правилами двійкової арифметики. Нехай необхідно виконати перетворення байту (8 розрядів) двійкового числа у двійково-десяткове. Результат перетворення буде складатись із 12 біт (3-х тетрад): молодша тетрада буде зберігати одиниці , які являють собою залишок від першого ділення вихідного числа на 10: середня тетрада – десятки, які являють собою залишок від другого ділення (отриманого попереднього результату) на 10, та сотні - в старшій тетраді, які є результатом від другого ділення.

Програма:

CALL DIV10 ; ділення вихідного числа на 10

MOV R7, A ; зберігання залишку в R7

MOV A ,R1 ; завантаження в А результату 1-го ділення

CALL DIV10 ; ділення 1-го результату знову на 10

SWAP A; передавання залишку 2-го діл. у старшу тетраду А

MOV A,R7; передача із R7 у А молодшої тетради

JMP EXIT; вихід із процедури

;підпрограма ділення на 10

;вихідний двійковий код знаходиться у А

DIV10 MOV R1, #01H; установка у нуль R1

SUB10 ADD A, #(NOT(10)+1); віднімання 10-ти із діленого

INC R1; інкремент результату

JC SUB10; цикл, якщо залишок не нуль

DEC R1; відтворення результату

ADD A, #10; відтворення (визначення) залишку

RET ; повернення

EXIT ; вихід із процедури

В результаті виконання процедури в молодшій тетраді R1 зберігаються сотні, а в акумуляторі – десятки та одиниці двійково-десяткового еквівалента

вихідного числа.

8.6. Аналого-цифрове перетворення

Якщо на одній платі з МК51 розмістити аналоговий мультиплексор

(перемикач), інтегратор та компаратор, то одночасно з виконанням основної задачі, можна побудувати і використовувати (при необхідності) високоточний АЦП перетворення вхідного аналогового сигналу Uвх у цифровий код (рис.8.2). Для його побудови необхідно використовувати два біти порта Р1 (наприклад, Р1.0 та Р1.1).

При ввімнені живлення на вхід інтегратора подається еталонна напруга із знаком (+) від опорного джерела живлення Еоп. При цьому на виході інтегратора через деякий час (залежить від величини опору R та ємності С) встановлюється відємний рівень напруги, а на виході компаратора встановлюється логічний нуль (сигнал 0).

Процес перетворення складається із двох етапів. Спочатку відбувається інтегрування вхідного сигналу Uвх у суворо визначений час Т1. Відлік часу Т1 починається з моменту t0 переходу напруги інтегратора через 0 (рис.8.2,б). Вхідний аналоговий сигнал Uвх повинен надходити для даної схеми від’ємним за знаком. Потім в момент t1 на вхід інтегратора подається напруга опорного джерела Еоп (протилежної полярності і вимірюється час інтегрування Т2, який пропорційний вхідному сигналу Uвх. Час інтегрування Т1 (період першого інтегрування) вибирається таким, щоб при максимальному значення Uвх.мах. – інтегратор не входив у обмеження (рис.8.2,б).

Рис.8.2 а) схема АЦП та б) діаграма його роботи.

Реалізація програми на МК51:

MOV TMOD, #0001H; налаштування лічильника Т/С0

MOV TH0, #HIGH (NOT (Т1)+1); завантаження Т/С0

MOV TL0, #LOW (NOT (Т1)+1) ;

SETB Р.1.1 ; налаштування на введення

SETB Р.1.0 ; подача Еоп на вхід інтегратора

WAIT JB Р.1.1, WAIT; чекання появи на виході інтегратора

; від’ємної напруги

CLR P1.0 ; подача Uвх на вхід інтегратора

WAITT0 JNB Р.1.1, WAITT0; чекання моменту t0

SETB TCON.4; старт лічильника Т/С0

WAITT1 JNB TCON.5, WAITT1; чекання моменту Т1

SETB Р.1.0 ; подача Еоп на вхід інтегратора, початок

; зворотнього інтегрування

WAITT2 JB Р.1.1, WAITT2; чекання моменту Т2

CLR TCON.4; скид Т/С0

CLR TCON.5; скид прапорця ТF0

MOV B, TH0 ; формування результату у регістровій парі

MOV A, TL0 ; (В) та А