( ЕО) обох буферних регістрів, здійснюється подача 12-ти розрядного коду на входи ЦАП. Цей сигнал подається програмно, встановленням в 0 четвертого біта ( не зарезервованого) порта С.
5. Загальна структура програми роботи МПП
Структура програмного забезпечення для МПП включає в себе:
головну програму, з якої викликаються підпрограми: ініціалізації, обробки інформації, виводу інформації на ЦАП. В свою чергу підпрограма обробки інформації звертається до підпрограми множення.
програму обробки переривання.
; Головна програма
MAIN: LXI H,FFFFh ;встановлення вказівника стеку на кінець ОЗП,
SPHL ;оскільки в програмі використовується стек
CALL INIT ; виклик підпрограми ініціалізації
MVI A,01H ; подача логічного одиниці в тригер 0-го біта порта С
OUT 07H ;тобто подача сигналу “Запуск” для АЦП
WAIT: EI ; дозвіл переривань
DI ; перевірка не повинна перериватися
LDA 40BH ; Цикл очікування готовності АЦП,
CPI 1; перевірка змінної в пам’яті (“індикатора”) на рівність два.
JNZ WAIT; (чи відбулось переривання?), якщо ні, то продовжити цикл
DI ; програма не повинна перериватися
XRA A ; обнулити “індикатор”,
STA 40BH
CALL DEALW ; Викликати підпрограму обробки інформації
CALL CAP ; Вивести результат на ЦАП
JMP WAIT ; перехід на наступний робочий цикл
; Підпрограма ініціалізації
INIT: DI ; Ініціалізація не повинна перериватися
MVI A,92H; Програмування ППІ1: 0-й режим, порт А,В – ввід,С – вивід.
OUT 07H ; Адреса РКС для ППІ1
MVI A,80H; Програмування ППІ2: 0-й режим, порт А,В,С – вивід.
OUT 0FH ; Адреса РКС для ППІ2
MVI A,14H; Програмування таймера: лічильник – 0, спосіб запису -
OUT 0BH ; молодший байт, режим – 2, лічильник – двійковий.
MVI A,8 ; Запис в лічильник коефіцієнту ділення частоти – 8
OUT 08H ; Адреса РКС таймера
MVI A,F7H; Програмування програмованого контролера переривань ICW1.
OUT PICUL; молодший байт,адреси підпрограми обробки переривань.
MVI A,00H ; задання ICW2
OUT PICUH; старший байт,адреси підпрограми обробки переривань.
MVI A,FDH; задання OCW1,тобто задання обслуговуваних входів PIC.
OUT PICUH ; запис OCW1 в PIC.
MVI A,0h ; запис в пам’ять „0”
STA 40BH ; для індикації
LXI H,400H ; Встановлення адреси на початок ОЗП
MOV M,а0 ; Запис в пам’ять коефіцієнту а0
INX H ; Перехід на наступну комірку пам’яті
MOV M,а1 ; Запис в пам’ять коефіцієнту а1
INX H ; Перехід на наступну комірку пам’яті
MOV M,a2 ; Запис в пам’ять коефіцієнту a2
LXI H,0000H ; Встановлення „0” для x.
SHLD H,405H ; Встановлення „0” для xn-1.
SHLD H,407H ; Встановлення „0” для xn-2.
EI ; дозвіл переривань
RET ; повернення в головну програму
5.1 Опис програми вводу, виводу
Вводом даних займається програма обробки переривання, в задачу якої входить прочитати дані з АЦП, тобто з портів А і В ППІ1, і записати їх в оперативну пам’ять.
; Обробник переривання
IR1: DI ; Інші переривання заборонені
PUSH PSW; Збереження в стеку регістра прапорців і акумулятора
IN 04H; Читання молодших 8 інформаційних розрядів із порта
А STA 403H ; їх запис в оперативну пам’ять.
IN 05H; Читання старших 4-ох інформаційних розрядів із порта В
STA 404H ; їх запис в оперативну пам’ять.
MVI A,1 ; Інкрементування “індикатора” на 1, тобто вказівка головній
STA 40BH ; програмі, що переривання відбулося.
POP PSW; відновлення зі стеку регістра прапорців і акумулятора
EI ; дозвіл переривань
RET ; повернення в перервану програму
Підпрограма виводу обробленої інформації на ЦАП викликається в кінці робочого циклу головної програми, і в її задачу входить почергово записати у буферні регістри інформаційні розряди результату, для того, щоб потім одночасно подати їх на ЦАП. Запис у буферні регістри здійснюється через програмований паралельний інтерфейс ( ППІ2 ).
; Підпрограма виводу інформації на ЦАП
CAP: LDA 408H ; Завантаження з пам’яті 8 молодших розрядів результату
OUT 0CH; Їх вивід в порт А ППІ2 (запис в 1-й буферний регістр)
LDA 409H ; Завантаження з пам’яті 4 старших розрядів результату
OUT 0DH; Їх вивід в порт В ППІ2 (запис в 2-й буферний регістр)
MVI A,08H; Дозвіл виводу інформації із буферних регістів на ЦАП
OUT 0FH ; ( встановлення 4-го біту порта С ППІ2 в 0 )
MVI A,09H; Заборона виводу інформації із буферних регістів на ЦАП
OUT 0FH ; ( встановлення 4-го біту порта С ППІ2 в 1 )
RET ; Повернення в головну програму
5.2 Опис програми обробки інформації
Підпрограмам цифрової обробки інформації здійснює обчислення за одержаним рівнянням цифрового фільтру, тобто необхідно провести обчислення значення yn за відомими значеннями xn, xn-1, yn-1, та постійними коефіцієнтами.
; Підпрограма обробки інформації.
INFW: LHLD 403H ; Завантаження з пам’яті в регістри HL значення xn
MOV B,H; Перепис даних із HL в BC ( специфіка підпрограми DMULT)
MOV C,L
LDA 400H ; Завантаження в акумулятор коефіцієнту а0
CALL DMULT ; Множення xn з a0. Результат в HL
PUSH ; Збереження результату в стеку.
LHLD 405H ; Завантаження з пам’яті в регістри HL значення xn-1
MOV B,H ; Перепис даних із HL в BC
MOV C,L
LDA 401H ; Завантаження в акумулятор коефіцієнту а1
CALL DMULT ; Множення xn-1 з a1. Результат в HL
XCHG; Виконання операції HL=HL-DE, тобто (xn*a0)– (xn-1*a1)
MOV A,D
CMA
MOV D,A
MOV A,E
CMA
MOV E,A
INX D
POP H
DAD D
XCHG
LHLD 407H ; Завантаження з пам’яті в регістри HL значення xn-2
MOV B,H ; Перепис даних із HL в BC
MOV C,L
LDA 402H ; Завантаження в акумулятор коефіцієнту a2
CALL DMULT ; Множення xn-2 з a2. Результат в HL
DAD D ; HL=HL+DE, тобто (xn*a0)-(xn-1*a1)+(xn-2*a2)
MVI A,H
ANI 80H
JZ OVERF ; Перевірка: якщо результат від’ємний
LXI H,0; то присвоюємо йому нижню межу виводу на ЦАП ( тобто 0 )
JMP EXT
OVERF: MOV A,H
ANI 10H
JZ EXT ; якщо результат більший за 12 розрядів,
MOV A,H
ANI 20H
JZ EXT ; якщо результат більший за 12 розрядів,
MOV A,H
ANI 40H
JZ EXT ; якщо результат більший за 12 розрядів,
LXI H,0FFFH; то присвоюємо йому верхню межу виводу на ЦАП ( 4095 )
EXT: SHLD 409H ; Запис результату в пам’ять
LHLD 405H ; Переписати значення xn-1 на місце xn-2
SHLD 407H
LHLD 403H ; Переписати значення xn на місце xn-1
SHLD 405H
RET ; Повернення в головну програму
; Підпрограма множення (спеціалізована). Вхід: BC-множене, A- множник. Вихід: HL- результат
DMULT: PUSH D ; Збереження в стеку регістрів DE
LXI H,0
MVI E,8
Z1: DAD H
RAL
JNC Z2
DAD B
Z2: ACI 0
DCR E
JNZ Z1
MOV L,H; Зсув результату на 8 розрядів вправо (Це пов’язано із
MOV H,A ; специфікою формату представлення даних ).
POP D ; Відновлення зі стеку регістрів DE
RET ; Повернення в підпрограму обробки інформації
5.3 Оцінка верхньої фінітної частоти вхідного аналогово сигналу
Для визначення верхньої фінітної частоти, тобто значення максимальної частоти, що може міститися в аналоговому вхідному сигналі, необхідно порахувати максимальну кількість тактів при виконані обміну і обробки інформації.
Таблиця 9. Кількість тактів, що виконуються основним циклом програми
Частина програми | Кількість тактів | Число виконань за основний цикл | Кількість тактів |
Основна | 152 | 1 | 152 |
Підпрограма ініціалізації | 245 | 1 | 245 |
Підпрограма обробки | 460 | 1 | 460 |
Підпрограма множення | 506 | 3 | 1518 |
Підпрограма виводу | 90 | 1 | 90 |
Програма обробки переривання (вводу даних) | 105 | 1 | 105 |
Разом | 2570 |
Кількість тактів в циклі очікування головної програми розраховується у відповідності з tпер АЦП.
Отже загальна кількість тактів основного циклу програми: N= 2570.
На основі теореми про вибірки ( дискретизації ) визначимо фінітну частоту роботи МПП. Дана теорема в ряді випадків називається теоремою Котельникова, Шеннона або Уіттекера – на честь вчених, що її сформували і довели незалежно один від одного. Теорема стверджує можливість представлення аналогово сигналу дискретним рядом, отриманим з АЦП, у випадку виконання умови:
де fDt – частота дискретизації; fmax – фінітна частота вхідного аналогово сигналу.
При тактовій частоті роботи МП КР580ВМ80 рівній 2,5 МГц отримаємо тривалість виконання основного циклу програми:
що відповідає частоті обміну і обробки інформації в МПП, яка рівна:
За теоремою про вибірки фінітна частота вхідного аналогово сигналу має бути вдвічі менша fDt, тобто
Отже, МПП ефективно з великою достовірністю проводить перетворення за функціональною залежністю аналогових сигналів з верхньою обмежувальною частотою 486,38Гц.
6. Опис функціонального вузла
Системний контролер КР580ВК28 призначений для фіксації слова стану процесора КР580МВ80А, формування сигналів які керують пам’ятю і зовнішніми пристроями і буферизації шини даних.
Таблиця 10. Технічні характеристики
Технологія | ТТЛШ |
Число активних елементів у кристалі | 1141 |
Тип корпуса | 2121.28-4 |
Напруга живлення,В | +5 |
Струм споживання,А | 190 |
Ємність вхідна,Пф | 12 |
Ємність вихідна,Пф | 15 |
Маса, г | 5 |
На схемі 15 зображено корпус системного контролера, а на умовне графічне зображення схеми електричної принципової . Функціональне призначення виводів контролера приведено в таблиці.