999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于現場可編程門陣列的鍵盤掃描電路的設計

2014-04-29 00:00:00曹磊
中小企業管理與科技·上旬刊 2014年10期

摘要:在MAX+PlusⅡ開發環境下,采用現場可編程門陣列設計了一個簡單的鍵盤掃描電路,解決了按鍵顫抖帶來的信號混亂問題。此次設計為了減少整體設計中的問題,將整個電路分成各個分模塊,再使用VHDL硬件描述語言進行程序設計并生成模塊,最后將各個分模塊采用圖形編輯最終實現設計要求。

關鍵詞:現場可編程門陣列 鍵盤掃描 顫抖 MAX+PlusⅡ

1 概述

現場可編程門陣列即FPGA(Field Programmable Gate Array),它是在可編程器件的基礎上進一步發展的產物。隨著EDA技術的發展,采用現場可編程門陣列的掃描鍵盤因其結構簡單,能有效防止按鍵顫抖帶來的信號混亂等優點在電子信號輸入電路的應用中得到廣泛使用。本文通過采用FPGA圖形編輯實現一個4*3的鍵盤掃描電路,來說明現場可編程門陣列在此類電路的設計和應用中的優點。筆者使用的軟件環境是MAX+PlusⅡ,將整個電路分成各個分模塊,再使用VHDL硬件描述語言進行程序設計并生成模塊,最后將各個分模塊采用圖形編輯最終實現設計要求。

2 基于FPGA的4*3式鍵盤掃描程序的設計

2.1 顫抖消除電路

圖1

因為按鍵大多數是式開關結構,在開關切換的瞬間會在接觸點出現來回顫抖的現象,對于激活關閉一般電器如開關日光燈、電視等一般電子用品,并不會有何影響,但對于靈敏度較高的電路,這種現象卻可能造成錯誤動作影響到正確性。顫抖現象產生的原因可從圖1說明,雖然是按下按鍵一次然后放掉,然而實際產生的按鍵信號卻不只跳動一次,經過取樣信號的檢查后,將會造成誤判,以為鍵盤按下了兩次。

如果調整抽樣頻率(如圖2),可以發現顫抖現象獲得了改善。

圖2

程序如下:

ENTITY debouncing IS

PORT(d_in,clk :IN STD_LOGIC;d_out:OUT STD_

LOGIC);

END debouncing ;

ARCHITECTURE a OF debouncing IS

signal vcc,inv_d:std_logic;

signal d1,d0:std_logic;

signal q0,q1:std_logic;

BEGIN

vcc<='1';

inv_d <=not d_in;

dff1:dff PORT MAP(d=>vcc,q=>q0 ,clk=>clk,clrn=>inv_d,prn=>vcc);

dff2:dff PORT MAP(d=>vcc,q=>q1, clk=>clk,clrn=>q0,prn=>vcc);

process(clk)

begin

if clk'event and clk='1'then

d0<=not q1;

d1<=d0;

end if;

end process;

d_out <= not(d1 and not d0);

END a;

編譯仿真如圖3:

由仿真波形圖可看出,原本的顫抖現象經過顫抖消除電路處理后已經消除,不會再產生混亂的信號。

2.2 鍵盤掃描:鍵盤上的每一個按鍵都是開關電路,當某個按鍵按下時,該按鍵的觸點的狀態為邏輯0,反之,未被按下時的狀態為邏輯1。掃描信號由KA3~KA0進入鍵盤,變化的邏輯狀態順序依次為1110→1101→1011→0111→1110。每次掃描一排,依序地循環。

程序如下:

PORT(CLK:IN STD_LOGIC;

CNT_OUT:OUT STD_LOGIC_VECTOR(1 downto 0);

CLK_SCAN :OUT STD_LOGIC_VECTOR(3 downto 0));

END scan;

ARCHITECTURE a OF scan IS

SIGNAL Q: STD_LOGIC_VECTOR (19 downto 0);

SIGNAL CNT,S : STD_LOGIC_VECTOR (1 downto 0);

SIGNAL SEL: STD_LOGIC_VECTOR (3 downto 0);

BEGIN

process(clk)

begin

IF CLK'Event AND CLK='1'then

Q<=Q+1;

END IF;

END PROCESS;

CNT<=Q(4 DOWNTO 3);

SEL <=\"1110\" WHEN S=0 ELSE

\"1101\" WHEN S=1 ELSE

\"1011\" WHEN S=2 ELSE

\"0111\"

CONNECTION

S<=CNT;

CNT_OUT<=CNT;

CLK_SCAN<=SEL;

END a;

說明:當鍵盤掃描所需的信號從計數器中取出后,將鍵盤掃描信號利用WHEN…ELSE語句將計數結果進行轉換,依序1110→1101→1011→0111→1110…循環下去。因為WHEN…ELSE語句為并行同時性語句,所以必須放在process指令的外部。

編譯仿真結果:(圖4)

仿真圖中的CLK_SCAN(3 DOWNTO 0)是電路所產生的鍵盤掃描序列(1110→1101→1011→0111→1110….,即KA3~KA0)。由仿真圖看出,掃描序列與鍵盤掃描信號一一對應。實現了對鍵盤的掃描。

