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-),男,陜西漢中人,助教,研究方向:電子及智能控制方向。

主站蜘蛛池模板: 亚洲综合精品香蕉久久网| 欧美成人h精品网站| 日韩区欧美区| 国产尤物在线播放| 精品国产一二三区| 日本午夜视频在线观看| 天天激情综合| 久久婷婷六月| 手机看片1024久久精品你懂的| 欧美一区二区三区不卡免费| 国产成人综合亚洲欧洲色就色| 国产一区二区精品福利| 99精品高清在线播放| 91精品国产自产91精品资源| 国产成人无码播放| 色综合天天视频在线观看| 丁香六月激情婷婷| 欧美日韩一区二区三| 成人在线观看一区| 国产一区亚洲一区| 精品亚洲欧美中文字幕在线看 | 欧美19综合中文字幕| 国产精品高清国产三级囯产AV| 欧美国产日产一区二区| 精品视频一区二区观看| 欧美视频在线不卡| 蜜臀av性久久久久蜜臀aⅴ麻豆| 在线综合亚洲欧美网站| 日本一区二区不卡视频| 国产青青操| 欧美综合一区二区三区| 91精品久久久无码中文字幕vr| 欧美不卡视频在线| 香蕉蕉亚亚洲aav综合| 素人激情视频福利| 午夜日本永久乱码免费播放片| 国产欧美日韩专区发布| 日韩天堂网| 国产女人在线视频| 久久一色本道亚洲| 在线观看精品自拍视频| 亚洲 欧美 偷自乱 图片| 国产激情在线视频| 久久特级毛片| 久久精品这里只有国产中文精品 | 国产精品偷伦在线观看| 亚洲国产天堂久久九九九| a级毛片免费播放| 婷婷亚洲天堂| 精品伊人久久大香线蕉网站| 中文字幕自拍偷拍| 国内精品小视频福利网址| 国产xx在线观看| 国产美女精品在线| 波多野吉衣一区二区三区av| 中文无码精品A∨在线观看不卡| 在线免费观看AV| 国产国拍精品视频免费看| 香蕉久久国产精品免| 在线精品视频成人网| 精品剧情v国产在线观看| 国产99免费视频| 亚洲视频色图| 中文字幕丝袜一区二区| 露脸国产精品自产在线播| 亚洲精品国产日韩无码AV永久免费网| 久久精品亚洲热综合一区二区| 免费国产一级 片内射老| 成人精品视频一区二区在线| 欧美性色综合网| 亚洲a免费| 亚洲精品在线观看91| 成人在线欧美| 欧美另类精品一区二区三区| 天天色综网| 深爱婷婷激情网| 国产亚洲视频在线观看| 国产乱子伦视频在线播放| 中文字幕av一区二区三区欲色| 综合色88| 亚洲IV视频免费在线光看| 国产原创演绎剧情有字幕的|