Организация УСД - Устройство сбора данных на микропроцессорной основе

Начальный адрес 04F6 ячейки памяти области ОП, отведенной для сбора данных, будем хранить в паре регистров HL. Текущий адрес аналогового канала в соответствии с заданием будем помещать в регистр D.

Рисунок 2

Примем порядок пороса аналоговых каналов, начиная с канала, имеющего номер 0. Чтобы обеспечить формирование признака завершения цикла сбора данных, в регистр В поместим число F. В моем варианте F=610. Тогда блок-схема алгоритма сбора данных будет иметь вид рисунка 3.

В блоке 1 в пару регистров HL загружаем начальный адрес М=04F6. В блоке 2 в регистр В загружается чисто 6h. В блоке 3 регистр R=D служит счетчиком адресов аналоговых каналов. В него загружается адрес первого канала h. Затем этот адрес через аккумулятор и устройство вывода № 1 ( блоки 4 и 5) поступает на адресный вход коммутатора, как показано на рисунке 2. Коммутатор подключает первый канал ко входу АЦП и запускает последний. МПУ переходит в режим ожидания окончания акта преобразования в АЦП ( блоки 6,7 и 8). Сигнал с выхода ОК (окончание) АЦП заносится в младший разряд регистра - порта №2. Пока ОК=0, акт в АЦП не окончен. В этом случае блоки 6+8 обеспечивают запись триггер-флага с нуля и происхождение программы по малому циклу. Данный режим выполнения программы продолжается до тех пор, пока сигнал ОК на выходе АЦП не станет равным 1. Так обеспечивается режим ожидания. Как только ОК станет равным 1, то после выполнения команды блока 8 С=1 осуществляется запись данных с выхода АЦП в устройство ввода №1 и через аккумулятор микропроцессора в заданную ячейку оперативной памяти (блоки 9 и 10) оперативный память быстродействие микросхема

Далее формируется адрес следующих: ячейки памяти (блок 11) и аналогового канала (блок 12). Новый адрес канала засылается в аккумулятор (блок 13). В блоке 14 выполняется операция сравнения содержимого регистров D и B. Равенство D=B=0 говорит о том, что все каналы опрошены и срабатывает нулевой признак z=1, цикл сбора данных завершен. Если z=0, то осуществляется опрос следующего канала, так как при выполнении операции сравнении, содержимое аккумулятора остается неизменным, то есть в нем по-прежнему, содержится адрес следующего канала, загруженный в блок 13. Таким образом, пока адрес очередного аналогового канала, сформированный в регистре D, в блоке 12, остается меньше 6h, обеспечивается прохождение программы по большому циклу. Программа на языке ассемблера представлена в таблице 1.

Т а б л и ц а 1

Метки

Мнемокод

Операнды

Комментарий

Байты

Циклы

Такты

1

LXI

H, 04F6h

HL04F6h

3

3

10

2

MVI

B, 6h

B6h

2

2

7

3

MVI

D, 00h

D00h

2

2

7

4

MOV

A, D

AD

1

1

5

5

K2

OUT

1

Уст. Выв. №1(А)

2

3

10

6

K1

IN

2

АУст. Ввода № 2

2

3

10

7

RRC

AСдвиг в право(A)

1

1

4

8

JNC

K1

Организация цикла

3

3

10

9

IN

1

АУст. Ввода №1

2

3

10

10

MOV

M, A

М(HL)(А)

1

2

7

11

INX

H

HL(HL)+1

Увеличение содержимого на 1

1

1

5

12

INR

D

D(D)+1

Перейдем к адресу след. канала

1

1

5

13

MOV

A, D

A(D)

1

1

5

14

CMP

B

(A) - (B)

1

1

4

15

JNZ

K2

Проверка регистра Z. Если z0, то переходим к К1

3

3

10

В комментариях таблицы 1 использованы сокращения: Сдв. П (А) - сдвиг вправо содержимого регистра А, УП - условный переход.

Размещение программы представлено в таблице 2.

Т а б л и ц а 2

№ команды

Адрес 16

1

    1A4D 1A4E 1A4F

2

    1A50 1A51

3

    1A52 1A53

4

1A54

5

    1A55 1A56

6

    1A57 1A58

7

1A59

8

    1A5A 1A5B 1A5C

9

    1A5D 1A5E

10

1A5F

11

1A60

12

1A61

13

1A62

14

1A63

15

    1A64 1A65 1A66

Число ячеек ОП, отводимых под команду, определяется числом байтов в команде. В таблице 2 стрелками показана последовательность выполнения команд. В командах условного перехода, где последующее выполнение той или иной команды зависит от условия, указаны пары стрелок, рядом с которыми значения сигналов условий.

В таблице 3 представлена программа в кодовых комбинациях.

Т а б л и ц а 3

№ команды

Адрес ОП16

Команда2

Команда16

Комментарий

1

1A4D

0000 0100

04

HL04F6

1A4E

1111 0110 B2

F6

B2 младший байт

1A4F

0000 0110 B3

04

В3 старший байт

2

1A50

0000 0110

06

В6h

1A51

0001 0000

10

3

1A52

0001 0110

06

D00h

1A53

0000 0000

00

4

1A54

0111 1010

7A

AD

5

1A55

1101 0011

D3

Уст. Выв. №1(А)

1A56

0000 0001

01

6

1A57

1101 1011

DB

АУст. Ввода № 2

1A58

0000 0010

02

7

1A59

0000 1111

0F

AСдвиг в право(A)

8

1A5A

1101 0001

D2

УП при С=0 переход

1A5B

0101 0111 В2

57

К ячейке 1A57, В3 ст.

1A5C

0001 1010 В3

Байт В2 мл. байт

9

1A5D

1101 1011

DB

АУст. Ввода №1

1A5E

0000 0001

01

10

1A5F

0111 0111

77

М(А)

11

1A60

0010 0011

23

HL(HL)+1

12

1A61

0001 0100

14

D(D)+1

13

1A62

0111 1010

A(D)

14

1A63

1011 1011

B8

(A)(B)

15

1A64

1101 0010

С2

УП при Z=0 переход

1A65

0101 0101 В2

55

К ячейке 1A55

1A66

0001 1010 В3

В3 ст байт, В2 мл. байт

Похожие статьи




Организация УСД - Устройство сбора данных на микропроцессорной основе

Предыдущая | Следующая