2.3 鍵盤譯碼。根據上述鍵盤的按鍵特點,按鍵可分為數字按鍵和文字按鍵,沒一個按鍵都可能負責不同的功能。數字按鍵主要是用來輸入數字,鍵盤所產生的輸出(KB2~KB0)無法直接拿來使用;另外不同的數字按鍵也擔負不同的功能,因此必須由鍵盤譯碼電路來規劃每個按鍵的輸出形式,以便執行相應的動作。設計鍵盤譯碼電路程序如下:

PORT(CLK:IN STD_LOGIC;

CLK_KEYBOARD:IN STD_LOGIC_VECTOR(1 downto 0);

C:IN STD_LOGIC_VECTOR(2 downto 0);

OUT_NUMB :OUT STD_LOGIC_VECTOR(3 downto 0));

END key_decoder;

BEGIN

PROCESS(clk)

begin

Z<=CLK_KEYBOARDC;

IF CLK'EVENT AND CLK='1'THEN

case Z is

when\"11101\"=>N<=\"0000\" ;-0

when\"00011\"=>N<=\"0001\" ;-1

when\"00101\"=>N<=\"0010\" ;-2

when\"00110\"=>N<=\"0011\" ;-3

when\"01011\"=>N<=\"0100\" ;-4

when\"01101\"=>N<=\"0101\" ;-5

when\"01110\"=>N<=\"0110\" ;-6

when\"10011\"=>N<=\"0111\" ;-7

when\"10101\"=>N<=\"1000\" ;-8

when\"10110\"=>N<=\"1001\" ;-9

when\"11110\"=>N<=\"1010\" ;-#

when\"11011\"=>N<=\"1011\";-*

when others=>N<=\"1111\";

end case;

END IF;

END PROCESS;

OUT_NUMB<=N;

END a;

編譯仿真:(圖5)

說明:從仿真圖的結果可以看到,00 011代表按下的按鍵為“1”。01 100為“15” 10 101為“8”。鍵盤譯碼程序能正確地執行各項動作,未出現顫抖和錯誤的按鍵情況。

3 總結

通過測試,根據程序所設定的列掃描信號和對應的鍵盤響應信號來確定按鍵的位置。通過本文的研究表明,使用現場可編程門陣列實現了鍵盤掃描電路的設計,減少了復雜的硬件電路的設計,對于復雜鍵盤的掃描程序的設計帶來便利和可行性。

參考文獻:

[1]番松,黃繼業.EDA技術與VHDL[M].

北京:清華大學出版社,2005.7.

[2]袁文波.FPGA應用開發從實踐到提高[M].中國電力出版社,2007.

[3]鄭采君.基于CPLD的矩陣鍵盤掃描模塊設計[J].電子設計工程,2010(10).

作者簡介:

曹磊(1985-),男,陜西漢中人,助教,研究方向:電子及智能控制方向。

主站蜘蛛池模板: 国产亚洲精| 国产精品自在拍首页视频8| 久久国产精品夜色| 国产91高跟丝袜| 日韩中文欧美| 国产清纯在线一区二区WWW| 国产精品爆乳99久久| 99在线观看精品视频| 无码'专区第一页| 无码人中文字幕| 国产午夜无码片在线观看网站 | aaa国产一级毛片| 国内精品一区二区在线观看| 亚洲AV无码乱码在线观看代蜜桃 | 日韩欧美视频第一区在线观看| 在线观看欧美国产| 91在线播放免费不卡无毒| 狠狠综合久久久久综| 91精品人妻互换| 黑色丝袜高跟国产在线91| 熟女视频91| 国产自无码视频在线观看| 亚洲精品国产乱码不卡| 亚洲欧洲美色一区二区三区| 毛片手机在线看| 久久精品人人做人人爽97| 亚洲二区视频| 91久久偷偷做嫩草影院精品| 人人爽人人爽人人片| 国产在线精品人成导航| 国产一级无码不卡视频| 激情在线网| 成人欧美日韩| 国产精品一老牛影视频| 91精品专区国产盗摄| 人与鲁专区| 尤物成AV人片在线观看| 亚洲人成网站色7799在线播放| 天堂成人在线| 久久精品国产999大香线焦| 国产又爽又黄无遮挡免费观看| 欧美啪啪精品| 精品少妇人妻一区二区| 毛片网站在线看| 亚洲国产日韩在线成人蜜芽| 精品国产免费观看| 亚洲精品无码抽插日韩| 亚洲性一区| 久久久久九九精品影院| 日韩第一页在线| 国产哺乳奶水91在线播放| 高清免费毛片| 国产成人永久免费视频| 国产高清免费午夜在线视频| 一本久道久综合久久鬼色| 伊人久久大香线蕉影院| 毛片免费高清免费| 国产欧美视频在线观看| 亚洲精品欧美重口| 国产精品成人一区二区| 99热这里只有成人精品国产| 亚亚洲乱码一二三四区| 国产后式a一视频| 九九九精品成人免费视频7| 亚洲经典在线中文字幕| 88av在线看| 国产一区二区三区夜色| 天天综合色网| 国产乱人免费视频| 精品少妇人妻无码久久| 中文字幕va| 欧美日韩精品在线播放| 在线国产资源| 91精品网站| 91精品人妻互换| 日韩欧美中文在线| 国产AV无码专区亚洲精品网站| 国产午夜精品一区二区三区软件| 国产成人8x视频一区二区| 亚洲大学生视频在线播放 | 亚洲精品第一在线观看视频| 中文字幕 日韩 欧美|