Розробка мікропроцесорного пристрою системи автоматичного регулювання (RM)

Посмотреть архив целиком

MVI A ,91H - вивід в С4 одиниці

OUT FBH - вивід в С4 одиниці

MVI А, 8H вивід в C4 нуля

OUT FBH вивід в C4 нуля


Після цього АЦП приступив до перетворення вхідного сигналу в цифровий код. По закінченні

перетворення МП переходить до програми обробки перетворешія. в якій послідовно вводиться 2 байти Хn;

IN F8H ;ввід з каналу А

STA XNL ;вивід по адресі XNL - молодшого байту Хn

IN FAH ;ввід з каналу С

ANI 03Н

STA XNH ; вивід по адресі XNH - адреси старшою байту Хn

операція виводу виглядає простіше:

LDA YN1 ; ввід в акумулятор 8-розрядів Yn з комірки YN1

OUT F9H ; вивід в канал В;

LDA YN2 ; ввід в акумулятор 2-х молодших розірядів YN3,YN2

;(iншi занулені крім С4) OUT FBH

Передача (двох) 2-х молодших розрядів Yn, окремо зумовлена тим, щоб була найменша похибка у вихідному сигналі оскильки AЦП виводить інформацію швидко. Передача 2-х. стар­ших розрядів Yn окремо викликала б (значну похи6ку) стрибок вихідною сигналу.


6.Програма цифрової обробки інформації.

Як видно зі схеми алгоритми функціонування NМП-пристрою, програма цифрової оброб-ки iнформації повинна неодноразово виконувати такі операції як :

1) множення 2-байтвох чисел на однобайтові;

2) додавання 2-х байтових чисел.

Для цього можна використати готові програми [2] ПП множення цилих чисел без •знаку 16*8:


D

E

*



A





A

H

I












DMULT:


NXBIT:




NOADD:

LXI Н, 0H

MVI С, 08Н

DAD H

RAL

JNC NOADD

DAD D

AСІ 0

DCR С

JNZ NXBIT

RET


ПП додавання двобайтових чисел:



B

С

+




адрHL+1

адрHL






адрHL+1

адрHL












PLUS:

MOV A, C

ADD M

MOV M, A

MOV А, В

INX H

ADC M

MOV M, A

DCX H

RET


Виходячи, що з умови завдання вхідний сигнал - двополярний. то потрібно організувати операцію множення 2-го числа на однобайтове зі знаком. Оскільки вхідний сигнал представле-ний як 10-ти розрядний зі знаком, а є можливість використати ПП множення DMULT чисел 16*8 біт знаку, то при множенні будемо подавати як ціле додатнє число, за модулем рівне. В па-м'яті будемо зберігати в такому форматі:



байт XNH


байт XNL

D15







D8


D7







D0


0

0

1

0

0

0

.


.

.

.

.

.

.

.

.




модуль Xn


(адр.XNH=адр.XNH1)


З АЦП Xn подається у такому вигляді:

111…11 +Umax

100…00 0

000…00 -Umax


Для приведення цього формату потрібно:

1) коли X9=0 то проінвестувати розряди X0X9; D15=1

2) коли X9=1 то D15=0; X9=0


Користуючись алгоритмом програми обробки переривання і вищесказаним, програма обробки переривання на мові асемблеру буде:


































OP:


















M1:







M2:

PUSH H

PUSH PSW

LHLD XNL

SHLD XNLP

IN F8H

MOV L, A

IN FAH

ANI 03H


MOV H, A

ANI 02H

JZ M1


MOV A, H

ANI 010

MOV H, A

JMP M2

MOV A, L

CMA


MOV L, A

MOV A, H

CMA

MOV H, A

SHLD XNI

MVI A, 9H

OUT FBH

POP PSW

POP H

EI

RET



Занесення колишнього значення Xn в комірку памяті для Xn-1

Ввід в програму розрядів X0X7


Ввід з каналу C розрядів
X8, X9 числа Xn



Визначення умови:
чи X
9=0


Корекція старшого байту
додаткового
Xn





Корекція відємного Xn до прийнятого формулою Xn





Запис Xn у комірку пам’яті XNI і XNH

Вивід у канал C розряд C4=1 для гашення результату



Дозвіл переривання



Основна програма повинна функціонувати по алгоритму, наведеному вище. Виникає тільки проблема узгодження інформації (кодів) представлення чисел з АЦП в пам'яті для виводу на АЦП (а вони всі різні). Для представлення Yn в пам'яті, виберемо той же формат, що і для Хn (так само і Хn-1). Коефіцієнти а0, а1, b1 в пам'яті зберігаються у вигляді модуля.

Основна програма враховує, шо а1, є від'ємний. В основній програми будуть використані ще дві програми:

1) ПП переводу 2-х байтового числа в доповнений код (для спрощення операції додавання)










DOP:

MOV A, H

СМA

MOV H, А

MOV A, І

СМА

MOV L, A

INX H

RET


2) ПП множення чисел зi знаком, яка використовує ПП DMULT (множення чисел без знака)



















MN








ML

MM

MOV C, A


MOV A, H

JP ML

MVI B, 1H

ANI 7FH

MOV H, A

JMP MM

MVI B, 0H

XCHG MM

MOV A, C

CALL DMULT

MOV L, H

MOV H, A

MOV A, B


RET

Множник з регістру А заноситься в
регістр С для зберігання

Чи виконується умова, що множене
в (
HL) є позитивне число

B=1 означає що множене (в HL) є відємне

Корекція множеного до модуля

Числа


B=0 означає, що множене (в HL) є додатнє

Обмін DE HL

Занесення в регістр А множника з регістру С

Множення чисел без знаку (16*8)

Корекція результату (добутку)
до цілого числа

Ознака знаку множеного в А=1 – відємне
А=0 додатнє



Основна програма починається з ініціалізації мікросхеми K580ВВ55 для обміну з ЦАП і АЦП, після тогоАЦП встановлюється (після гасіння) в режим іперетворення вхідного сигналу. Далі іде циклічний підрахунок і виведення результату.


Случайные файлы

Файл
8466-1.rtf
101683.rtf
170204.rtf
64612.rtf
11346.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.