Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦСУ_КОНСПЕКТ_М1_2013.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
11.51 Mб
Скачать

3.3 Метод адресных переходов

Другим широко распространенным методом является метод адресных переходов (таблиц). Значение функций выхода для всех вариантов входного набора записываются в памяти. При этом код входного набора используется для получения адреса результата.

Пример. Пусть нужно превратить двоичный код в код семисегментного индикатора. Обозначение сегментов такого индикатора приведено на рисунке 3.2, а соответствие двоичного кода коду семисегментного индикатора приведено в таблице 3.1.

Рисунок 3.2 - Обозначение сегментов индикатора

Таблица 3.1 - Таблица истинности для входных наборов (00...04)

Символ на индикаторе

Двоичный код входа

h

q

f

e

d

c

b

a

Код индика-тора

0

0000

0

0

1

1

1

1

1

1

3FH

1

0001

0

0

0

0

0

1

1

0

06H

2

0010

0

1

0

1

1

0

1

1

5BH

3

0011

0

1

0

0

1

1

1

1

4FH

4

0100

0

1

1

0

0

1

1

0

66H

Ячейке, которая содержит информацию о работе сегментов при поступлении кода 0000B, присваивается базовый адрес памяти BASE. Адреса других ячеек будут определяться автоматически путем суммирования базового адреса с кодом подаваемого на автомат числа.

При поступлении входного набора автомат выполняет его суммирование с адресом BASE и по полученному адресу считывает значение выходного сигнала.

3.4 Метод маскирования многоместных логических функций

В практике управления часто встречаются ситуации с трудностями задания условий и выбора решений. Поведение автомата описывается при этом матрицей многоместных логических функций, в которой условия перехода задаются матрицами условий Ui,j {1,0,–}, а результаты работы представляются матрицей решений Di,j {0,1,–}, где прочерки обозначают отсутствие условий или решений.

При представлении процесса графом переход с одного состояния (S1) в другое (S2) осуществляется по дуге xi (рис. 3.3).

Рисунок 3.3 - Обозначение перехода автомата в новое состояние

Для реализации процесса необходимо знать:

  • вектор условия перехода x;

  • вектор решения y - информацию о том, какие сигналы автомат должен установить, какие снять и какие оставить без перемен в новой вершине;

  • адрес памяти, где находятся данные по векторам условий и решений для новой вершины.

Таким образом, программная реализация автомата требует организации двух циклов. Поскольку из вершины может выходить несколько дуг, то в первом цикле осуществляется поиск дуги, которая удовлетворяет условиям, содержащимся во входном наборе. Если ни одно условие не подходит, автомат может выйти в непредвиденное состояние. Чтобы исключить этот вариант вводится фиктивная дуга с незначащими параметрами (- - - - - - - -), которая замыкает переход на эту вершину.

Во втором цикле осуществляется анализ вектора решений и формируется выходной сигнал автомата. После этого настраивается адрес новой области памяти, где сохраняются условия и информация для следующих циклов работы автомата.

Анализ условий и решений осуществляется с помощью маскирования. Для каждой дуги нужно создать четыре маски. Обозначим маски для вектора условий М1К(х) и М2К(х), а для вектора решений, соответственно, М1К(y) и М2К(у), где k=0, 1, 7 – номер разряда.

Первая маска выделяет значимые разряды байта вектора условий:

Вторая маска выделяет единичные значения:

Третья маска выделяет разряды, в которых выходные сигналы не должны изменяться:

Четвертая маска выделяет разряды, которые необходимо установить в единицу. Другие разряды сбрасываются:

Операции с масками аналогичны тем, которые были приведены выше.

Пусть дуга представлена вектором условий (0-1010-1), вектором решений (01--001-) и адресом 0926Н. При программировании автомата информация для этой дуги будет размещена в памяти в следующей последовательности:

ДУГА: 10111101  М1К(х)=BDH;

00101001  М2К(х)=29Н;

00110001  М1К(у)=31Н;

01000010  М2К(у)=42Н;

00100110 (младший байт адреса 26Н);

00001001 (старший байт адреса 09Н).

Таким образом, для описания одной дуги нужно шесть байт памяти.