[摘要] 本設(shè)計(jì)是用VHDL語(yǔ)言來(lái)實(shí)現(xiàn)的基于RS232按位串行通信總線的行列式矩陣鍵盤接口電路,具有復(fù)位和串行數(shù)據(jù)的接收與發(fā)送功能,根據(jù)發(fā)光二極管led0—led2的顯示狀態(tài)可判斷芯片的工作情況;實(shí)現(xiàn)所有電路功能的程序均是在美國(guó)ALTERA公司生產(chǎn)的具有現(xiàn)場(chǎng)可編程功能的芯片EPM7128SLC84-15上調(diào)試通過(guò)的。該電路的設(shè)計(jì)貼近生活,實(shí)用性強(qiáng),制成芯片后可作為一般的PC機(jī)鍵盤與主機(jī)的接口使用。
[關(guān)鍵詞] CPLD VHDL 鍵盤接口
一、引言
1.通過(guò)動(dòng)態(tài)掃描來(lái)判斷是否有鍵按下。
2.將鍵值轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼值。
3.在時(shí)鐘脈沖的作用實(shí)現(xiàn)串行數(shù)據(jù)的接收與發(fā)送。
二、設(shè)計(jì)方案分析
1.動(dòng)態(tài)掃描原理。(1)依次使列線scan0—scan7輸出0電平,檢查行線retn0—retn7的電平狀態(tài)。如果行線retn0—retn7的電平全為高電平,表示沒(méi)鍵按下。如果retn0—retn7上的電平不全為高電平,表示有鍵按下。(2)如果沒(méi)鍵按下,就返回掃描。有鍵按下則進(jìn)行逐行掃描,找出閉合鍵的鍵號(hào)。其過(guò)程是:先使scan0=0,scan1—scan7=1,檢測(cè)retn0—retn7上的電平,如果retn=0,則表示第一行第一列的鍵被按下,如果retn1=0,則表示第二行第二列的鍵被按下,其他依次類推;如果retn0—retn7均不為0,則表示這一列沒(méi)鍵按下;然后再使scan1=0,檢測(cè)第二列按鍵,這樣一直循環(huán)下去,知道把閉合的鍵找到為止。
當(dāng)有鍵按下時(shí),根據(jù)該時(shí)刻的scan值和retn值就可判斷按下的是哪一個(gè)鍵。
2.芯片內(nèi)部模塊框圖
三、模塊設(shè)計(jì)
1.數(shù)據(jù)接收模塊框圖
該模塊實(shí)現(xiàn)對(duì)串行數(shù)據(jù)的接收記數(shù)和串并變換的控制功能。
reset復(fù)位輸入端;clk時(shí)鐘輸入端;rxd串行數(shù)據(jù)接收端; led[2..0]輸出按下鍵對(duì)應(yīng)的ASCII碼值的低三位去驅(qū)動(dòng)發(fā)光二極管。……