Данное методическое пособие описывает процесс синтеза логического устройства на основе минимальной дизъюнктивной нормальной формы (МДНФ). В работе рассматривается методика проектирования схемы в среде визуального программирования FLProg, настройка входов микроконтроллера Arduino Uno, сборка электрической цепи и верификация полученного логического выражения с помощью таблицы истинности.
Цель работы
Создать в среде визуального проектирования FLProg логическую схему, реализующую МДНФ. Результаты проектирования проверить с помощью микроконтроллерного модуля Arduino Uno.
Необходимые детали и компоненты для выполнения проверочного задания
- микроконтроллерный модуль Arduino Uno;
- 3 тактовые кнопки;
- беспаечная макетная плата;
- провода (джамперы);
- светодиод;
- USB-кабель;
- резисторы на 10 кОм и 220 Ом.
3.1. Задание на самостоятельную работу «Синтез логического устройства, описанного МДНФ»
- По заданной карте Карно выделите контуры и запишите минимальную ДНФ.
Таблица карты Карно:
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
c
Анализ и сборка схемы
- Проанализируйте полученную МДНФ.
- Соберите схему для экспериментального исследования проекта (рисунок 1). Обратите внимание! В своем проекте Вы можете не использовать внешние резисторы на 10 кОм для подключения тактовых кнопок.
В таком случае для корректной работы необходимо программно подключить к цифровым пинам встроенные в плату резисторы номиналом 20 кОм. В среде визуального программирования FLProg это производится в настройках соответствующего входа проставлением галочки «Включить подтягивающий резистор». Однако соответствующий выход тактовой кнопки при этом необходимо инвертировать и это надо учитывать в проектах.

Рисунок 1 Схема проекта
Порядок выполнения работы
- Запустите FLProg на персональном компьютере.
- В своей директории создайте новую папку Lab02.
- Используя методику, освоенную в процессе выполнения проверочного задания № 2, создайте требуемые функциональные блоки в среде графического проектирования.
- Используя указанные функциональные блоки, соберите логическую схему, реализующую МДНФ. Входные переменные a, b, c должны задаваться при помощи тактовых кнопок SB0, SB1, SB2 соответственно. Состояние выходного сигнала (y) должно отображаться при помощи светодиода LED0.
Обратите внимание, что для каждого блока, используемого в наших проектах, в его настройках имеется возможность ознакомиться с описанием его работы, кликнув на кнопку «Информация».
Завершение проекта
- Сохраните новый проект под именем Lab02.
- Скомпилируйте и загрузите проект в микроконтроллерный модуль Arduino Uno.
- Используя разные комбинации включения кнопок SB0…SB2, проверьте правильность работы схемы. Результаты исследования занесите в таблицу истинности.
Таблица истинности
| c (SB2) | b (SB1) | a (SB0) | y (LED0) |
|---|---|---|---|
| 0 | 0 | 0 | |
| 0 | 0 | 1 | |
| 0 | 1 | 0 | |
| 0 | 1 | 1 | |
| 1 | 0 | 0 | |
| 1 | 0 | 1 | |
| 1 | 1 | 0 | |
| 1 | 1 | 1 |
9. Логическое выражение в форме МДНФ и полученный после экспериментального заполнения таблицы истинности набор значений функции y (8-мизначный двоичный код) отправляется для проверки.
