Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Вычислительная техника и информационные технологии. Цифровые автоматы и микроконтролеры. Руководство к лабораторным работам в системе PROTEUS 7.2 SP6

.pdf
Скачиваний:
15
Добавлен:
12.11.2023
Размер:
4.8 Mб
Скачать

Это аналог гибкой реализации логических функций на программируемых логических матрицах, только вычисление конъюнкций производится последовательно.

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

Пусть база входного слова имеет вид y2y1(t)ab, база выходного слова y2y1(t + 1)z2z1.

Ниже приведена таблица констант, которая получена на основе таблицы переходов выходов

TABL:

db 0FH,01H,04H,

 

db 0FH,02H,02H,

 

db 0FH,04H,06H,

 

db 0FH,05H,04H,

 

db 0FH,07H,0CH,

 

db 0FH,0DH,0EH,

 

db 0FH,0FH,0CH,

 

db 0FH,0EH,0DH,

00H

Рассмотрим подробнее, как они получены, на примере первой тройки констант. Первая константа 00FH одинакова для всех конъюнкций: существенны младшие 4 разряда разрядов, т.к. база входного слова y2y1(t)ab. Код клавиши занимает 2 младших разряда, затем идут два разряда, хранящие код состояния памяти автомата.

Следующие константы – код клетки с ненулевым содержимым (например, 01H). Последнюю константу получают следующим образом. Берут содержимое клетки, объединяют числитель и знаменатель и переводят его в шестнадцатеричный код:

41

0001 0100 04H. Аналогично получают остальные констан-

ты. Последняя константа 00H – признак окончания, конец массива.

Ниже приводится текст программы с необходимыми пояснениями на языке ASM 51, реализующий алгоритм ПЛА:

 

P1 EQU 90H

; определение порта Р1

 

P2 EQU 0A0H

; определение порта Р2

Begin:

MOV A, P1

; Считываем ab и заносим в акку-

мулятор А

ANL A, #03h

; Маскируем ab

 

 

MOV R1, A

; ab в R1

 

MOV A, R3

; Внутреннее состояние в R3

 

ORL A, R1

; Получаем полное входное слово

 

MOV R1, A

; Полное входное слово в R1

 

MOV R2,#0

; Обнуляем R2 в нем выход

 

MOV DPTR,#TABL ; Указатель на массив констант

 

CLR A

; Очищаем аккумулятор

 

MOVC A,@A+DPTR ; Загружаем Х0(i) в А

 

MOV R0,A

; Х0(i) в R0

Next:

MOV A, R0

; Х0(i) в A

 

ANL A,R1

; Маскируем входное слово Х0(i)

 

MOV R0,A

; Результат в R0

 

CLR A

; Очищаем аккумулятор

 

INC DPTR

; Инкрементируем регистр-указатель

 

MOVC A,@A+DPTR ; Загружаем ХD(i) в А

 

XRL A,R0 ; Сложение по модулю 2 с предыдущим

 

; результатом

 

INC DPTR

; Инкремент регистра указателя

 

JNZ Check

; Переход, если ноль

 

CLR A

; Очищаем аккумулятор

 

MOVC A,@A+DPTR ; Загружаем Z(i)

 

ORL A,R2

; Получаем выходное слово

 

MOV R2,A

; Сохраняем результат в R2

Check:

CLR A

; Очищаем аккумулятор

 

INC DPTR

; Инкрементируем регистр указателя

 

 

42

MOVC A,@A+DPTR ; Загружаем Х0(i + 1)

MOV R0,A

; Х0(i + 1) в R0

JNZ Next

; Переход по нулю

MOV A,R2

; Выход в R2

ANL A,#0CH

; Выделяем y2(t + 1)y1(t + 1)

MOV R3,A

; Результат в R3

MOV P2, R2

; Вывод на Р2

jmp Begin

 

TABL:

db 00FH,01H,04H, db 00FH,02H,02H, db 00FH,04H,06H, db 00FH,05H,04H, db 00FH,07H,00CH, db 00FH,00DH,00EH, db 00FH,00FH,00CH,

db 00FH,00EH,00DH, 00H

END

