Синтез схемы автомата управления дверью кабины лифта

Разработка схемы автомата управления дверью кабины лифта в соответствии с приведенным алгоритмом и модели реле времени. Обеспечение задержки на закрывание двери при моделировании схемы автомата. Разметка алгоритма способом Мили, таблица переходов-выходов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 20.05.2019
Размер файла 364,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Синтез схемы автомата управления дверью кабины лифта

Шевцов С.В.

Разработать схему автомата управления в соответствии с приведенным алгоритмом и модель реле времени. Реле времени должно обеспечивать задержку на закрывание двери 4-5с (при моделировании схемы автомата достаточна задержка на 5-7 тактов).

Входы:

Ост=1 - лифт в зоне остановки;

Отк=1 - команда открывания двери из системы управления лифтом;

ДЗ=1 - дверь полностью закрыта;

ДО=1 - дверь полностью открыта;

ПР=1 - проем двери не свободен

РВ=1 - сигнал задержки закрывания двери от реле времени;

Выходы:

ОД=1 - включение двигателя открывания двери;

ЗД=1 - включение двигателя закрывания двери;

Блк1=1 - установка блокировки движения кабины

Блк0=1 - снятие блокировки движения кабины;

ЗРВ=1 - запуск реле задержки закрывания двери;

Содержание пояснительной записки: Отмеченная граф-схема алгоритма, таблица переходов-выходов, результаты кодирование состояний автомата (если это необходимо), структура управляющего автомата, результаты структурного синтеза автомата и моделирования структуры УА, Схема УА и результаты ее моделирования. Схема устройства в целом (УА и реле времени) и результат ее моделирования. Трассировка печатной платы. Необходимые пояснения.

Графическая часть курсового проекта: структура УА, схема устройства, результаты трассировки.

Дополнительные сведения: выполнить синтез схемы в форме автомата Мили.

Рисунок 1 - Разметка алгоритма способом Мили

автомат управление дверь лифт

Таблица 1 - Таблица переходов-выходов

Начальное состояние

Состояние перехода

Конечное состояние

Возбужденные выходы

Ост

Х1

Отк

Х2

ДЗ

Х3

ДО

Х4

РВ

Х5

ПР

Х6

Блк1

Y1

3РВ

Y2

ОД

Y3

ЗД

Y4

Блк0

Y5

S1

1

0

-

-

-

-

S1

0

0

0

0

0

S1

0

1

-

-

-

-

S1

0

0

0

0

0

S1

1

1

-

-

-

-

S2

0

1

0

0

0

S1

0

-

0

-

-

-

S3

1

0

0

0

0

S3

-

-

-

-

-

0

S5

0

0

0

1

0

S2

-

-

-

1

-

-

S4

0

0

0

0

0

S4

-

-

-

0

0

1

S3

0

0

1

0

0

S4

-

-

-

-

1

-

S4

0

0

0

0

0

S2

-

-

-

0

-

-

S2

0

0

1

0

0

S4

-

-

-

-

0

0

S5

0

00

1

0

0

S5

-

-

0

0

-

1

S3

0

0

1

0

0

S5

-

-

0

-

-

0

S5

0

0

0

1

0

S5

-

-

1

-

-

-

S1

0

0

0

0

1

S4

-

-

-

1

0

1

S3

0

0

0

0

0

Проектирование автомата Мили в пакете Quartus:

Рисунок 3 - Проектирование автомата Мили

Рисунок 2 - Граф переходов

Листинг конечного автомата Мили на языке VHDL:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY BlaBla IS

PORT (

reset: IN STD_LOGIC:= '0';

clock: IN STD_LOGIC;

x1: IN STD_LOGIC:= '0';

x2: IN STD_LOGIC:= '0';

x3: IN STD_LOGIC:= '0';

x4: IN STD_LOGIC:= '0';

x5: IN STD_LOGIC:= '0';

x6: IN STD_LOGIC:= '0';

y1: OUT STD_LOGIC;

y2: OUT STD_LOGIC;

y3: OUT STD_LOGIC;

y4: OUT STD_LOGIC;

y5: OUT STD_LOGIC

);

