Українські реферати, курсові, дипломні роботи
UkraineReferat.org
українські реферати
курсові і дипломні роботи

Цифровий модульометр

Реферати / Інші / Цифровий модульометр

В нашому випадку керуюче слово: 1000 0011 (83Н)

4. Розробка алгоритму та програми. Алгоритм роботи програми можна побудувати за двома майже протилежними принципами вимірювання:

1. Занесення даних, отриманих з АЦП до комірок ОЗП. Після проведення N вимірів проводять математичну обробку даних.

2. Порівняння даних, отриманих з АЦП з ”еталонними” та занесення до комірок ОЗП тільки ті дані, які пройшли ”відбір”. Після проведення N вимірів проводять математичну обробку даних.

Модулююча частота, як правило набагато перевищує частоту корисного (модулюючого) сигналу і при послідовному занесенні всіх вимірів до ОЗП для находження хоча б двох точок максимума та мінімума сигналу потрібне ОЗП порядку 1-10 кБ. Наприклад: частота несучої 100 кГц, частота модулюючого сигналу 1 кГц, тоді для знаходження одного максимума та мінімума сигналу потрібно 100/1=100 комірок ОЗП, які мають таку ж розрядність, що й АЦП, або більшу. Якщо розрядність АЦП 10 біт, то буде використовуватись 2 байти ОЗП на кожний вимір. Для задовільної точності математичної обробки потрібно декілька десятків вимірів максимума та мінімума сигналу, наприклад 50. Ітого: 100/1*2*50=10000 байт ОЗП. Якщо проводити порівняння кожного вимру з АЦП з попередньо отриманими значеннями максимума та мінімума сигналу, то буде використовуватися лише 4 байти ОЗП

Оскільки в даному методі нас цікавлять тільки два значення сигналу: максимальне та мінімальне, а також враховуючи те, що заданий об’єм ОЗП всього 2 кБайти, то побудову алгоритму роботи програми будемо проводити за другим варіантом.

На початку треба проініціалізувати порти вводу/виводу та індикатор, а також становити “еталонні” значення максимума та мінімума сигналу. Після проведення N вимірів, запускається математична обробка данних, результатом якої є значення коефіцієнта модуляції сигналу. Для виводу його на індикатор необхідно попередньо це значення розділити на декади.

 

 
 

Рис. 4. Блок-схема алгоритму.

Розробка програми проводиться за блок-схемою алгоритму та функціональною електричною схемою.

Визначимо розташування даних в ОЗП (Табл. 3.). Так, як АЦП має 10 розрядів даних, то числа, що вводяться з нього будуть двобайтними.

Табл. 3.

Адреса

Зміст комірки ОЗП

2000H

Старший байт Umax

2001H

Молодший байт Umax

2002H

Старший байт Umin

2003H

Молодший байт Umin

2004H

Молодший байт (Umax – Umin)

2005H

Старший байт (Umax – Umin)

2006H

Молодший байт (Umax + Umin)

2007H

Старший байт (Umax + Umin)

2008H

Значення коефіцієнта модуляції

Оскільки даний процесор не має власних команд ділення та множення чисел, то для реалізації ділення двох чисел написані дві підпрограми для ділення одно- та двобайтних чисел. Для спрощення алгоритму ділення, об’єму та складності підпрограм, а також зменшення часу роботи підпрограм ділення виконується націло, тобто залишок після операції ділення просто відкидується, що спричиняє додаткову похибку вимірювання, яка становить від 0 до +1% коефіцієнта модуляції.

Лістинг програми.

MOV A, 83H ;Занесення до акумулятору керуючого слова

OUT 03H ;Запис керуючого слова до порту

MOV A, 70H ;Керуюче слово для обнуління індикатора

OUT 00H ;Обнуління всіх розрядів індикатора

Start: MOV E, FF ;Лічильник вимірів

Wait: LXI H, 2000H ;Завантаження в HL початкової адреси ОЗП

IN 02H ;Ввід даних з порту С

ANI 04H ;Виділення сигналу готовності АЦП

JNZ Wait ;Перехід, якщо немає готовності

OUT O2H ;Активізація виходу АЦП

IN 01H ;Ввести молодший байт з порту В

MOV C, A ;Зберегти у регістрі С

IN 02H ;Ввести старший байт з порту С

ANI 03H ;Виділення двох старших біт даних

MOV B, A ;Зберегти у регістрі В

MOV D, M ;Занесення до регістру D старшого байта Umax

CMP D ;Порівняння з даними з АЦП

INX H ;HL ß 2001H

JC Lo ;Якщо менше, перехід до порівняння з Umin

MOV A, M ;Занесення до регістру А молодшого байта Umax

CMP C ;Порівняння з даними з АЦП

JC Write ;Якщо менше, перехід до порівняння з Umin

Lo: INX H ;HL ß 2002H

MOV A, M ;Занесення до регістру А старшого байта Umin

CMP B ;Порівняння з даними з АЦП

JC Exit ;Якщо більше, перехід до наступного циклу

INX H ;HL ß 2003H

MOV A, C ;Занесення до регістру А молодшого байта з АЦП

MOV D, M ;Занесення до регістру D молодшого байта Umin

CMP D ; Порівняння з даними з АЦП

JNC Exit ; Якщо більше, перехід до наступного циклу

Write: MOV M, C ;Зберігання у ОЗП молодшого байта

DCX H ;HL ß 2002H/2000H

MOV M, B ;Зберігання у ОЗП старшого байта

Exit: DCR E ;Декримент лічильника кількості вимірів

JNZ Wait ;Якщо не 0, то повторити вимірювання

LXI H, 2000H ;Завантаження в HL початкової адреси ОЗП

MOV B, M ;Занесення до регістру B старшого байта Umax

INX H ;HL ß 2001H

MOV C, M ;Занесення до регістру C молодшого байта Umax

INX H ;HL ß 2002H

MOV D, M ;Занесення до регістру D старшого байта Umin

INX H ;HL ß 2003H

MOV E, M ;Занесення до регістру E молодшого байта Umin

INX H ;HL ß 2004H

MOV A, С ;Занесення до регістру А молодшого байта Umax

SUB E ;UmaxLO - UminLO

MOV M, A ;Зберігання результату в ОЗП

INX H ;HL ß 2005H

MOV A, B ;Занесення до регістру А старшого байта Umax

SBB D ;UmaxLO - UminLO

MOV M, A ;Зберігання результату в ОЗП

INX H ;HL ß 2006H

MOV A, C ;Занесення до регістру А молодшого байта Umax

ADD E ;UmaxHI + UminHI

MOV M, A ;Зберігання результату в ОЗП

INX H ;HL ß 2007H

MOV A, B ;Занесення до регістру А старшого байта Umax

ADC D ;UmaxHI + UminHI

MOV M, A ;Зберігання результату в ОЗП

LXI H, 2004H ;HL ß 2004H

MOV E, FFH ;Ініціалізація лічильника

MOV A, M ;A ß (UmaxLO - UminLO)

INX H ;HL ß 2005H

Завантажити реферат Завантажити реферат
Перейти на сторінку номер: 1  2  3  4 

Подібні реферати:


Останні надходження


© 2008-2024 україномовні реферати та навчальні матеріали