3. Разработка логического устройства на 4 входа и 3 выхода по заданной таблицы истинности
На основе логических элементов серии 1554 производства белорусского завода Интеграл разработано логическое устройство, имеющее 4 входа (X1-X4) и 3 выхода (Y1-Y3).
Таблица истинности устройства (таблица 3.1) складывается из таблиц истинности 3.2-3.4 для каждого входа соответственно.
Таблица 3.1 - Таблица истинности устройства для 4 входов (X1-X4) и для 3 выходов (Y1-Y3)
|
№ |
X1 |
X2 |
X3 |
X4 |
Y1 |
Y2 |
Y3 |
|
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
|
|
2 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
|
|
3 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
|
4 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
|
|
5 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
|
|
6 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
7 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
|
8 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
|
|
9 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
|
|
10 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
|
|
11 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
|
|
12 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
|
|
13 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
|
14 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
15 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
|
16 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
При построении схемы, реализующей произвольную таблицу истинности, каждый выход анализируется (и строится схема) отдельно.
Проанализировано отдельно каждый выход. Для выхода Y1 формировано отдельная таблица истинности (таблица 3.2), которая включает только те строки основной таблицы истинности, которые содержат логические "1" в выходном сигнале. Строки, содержащие в выходном сигнале логический 0, в построении схемы не участвуют.
Таблица 3.2 - Таблица истинности для выхода Y1
|
№ |
X1 |
X2 |
X3 |
X4 |
Y1 |
|
|
2 |
0 |
1 |
0 |
0 |
1 |
|
|
7 |
1 |
0 |
0 |
1 |
1 |
Записано математическая формула для выхода Y1. Для каждой строки записана полная группа входов, соединённой по логическому элементу «И». Входы, описанные в таблице истинности логическим нулем, инвертировано. Полученные выражение соединено по логическому элементу «ИЛИ».
Аналогично для выходов Y2 и Y3 формировано таблицы истинности (таблицы 3.3 и 3.4) и записано математические формулы для каждой из них.
Таблица 3.3 - Таблица истинности для выхода Y2
|
№ |
X1 |
X2 |
X3 |
X4 |
Y2 |
|
|
2 |
0 |
1 |
0 |
0 |
1 |
Математическая формула
Таблица 3.4 - Таблица истинности для выхода Y3
|
№ |
X1 |
X2 |
X3 |
X4 |
Y3 |
|
|
10 |
1 |
1 |
0 |
0 |
1 |
Математическая формула
После составления уравнений для каждого выхода приступим к разработке схемы.
Для этого нам понадобится элемент НЕ (чтобы инвертировать нужные входы).
Также понадобится элемент 4И для связи входов между собой.
И еще понадобится элемент 2ИЛИ для связи между собой групп входов.
Используя эти элементы построим часть схемы для выхода Y1. Для этого входы, которые не инвертированы (X2), подключим напрямую на элемент 4И, а входы, которые инвертированы (X1, X3 и X4), сначала подключим к инверторам, а выходы инверторов - на элемент 4И. Соединив выходы этих схем по ИЛИ (то есть выходы этих схем надо подать на входы элемента 2ИЛИ) получим полностью готовую часть схемы для выхода Y1 (рисунок 3.1).
Рисунок 3.1 - Схема с логическими элементами для выхода Y1
Аналогичным образом строим схемы для остальных выходов (рисунки 3.2-3.3) используя такие же логические элементы, как “НЕ” и “4И”.
Рисунок 3.2 - Схема с логическими элементами для выхода Y2
Рисунок 3.3 - Схема с логическими элементами для выхода Y3
После чего все части схемы подключаются к одним входам X1, X2, X3, X4 и получаем единую схему с логическими элементами показано на рисунке 3.4. число микроконтроллер atmel attiny программа
Рисунок 3.4 - Принципиальная схема логического устройства
Перечень логических элементов использованные для построение схему показано в таблице 3.5.
Таблица 3.5 - Перечень логических элементов
|
Обозначение микросхемы |
Логический элемент |
Микросхемы серии 1554 |
Количество |
|
|
DD1, DD2 |
НЕ |
1554ЛН2Н4БМ |
2 |
|
|
DD3, DD4 |
4И |
1554ЛИ6Н4БМ |
2 |
|
|
DD5 |
2ИЛИ |
1554ЛЛ1Н4БМ |
1 |
4. Разработка микропроцессорного устройства на основе микроконтроллера Atmel Attiny2313
На основе микроконтроллера Atmel Attiny2313 необходимо разработать микропроцессорное устройство, имеющее 4 кнопки, два 7-мисегментных индикатора. В микропроцессорном устройстве при нажатии кнопки 1 - осуществляется выбор 7сегм индикатора, при нажатии на кнопку 2 на выбранном индикаторе зажигается левый верхний угол (2 сегмента), по нажатию на кнопку 3 левый нижний угол (2 сегмента), кнопка 4 - сброс индикации.
В программе Proteus Professional 8.5 была создана модель микропроцессорного устройства, включающая микроконтроллер Attiny2313, два 7-сегментных индикатора, тактовые кнопки, с помощью которых можно менять режимы работы индикаторов, резисторы и транзисторы, обеспечивающие бесперебойную работу устройства. В среде Atmel Studio 7 была разработана программа для микроконтроллера Attiny2313, осуществляющая необходимое функционирование 7-сегментных индикаторов. На рисунках 4.1-4.4 представлена полученная модель устройства, а также продемонстрирована работа устройства.
На основе задание было построено блок схема для создания программы и представлен в приложении А. В приложении Б представлен листинг разработанной программы для микроконтроллера.
Таблица 4.1 - Элементная база микропроцессорного устройства
|
Поз. обозн. |
Наименование |
Кол. |
Примечание |
|
|
Индикаторы |
||||
|
DA1 |
7SEG-MPX2-CC-blue |
1 |
Общий катод |
|
|
Микросхемы |
||||
|
DD1 |
Attiny2313 |
1 |
||
|
Кнопки |
||||
|
SB1-SB4 |
Кнопка тактовая SPST h-5 мм |
4 |
Без фиксации |
|
|
Резисторы |
||||
|
R1-R8 |
3WATT150R 300 Oм |
8 |
На индикатор |
|
|
R9-R12 |
7WATT1K 1 кОм |
4 |
На порт |
|
|
Транзисторы |
||||
|
VT1, VT2 |
2N3392 NPN |
2 |
На порт |
|
|
Электрические соединители |
Рисунок 4.1 - Выбор 7сегм индикатора
Рисунок 4.2 - Зажигания левого верхнего угла индикатора
Рисунок 4.3 - Зажигания левого нижнего угла индикатора
Рисунок 4.4 - Сброс индикации
Заключение
За время выполнения работы был выполнен перевод в различные системы счисления (двоичную, десятеричную, шестнадцатеричную).
Разработана принципиальная схема логического устройства на 5 входов (X1-X5) и 4 выхода (Y1-Y4) на реальных микросхемах фирмы Интеграл по известной структурной схеме логического устройства с заданными логическими элементами. Также для рассматриваемого устройства была составлена таблица истинности с указанием для каждого логического элемента схемы его выходные состояния в зависимости от входных сигналов.
По известной таблице истинности логического устройства на 4 входа (X1-X4) и 3 выхода (Y1-Y3) была разработана структурная схема логического устройства, а затем подобрана элементная база на микросхемах серии 1554 фирмы Интеграл. На основе выбранной элементной базы составлена принципиальная схема устройства.
В последнем задании была реализована программа управления индикатором с помощью четырёх кнопок, основная функция которого, выделение заданных сегментов на индикаторе, с управляемом микроконтроллером Attiny2313. Также выполнена модель в проектировщике Proteus.
Список использованных источников
1. ГОСТ 2.743-91. Единая система конструкторской документации (ЕСКД). Обозначения условные графические в схемах. Элементы цифровой техники [Текст]. -- М. : Изд-во стандартов, 1993. -- 45с. ;
2. ГОСТ 2.701-84. Единая система конструкторской документации (ЕСКД). Схемы. Виды и типы. Общие требования к выполнению [Текст]. -- М. : Изд-во стандартов, 1985. -- 16 с. ;
Приложения А
Приложения Б
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRA = 0b011;
PORTA |= (1<<0); // По умолчанию зажигается нижний горизонтальный сегмент первого индикатора
DDRB = 0b11111111;
PORTB = 0b00001000;
DDRD = 0b0000000;
PORTD = 0b0001111;
while (1)
{
if (~PIND & (1<<0)) // Проверка состояния 1-й кнопки
{
_delay_ms(200);
if (PINA & (1<<0)) // Выбор индикатора
{
PORTA &= ~(1<<0);
PORTA |= (1<<1);
}
else
{
PORTA &= ~(1<<1);
PORTA |= (1<<0);
}
}
if (~PIND & (1<<1)) // Проверка состояния 2-й кнопки
{
PORTB = 0b00100001; // На выбранном индикаторе зажигается левый верхний угол
}
if (~PIND & (1<<2)) // Проверка состояния 3-й кнопки
{
PORTB = 0b00011000; // На выбранном индикаторе зажигается левый нижний угол
while (~PIND & (1<<2)); // Ожидается отпускание кнопки
}
if (~PIND & (1<<3)) // Проверка состояния 4-й кнопки
{
PORTB = 0b00000000; //Сброс индикации
while (~PIND & (1<<3)); // Ожидается отпускание кнопки
}
}
}