Цифровий модульометр
  Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Цифровые устройства /

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

←предыдущая следующая→
1 2 3 



Скачать реферат


Рис. 3.

3. Розробка функціональної електричної схеми.

При розробці функціональної електричної схеми слід враховувати багато протиречивих факторів. Так, при використанні дорогих швидкодіючих ІМС, підвищується швидкодія та розширюється частотний діапазон модулометра, при використанні дешевих, як правило не швидкодіючих ІМС, обмежується швидкодія та частотний діапазон пристрою. До то ж треба по можливості використовувати поширені електронні компоненти, щоб при збірці не виникало труднощів з придбанням компонентів.

Велике значення має побудова самої схеми пристрою. Можна виконати схему з мінімальною кількістю ІМС, але така побудова не дає змоги легко нарощувати схему. Для легкої модернізації схеми вирішено використовувати порт вводу/виводу КР580ВВ55. Порт А налаштовується на вивід інформації, а порти В та С на ввід. До порту А підмикається регист-дешифратор, а до нього світлодіодний семисегментний індикатор, який відображає коефіцієнт модуляції. Регист-дешифратор потрібен для перетворення двійкового коду в код семисегментного індикатора та зберігання цього коду, поки процесор займається іншою роботою. До порту В та двох перших виводів порту С підмикається десятирозрядний АЦП. Так, як в даній схемі вимірюються миттєві значення несучої АМ коливань, то потрібен швидкодіючий АЦП, в той же час від повинен бути розповсюдженим та дешевим. З урахуванням цих вимог вибрана ІМС К1108ПВ1, яка має ТТЛ рівні на виходах. Для підключення ОЗП, ПЗП та порту вводу/виводу необхідні дешифратори. Для спрощення схеми, дешифратори виконуються на розповсюджених елементах мілкої логіки. Для логічної побудови схеми та можливості подальшої модернізації схеми ОЗП та ПЗП внесені в основний адресний простій, починаючи з нульового адресу, а порт вводу/виводу підмикається в простій портів.

Визначитмо адреси ОЗП, ПЗП, та портів вводу/виводу:

0000H – початок ПЗП

1FFFH – кінець ПЗП

2000H – початок ОЗП

27FFH – кінець ОЗП

00H – порт А

01H – порт В

02H – порт С

03H – порт керування портом вводу/виводу.

Для правильної роботи ІМС КР580ВВ55, до її керуючого регістру треба записати керуюче слово, яке визначається з табл. 1.

Табл. 1.

№ біту Дія

0 Порт С0-С3: 1– ввід, 0 – вивід

1 Порт В: 1- ввід, 0 – вивід

2 Вибір режиму: 0 – режим 0, 1 – режим 1

3 Порт С4-С7: 1 – ввід, 0 – вивід

4 Порт А: 1 – ввід, 0 – вивід

5 Вибір режиму: 00 – режим 0, 01 – режим 1, 10 – режим 2

6

7 1 – керуюче слово

В нашому випадку керуюче слово: 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 -

←предыдущая следующая→
1 2 3 



Copyright © 2005—2007 «Mark5»