在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA學習系列:26. 矩陣鍵盤的設計

FPGA學習交流 ? 2018-08-09 10:47 ? 次閱讀

設計背景:

矩陣鍵盤在工程設計越來越多的被用到,已然成為了我們做開發接觸到的不可缺少的小型項目,利于我們理解設計方向的原理為以后的強化學習打好了堅實的基礎。

設計原理:

在使用按鍵的時候,如果按鍵不多的話,我們可以直接按鍵與FPGA相連接,但是如果按鍵比較多的時候,如何還繼續使用直接按鍵與FPGA相連接的話,所會大量增加FPGA端口的消耗,為了減少FPGA端口的消

耗,我們可以把按鍵設計成矩陣的形式,就如下圖所示:

image.png

由上圖可以知道,矩陣鍵盤的行row(行)與col(列)的交點,都是通過一個按鍵來相連接。傳統的一個按鍵一個端口的方法,若要實現16個按鍵,則需要16個端口,而現在這個矩陣鍵盤的設計,16個按鍵,僅僅需要8個端口,如果使用16個端口來做矩陣鍵盤的話,可以識別64個按鍵,端口的利用率遠遠比傳統的設計好的多,所以如果需要的按鍵少的話,可以選擇傳統的按鍵設計,如果需要的按鍵比較多的話,可以采用這種矩陣鍵盤的設計。而我們現在就以掃描法為例來介紹矩陣鍵盤的工作原理

首先col(列)是FPGA給矩陣鍵盤輸出的掃描信號,而row(行)是矩陣鍵盤反饋給FPGA的輸入信號,用于檢測哪一個按鍵被按下來,如下圖所示:

image.png

詳細如上圖所示,FPGA給出掃描信號COL[3:0]COL = 4’b0111,等下一個時鐘周期COL = 4’b1011,再等下一個時鐘周期COL =4’b1101,再等下一個時鐘周期COL = 4’b1110,再等下一個時鐘周期COL = 4’b0111COL就是這樣不斷循環,給矩陣鍵盤一個低電平有效的掃描信號,當FPGA給矩陣鍵盤COL掃描信號的同時,FPGA也要在檢測矩陣鍵盤給FPGA的的反饋信號ROW,舉個例子,假若矩陣鍵盤中的9號案件被按下了:

COL = 4’b1101ROW =4’b1011 ;

9號按鍵被按下的時候,9號按鍵的電路就會被導通,掃描電路COL開始掃描,當掃描到COL[1]的時候,由于9號按鍵的電路被導通了,COL[1]的電壓等于ROW[2]的電壓,所以會出現當COL = 4’b1101的時候ROW = 4’b1011;然后我們就可以利用這一種現象,來設計一個識別按鍵的電路。

設計架構圖:

image.png

設計代碼:

設計模塊

0modulekey_borad(clk,rst_n,row,col,key_num);

1 inputclk;

2 inputrst_n;

3 input[3:0]row; //輸入反饋信號

4

5

6 outputreg[3:0]col; //輸出掃描信號

7 outputreg[3:0]key_num; //按鍵值得輸除

8

9 reg[15:0]count;

10

11 parameterT1ms =50000;//掃描的時間間隔 50000 * 20ns

12 //parameter T1ms = 5;

13

14 regflag;

15 always@(posedgeclk ornegedgerst_n)

16 if(!rst_n)

17 begin

18 count <=16'd0;

19 flag <=1'b0;

20 end

21 else

22 begin

23 if(count <T1ms -1)//計數時間

24 begin

25 count <=count +1'b1;

26 flag <=0;

27 end

28 else

29 begin

30 flag <=1'b1;//計數到了就給一個標志位

31 count <=16'b0;

32 end

33 end

34 always@(posedgeclk ornegedgerst_n)

35 if(!rst_n)

36 begin

37 col <=4'b0111;

38 end

39 else

40 begin

41 if(flag)

42 col <={col[2:0],col[3]};//列掃描

43 else

44 col <=col;

45 end

46

47 //鍵值得翻譯模塊

48 always@(posedgeclk ornegedgerst_n)

49 if(!rst_n)

50 key_num =4'd0;

51 else

