РКС – A3H.
Керуюче слово заноситься в РКС такою послідовністю команд:
MVI A, 90H
OUT 0A3H
Операція вводу:
IN 0A0H; ввід з каналу А
STA 500Н; вивід по адресі XN значення xn
Операція виводу:
LDA 504Н ;ввід в акумулятор 8-розрядів Yn з комірки YN
OUT 0А1H ;вивід в канал В;
Розряд 4 каналу С керує роботою АЦП (до нього підключений вивід АЦП “гашення/перетворення”).
Тоді гашення програмується так:
MVI A ,9H ;вивід в С4 одиниці
OUT 0A2H
Перетворення програмується так:
MVI А, 8H ;вивід в C4 нуля
OUT 0A2H
Як вже було зазначено, коефіцієнти а0, b0, C0 та змінні xn, yn-1, yn-2, yn представляються у пам’яті у вигляді таблиці з початковою адресою 500H.
Програмно це реалізовано так:
ORG 100H MVI A, 90H OUT 0A0H MVI A, a0 STA 501H MVI A, b0 STA 502H MVI A, c0 STA 503H LXI SP, 4FFH |
;занесення коефіцієнту а0 ;занесення коефіцієнту b0 ;занесення коефіцієнту c0 |
6. Програма цифрової обробки інформації.
Аналізуючи алгоритм функціонування МП–пристрою, ми бачимо, що нам потрібно використовувати такі операції:
ü множення однобайтового слова на однобайтове;
ü додовання однобайтових слів (це можна здійснити за допомогою команди ADD).
В [2] наведені готові програми для здійснення цих операцій.
1. Множення однобайтових чисел без знаку:
B |
|
* |
|
A |
|
H |
L |
10 7 7 10 4 16 10 5 16 10 |
MULL88: Z1: Z2: |
LXI H, 0 MVI D, 0 MVI C, 8 DAD H RLC JNC Z2 DAD D DCR C JNZ Z1 RET |
Коефіцієнти а0, b0, c0в пам'яті зберігаються у вигляді модуля.
Основна програма враховує, що c0 є від'ємний.
Користуючись алгоритмом програми обробки переривання і вищесказаним, програма обробки переривання на мові асемблеру буде (вона зберігається за адресою 8*7)[8]:
4 11 11 10 5 16 7 10 10 10 4 10 |
OP: |
D1 PUSH H PUSH PSW IN 0A0H LDA 500H SHLD XNI MVI A, 9H OUT 0A2H POP PSW POP H EI RET |
;заборона переривань ;Ввід в програму розрядів X0X7 ;гашення результату ;Дозвіл переривання |
Основна програма, за алгоритмом, починається з ініціалізації мікросхеми K580ВВ55 для обміну з ЦАП і АЦП, після того АЦП встановлюється (після гасіння) в режим перетворення вхідного сигналу. Далі іде циклічний підрахунок і виведення результату.
Основна програма:
7 7 13 7 13 7 13 10 7 10 7 10 7 10 13 5 13 17 13 13 5 13 17 13 4 13 13 5 13 17 13 4 13 13 13 13 13 13 10 5 10 10 7 |
START: |
ORG 100,H MVI A, a0 STA 501H MVI A, b0 STA 502H MVI A, c0 STA 503H LXI SP, 4FFH MVI A, 90H OUT 0A3H MVI A, 9H OUT 0A2H MVI A, 8H OUT 0A2H LDA 500H MOV B, A LDA 501H CALL MULL88 STA 504H LDA 505H MOV B, A LDA 502H CALL MULL88 LDA 504H ADD H STA 504H LDA 503H MOV B, A LDA 506H CALL MULL88 LDA 504H SUB H STA 504 H LDA 505H STA 506H LDA 504H STA 505H LDA 504H OUT 0A1H MOV A, 8H OUT 0A3H JMP START HLT |
; занесення в пам’ять коефіцієнтів ; ініціалізація ППІ ; запуск АЦП ;занесення в програму xn ; занесення коефіцієнту а0 ; визначення a0*xn ; занесення в комірку для yn ; занесення в програму значення yn-1 ; занесення коефіцієнту b0 ; визначення b0*yn-1 ; додавання b0*yn-1 і а0*хn ; занесення в комірку для yn ; занесення коефіцієнту с0 ; занесення в програму значення yn-2 ; визначення с0*yn-2 ; визначення b0*yn-1 + а0*хn - с0*yn-2 ; занесення в комірку для yn ; занесення yn-1 в комірку для yn-2 ; занесення yn в комірку для yn-1 ; вивід результату ; вивід логічного 0 в розряд С4 для ; дозволу перетворення АЦП ; перехід на початок |
6.1 Оцінка верхньої граничної частоти фільтру
Оцінку проводимо з точки зору найнижчої швидкодії фільтру. В процесі виконання програми виконується:
ü підпрограма обробки переривань (ОР)
ü підпрограма множення (3 рази) (MULL88)
Кількість тактів, за які виконується програма, зведені в таблицю:
Таблиця 6.1
Назва програми |
Кількість тактів, необхідних для виконнаня програми |
Число виконань даної програми за один цикл |
Кількість тактів, за цикл виконання програми |
Основна програма |
400 |
1 |
400 |
MULL88 |
95 |
3 |
285 |
OP |
108 |
1 |
108 |