搶答器是各種智力競賽中必不可少的一種硬件設備。實(shí)現搶答器的方式有多種多樣,傳統的搶答器普遍采用模擬電路、數字電路或者模數混合電路來(lái)設計。這類(lèi)搶答器所需元器件比較多,隨著(zhù)功能增多,電路也越復雜,并且成本偏高,故障率高,操作不方便,不便于參數調節及功能的升級換代。本文采用AT89C51為核心,結合鍵盤(pán)、數碼管、蜂鳴器等外圍設備,設計了具有搶答、計時(shí)、時(shí)間調整、蜂鳴器報警等功能的4路搶答器。 總體設計 設計需求 按照設計需求,本系統具有以下幾個(gè)主要功能:(1)搶答器可同時(shí)供4名選手或四支參賽隊伍使用;(2)搶答或回答時(shí)間主持人可自行設置;(3)能夠顯示搶答或答題時(shí)間的倒計時(shí);(4)在有人犯規時(shí)可以顯示選手號、閃爍顯示以及蜂鳴器報警;(5)答題時(shí)間還剩5s時(shí),蜂鳴器報警提示。 搶答器的工作原理 利用單片機控制各個(gè)功能模塊實(shí)現搶答功能,單片機收集選手的搶答信號,運用寄存器來(lái)識別并記錄第一個(gè)選手號,傳輸信息給數碼管顯示,同時(shí)內部定時(shí)器工作,記錄有關(guān)時(shí)間并產(chǎn)生超時(shí)信號,在搶答成功、倒計時(shí)結束都伴隨有蜂鳴器警報提醒,從而實(shí)現單片機搶答的功能。 根據設計需求,結合單片機的工作原理,設計搶答器的工作流程圖如圖1所示。 圖1 搶答器的工作流圖 硬件設計 在硬件設計方面利用單片機AT89C51控制搶答模塊、顯示模塊、計時(shí)及調整模塊、蜂鳴提示模塊和復位模塊,從而實(shí)現單片機的搶答。系統硬件設計原理圖如圖2所示。 圖2中U1為單片機AT89C51,K1~K4分別為4路搶答按鈕,分別接到p1.0到p1.3中;開(kāi)始鍵和結束鍵分別接到單片機的10、11腳,由于單片機的10、11腳既有串行接口RXD、TXD功能又有P3.0、P3.1的IO端口功能,此處按鍵用到單片機10、11腳的IO端口功能。搶答時(shí)間調整按鍵和回答時(shí)間調整按鍵分別接到單片機的13,14管腳,“加一”按鍵和“減一”按鍵分別接到單片機的15、16管腳。4位七段數碼管段選接P0口,位選接P2口的低3位,蜂鳴器輸出信號端接P3.7口。 圖2 硬件設計原理圖 顯示模塊 顯示模塊采用常見(jiàn)的4位七段共陽(yáng)數碼管,利用其動(dòng)態(tài)顯示的方法來(lái)實(shí)現。數碼管的7個(gè)輸入端A~G段分別接到AT89C51的P0.0~P0.6,位選碼COM1、COM3、COM4分別接到單片機P2.0、P2.1、P2.2,由單片機來(lái)決定當前該顯示的是哪一位。由于A(yíng)T89C51單片機的P0口沒(méi)有內置上拉電阻,本系統采用外接10kΩ上拉電阻(采用A103排阻),保證P0口沒(méi)有數據輸出的時(shí)候是處于高電平狀態(tài)。 按鍵輸入模塊 搶答器的輸入信號采用11個(gè)按鍵控制,其中4個(gè)為搶答按鍵、4個(gè)為倒計時(shí)調整按鍵、1個(gè)開(kāi)始按鍵、1個(gè)結束按鍵和1個(gè)復位按鍵。各按鍵均有一根信號線(xiàn)與單片機電路相連,所有按鍵有一公共端,各按鍵相互獨立互不影響。當有鍵按下時(shí),相應的單片機引腳作出反應,產(chǎn)生有效的輸入信號。 蜂鳴提示模塊 本設計中利用AT89C51的16引腳經(jīng)驅動(dòng)器驅動(dòng)蜂鳴器發(fā)聲。壓電式蜂鳴器約需10mA的驅動(dòng)電流,可以采用三極管的電流放大作用驅動(dòng)蜂鳴器實(shí)現發(fā)聲提示。 復位模塊 復位模塊由復位鍵、電阻R1以及電解電容C3構成。由于單片機是高電平復位,所以當復位鍵按下時(shí)單片機9腳RESET管腳處于高電平,此時(shí)單片機處于復位狀態(tài),當上電后,由于電容的緩慢充電,單片機的9腳電壓逐步由高向低轉化,經(jīng)過(guò)一段時(shí)間后,單片機的9腳處于穩定的低電平狀態(tài),此時(shí)單片機上電復位完畢,系統程序從0000H開(kāi)始執行。 本設計中使用了硬件復位和軟件復位兩個(gè)功能。硬件復位后各個(gè)狀態(tài)、寄存器以及存儲器的值都恢復到了初始值。調整搶答和回答倒計時(shí)時(shí)間,需要記憶功能,故采用軟復位,當程序執行完畢后,跳轉指令將程序跳轉到程序執行的起始地址。 軟件設計 搶答器要求有計時(shí)記憶功能,一次時(shí)間設置完,復位后不需重新進(jìn)行時(shí)間設定,選手通過(guò)鍵盤(pán)按鍵進(jìn)行搶答,再通過(guò)單片機將其轉換成能在七段數碼管上顯示的字型碼。搶答完畢,數碼管上顯示搶答選手號碼表示搶答成功并開(kāi)始倒計時(shí)。 圖3 軟件設計流程圖 根據此設計思路,系統軟件設計流程圖如圖3所示。系統采用Keil軟件參照軟件流程圖編寫(xiě)匯編語(yǔ)言。以顯示模塊為例,相應程序段如下: DISPLAY:MOV DPTR,#DAT1;查表顯示程序,P0.0~P0.6段選,P2.0~P2.2位選; MOV A,R5 MOVC A,@A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,@A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,@A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY RET DAT1 ![]() DAT2 ![]() 基于Proteus的系統仿真 Proteus軟件不僅能仿真單片機的工作情況,還能仿真單片機外圍電路或沒(méi)有單片機參與的其他電路的工作情況。本設計經(jīng)仿真后,實(shí)現了預期的搶答器的功能。 搶答成功模塊 圖4顯示4號選手搶答成功,并且答題時(shí)間還剩余52秒,當答題時(shí)間還剩5秒內時(shí),會(huì )有蜂鳴警報。 圖5顯示的是1號選手在主持人未按下開(kāi)始鍵下的非法搶答,此時(shí)數碼管上不停的閃爍并伴有蜂鳴警報。 時(shí)間調整模塊 圖6顯示通過(guò)“加一”或“減一”鍵來(lái)調整搶答時(shí)間和答題時(shí)間的時(shí)間,此時(shí)在數碼管上顯示的為時(shí)間設置成58秒。 復位模塊 圖7顯示剛開(kāi)始工作以及復位后,數碼管上顯示初始狀態(tài)“FFF”。本設計采用了硬件復位和軟件復位兩種方式:在只采用系統默認的搶答時(shí)間和答題時(shí)間時(shí),2種復位都能達到所需求的目的;當已經(jīng)重新設置過(guò)倒計時(shí)時(shí)間時(shí),需要應用軟件復位,其只是執行命令后跳轉,對片內通用寄存器的內容沒(méi)有影響。而硬件復位會(huì )使專(zhuān)用寄存器的狀態(tài)初始化。 硬件實(shí)現 在Proteus仿真實(shí)現預定目標的基礎上,將單片機AT89C51、復位電路、蜂鳴器電路、顯示電路、按鍵電路和電源電路進(jìn)行焊接,制作完成的4路搶答器如圖8所示。 圖8 搶答器實(shí)物圖 結語(yǔ) 本設計以實(shí)際電路作為最終成果形式,實(shí)現了預期的搶答、倒計時(shí)、報警等各項功能,可適用于一般的競賽場(chǎng)合,具有一定的實(shí)用價(jià)值。此外,本設計具有較強的擴展性,如自動(dòng)控制記分器進(jìn)行記分,并通過(guò)串行口與PC機通信,用PC機統計選手得分情況,實(shí)現智能化、公平、公正的搶答,減小人為因素的影響。也可將搶答按鍵采用無(wú)線(xiàn)設備實(shí)現,如紅外線(xiàn),使搶答選手可以遠距離地進(jìn)行搶答,簡(jiǎn)化按鍵模塊的線(xiàn)路布置。 |