張煜
摘要:本課題我所設(shè)計的是基于FPGA的搶答器。主要構(gòu)成有FPGA開發(fā)板,計分顯示電路,主持人按鍵電路,手模擬按鍵電路,時間倒數(shù)顯示電路。當(dāng)主持人公布完題目,按下主持人開關(guān),指示燈亮,此時數(shù)碼管倒數(shù)十秒,此十秒為選手搶答時間;如若十秒內(nèi)有人搶答成功,對應(yīng)燈亮,則開始答題,若答題成功,主持人按下按鍵為該選手計一分,若答錯,則不計分,主持人按下復(fù)位鍵,進行下一輪此時藍燈亮;而如若十秒內(nèi)無人搶答,那么時間到后,紅燈熄滅,綠燈亮。然后主持人按系統(tǒng)復(fù)位鍵,即可進行下一輪搶答。
關(guān)鍵詞:FPGA 搶答器 數(shù)碼管 計時顯示
中圖分類號:TP331.2 文獻標(biāo)識碼:A 文章編號:1007-9416(2016)08-0190-01
1 引言
隨著電子技術(shù)的發(fā)展,現(xiàn)在的搶答器功能越來越強,可靠性和準(zhǔn)確性也越來越高。搶答器可以用各種不同的方法來實現(xiàn)它的功能。本課題即為對搶答器進行一個原理上的工作實現(xiàn)。
2 FPGA搶答器的系統(tǒng)設(shè)計(系統(tǒng)框圖見圖1)
本文設(shè)計了一個通用型電子搶答器:有3個按鍵輸入,其中3個按鍵為三組搶答選手的輸入,另外一個為主持人的開始搶答、加分操作按鍵。由一個四位八段數(shù)碼管進行顯示,其中三個顯示積分,另外1個倒數(shù)計時。并有4個LED燈用來提示相應(yīng)搶答選手搶答成功。四組搶答選手,各自可手動按按鈕申請搶答權(quán);回答正確加1分,錯誤記0分,不搶答記0分,各組初始積分為0分。
搶答器具體功能如下:
(1)主持人有一個控制選手搶答的開關(guān):只有當(dāng)主持人按下這個鍵選手才能搶答;在按開始按鈕前搶答屬于違規(guī)。
(2)搶答器具有定時搶答功能,且一次搶答的時間設(shè)定為10秒。當(dāng)主持人啟動”開始”鍵后,數(shù)碼管開始倒數(shù)計時,直到為零,若仍沒人搶答則該輪搶答輪空,按復(fù)位鍵進行下一輪。
(3)在選手搶答后可以進入加分環(huán)節(jié),主持人利用開始按鍵給選手加分,當(dāng)選手搶答成功后,可以開始回答問題,如果回答正確,主持人按下按鍵,為該選手加一分,然后按復(fù)位鍵,進行下一輪搶答。
3 硬件設(shè)計
3.1 選手按鍵設(shè)計
在此次設(shè)計中,我采用3個獨立按鍵來模擬搶答選手。其電路配置靈活、軟件結(jié)構(gòu)簡單。獨立式按鍵的主要特點是每個按鍵使用一個GPIO口,所以每個按鍵工作都不會相互影響其他的GPIO口的電平狀態(tài)。
在按鍵沒有按下的時候。因上拉電阻接高電平,那么給GPIO口的電平始終是高電平。而當(dāng)按鍵按下的時候,按鍵接通,上拉電阻VCC與GND相通,電勢拉低。此時GPIO口電平翻轉(zhuǎn),變?yōu)榈碗娖?。FPGA就是由此判斷是否有選手按下。
而當(dāng)某位選手按下后,F(xiàn)PGA會判斷出此時已經(jīng)有選手搶答成功,屏蔽其他選手,使其按鍵無效。
3.2 數(shù)碼管顯示電路設(shè)計
本人設(shè)計是利用三極管驅(qū)動共陽極數(shù)碼管,來達到顯示時間和記分的目的。其中第二位,第三位,第四位顯示選手積分,第四位同時兼顧倒數(shù)計時功能。
4 結(jié)語
基于FPGA的搶答器,制作簡單,可以很好的改變升級,所需材料少,集成度較高,既穩(wěn)定又可靠。經(jīng)過仿真以及下載到FPGA開發(fā)板上測試,此次設(shè)計可以公正、準(zhǔn)確、直觀的判斷第一搶答者,并對搶答進行計時,加減操作的計時,并通過LED顯示并提示時間,以及復(fù)位搶答等功能,同時3個BCD數(shù)碼管可以正確的顯示第一搶答者的組號以及積分信息。同時通過測試驗證了軟件的按鍵消抖處理適當(dāng),不會產(chǎn)生按鍵誤判斷的情況,以及狀態(tài)機的程序設(shè)計方式結(jié)構(gòu)清晰,易于查找程序的錯誤和進行改進。
參考文獻
[1]郭勇.EDA技術(shù)基礎(chǔ)(第2 版)[M].機械工業(yè)出版社.2005:314-320.
[2]田耘,徐文波,胡彬.Xinlinx ISE Design Suite 10.x FPGA開發(fā)指南[M].人民郵電出版社,2008年5月.
[3]V. Betz, “Architecture and CAD for speed and area optimizatoin of FPGAs,” Ph.D., Univ. Toronto,1998.
[4]A. Marquardt, V. Betz, and J. Rose, “Timing-driven placement for FPGAs,” in ACM/SIGDA Int. Conf. FPGAs (FPGA00),2000:203–213.