<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的RS232行列式矩陣鍵盤(pán)接口設計

基于FPGA的RS232行列式矩陣鍵盤(pán)接口設計

作者: 時(shí)間:2014-04-24 來(lái)源:網(wǎng)絡(luò ) 收藏

一、引言

本文引用地址:http://dyxdggzs.com/article/245960.htm

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

二、設計方案

1.芯片引腳定義

?

?

reset復位輸入端;clk時(shí)鐘輸入端;rxd串行數據接收端;retn0-retn7鍵盤(pán)掃描行輸入線(xiàn);txd串行數據發(fā)送端;scan0-scan7鍵盤(pán)掃描列輸出線(xiàn);led0-led2顯示輸出端。

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

3.動(dòng)態(tài)掃描原理

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

?

?

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

當有鍵按下時(shí),根據該時(shí)刻的scan值和retn值就可判斷按下的是哪一個(gè)鍵。

4.芯片內部模塊框圖

?

?

三、芯片設計

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

?

?

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

該模塊實(shí)現對串行數據的接收記數和串并變換的控制功能。

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

?

?

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

將串行數據接收計數器設置位一個(gè)6位計數器,高4位為sh_r,低2位為sl_r,利用該計數器的狀態(tài)實(shí)現串行數據的同步控制和記數控制。

2.串并轉換電路單元

從RXD端接收的串行數據進(jìn)經(jīng)過(guò)串并變換后,將其低三位經(jīng)LED輸出端輸出,驅動(dòng)發(fā)光二極管LED0,LED1,LED2發(fā)光,從而顯示接收端RXD的每個(gè)數據的低三位。當每個(gè)數據的低三位相同時(shí),顯示狀態(tài)就不變化,否則就出現閃爍現象,以此來(lái)檢查芯片的工作情況。

四、總結

本方案是用VHDL語(yǔ)言來(lái)實(shí)現的基于按位串行通信總線(xiàn)的行列式矩陣鍵盤(pán)接口電路的設計,具有復位和串行數據的接收與發(fā)送功能,根據發(fā)光二極管led0-led2的顯示狀態(tài)可判斷芯片的工作情況;實(shí)現所有電路功能的程序均是在美國ALTERA公司生產(chǎn)的具有現場(chǎng)可編程功能的芯片EPM7128SLC84-15上調試通過(guò)的。該電路的設計貼近生活,實(shí)用性強,制成芯片后可作為一般的PC機鍵盤(pán)與主機的接口使用。

fpga相關(guān)文章:fpga是什么


電子鎮流器相關(guān)文章:電子鎮流器工作原理


電子鎮流器相關(guān)文章:


塵埃粒子計數器相關(guān)文章:
塵埃粒子計數器原理



關(guān)鍵詞: FPGA RS232

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>