《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的可鍵盤(pán)控制計(jì)數(shù)電路的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的可鍵盤(pán)控制計(jì)數(shù)電路的設(shè)計(jì)與實(shí)現(xiàn)
電子設(shè)計(jì)工程
李小亮,蔣華勤,,董雪峰,,張具琴
摘要: 介紹一種基于FPGA(FieldProgrammableGateArray)現(xiàn)場(chǎng)可編程門(mén)陣列的可鍵盤(pán)控制的計(jì)數(shù),,顯示電路的實(shí)現(xiàn)方法,。應(yīng)用VHDL語(yǔ)言(高速集成電路硬件描述語(yǔ)言)完成了3x4矩陣開(kāi)關(guān)的掃描電路,可預(yù)置數(shù)的BCD碼計(jì)數(shù)電路及
關(guān)鍵詞: FPGA 鍵盤(pán) VHDL 計(jì)數(shù)
Abstract:
Key words :

摘要:介紹一種基于FPGA(Field Programmable Gate Array)現(xiàn)場(chǎng)可編程門(mén)陣列的可鍵盤(pán)控制的計(jì)數(shù),,顯示電路的實(shí)現(xiàn)方法,。應(yīng)用VHDL語(yǔ)言(高速集成電路硬件描述語(yǔ)言)完成了3x4矩陣開(kāi)關(guān)的掃描電路,可預(yù)置數(shù)的BCD碼計(jì)數(shù)電路及4位數(shù)碼管動(dòng)態(tài)掃描電路的描述,。通過(guò)原理圖輸入方式完成了系統(tǒng)功能的設(shè)計(jì),。電路結(jié)構(gòu)簡(jiǎn)單,,便于擴(kuò)展,可靠性高,,且可移植性強(qiáng),,容易實(shí)現(xiàn)。該電路已成功應(yīng)用于測(cè)試某脈沖電容質(zhì)量試驗(yàn)的控制電路中,。
關(guān)鍵詞:FPGA,;鍵盤(pán)掃描;計(jì)數(shù),;動(dòng)態(tài)顯示

    FPGA做為現(xiàn)代電子設(shè)計(jì)技術(shù)的核心器件,,成為目前硬件設(shè)計(jì)研究的重點(diǎn)。在工業(yè)控制中,,計(jì)數(shù)顯示基本電路在儀器儀表中得到了廣泛應(yīng)用,,而如何根據(jù)需要靈活的設(shè)置計(jì)數(shù)范圍,是一個(gè)較為復(fù)雜的問(wèn)題,。本文應(yīng)用EDA技術(shù)通過(guò)對(duì)鍵盤(pán)的控制,,實(shí)現(xiàn)了從0~9999范圍內(nèi)預(yù)置數(shù)可變的計(jì)數(shù)顯示電路設(shè)計(jì)。與傳統(tǒng)的應(yīng)用單片機(jī)控制鍵盤(pán)掃描的設(shè)計(jì)方法相比,,具有集成度高,,穩(wěn)定度高,抗噪聲能力強(qiáng),,容錯(cuò)率低等優(yōu)點(diǎn),。

1 系統(tǒng)設(shè)計(jì)原理及電路圖
    圖1為基于FPGA的預(yù)置數(shù)可控計(jì)數(shù)顯示頂層設(shè)計(jì)電路原理圖,共由3部分組成:鍵盤(pán)掃描控制電路key_board,;BCD碼計(jì)數(shù)電路CNT,;4位數(shù)碼管動(dòng)態(tài)掃描顯示電路scan_LED。首先,,由鍵盤(pán)掃描電路完成對(duì)鍵盤(pán)的掃描和鍵值的譯碼,,當(dāng)計(jì)數(shù)電路置數(shù)端LOAD為上升沿時(shí),將鍵盤(pán)掃描電路讀取的數(shù)據(jù)經(jīng)P3-P0并行置入到計(jì)數(shù)器中做為其計(jì)數(shù)范圍,,計(jì)數(shù)器的輸出通過(guò)動(dòng)態(tài)掃描譯碼模塊驅(qū)動(dòng)4位數(shù)碼管顯示,。

a.JPG



2 VHDL語(yǔ)言的實(shí)現(xiàn)
    該設(shè)計(jì)采用層次化設(shè)計(jì)方法,首先采用VHDL語(yǔ)言完成了對(duì)各子模塊電路的描述,,然后分別將其生成符號(hào)元件,,通過(guò)原理圖編輯完成了系統(tǒng)的設(shè)計(jì)。
2.1 鍵盤(pán)掃描電路
2.1.1 行列式鍵盤(pán)工作原理
    圖2為3x4行列式鍵盤(pán)原理圖,,行線是KEY_HANG[2..0],,列線是KEY_LIE[3..0],形成12個(gè)交叉點(diǎn),每個(gè)交叉點(diǎn)連接一個(gè)按鍵,。12個(gè)按鍵分別對(duì)應(yīng)數(shù)字0~9和清零鍵A,,確定鍵B。當(dāng)沒(méi)有按鍵按下時(shí),,所有交叉點(diǎn)斷開(kāi),,由于列線的上拉電阻作用,使其保持高電平,。如果行線KEY_HANG[2..0]被設(shè)置為低電平,,當(dāng)有按鍵按下時(shí),該鍵所在的行線和列線被按鍵短路,,那么相應(yīng)得列線就變?yōu)榈碗娖健?/p>

