文/何勉
搶答器可以采用數(shù)字電路來(lái)實(shí)現(xiàn),但電路較為復(fù)雜,也可以采用單片機(jī)來(lái)實(shí)現(xiàn),主要通過(guò)軟件編寫(xiě)來(lái)完成,不但可以簡(jiǎn)化電路,而且可以降低成本。本文主要介紹一種以AT89S52單片機(jī)為核心的簡(jiǎn)易搶答器,它充分利用單片機(jī)控制系統(tǒng)的特點(diǎn),結(jié)構(gòu)簡(jiǎn)單、可靠性好、成本較低,實(shí)用性強(qiáng)。
本系統(tǒng)以AT89S52單片機(jī)為核心,使用8個(gè)獨(dú)立按鍵作為搶答輸入信號(hào),驅(qū)動(dòng)一位數(shù)碼管顯示搶答成功者的編號(hào)。本系統(tǒng)所具備的功能如下:
設(shè)置8個(gè)按鍵同時(shí)供8名(或8組)選手進(jìn)行搶答。
當(dāng)主持人按下開(kāi)始鍵后,才可以搶答,用1位數(shù)碼管顯示出第一搶答者編號(hào)。若主持人還沒(méi)有按下開(kāi)始鍵,有人搶答,則屬于犯規(guī),數(shù)碼管顯示犯規(guī)者編號(hào)并點(diǎn)亮小數(shù)點(diǎn)。
按下復(fù)位按鍵后,開(kāi)始新一輪的搶答。
使用的元器件有:核心芯片AT89S52,輕觸開(kāi)關(guān),8輸入與門(mén)/與非門(mén)集成電路CD4068以及一位共陽(yáng)極數(shù)碼管顯示器。
本系統(tǒng)軟件主要包括主程序模塊及按鍵模塊。系統(tǒng)程序流程包括主程序流程及外部中斷流程,如圖1、圖2所示。
3.2.1 主程序模塊
主程序模塊主要用于完成外部中斷的初始化、查詢開(kāi)始搶答按鍵是否按下等。
3.2.2 按鍵模塊
這是本系統(tǒng)的難點(diǎn)。用單片機(jī)來(lái)設(shè)計(jì)搶答器,無(wú)論使用獨(dú)立式按鍵還是行列鍵盤(pán),都無(wú)法對(duì)多個(gè)按鍵同時(shí)按下作出正確判斷。本系統(tǒng)采用中斷與查詢相結(jié)合的方法,把所有的按鍵都作為外部設(shè)備連接到到單片機(jī)的P2口,當(dāng)其中的一個(gè)按鍵被按下,單片機(jī)將進(jìn)入中斷服務(wù)程序,并將所有按鍵的狀態(tài)保存起來(lái),然后查詢是哪個(gè)按鍵按下引起的中斷,在此期間,CPU不再響應(yīng)其他任何按鍵,從而確定誰(shuí)是第一搶答者。按鍵中斷服務(wù)程序如下:
圖1:主程序流程圖
圖2:外部中斷程序流程圖
圖3:八路搶答器仿真原理圖
圖4:CD4068引腳圖
采用 Proteus軟件進(jìn)行仿真,仿真圖如圖3所示。
按鍵S1-S8為8個(gè)搶答按鍵,與8個(gè)搶答按鍵連接的是一組8輸入與門(mén)/與非門(mén)集成電路CD4068,其 中2,3,4,5,9,10,11,12腳是輸入引腳,1腳為與門(mén)輸出引腳,13腳為與非門(mén)輸出引腳,其引腳圖如圖4所示。
其工作過(guò)程為:按鍵S1 ~S8在沒(méi)有按下時(shí),輸人到與門(mén)輸人端為高電平,當(dāng)某個(gè)按鍵被按下時(shí),根據(jù)與非門(mén)邏輯關(guān)系CD4068輸出為1,再經(jīng)過(guò)非門(mén)CD40106取反輸出為低電平0,單片機(jī)的INT1 (P3. 3)腳變?yōu)榈碗娖剑瑥亩l(fā)外部中斷1的中斷請(qǐng)求,同時(shí),單片機(jī)通過(guò)對(duì)這8個(gè)按鍵狀態(tài)的查詢來(lái)確定哪個(gè)按鍵引腳引起的中斷,確定第一搶答者。
功能鍵分為“開(kāi)始”鍵和“復(fù)位”鍵,當(dāng)主持人按下“開(kāi)始”鍵,選手進(jìn)人開(kāi)始搶答狀態(tài)當(dāng)答題結(jié)束進(jìn)人下一題搶答時(shí)或者當(dāng)主持人還未按下“開(kāi)始”鍵有選手搶答違規(guī)時(shí)主持人按下“復(fù)位”鍵,本設(shè)計(jì)中“復(fù)位”鍵采用復(fù)位電路中的按鍵來(lái)實(shí)現(xiàn)復(fù)位,既可以減少電路的復(fù)雜性,讓初學(xué)者更容易掌握。
本設(shè)計(jì)采用一位共陽(yáng)極8段數(shù)碼管顯示器,采用靜態(tài)掃描方式,顯示出第一搶答者編號(hào),如果有人犯規(guī),數(shù)碼管除顯示犯規(guī)者編號(hào)外同時(shí)點(diǎn)亮數(shù)碼管小數(shù)點(diǎn),以示區(qū)別。
該系統(tǒng)利用AT89S52單片機(jī)及外圍借口實(shí)現(xiàn)搶答系統(tǒng),將軟件和硬件有機(jī)地結(jié)合起來(lái),實(shí)現(xiàn)8人同時(shí)參賽,并可清晰顯示第一搶答選手編號(hào),并能提示違規(guī)狀態(tài)。今后,還可以擴(kuò)展其他功能,如利用軟件實(shí)現(xiàn)倒計(jì)時(shí),在搶答賽中進(jìn)行倒計(jì)時(shí)提醒,并增加報(bào)警電路。