52 case({row,col}) //位拼接行和列的信號,翻譯出對應的鍵值

53 8'b0111_0111:key_num =4'hf;

54 8'b0111_1011:key_num =4'he;

55 8'b0111_1101:key_num =4'hd;

56 8'b0111_1110:key_num =4'hc;

57

58 8'b1011_0111:key_num =4'hb;

59 8'b1011_1011:key_num =4'ha;

60 8'b1011_1101:key_num =4'h9;

61 8'b1011_1110:key_num =4'h8;

62

63 8'b1101_0111:key_num =4'h7;

64 8'b1101_1011:key_num =4'h6;

65 8'b1101_1101:key_num =4'h5;

66 8'b1101_1110:key_num =4'h4;

67

68 8'b1110_0111:key_num =4'h3;

69 8'b1110_1011:key_num =4'h2;

70 8'b1110_1101:key_num =4'h1;

71 8'b1110_1110:key_num =4'h0;

72 default:;

73 endcase

74endmodule

測試模塊

0`timescale1ns/1ps

1

2modulekey_borad_tb();

3 regclk;

4 regrst_n;

5 reg[4:0]pressnum;//按鍵的值

6 wire[3:0]row;

7

8 wire[3:0]col;

9 wire[3:0]key_num;//輸出的值

10

11 initialbegin

12 clk =1'b1;

13 rst_n =1'b0;

14 pressnum =5'd16;

15

16 #200.1

17 rst_n =1'b1;

18 #1000

19 pressnum =5'd16;

20

21 #1000

22 pressnum =5'd8;

23

24 #1000

25 pressnum =5'd16;

26

27 #1000

28 pressnum =5'd15;

29 #1000

30 pressnum =5'd16;

31 #1000

32 $stop;

33

34 end

35 always#10clk =~clk;

36 //例化對應的模塊

37 key_top borad_dut(

38 .clk(clk),

39 .rst_n(rst_n),

40 .row(row),

41 .col(col),

42 .key_num(key_num)

43 );

44 yingjian yingjian_dut(//硬件檢測電路 //此模塊自己可以設計

45 .clk(clk),

46 .rst_n(rst_n),

47 .col(col),

48 .row(row),

49 .pressnum(pressnum)

50 );

51endmodule

仿真:

在仿真圖中可以清晰的看出當按鍵按下的時候為8,顯示出來的鍵值也為8,當抬起的時候為16,那么鍵值就保持不變,在設置的時候我們設置的是按鍵抬起為16,通過驗證我們得到我們的設計是正確的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21777

    瀏覽量

    604686
  • 仿真
    +關注

    關注

    50

    文章

    4111

    瀏覽量

    133796
收藏 人收藏

    評論

    相關推薦

    至芯科技昭哥帶你學FPGAFPGA_100天之旅_矩陣鍵盤設計

    本文屬于本人原創,和大家一起學習FPGA,交流FPGA,希望大家多多支持。來源:至芯科技昭哥帶你學FPGAFPGA_100天之旅_
    發表于 10-17 10:06

    基于FPGA的4x4鍵盤矩陣

    基于FPGA的4x4鍵盤矩陣
    發表于 12-14 01:26

    獨立鍵盤矩陣鍵盤簡析

    小白的學習筆記參上!!點擊我的藍色字體去往我的筆記就行了,我來整合一下目錄,方便大家一起交流準備*.1藍橋杯的板子的初始化和蜂鳴器關閉1.流水燈流水燈學習2.獨立鍵盤矩陣
    發表于 01-17 06:14

    基于FPGA開發板的矩陣鍵盤實驗設計與實現

    1、基于FPGA開發板的矩陣鍵盤實驗設計與實現在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在
    發表于 07-08 17:32

    單片機入門教程第26課-矩陣鍵盤接口技術及編程

    單片機入門教程第26課-矩陣鍵盤接口技術及編程 1、矩陣鍵盤的結構與工作原理  在鍵盤中按
    發表于 01-07 15:21 ?2616次閱讀
    單片機入門教程第<b class='flag-5'>26</b>課-<b class='flag-5'>矩陣</b>式<b class='flag-5'>鍵盤</b>接口技術及編程

    矩陣鍵盤專題

    將按鍵排列成矩陣形式被稱為矩陣鍵盤矩陣鍵盤程序則實現了矩陣
    發表于 10-25 15:19
    <b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>專題

    VNS網絡控制矩陣鍵盤

    VNS網絡控制矩陣鍵盤是與VNS系列網絡數字矩陣配套使用的全功能控制鍵盤,可通過以太網網絡控制直接操作帶網絡控制功能的
    發表于 10-26 09:16 ?1864次閱讀

    矩陣鍵盤

    矩陣鍵盤
    發表于 12-25 22:47 ?0次下載

    基于FPGA矩陣鍵盤控制器的設計

    為改變采用CPU 控制矩陣鍵盤導致CPU 資源利用下降及引腳不足的現狀,介紹了一種基于FPGA矩陣鍵盤控制器的開發。在ISE13.4 開
    發表于 11-18 11:45 ?5049次閱讀

    矩陣鍵盤有什么用_矩陣鍵盤有何用途

    本文開始介紹了什么是矩陣鍵盤矩陣鍵盤的組成結構,其次詳細闡述了矩陣鍵盤用途,最后介紹了
    發表于 02-24 14:01 ?1.7w次閱讀

    FPGA學習系列26. 計算器的設計

    設計背景:計算器是設計中經常用到的一個操作軟件,設計和學習計算器使我們親密的聯系所學的各模塊, 對我們的學習有很大的幫助和提升。希望大家來學習?設計原理:?本次的設計主要通過矩陣
    的頭像 發表于 08-13 13:45 ?4301次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>學習</b><b class='flag-5'>系列</b>:<b class='flag-5'>26.</b> 計算器的設計

    矩陣鍵盤的按鍵識別方法_矩陣鍵盤掃描程序

    矩陣鍵盤的按鍵識別方法來自簡單日記網精選推薦。在學習有關矩陣鍵盤的時候,往往要學會矩陣
    的頭像 發表于 04-20 09:39 ?3.4w次閱讀

    單片機學習(五)LCD1602和矩陣鍵盤的使用

    單片機學習(五)LCD1602和矩陣鍵盤的使用
    發表于 12-04 09:06 ?12次下載
    單片機<b class='flag-5'>學習</b>(五)LCD1602和<b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>的使用

    藍橋杯單片機學習記錄4矩陣鍵盤

    藍橋杯單片機學習記錄4矩陣鍵盤藍橋杯的矩陣鍵盤和一般的51不一樣一般的51矩陣
    發表于 12-29 19:20 ?0次下載
    藍橋杯單片機<b class='flag-5'>學習</b>記錄4<b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>

    stm32矩陣鍵盤學習筆記

    矩陣鍵盤矩陣鍵盤簡介矩陣鍵盤掃描原理端口的配置相關函數的編寫主函數與其他串口的接線與
    發表于 01-13 16:27 ?36次下載
    stm32<b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b><b class='flag-5'>學習</b>筆記
    主站蜘蛛池模板: 欧美不卡视频| 欧美性色xo影院永久禁欲| 日本美女视频网站| 国内一区二区| 成人aaa| h网站在线| 国产伦精品一区二区三区免费| 国产日韩欧美综合色视频在线| 四虎成人影院网址| 色婷婷一区二区三区四区成人| www.爽| 亚洲高清色| 色99视频| 深夜性久久| 色成年激情久久综合| 美女黄色在线看| 成成人看片在线| 天天爱天天操天天干| 天天槽任我槽免费| 午夜视频精品| a毛片网站| 俺去啦在线视频| 天天干天天草| 性欧美1819| 黄色午夜网站| 岛国毛片在线观看| 色婷婷激婷婷深爱五月小说| 久久久精品免费国产四虎| sihu免费观看在线高清| 一级大片免费观看| 又黑又长黑人欧美三级| 久久久美女视频| 中文字幕亚洲一区二区三区| 一级片视频在线| 五月综合色| 久久综合97色综合网| 亚洲日本中文字幕天天更新| 午夜美女影院| 1024手机在线观看视频| 黄色在线网| 亚洲欧美在线视频免费|