當前位置:編程學習大全網 - 編程語言 - 壹個RS232接口的矩陣鍵盤,需要每個按鍵按下後發送壹個數據,請問怎麽改在線等

壹個RS232接口的矩陣鍵盤,需要每個按鍵按下後發送壹個數據,請問怎麽改在線等

壹、引言

本方案是用VHDL語言來實現的基於RS232按位串行通信總線的行列式矩陣鍵盤接口電路,具有復位和串行數據的接收與發送功能,根據發光二極管led0-led2的顯示狀態可判斷芯片的工作情況;實現所有電路功能的程序均是在美國ALTERA公司生產的具有現場可編程功能的芯片EPM7128SLC84-15上調試通過的。能通過動態掃描來判有鍵按下、將鍵值轉換成對應的ASCII碼值,在時鐘脈沖的作用實現串行數據的接收與發送。

二、設計方案

1.芯片引腳定義

reset復位輸入端;clk時鐘輸入端;rxd串行數據接收端;retn0-retn7鍵盤掃描行輸入線;txd串行數據發送端;scan0-scan7鍵盤掃描列輸出線;led0-led2顯示輸出端。

2.鍵盤與芯片的連接圖(如圖2所示,為8×8的64鍵鍵盤)

3.動態掃描原理

(1)依次使列線scan0-scan7輸出0電平,檢查行線retn0-retn7的電平狀態。如果行線retn0-retn7的電平全為高電平,表示沒鍵按下。如果retn0-retn7上的電平不全為高電平,表示有鍵按下。

(2)如果沒鍵按下,就返回掃描。有鍵按下則進行逐行掃描,找出閉合鍵的鍵號。其過程是:先使scan0=0,scan1-scan7=1,檢測retn0-retn7上的電平,如果retn=0,則表示第壹行第壹列的鍵被按下,如果retn1=0,則表示第二行第二列的鍵被按下,其它依次類推;如果retn0-retn7均不為0,則表示這壹列沒鍵按下;然後再使scan1=0,檢測第二列按鍵,這樣壹直循環下去,知道把閉合的鍵找到為止。

當有鍵按下時,根據該時刻的scan值和retn值就可判斷按下的是哪壹個鍵。

4.芯片內部模塊框圖

三、芯片設計

數據接收模塊框圖如圖4所示。

Reset復位輸入端;clk時鐘輸入端;rxd串行數據接收端;led[20]輸出按下鍵對應的ASCII碼值的低三位去驅動發光二極管。

該模塊實現對串行數據的接收記數和串並變換的控制功能。

1.串行數據接收控制單元

Reset 復位輸入端;clk 時鐘輸入端;rxd 串行數據接收端;sh_rx[30]接收計數器高4位;sl_rx[10]接收計數器低2位。

將串行數據接收計數器設置位壹個6位計數器,高4位為sh_r,低2位為sl_r,利用該計數器的狀態實現串行數據的同步控制和記數控制。

2.串並轉換電路單元

從RXD端接收的串行數據進經過串並變換後,將其低三位經LED輸出端輸出,驅動發光二極管LED0,LED1,LED2發光,從而顯示接收端RXD的每個數據的低三位。當每個數據的低三位相同時,顯示狀態就不變化,否則就出現閃爍現象,以此來檢查芯片的工作情況。

四、總結

本方案是用VHDL語言來實現的基於RS232按位串行通信總線的行列式矩陣鍵盤接口電路的設計,具有復位和串行數據的接收與發送功能,根據發光二極管led0-led2的顯示狀態可判斷芯片的工作情況;實現所有電路功能的程序均是在美國ALTERA公司生產的具有現場可編程功能的芯片EPM7128SLC84-15上調試通過的。該電路的設計貼近生活,實用性強,制成芯片後可作為壹般的PC機鍵盤與主機的接口使用。

  • 上一篇:3d是什麽意思?
  • 下一篇:做股票怎樣才能賺錢?
  • copyright 2024編程學習大全網