巢國強
摘 要:本文介紹了以STC89C52 單片機為核心控制器件的8路搶答器。采用C語言編程及12864液晶顯示器,實現(xiàn)了8路選手搶答、統(tǒng)計選手得分、倒計時顯示、超時報警等功能。目前已制作出實物,實際運行可靠,性能良好,有一定的實用價值。
關(guān)鍵詞:單片機;12864;八路搶答器
一、搶答器的背景
在知識競賽時,特別是在搶答過程中,僅靠人的視覺(或者是聽覺)是很難判斷出哪一組(或哪個選手)先搶答到題。為了準確地知道哪一組或哪一位選手先搶答到題,最好設計一個裝置來完成這個任務。單片機控制的8路搶答器,就可以使以上問題得以解決,即使兩組選手的搶答時間只相差幾微秒,也能輕松地分辨出哪一組(或哪個選手)先搶答到題。
二、系統(tǒng)的組成
本系統(tǒng)采用STC89C52單片機為核心控制芯片,由四個部分組成:單片機最小系統(tǒng)、主持人控制按鍵和選手搶答按鍵部分、報警部分、顯示部分。
三、硬件設計
單片機最小系統(tǒng)由SCT89C52單片機芯片、時鐘電路和復位電路組成。系統(tǒng)中使用了硬件復位和軟件復位兩種復位。硬件復位可使寄存器及存儲器都恢復到初始值。但是倒計時間需要有記憶功能,該功能實現(xiàn)的前提條件就是不能對單片機進行硬件復位,所以設定了軟件復位。軟件復位實際上就是當程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。
主持人控制按鍵由復位按鍵、開始搶答按鍵、加分按鍵和查看得分按鍵四個按鍵組成,另外還有8路選手搶答按鍵。這些常開按鍵電路簡單,在程序設計上也不復雜,只要在程序中消除在按鍵過程中產(chǎn)生的“抖動”現(xiàn)象就可以了。我們采用最常用的軟件延時方法。其原理為:因為“抖動”脈沖一般持續(xù)時間短,約為幾ms,而按鍵的時間一般遠遠大于這個時間,所以當單片機檢測到有按鍵動靜后再延一段時間(這里取延時10ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。
顯示部分采用帶中文字庫的12864液晶顯示器,可方便地顯示漢字、數(shù)字和英文字母,也很容易實現(xiàn)與CPU的連接。
本系統(tǒng)中采用蜂鳴器報警,利用程序來控制單片機P3.0口反復輸出高電平或低電平,即在該口線上產(chǎn)生一定頻率的矩形波。由于單片機輸出電流較小,所以用三極管9013來驅(qū)動蜂鳴器發(fā)出一定頻率的聲音。
四、工作過程
本搶答器由主持人操縱,主持人按下“開始搶答”按鍵,倒計時15秒,若無人搶答,蜂鳴器報警,本次搶答無效。若有選手按下“選手搶答”按鍵,液晶顯示器12864顯示搶答選手的號碼、選手得分情況及剩余答題的時間。如果選手回答問題正確,主持人按下“加分”按鍵,給選手加1分。主持人按下“查分”按鍵,可依次查詢各個選手的得分情況。
五、軟件流程圖
圖1 軟件流程圖 圖2 實物圖
本文用單片機控制的8路搶答器已制作出實物,實際運行可靠,性能良好,有一定的實用價值。
參考文獻:
[1]李光飛.單片機課程設計實例指導[M].北京:北京航天航空大學出版社,2004.
[2]馮育長.單片機系統(tǒng)設計與實例指導[M].西安:西安電子科技大學出版社,2007.