b.JPG


2.1.2 鍵盤(pán)掃描電路工作原理
    圖3為鍵盤(pán)掃描原理圖,。CLK_40K為鍵盤(pán)掃描工作時(shí)鐘,連續(xù)讀取數(shù)據(jù)輸入端KEY_LIE[3..0]的信息,;CLK_2K為鍵值控制工作時(shí)鐘信號(hào),,無(wú)鍵按下時(shí)控制電路循環(huán)掃描輸出;P3,,P2,,P1,P0為鍵盤(pán)譯碼輸出BCD碼形式,;START端為數(shù)據(jù)輸出標(biāo)志信號(hào),,當(dāng)P3-P0輸出時(shí),START端輸出一個(gè)脈沖,。工作時(shí),,由行信號(hào)輸出端KEY_HANG[2..0]循環(huán)輸出“110”,“101”,,“011”,。當(dāng)沒(méi)有按鍵按下時(shí),掃描電路列信號(hào)輸入端檢測(cè)到“1111”,。當(dāng)有按鍵按下時(shí),,例如按下1鍵,此時(shí)行信號(hào)KEY_HANG[2..0]輸出“011”,,由圖2可知,。列信號(hào)輸入端將檢測(cè)到“0111”,在掃描譯碼時(shí),,可根據(jù)行信號(hào)輸出和列信號(hào)輸入數(shù)據(jù)同時(shí)判斷“0110111”對(duì)應(yīng)數(shù)據(jù)為1,。

d.JPG


2.1.3 鍵盤(pán)掃描電路VEIDL實(shí)現(xiàn)
    鍵盤(pán)掃描電路主要有判斷按鍵有無(wú)按下,鍵值識(shí)別和去抖動(dòng)處理等功能,。其中去抖處理主要為了避免外界振動(dòng)引起按鍵誤動(dòng),,以及保證按鍵每穩(wěn)定閉合一次,系統(tǒng)僅對(duì)其響應(yīng)一次,。采用不同的鍵盤(pán)其機(jī)械抖動(dòng)時(shí)間各異,,本文設(shè)置去抖時(shí)間為20 ms。圖4為鍵盤(pán)掃描電路VHDL描述流程圖,。以下是去抖動(dòng)程序關(guān)鍵代碼:
    e.JPG
    c.JPG

c1.jpg


2.2 可預(yù)置數(shù)BCD碼計(jì)數(shù)電路
    圖5為可預(yù)置數(shù)BCD碼計(jì)數(shù)電路,。置數(shù)端LOAD為高電平時(shí),將通過(guò)鍵盤(pán)設(shè)置的數(shù)并行置入到D3~D0,。然后對(duì)輸入的脈沖直接進(jìn)行BCD碼減法計(jì)數(shù),,由Q3~Q0輸出。計(jì)數(shù)結(jié)束,,ENDCNT端輸出一個(gè)脈沖,。

f.JPG


    部分源程序如下所示:
   
h.JPG
2.3 4位數(shù)碼管動(dòng)態(tài)掃描顯示電路
    段式LED顯示器的控制方式分為靜態(tài)顯示控制和動(dòng)態(tài)顯示控制兩種。本電路設(shè)計(jì)采用動(dòng)態(tài)掃描方式,,具有占用資源少,,電路結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)。電路如圖6所示,。外接4位共陰數(shù)碼管,,其中每個(gè)數(shù)碼管的7段a、b,、c,、d、e,、f,、g都分別連在一起,4位數(shù)碼管分別由BT[3..0] 4位選通信號(hào)來(lái)選擇,。被選通的數(shù)碼管顯示數(shù)據(jù),,其余關(guān)閉,與此同時(shí),,在段信號(hào)輸入端口加上希望在該對(duì)應(yīng)數(shù)碼管顯示的數(shù)據(jù),。隨著選通信號(hào)的循環(huán)掃描,段碼的分別輸出,,利用數(shù)碼管的余暉效應(yīng),,即可顯示4位數(shù)據(jù)。

i.JPG



3 仿真結(jié)果
    將設(shè)計(jì)好的電路經(jīng)過(guò)編譯,、引腳配置,、下載到FPGA芯片EP1C12Q240。采用QUATUSⅡ6.0軟件自帶的嵌入式邏輯分析儀對(duì)目標(biāo)芯片內(nèi)部信號(hào)各節(jié)點(diǎn)進(jìn)行觀察分析,,如圖7所示,。實(shí)驗(yàn)中已將預(yù)置數(shù)1234置入計(jì)數(shù)器中,,通過(guò)圖7可以看到此時(shí)位選信號(hào)選通第2位數(shù)碼管,顯示數(shù)據(jù)3,。

j.JPG



4 結(jié)束語(yǔ)
    完成了基于FPGA,,應(yīng)用VHDL文本輸入和原理圖混合輸入法,實(shí)現(xiàn)預(yù)置數(shù)靈活設(shè)置的計(jì)數(shù)顯示電路,。該電路設(shè)計(jì)解決了可預(yù)置數(shù)計(jì)數(shù)器從外部設(shè)備置數(shù)難的問(wèn)題,,以及在電路內(nèi)部直接實(shí)現(xiàn)BCD碼計(jì)數(shù),方便,,可靠,,電路簡(jiǎn)單,尤其該系統(tǒng)在較惡劣環(huán)境情況下依然可以穩(wěn)定工作,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。