Вариант программной реализации автомата Мура, страница 2

1)  При включении в автомате генерируются с определенной частотой тактовые импульсы, которые подаются на триггеры памяти и автомат  переходит в определенное начальное состояние.  На диаграмме состояний – это отмеченный круг начального состояния с обычно нулевыми входными сигналами. Пусть на совмещенной таблице переходов и выходов Табл. 1 включение (определение начального состояния) автомата, означает, что  при отсутствии входных сигналов x2x1=00 автомат перейдет в состояние  Q*2Q*1=11, при этом на выходе никакого сигнала не будет (клетка  координатами х2х1=00, Q2Q1=00, где  y2y1/Q*2Q*1=00/11). Автомат в этом начальном состоянии (см. столбец с координатами Q2Q1=11) может реагировать на любой из трех входных сигналов х2х1={01, 10, 11}.

2)  При поступлении, например, сигнала x2x1=01 автомат перейдет в состояние  Q2Q1=01;  (клетка с координатами х2х1=01, Q2Q1=11, где  y2y1/Q*2Q*1=11/01). В этом новом состоянии и при этом сигнале,  автомат будет выдавать выходной сигнал y2y1=11. На диаграмме (графе) состояний входные и выходные сигналы указываются на стрелках, а состояния в кружках. При поступлении определенного сигнала из начального состояния по стрелке определяется  следующее состояние (здесь они обозначаются звездочками). По надписи у стрелки определяется выходной сигнал автомата, который будет присутствовать на выходе до тех пор, пока автомат находится в данном состоянии с данным входным сигналом.

3)  Пока автомат включен, на блок памяти подаются синхроимпульсы и при поступлении на его вход определенного сигнала он переходит опять-таки в другое определенное состояние и в этом состоянии вырабатывает другой определенный выходной сигнал. По таблицам переходов и выходов или по диаграмме состояний можно проследить поведение конкретного автомата так, как это описано выше в п.п. 1,2.

2. О размещении таблицы переходов и выходов в памяти микропроцессора.  Реализация схемы автомата на серии выпускаемых логических элементов (схемы реализации с жесткой логикой) отличается от программной реализации автомата тем, для программной реализации необходимо только одно программируемое устройство – микропроцессор; и такие устройства выпускаются.

Естественно, что при  программной реализации  необходимо учитывать принципы работы вычислительных Машин. Основной адресный принцип работы заключается в том, что  в командах программы указываются не сами данные, а адреса ячеек памяти, в которых расположены эти данные. Теперь можно уточнить алгоритм программной реализации автомата, использующий этот адресный принцип работы всех микропроцессоров. Если исходные состояния и входы совмещенной таблицы переходов и выходов представить как  адреса и по этим адресам записать выходные сигнала и состояния, то в программе по адресу кодов входного сигнала и состояния надо считать (не сосчитать!) содержимое ячейки с этим адресом. Тем самым определить коды сигналов и состояний автомата. Для более ясного понимания алгоритма программной реализации перепишем совмещенную таблицу переходов и выходов Табл. 1 в следующей форме (Табл. 2).   В Табл.2 приведены 16-ричные коды состояний и выходов, которые используются  для  компактной записи данных в программах на ассемблере.

Таблица переходов и выходов                                 Табл. 2                                                                   

Номер

ячейки

памяти

от нуля

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

таблицы

x2x1Q2Q1

Коды

состояний

и выходных

сигналов

y2y1/Q*2Q*1

16-ричные коды состояний и выходов

0

0000

0011

03h

1

0001

- - - -

00h

2

0010

1110

0Ch

3

0011

- - - -

00h

4

0100

- - - -

00h

5

0101

1001

09h

6

0110

1100

0Ch

7

0111

1101

0Dh

8

1000

- - - -

00h

9

1001

0110

06h

10

1010

- - - -

00h

11

1011

0000

00h

12

1100

1000

08h

13

1101

- - - -

00h

14

1110

0101

05h

15

1111

0011

03h

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