DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Проектування сканеру клавіатури із застосуванням діаграм скінчених автоматів для опису об'єктів в САПР Active-HDL

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Факультет комп’ютерних інформаційних технологій
Кафедра:
Не вказано

Інформація про роботу

Рік:
2005
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Мови опису апаратних засобів
Група:
КІ
Коротко про документ

Про що ця робота

У звіті наведено проектування сканера клавіатури з використанням скінчених автоматів у САПР Active-HDL. Описано принципи роботи матричної клавіатури та наведено код мовою VHDL.

У роботі розглядаються

  • Проектування цифрових пристроїв
  • Скінчені автомати
  • Сканер клавіатури
  • САПР Active-HDL
  • Мови опису апаратних засобів
  • Проєктування апаратного забезпечення

Зміст і розділи

  1. Мета роботи
  2. Теоретична частина
  3. Діаграма станів
  4. Текст програми
  5. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Викладач кафедри

Ключові поняття

сканер клавіатурискінчений автоматActive-HDLVHDLматриця клавіатурисинхронізуючий імпульсстан очікуваннярежим скануваннясигнал strobeцифровий пристрій

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” ЗВІТ про виконання лабораторної роботи №7 з дисципліни “Мови опису апаратних засобів” на тему: Проектування сканеру клавіатури із застосуванням діаграм скінчених автоматів для опису об'єктів в САПР Active-HDL Львів 2005 Мета роботи: Вивчити принцип роботи сканера клавіатури. Отримати навички проектування цифрових пристроїв за допомогою скінчених автоматів засобами Active-HDL. Теоретична частина Клавіатура більшості обчислювальних пристроїв змонтована у вигляді прямокутної матриці, у точках перетину рядків і стовбців якої розташовуються кнопочні контакти. Скануючий пристрій, що розробляється, повинен визначати номер елемента матриці, який відповідає натисненій клавіші, і видавати відповідний йому двійковий код.  Сканер працює у двох головних режимах: Режим очікування: На всі рядки матриці клавіатури, які позначені Scan(0), Scan(1), Scan(2), Scan(3) подається логічна одиниця. Всі стовбці матриці клавіатури, позначені Ret(0), Ret(1), Ret(2), Ret(3) мають низький рівень сигналу. Рівень сигналів Ret перевіряється з кожним синхронізуючим імпульсом ClLK, і, якщо один з них змінить своє значення з '0' на '1', це сигналізує про натиснення однієї з клавіш. При цьому сканер переходить в наступний режим. Режим сканування: На рядок Scan(0) подається сигнал високого рівня, а на всі інші рядки - низького рівня. Перевіряється рівень сигналів Ret. Якщо рівень одного з Ret (наприклад, Ret(1)) зміниться з "низького" на "високий", це означає, що було замкнено контакт, який розташований на перетині рядка Scan(0) та стовбця Ret(1). Тобто номер елемента матриці клавіатури, якому відповідає натиснена клавіша, знайдено. Сканер передає цю інформацію у кодер для формування відповідного коду обраної цифри або операції та знову переходить до режиму очікування. Якщо рівень всіх рядків Ret залишається низьким, то проводиться перевірка наступного рядка матриці, і т.д. Приклад роботи сканера у випадку натиснення клавіши '3': № Дії Результати Висновки  1. Scan = "1111" Ret = "0000" Сканер знаходиться в стані очікування.  2. Scan = "1111" Ret = "0010" Одержано інформацію про натиснення клавіши. Сканер переходить в режим сканування.  3. Scan = "0001" Ret = "0000" Натиснена клавіша не знаходиться в першому рядку матриці.  4. Scan = "0010" Ret = "0000" Натиснена клавіша не знаходиться в другому рядку матриці.  5. Scan = "0100" Ret = "0010" Натиснена клавіша знаходиться на перетині третього рядка і другого стовбця матриці.  6. KeyCode = Scan & Ret KeyCode = "01000010" Strobe = '1' Сканер переходить в режим очікування.  Діаграма станів  Текст програми library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity Diagram1 is port ( clk: in STD_LOGIC; ret: in STD_LOGIC_VECTOR (3 downto 0); keycode: out STD_LOGIC_VECTOR (7 downto 0); strobe: out STD_LOGIC; scan: inout STD_LOGIC_VECTOR (3 downto 0)); end; architecture Diagram1_arch of Diagram1 is -- SYMBOLIC ENCODED state machine: Sreg0 type Sreg0_type is (S0, S1, S2, S3, S4, S5); -- attribute enum_encoding of Sreg0_type: type is ... -- enum_encoding attribute is not supported for symbolic encoding signal Sreg0: Sreg0_type; begin -- concurrent signals assignments -- diagram ACTION ---------------------------------------------------------------------- -- Machine: Sreg0 ---------------------------------------------------------------------- Sreg0_machine: process (clk) begin if clk'event and clk = '1' then -- Set default values for registered outputs/signals and for variables -- ... case Sreg0 is when S0 => scan <= "1111"; keycode <= "00000000"; strobe <= '0'; if ret/="0000" then Sreg0 <= S1; elsif ret="0000" then Sreg0 <= S0; end if; when S1 => scan <= "0001"; if ret="0000" then Sreg0 <= S2; elsif ret/="0000" then Sreg0 <= S5; end if; when S2 => scan <= "0010"; if ret="0000" then Sreg0 <= S3; elsif ret/="0000" then Sreg0 <= S5; end if; when S3 => scan <= "0100"; if ret="0000" then Sreg0 <= S4; elsif ret/="0000" then Sreg0 <= S5; end if; when S4 => scan <= "1000"; if ret="0000" then Sreg0 <= S0; elsif ret/="0000" then Sreg0 <= S5; end if; when S5 => keycode <= scan&ret; strobe <= '1'; if ret="0000" then Sreg0 <= S0; elsif ret/="0000" then Sreg0 <= S5; end if; when others => null; end case; end if; end process; end Diagram1_arch;   Висновок: В ході виконання лабораторної роботи я вивчив принцип роботи сканера клавіатури та отримати навички проектування цифрових пристроїв за допомогою скінчених автоматів засобами Active-HDL
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!