Пристрій мікропроцесорної обробки аналогової інформації
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
1 1 К2 К1 К0 1 1 1
де К2 К1 К0 - двійковий код числа N.
При використанні цієї команди за сигналом Готовність даних від АЦП на шині даних повинен бути сформований код команди RST N. Цю команду можна легко згенерувати розряди, які дорівнюють 1, отримуються підключенням лінії даних через резистор до +5 В, а код К2К1К0 можна отримати від шифратора на 3 лінії з 8.
Після того, як сигнал Готовність даних поступає на вхід синхронізації тригера відбувається перехід від “0” до “1” і дані з входу D (“1”) передаються на вихід Q, який зєднаний з виводом запиту переривання INT мікропроцесора. Очевидно, що ця зміна відбувається коди на вході “R” (виводі INTE) сигнал має рівень “1”, тобто переривання дозволено. Після цього мікропроцесор переходить до підпрограми обробки переривання, яка зчитує дані з портів ППІ і заносить їх в память попередньо заборонивши переривання. По завершенню роботи підпрограми обробки переривання мікропроцесор повертається до виконання головної програми, в які опрацьовуються дані зчитані обробником переривання.Потім результат записується в память і в порти виводу на ЦАП, в кінці програми дані підготовлюються для наступного повторення операцій, тобто на місце Xn-1 записується Xn, на місце Xn-2 записується Xn-1, на місце Yn-1 Записується Yn.
Блок-схема алгоритму функціонування МПС
Блок-схема підпрограми обробки переривань
4. Загальна структура програми роботи МПП
4.1 Опис програми вводу, виводу
В даній схемі використуваються два контроллери КР580ВВ55 (ППІ) з наступними адресами:
Перша ППІ (підключена до АЦП)Друга ППІ (підключена до ЦАП)Порт А80hПорт А90hПорт B81hПорт B91hПорт C82hПорт C92hРКС83hРКС93h
Для запуску АЦП (сигнал Гашення/Перетворення) будемо використовувати розряд C0 каналу С.
Ввід-вивід інформації буде здійснюватися в режимі 1 роботи ППІ через канал А та В.
Спочатку треба ініціалізувати дві ППІ для цього виконуємо
10111110
MVIA,10111110B; запрограмували режим 1 для портів А та В на ввід.
OUT083H
10101100
MVIA,10101100B
OUT093H;запрограмували режим 1 для портів 2-ої ППІ на вивід
Щоб запустити АЦП необхідно використати слово маніпуляції біта, в якому в розрядах D3-D1 задається номер біта порта С, а в розряді D0 значення яке необхідно туди записати.Ознакою слова маніпуляції біта є нуль в найстаршому розряді, розряди D6-D4 не використовуються для слова маніпуляції біта.
Тепер запускаємо АЦП
MVIA,00000000B;встановити в „0” старший розряд каналу С
OUT083H
MVIA,00000001B; встановити в „1” старший розряд каналу С
OUT083H
Після того як АЦП перетворить вхідний сигнал у 12-розрядний двійковий код буде сформовано сигнал „Готовність даних” який через тригер встановить сигнал INT=1, аце означає що почне виконуватися обробник переривання, код якого через буферний регістр буде виставлений на шину даних . Програма обробки переривання запише дані з портів А і В ППІ у комірки памяті і керування повернеться до головної програми.
Текст програми обробки переривання:
IRQ:
DI;заборона переривань, щоб цей обробник не був перерваний
PUSHB
PUSHD
PUSHH
PUSHPSW
IN80H; зчитуємо з порта А в акумулятор
STA516H; записуємо у память молодший байт Xn
IN81H; зчитуємо з порта В в акумулятор
ANI0FH; виділяємо 4 молодші біти з каналу В які є 9 ,10,11 i 12 розрядом Xn
STA517H;записуємо у память старший байт Xn
POPPSW
POPB
POPD
POPH
IRET
Програма виводу інформації на ЦАП буде викликатись в кінці кожного циклу обчислення Yn і її текст виглядає так :
VYVID:
LDA520H; завантажуємо в акумулятор молодший байт результату
OUT90H; виводимо в канал А
LDA521H; завантажуємо в акумулятор старший байт результату
ANI3FH;обнулення 14 і 15 бітів
OUT91H; виводимо в канал В
RET
4.2 Опис програми обробки інформації
Програма обробки інформації влючає в себе підпрограми множення 8-розрядного числа на 16-розрядне, підпрограму сумування добутків, що розміщені у стеку.
Підпрограма множення двобайтового числа на однобайтове без знаку.
Вхідні дані: регістр DE множене; акумулятор A - множник.
Результати: регістри A,H,L- добуток (A старші розряди; L - молодші).
Підпрограма використовує регістр C.
DMULT: LXI H,0
MVI D,0
MVI C,8
Z1: DAD H
RLC
JNC Z2
DAD D
Z2: DCR C
JNZ Z1
RET
Підпрограма сумування 16-розрядних чисел розміщених у стеку
Вхідні дані: вказівник стеку
Результати: регістри H,L
SUM:
POPB;зберігаємо адресу повернення з підпрограми
POPH;витягуємо зі стеку a0*Хn-1
POPD; витягуємо зі стеку b2*Xn-2
DADD; додаємо b0*Хn-1 + a2*Xn-2
POPD;витягуємо a1*Xn-1
DADD; додаємо b0*Хn-1 + a2*Xn-2+ a1*Xn-1
POPD; витягуємо a0*Xn
DADD; додаємо b0*Хn-1 + a2*Xn-2+ a1*Xn-1+ a0* Xn
JNC M1
MOVA,H
RAR
MOVH,AЗсовуємо результат додавання на 1 розряд вправо якщо
MOVA,Lвиник перенос при додаванні
RAR
MOVL,A
M1:
MOVA,H
STC
CMC
RAR
MOVH,A
MOVA,LЗсув результату на 2 розряди вправо
RARдля утворення даних, що прередаватимуться
MOVL,Aна ЦАП
STC
CMC
RAR
MOVH,A
MOVA,L
RAR
MOVL,A
PUSHB; відновлюємо адресу повернення
RET
Текст головної програми цифрової обробки інформації
ORG100H
MVIA,a0
STA501H
MVIA,a1
STA502H
MVIA,a2
STA503H
MVIA,b0
STA504H
LXIH,0
SHLD512H
SHLD514H
SHLD516H
SHLD518H
SHLD520H
LXISP,500H
MVIA,10111110B
OUT083H
MVIA,10101100Bініціалізація двох ППІ
OUT093H
START:
MVIA,00