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

лабы / 6 лаба / Ђ†°6Ѓвз•в

.docx
Скачиваний:
45
Добавлен:
23.11.2024
Размер:
300.25 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ»

факультет ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Кафедра программной инженерии

ОТЧЁТ

по лабораторной работе №6

Дисциплина: Цифровые устройства и микропроцессоры

Работу выполнил

студент 1 курса

очного отделения

Подпись студента, число

1. Ввод с клавиатуры и отображение в терминале

Ввод с клавиатуры осуществляется с помощью компонента «Клавиатура», а отображение в терминале с помощью компонента «Терминал» соответственно.

Клавиатура и терминал принимают входной сигнал «Clock» и передают/принимают информацию в закодированном виде посимвольно (кодировка символов ASCII).

2. Поиск команд в тексте с клавиатуры

Для определения введенной команды, нам потребуется посимвольно искать совпадения в названиях команд, для этого можно использовать «Компаратор» и «Константу», запоминая на 1 такт выходное значение равенства компаратора, мы можем последовательно продлить схему, для нахождения последовательностей символов.

На изображении представлена получившаяся схема для последовательности символов «STOP». Здесь значения констант – это ASCII код символов (S=53, T=54, O=4f, P=50).

3. Посимвольный вывод аргументов команды

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

4. Внедрение схемы «argHandler» в схему поиска команд

В схеме поиска команды, я заменил последний D-триггер на RS-триггер, так как мне нужна возможность его сброса (можно было обойтись и D-триггером, просто подключив контакты к входам «1» и «0»).

Теперь, после успешного обнаружения команды, символы передаются в «argHandler», который в свою очередь передает на 16-битный выход строку с аргументами.

5. Полная схема на 4 команды

Каждая команда имеет всего 2 входа, ввод символов и clock. В зависимости, есть ли у команды аргументы или нет, мы имеем 1 или 2 выхода соответственно (индикатор ввода команды и посимвольный вывод аргументов).

Проверив схему, получаем ожидаемый результат, при вводе строки «ADD 12,R1↵» получаем значение 1 на контакте d команды ADD, и по 1 ASCII символу строки аргументов каждый такт.

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