END BlaBla;

ARCHITECTURE BEHAVIOR OF BlaBla IS

TYPE type_fstate IS (state1,state2,state3,state4,state5);

SIGNAL fstate: type_fstate;

SIGNAL reg_fstate: type_fstate;

BEGIN

PROCESS (clock,reg_fstate)

BEGIN

IF (clock='1' AND clock'event) THEN

fstate <= reg_fstate;

END IF;

END PROCESS;

PROCESS (fstate,reset,x1,x2,x3,x4,x5,x6)

BEGIN

IF (reset='1') THEN

reg_fstate <= state1;

y1 <= '0';

y2 <= '0';

y3 <= '0';

y4 <= '0';

y5 <= '0';

ELSE

y1 <= '0';

y2 <= '0';

y3 <= '0';

y4 <= '0';

y5 <= '0';

CASE fstate IS

WHEN state1 =>

IF (((x1 = '1') AND (x2 = '1'))) THEN

reg_fstate <= state2;

ELSIF ((NOT((x1 = '1')) AND NOT((x3 = '1')))) THEN

reg_fstate <= state3;

ELSE

reg_fstate <= state1;

END IF;

IF ((NOT((x1 = '1')) AND NOT((x3 = '1')))) THEN

y1 <= '1';

ELSE

y1 <= '0';

END IF;

IF (((x1 = '1') AND (x2 = '1'))) THEN

y2 <= '1';

-- Inserting 'else' block to prevent latch inference

ELSE

y2 <= '0';

END IF;

WHEN state2 =>

IF ((x4 = '1')) THEN

reg_fstate <= state4;

ELSIF (NOT((x4 = '1'))) THEN

reg_fstate <= state2;

-- Inserting 'else' block to prevent latch inference

ELSE

reg_fstate <= state2;

END IF;

IF (NOT((x4 = '1'))) THEN

y3 <= '1';

-- Inserting 'else' block to prevent latch inference

ELSE

y3 <= '0';

END IF;

WHEN state3 =>

IF (NOT((x6 = '1'))) THEN

reg_fstate <= state5;

-- Inserting 'else' block to prevent latch inference

ELSE

reg_fstate <= state3;

END IF;

IF (NOT((x6 = '1'))) THEN

y4 <= '1';

-- Inserting 'else' block to prevent latch inference

ELSE

y4 <= '0';

END IF;

WHEN state4 =>

IF ((((NOT((x4 = '1')) AND NOT((x5 = '1'))) AND (x6 = '1')) OR (((x4 = '1') AND NOT((x5 = '1'))) AND (x6 = '1')))) THEN

reg_fstate <= state3;

ELSIF ((x5 = '1')) THEN

reg_fstate <= state4;

ELSIF ((NOT((x5 = '1')) AND NOT((x6 = '1')))) THEN

reg_fstate <= state5;

-- Inserting 'else' block to prevent latch inference

ELSE

reg_fstate <= state4;

END IF;

IF (((NOT((x4 = '1')) AND NOT((x5 = '1'))) AND (x6 = '1'))) THEN

y3 <= '1';

ELSIF ((NOT((x5 = '1')) AND NOT((x6 = '1')))) THEN

y3 <= '1';

-- Inserting 'else' block to prevent latch inference

ELSE

y3 <= '0';

END IF;

WHEN state5 =>

IF ((x3 = '1')) THEN

reg_fstate <= state1;

ELSIF (((NOT((x3 = '1')) AND NOT((x4 = '1'))) AND (x6 = '1'))) THEN

reg_fstate <= state3;

ELSIF ((NOT((x3 = '1')) AND NOT((x6 = '1')))) THEN

reg_fstate <= state5;

-- Inserting 'else' block to prevent latch inference

ELSE

reg_fstate <= state5;

END IF;

IF (((NOT((x3 = '1')) AND NOT((x4 = '1'))) AND (x6 = '1'))) THEN

y3 <= '1';

-- Inserting 'else' block to prevent latch inference

ELSE

y3 <= '0';

END IF;

IF ((NOT((x3 = '1')) AND NOT((x6 = '1')))) THEN

y4 <= '1';

-- Inserting 'else' block to prevent latch inference

ELSE

y4 <= '0';

END IF;

IF ((x3 = '1')) THEN

y5 <= '1';

-- Inserting 'else' block to prevent latch inference

ELSE

y5 <= '0';

END IF;

WHEN OTHERS =>

y1 <= 'X';

y2 <= 'X';

y3 <= 'X';

y4 <= 'X';

y5 <= 'X';

report "Reach undefined state";

END CASE;

END IF;

END PROCESS;

END BEHAVIOR;

Размещено на Allbest.ru


Подобные документы

  • Минимизация абстрактного автомата Мили, моделирование его работы. Синтез схемы конечного автомата, микропрограммного автомата и счетчика числа микрокоманд. Разработка цифровой линии задержки. Построение граф-схем исходного и оптимизированного автоматов.

    курсовая работа [823,8 K], добавлен 19.07.2012

  • Содержание и особенности этапов синтеза дискретного автомата. Граф переходов-выходов автомата Мура, кодирование входных и выходных сигналов. Построение функциональной схемы автомата Мура на RS–триггерах и элементах И-НЕ в программе Electronic WorkBench.

    курсовая работа [964,2 K], добавлен 20.07.2015

  • Общая структура и принцип функционирования синхронного управляющего автомата. Анализ граф схемы алгоритма управляющего автомата и детализация блока памяти. Структурный синтез логического преобразователя и разработка электрической функциональной схемы.

    курсовая работа [222,6 K], добавлен 19.02.2013

  • Синтез автомата для преобразования двоично-десятичного кода. Кодировка алфавитов и состояний. Построение булевых функций, минимизация. Разметка вход-выходных слов для автомата Мили и автомата Мура. Реализация на элементах малой степени интеграции.

    контрольная работа [141,5 K], добавлен 14.10.2012

  • Общая схема D-триггера и цифрового автомата Мили. Построение входных и выходных преобразователей в соответствии с таблицами кодирования входных и выходных сигналов. Составление таблиц переходов и выхода состояния автомата Мили. Выбор серии микросхем.

    курсовая работа [525,4 K], добавлен 04.11.2012

  • Разработка функциональной схемы управляющего микропрограммного автомата. Построение графов автомата для модели Мили и Мура. Кодирование состояний для модели Мура на D-триггерах. Алгоритм умножения чисел в дополнительном коде с простой коррекцией.

    курсовая работа [764,0 K], добавлен 27.08.2012

  • Методика минимизации абстрактного автомата. Порядок построения графа полученного минимизированного автомата. Синтез на элементах ИЛИ-НЕ и Т-тригерах. Составление таблицы переходов. Разработка микропрограммного автомата, реализующего микропрограмму.

    курсовая работа [997,7 K], добавлен 28.03.2011

  • Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.

    курсовая работа [671,3 K], добавлен 04.11.2014

  • Алгоритм умножения двоичных чисел. Выбор и описание структурной схемы операционного автомата. Реализация содержательной граф-схемы алгоритма. Построение отмеченной граф-схемы и структурной таблицы переходов и выходов. Правила кодирования на D-триггерах.

    курсовая работа [273,2 K], добавлен 01.04.2013

  • Разработка управляющего автомата, ориентированного на выполнение заданной микрооперации. Разработка алгоритма работы управляющего автомата. Листинг программы. Выбор оптимального варианта кодирования состояний автомата. Синтез функции возбуждения.

    курсовая работа [506,9 K], добавлен 26.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.