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