Как видно из программы, в регистре R1 хранится входное слово, в регистре R2 – выходное слово, в регистре R3 – внутреннее состояние автомата.

В папке практических занятий ЦУМП открываем папку «Ассемблер 51» (рис. 3.1).

Создаем в выбранной папке файл с расширением .ASM, например PLA.ASM.

Рис. 3.1. Выбор папки для сохранения файла программы

43

В текстовом редакторе пишем программу (рис. 3.2).

Рис. 3.2. Текст программы

После написания программы ее необходимо откомпилировать с помощью компилятора Asm51 (рис. 3.3).

Рис. 3.3. Окно компилятора

44

Врезультате будет получено два файла. Файл с расширением .hex содержит так называемую «прошивку», т.е. команды ассемблера, переведенные в шестнадцатеричные коды, понятные микроконтроллеру. Файл с расширением .lst содержит отчет

окомпиляции. В нем показаны все ошибки в программе, если они есть, также в нем можно увидеть шестнадцатеричный эквивалент каждой команды.

3.3.Построение схемы и моделирование в Proteus

Внашем примере ключи, задающие входную последовательность, подключены к двум младшим разрядам порта P1 через триггеры, осуществляющие защиту от «дребезга» контактов.

Вывод осуществляется на нулевой (z1) и на первый (z2) разряды порта P2. К выводам порта Р2 подключены светодиоды для индикации выводов (рис. 3.4).

Рис. 3.4. Схема включения микроконтроллера (исходное состояние а = 0, b = 0)

Переменная a – это ключ SW3, b – ключ SW2. Исходное состояние: а = 0, b = 0.

Проверяем работу алгоритма:

– а = 0, b = 1 (рис. 3.5);

45

Рис. 3.5. Работа схемы при а = 0, b = 1

– а = 1, b = 1 (рис. 3.6);

Рис. 3.6. Работа схемы при а = 1, b = 1

– а = 1, b = 0 (рис. 3.7).

46

Рис. 3.7. Работа схемы при а = 1, b = 0

Загорелся светодиод Z1. Возвращаем в исходное состояние

(рис. 3.8).

Рис. 3.8. Работа схемы в исходном состоянии при а = 0, b = 0

Нарушаем последовательность: а = 1, b = 0 (рис. 3.9).

47

Рис. 3.9. Работа схемы при нарушении последовательности

(а = 1, b = 0)

В случае нарушения последовательности состояний загорается светодиод Z2, обозначающий тревогу.

48

Лабораторная работа № 4

Синтез и исследование микропрограммного устройства управления на «гибкой» логике

Задание: синтез микропрограммного устройства управления на базе ПЗУ, ПЗУ и мультиплексоров, а также со счетчиком микрокоманд. Моделирование схем выполняется с помощью ПО

Proteus.

Микропрограммное устройство управления (МПУУ) – это часть микропрограммного автомата (рис. 4.1).

Пр

 

 

 

 

 

 

 

МПУУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

z

 

 

 

I

 

 

 

 

МПА O

 

 

ОУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.1. Схема микропрограммного автомата: МПА – микропрограммный автомат; МПУУ – микропрограммное устройство управления; ОУ – операционное устройство; x – сигналы состояния ОУ (входные переменные МПУУ); z – функции управления (выходные функции МПУУ); Пр – программа (микропрограмма); I – входная информация; O – выходная информация

Впервые такой автомат предложил Уилкс (Кэмбридж, 1953). Рассмотрим синтез МПУУ на ПЗУ.

4.1. Синтез микропрограммного устройства управления на основе ПЗУ

Логический преобразователь МПУУ может быть построен на базе ПЗУ.

После получения графа автомата и обобщенной таблицы пе- реходов-выходов сразу получают таблицу программирования ПЗУ.

49

Пусть дана схема алгоритма микропрограммного устройства управления – ГСА МПУУ (рис. 4.2).

Y0

Z1

Y1

Z2

Y2

X1

Z3

Y3

X2

Z4

 

Z5

Y0

Рис. 4.2. Графическая схема алгоритма МПУУ

Выполним ее отметку для автомата Мили. Получим отмеченную ГСА (ОГСА). Построим граф соответствующего автомата Мили (рис. 4.3).

50

Соседние файлы в папке книги