
- •Схемотехника эвм. Лабораторный практикум. Цели и задачи лабораторного практикума
- •Требования к отчету по лабораторной работе
- •Порядок защиты результатов лабораторной работы
- •Описание лабораторного комплекса унил
- •Требования к безопасности
- •Модуль расширения мс-10
- •Лабораторная работа №1 «Комбинационные устройства» Задание:
- •Варианты заданий
- •Указания к работе Создание проекта
- •Создание блок-схемы устройства
- •Привязка выводов плис
- •Т естирование проекта
- •Временное моделирование
- •Оформление отчета
- •Контрольные вопросы:
- •Лабораторная работа №2 «Управление жидкокристаллическим индикатором» Задание:
- •Основные сведения о жки:
- •Указания к работе: Создание проекта с блочной структурой
- •Р исунок 7. Схема lcd контроллера р абота с проектом
- •Указания к работе: Создание проекта с блоками на ahdl – языке
- •Контрольные вопросы:
Указания к работе: Создание проекта с блоками на ahdl – языке
Изучите структурную схему лабораторной установки и разработайте ее функциональную и структурную схему;
Создайте новый проект в пакете QUARTUS II (см. п. 1 лабораторной работы №1), включая конфигурацию кристалла и проекта внутрисистемной программы ПЛИС;
Создайте в проекте новый файл схемы для основной схемы устройства (см. п. 4 лабораторной работы №1);
Разработайте в основном файле проекта схему контроллера клавиатуры (рис. 22). Выполните привязку ножек ПЛИС. Обратите внимание, что сигналы шины D[7..0] – код клавиши. Формат кода: младшие 4 бита – код строки, старшие 4 бита код столбца.
Создайте в проекте новый AHDL-файл для преобразователя скан-кода клавиатуры в двоичный код символа: File|New->Design File->AHDL File…Присвойте ему название SCAN_TO_DATA.tdf. В контекстном меню выберете Insert Template|Subdesign Section
В файле реализуйте с помощью таблицы истинности следующую схему преобразования:
Нажатая клавиша |
Скан-код клавиши |
Преобразованный код |
0 |
0001 0100 |
0000 0000 |
1 |
0001 0011 |
0000 0001 |
2 |
0010 0011 |
0000 0010 |
3 |
0011 0011 |
0000 0011 |
4 |
0001 0010 |
0000 0100 |
5 |
0010 0010 |
0000 0101 |
6 |
0011 0010 |
0000 0110 |
7 |
0001 0001 |
0000 0111 |
8 |
0010 0001 |
0000 1000 |
9 |
0011 0001 |
0000 1001 |
Для реализации преобразователя наберите код блока:
SUBDESIGN SCAN_TO_DATA
(
SCAN_CODE[7..0] : INPUT;
DATA_CODE[7..0] : OUTPUT;
)
BEGIN
TABLE
SCAN_CODE=>DATA_CODE;
b"00010100" => b"00000000"; -- кнопка 0
b"00010011" => b"00000001"; -- кнопка 1
b"00100011" => b"00000010"; -- кнопка 2
b"00110011" => b"00000011"; -- кнопка 3
b"00010010" => b"00000100"; -- кнопка 4
b"00100010" => b"00000101"; -- кнопка 5
b"00110010" => b"00000110"; -- кнопка 6
b"00010001" => b"00000111"; -- кнопка 7
b"00100001" => b"00001000"; -- кнопка 8
b"00110001" => b"00001001"; -- кнопка 9
END TABLE;
END;
Добавьте созданный преобразователь в основную схему в виде блока ( см. л.р. №2 п.7). Аналогично определите интерфейс блока и подключите его к сканеру клавиатуры.
Создайте в проекте новый AHDL-файл дешифратора для 7-сегментного индикатора: File|New->Design File->AHDL File…Присвойте ему название B_TO_S.tdf. (от Byte to 7 segment)В файле наберите код блока:
SUBDESIGN b_to_s
(b[7..0], bln : input;
sL[7..0],sH[7..0] : output;)
BEGIN
IF bln==0 THEN
sL[]=0;
sH[]=0;
ELSE
TABLE
b[3..0] => sL[];
b"0000" => b"00111111";
b"0001" => b"00000110";
b"0010" => b"01011011";
b"0011" => b"01001111";
b"0100" => b"01100110";
b"0101" => b"01101101";
b"0110" => b"01111101";
b"0111" => b"00000111";
b"1000" => b"01111111";
b"1001" => b"01101111";
b"1010" => b"01110111";
b"1011" => b"01111100";
b"1100" => b"00111001";
b"1101" => b"01011110";
b"1110" => b"01111001";
b"1111" => b"01110001";
END TABLE;
TABLE
b[7..4] => sH[];
b"0000" => b"00111111";
b"0001" => b"00000110";
b"0010" => b"01011011";
b"0011" => b"01001111";
b"0100" => b"01100110";
b"0101" => b"01101101";
b"0110" => b"01111101";
b"0111" => b"00000111";
b"1000" => b"01111111";
b"1001" => b"01101111";
b"1010" => b"01110111";
b"1011" => b"01111100";
b"1100" => b"00111001";
b"1101" => b"01011110";
b"1110" => b"01111001";
b"1111" => b"01110001";
END TABLE;
END IF;
END;
Блок работает с сигналами:
Bln - сигнал выключения индикатора (blank);
b[] – входная шина отображаемых данных;
sL[],sH[] – выходные шины с кодом для 7-сегментного индикатора.
Обратите внимание, что для отображения байта на индикаторе требуется два знакоместа (0..FF). Таким образом дешифратор для слова формирует два изображения на выходах sL (младший символ) и sH (старший символ).
Для отображения данных на виртуальном индикаторе из библиотеки SYM в файле проекта схему подключения индикаторов (рис. 23)
Рисунок 12. Схема блока индикации
Скомпилируйте проект и запрограммируйте ПЛИС через программу Win_PLD. Убедитесь в нормальном функционировании схемы.
Приведите в отчете схему всего устройства. Составьте описание принципа работы устройства.
Приведите в отчете соответствие скан кода клавиш, двочного кода числа и кода семисегментного индикатора в виде таблицы:
Скан-код (наименование сигнала) |
Двоичный код (наименование сигнала) |
Код семисегментного индикатора (наименование сигнала) |
|
|
|
|
|
|
|
|
|
Контрольное задание. Дополните созданную схему контроллером ИЖК. Продублируйте вывод изображения нажатой клавиши на жидкокристаллический дисплей.
Приведите в отчете доработанную схему устройства.
Оформите отчет в соответствии с действующими требованиями.