книги / Вычислительная техника и информационные технологии. Цифровые автоматы и микроконтролеры. Руководство к лабораторным работам в системе PROTEUS 7.2 SP6
.pdfНажимаем и отпускаем «Синхро» (CLOK) (рис. 4.17). Формируется согласно ГСА – z4.
Рис. 4.17. Формирование состояния z4
Нажимаем и отпускаем «Синхро» (CLOK) (рис. 4.18). Возвращаемся в исходное состояние z1.
Рис. 4.18. Возвращение в исходное состояние z1
Изменяем логические условия: х1 = 1 (рис. 4.19). «Крутимся» в петле – состояние z2.
61
Рис. 4.19. Сохранение состояния z2 при х1 = 1
Устанавливаем х2 = 1, получаем z1, z2, z3, z5 (рис. 4.20).
Рис. 4.20. Смена состояний при x2 = 1
4.2. Синтез микропрограммного устройства управления на основе ПЗУ и мультиплексора
Недостатком МПУУ на базе ПЗУ является большой объем памяти, необходимой при большом количестве логических условий. Сократить объем памяти ПЗУ можно путем использо-
62
вания так называемых мультиплексоров, или коммутаторов каналов, позволяющих в каждом состоянии проверять только одно или несколько (не все сразу) логических условий. В этом случае будут особенности отметки ГСА (при получении ОГСА). Если за условной вершиной следует условие, с целью проверки только одного условия метка ставится после данной условной вершины. В остальном разметка ГСА не отличается от разметки для автомата без мультиплексора. Эти особенности обуславливаются требованиями проверки в каждом такте (на каждом переходе) не более одного логического условия.
Пусть задана ГСА:
Y0
x1
Y1
x2
z1
Y2 z2 z3
Y3
x3
z4 |
|
z5 |
Y0
Рис. 4.21. Графическая схема алгоритма
63
4.2.1. ОГСА для автомата на ПЗУ и мультиплексоре
Видно, что переход от метки к метке осуществляется с проверкой не более одного логического условия. Далее обычным образом строится граф автомата (рис. 4.22).
|
00 |
|
x1 |
|
|
01 |
|
x2 |
|
11 |
|
|
10 |
|
||
|
|
|
|
|
|
|
||||||||||
|
|
z4 |
|
z1 |
|
|||||||||||
x1 |
|
|
|
|
|
|
z2 z3 |
x3 |
||||||||
Y |
|
|
|
|
|
Y |
|
|
|
Y |
|
|
|
Y |
||
z4 |
|
|
x2 |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
z4 |
|
|
|
x3 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
z5 |
|
|
|
|
|
|
|
Рис. 4.22. Граф автомата
4.2.2. Граф переходов автомата на ПЗУ и мультиплексоре
Получим таблицу программирования ПЗУ, где х – псевдопеременная (табл. 4.3).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 4.3 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Адрес |
|
|
|
|
|
|
|
Данные |
|
|
|
|
|
|||||||||
x1 |
y2 |
|
y1 |
|
x |
z1 |
z2 |
|
z3 |
z4 |
z5 |
|
|
y2(t+1) |
y1(t+1) |
|
Y0→ Y1 |
||||||||
0 |
|
0 |
|
0 |
0 |
0 |
0 |
0 |
|
0 |
|
|
0 |
1 |
|
|
|||||||||
|
0 |
|
0 |
|
1 |
0 |
0 |
0 |
1 |
|
0 |
|
|
0 |
0 |
|
|
Y0→ Y0 |
|||||||
x2 |
0 |
|
1 |
|
0 |
0 |
0 |
0 |
1 |
|
0 |
|
|
0 |
0 |
|
|
Y1→ Y0 |
|||||||
|
0 |
|
1 |
|
1 |
1 |
0 |
0 |
0 |
|
0 |
|
|
1 |
1 |
|
|
Y1→ Y2 |
|||||||
~ |
1 |
|
1 |
|
0 |
0 |
1 |
1 |
0 |
|
0 |
|
|
1 |
0 |
|
|
Y2→ Y3 |
|||||||
x3 |
1 |
|
0 |
|
1 |
0 |
0 |
0 |
0 |
|
1 |
|
|
0 |
0 |
|
|
Y3→ Y0 |
|||||||
|
1 |
|
0 |
|
0 |
0 |
0 |
0 |
0 |
|
0 |
|
|
1 |
0 |
|
|
Y3→ Y3 |
|||||||
|
|
Изменим порядок данных, чтобы соответствовать преды- |
|||||||||||||||||||||||
дущей схеме (табл. 4.4). |
|
|
|
|
|
|
|
|
|
|
Таблица 4.4 |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
Адрес |
|
|
|
|
|
|
|
|
|
|
|
Данные |
|
|
|
|
|
||||||
y2 |
|
|
y1 |
|
x |
|
y2(t+1) |
y1(t+1) |
|
z1 |
|
z2 |
z3 |
z4 |
|
z5 |
|||||||||
0 |
|
|
0 |
|
|
0 |
|
|
0 |
|
|
1 |
|
|
|
0 |
|
0 |
0 |
0 |
|
0 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
0 |
|
|
0 |
|
|
1 |
|
|
0 |
|
|
0 |
|
|
|
0 |
|
0 |
0 |
1 |
|
0 |
|||
0 |
|
|
1 |
|
|
0 |
|
|
0 |
|
|
0 |
|
|
|
0 |
|
0 |
0 |
1 |
|
0 |
|||
0 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
|
1 |
|
0 |
0 |
0 |
|
0 |
|||
1 |
|
|
0 |
|
|
0 |
|
|
1 |
|
|
0 |
|
|
|
0 |
|
0 |
0 |
0 |
|
0 |
|||
1 |
|
|
0 |
|
|
1 |
|
|
0 |
|
|
0 |
|
|
|
0 |
|
0 |
0 |
0 |
|
1 |
|||
1 |
|
|
1 |
|
|
0 |
|
|
1 |
|
|
0 |
|
|
|
0 |
|
1 |
1 |
0 |
|
0 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
|
|
|
|
|
|
|
|
|
Таблица программирования в шестнадцатеричном коде:
20H, 02H, 02H, 70H, 40H, 01H, 4CH.
Получим таблицу подключения информационных входов мультиплексора. Ее можно составить по графу автомата.
Номер информационного входа |
Переменная (константа) |
|
010 |
х1 |
|
110 |
х2 |
|
210 |
х3 |
|
310 |
0 |
|
Мультиплексор адресуется элементами памяти, поэтому на его выходе присутствуют некоторые переменные или заранее оговоренная константа. Сигнал на выходе мультиплексора назовем псевдопеременной (х), причем договоримся сопоставлять с безусловным переходом константу нуля (на соответствующий вход мультиплексора подаем константу нуля). Приведем схему такого МПУУ с тремя входными переменными, двумя переменными состояния и пятью микрооперациями (рис. 4.23).
|
|
x |
A |
D |
|
|
|
z1 |
|
|
|
|
|
|
|
|
|
|
z2 |
|
A |
|
|
z3 |
y1(t) |
|
y1(t) |
z4 |
|
|
|
z5 |
||
y2(t) |
|
|
y2(t) |
y2(t+1) |
|
|
|
|
|
|
|
|
|
y1(t+1) |
c |
D1 D2 |
|
|
|
|
|
|
|
y1(t) |
y2(t) |
|
|
|
Рис. 23. МПУУ на основе ПЗУ и мультиплексора
Выполним моделирование МПУУ на основе ПЗУ и мультиплексора в системе Proteus.
Установим мультиплексор 74150 и сформируем три переменных (рис. 4.24). На выходе 16-канального мультиплексора установлен инвертор, поскольку мультиплексор имеет инверсию по выходу. Входы A, B, C, D – адресные. Вход E – разрешение, активный сигнал – нулевой.
65
Рис. 4.24. Схема с мультиплексором
Получим файл программы (рис. 4.25).
Рис. 4.25. Файл программы
66
Назовем файл PLA17. Ассемблируем его и получи HEX-
файл:
:100000002002027040014C000000000000000000CF
:10001000000000000000000000E5905403F9EB49E7
:10002000F97A00900000E493F8E859F8E4A39368A3
:10003000A37004E4934AFAE4A393F870ECEA540C36
:10004000FB8AA080D4000000000000000000000037
:080050000000000000000000A8
:00000001FF
Загружаем его в ПЗУ. Запускаем моделирование (рис. 4.26).
Рис. 4.26. Моделирование работы программы
Проверяем работу по ГСА:
х1 = х2 = х3 = 0 (рис. 4.27). Периодически формируется состояние z4.
Установим х1 = 1 (рис. 4.28). Всегда формируется состояние z4.
67
Рис. 4.27. Моделирование для х1 = х2 = х3 = 0
Рис. 4.28. Моделирование для х1 = 1
Далее: х2 = 1, получаем z1, z2 и z3 (рис. 4.29), затем – нули, петля (рис. 4.30).
68
Рис. 4.29. Моделирование для х2 = 1
Рис. 4.30. Моделирование при возникновении петли
Если установить х3 = 1, то получим (рис. 4.31).
69
Рис. 4.31. Моделирование при х3 = 1
70