реклама на сайте
подробности

 
 
> Клавиатура на ПЛИСке, Домашнее задание
andreichk
сообщение Apr 21 2008, 17:23
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143



Привет Народ!
Получил сегодня задание сделать клавиатуру на 16 кнопок на ПЛИСине от XILINX.
На входе должно быть 16 кнопок, на выходах, которых два ,должно быть-
на одном- меандр, на втором два байта от 1 до 16 в зависимости от нажатой кнопки в течении активной части меандра.
На рисунке для ясности приведён пример , когда одновременно нажаты клавишы: 2,5,12,16.
Оба выхода должны будут опрашиваться ПИК процессором, в котором они описаны следующим образом

коды кнопок
Код
#define Key1    0b0000000000000001//0x0001//1
#define Key2    0b0000000000000010//0x0002//2
#define Key3    0b0000000000000100//0x0004//4
#define Key4    0b0000000000001000//0x0008//8
#define Key5    0b0000000000010000//0x0010//16
#define Key6    0b0000000000100000//0x0020//32
#define Key7    0b0000000001000000//0x0040//64
#define Key8    0b0000000010000000//0x0080//128
#define Key9    0b0000000100000000//0x0100//256
#define Key10   0b0000001000000000//0x0200//512
#define Key11   0b0000010000000000//0x0400//1024
#define Key12   0b0000100000000000//0x0800//2048
#define Key13   0b0001000000000000//0x1000//4096
#define Key14   0b0010000000000000//0x2000//8192
#define Key15   0b0100000000000000//0x4000//16384
#define Key16   0b1000000000000000//0x8000//32768


и

#ifndef TASTE_EN
#define TASTE_EN PIN_A5//Признак опроса кнопок
#endif

ПЛИСку умею програмировать пока только в графическом режиме.Подскажите,плиз, с какого боку подходить к решению данной задачи.Заранее спасибо beer.gif


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
chds
сообщение Apr 21 2008, 17:44
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 5-11-07
Из: Чернигов, Украина
Пользователь №: 32 078



Могу предложить решение на VHDL
Ну для начала нужно определиться с частотой опроса клавиатуры. Сформировать такой сигнал можно на обычном делителе зависит от внутренней частоты в ПЛИС:
Код
signal cnt : std_logic_vector(20 downto 0);
signal scan_keyboard : std_logic;
cnt : process (clk)
begin
   if (clk=1 and clk'event) then
       cnt <= cnt+1;
   end if;
end process;

scan_keyboard <= cnt(20);


тут входной clk поделили на 2^20

а потом запускаться от сигнала scan_keyboard и считывать состояние со входных пинов к которым подключены кнопки:
если в entity объявлен сигнал типа:
Код
key : in std_logic_vector(16 downto 1);

то выполняем что то типа:
Код
scan : process (scan_keyboard)
begin
   if (scan_keyboard=1 and scan_keyboard'event) then
       send_scaned_key <= key;
   end if;
end process;

Дальше останется только выдать параллельный код send_scaned_key последовательно, можно так же самостоятельно написать на VHDL процесс, а можно запортмапить сдвиговый регистр, в библиотеке у Xilinx их предостаточно.
Ну конечно возможны модификации, типа: слать когда нажимают кнопки, но это потребует незначительной модификации кода.




Настрочил, а потом прочитал:
Цитата
ПЛИСку умею програмировать пока только в графическом режиме.Подскажите,плиз, с какого боку подходить к решению данной задачи.Заранее спасибо


Ну тут еще проще, читай мануал.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- andreichk   Клавиатура на ПЛИСке   Apr 21 2008, 17:23
- - rezident   Двух сигналов для синхронного интерфейса маловато....   Apr 21 2008, 17:44
|- - andreichk   Цитата(rezident @ Apr 21 2008, 19:44) Хот...   Apr 21 2008, 17:55
- - chds   ЦитатаДвух сигналов для синхронного интерфейса мал...   Apr 21 2008, 17:47
|- - rezident   Цитата(chds @ Apr 21 2008, 23:47) Тут мож...   Apr 21 2008, 21:09
|- - chds   Цитата(rezident @ Apr 22 2008, 00:09) Что...   Apr 22 2008, 07:31
- - andreichk   Скажите, а можно ли каким-то образом обьеденить уж...   Apr 21 2008, 17:48
- - chds   Ну с начала нужно поведать где и чем вы творите. Е...   Apr 21 2008, 17:51
|- - ZMaverickZ   Цитата(chds @ Apr 21 2008, 20:51) Ну с на...   Apr 22 2008, 18:22
|- - chds   Цитата(ZMaverickZ @ Apr 22 2008, 21:22) А...   Apr 23 2008, 06:19
- - chds   Ну это станет понятно в процессе. Я так понимаю, е...   Apr 21 2008, 18:12
- - andreichk   а мне вот такой вариант предложили   Apr 21 2008, 19:14
- - andreichk   а мне вот подсказывают, что , так как и ПИК и ПЛИС...   Apr 21 2008, 21:30
|- - rezident   Цитата(andreichk @ Apr 22 2008, 03:30) а ...   Apr 21 2008, 21:54
||- - andreichk   Цитата(rezident @ Apr 21 2008, 23:54) Ну ...   Apr 22 2008, 16:44
|- - TomaT   Цитата(andreichk @ Apr 22 2008, 01:30) а ...   Apr 21 2008, 22:09
- - rimpocha   А дребезг контактов вы подавляете как?   Apr 22 2008, 05:22
- - andreichk   Спешу сообщить что задача построения кнопок благоп...   Apr 23 2008, 19:30


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 12:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016