嚴(yán)成駿 錢莊 王曉菲 黃維 王定洋 萬美琳
摘要:隨著各類知識競賽的興起,結(jié)合51單片機(jī)開發(fā)的搶答器引起大量研究者的興趣。通過對近年來相關(guān)文獻(xiàn)的研究,發(fā)現(xiàn)當(dāng)前市面上所提出的搶答器大多功能簡單,實(shí)用價(jià)值較低。文章提出了一種基于51單片機(jī)的復(fù)雜功能八路搶答器,功能包括搶、作答兩部分倒計(jì)時,時間均可調(diào)、自由對選手進(jìn)行加減分操作的評價(jià)系統(tǒng),對分?jǐn)?shù)進(jìn)行鎖存、復(fù)位查分顯示所有選手得分情況,并使程序回到初始狀態(tài)以重復(fù)使用、報(bào)警提示電路。電路通過proteus仿真并焊接了實(shí)物圖,軟件仿真和硬件調(diào)試均驗(yàn)證了設(shè)計(jì)的可行性。
關(guān)鍵詞:STC89C51單片機(jī);多功能搶答器;定時;報(bào)警;proteus仿真;C51語言
中圖分類號:TP368.1? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2023)13-0102-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)
0 引言
近年來,隨著各類答題競賽的興起,搶答器被廣泛使用。傳統(tǒng)以數(shù)字、模擬電路為基礎(chǔ)實(shí)現(xiàn)的搶答器方式簡答,但布局布線復(fù)雜、可靠性和穩(wěn)定性較差、成本較高[1]。故結(jié)合51單片機(jī)進(jìn)行開發(fā)的搶答器引起大量研究者的興趣。通過對近10年來相關(guān)文獻(xiàn)的調(diào)研,發(fā)現(xiàn)市面上所提出的基于51單片機(jī)的搶答器,大多停留在簡單功能的實(shí)現(xiàn),難以運(yùn)用在實(shí)際復(fù)雜的生活場景。文獻(xiàn)[2-3]分別提出三路、四路搶答系統(tǒng)的設(shè)計(jì),僅具有教學(xué)實(shí)踐意義;文獻(xiàn)[1]提出一種基于51單片機(jī)的智能搶答器實(shí)現(xiàn)了八路搶答,但不具備計(jì)分功能故僅能單次使用;文獻(xiàn)[4]提出的八路搶答器具備搶答、作答兩階段的倒計(jì)時功能和相應(yīng)報(bào)警電路,但不能通過硬件直接修改搶、作答時間;文獻(xiàn)[5]設(shè)計(jì)的搶答器具備對答題者進(jìn)行評價(jià)的計(jì)分系統(tǒng),但不能手動設(shè)置選手分?jǐn)?shù),在出現(xiàn)誤操作時必須重啟電路,且缺少實(shí)物驗(yàn)證。
文章提出一種基于51單片機(jī)的復(fù)雜功能八路搶答器:具備搶、作答兩階段且時間均可調(diào);增加設(shè)置按鈕,可根據(jù)選手答題情況進(jìn)行分?jǐn)?shù)修改并鎖存;具備復(fù)位查分功能,能夠隨時回到初始狀態(tài)并顯示選手得分;添加報(bào)警電路,能夠在答題開始以及作答時間結(jié)束時,進(jìn)行指示燈和蜂鳴器的雙重報(bào)警;電路通過proteus仿真并焊接了實(shí)物。
1 整體設(shè)計(jì)要求
本設(shè)計(jì)的核心控制是51單片機(jī),CPU的型號為STC89C51;可同時支持8名選手參與比賽,對應(yīng)8個搶答按鍵K1 ~ K8;主持人控制電路按鍵有5個。分別是:開始/暫停鍵、設(shè)置鍵、加鍵、減鍵、復(fù)位/查分鍵;搶答器具有定時搶答功能,系統(tǒng)默認(rèn)的搶答時間為30秒(搶答時間可以修改)。當(dāng)主持人啟動“開始”鍵后,定時器進(jìn)行倒計(jì)時,進(jìn)入搶答環(huán)節(jié)。搶答器對搶答選手號碼具有鎖存顯示功能。系統(tǒng)進(jìn)入搶答環(huán)節(jié)后,第一個搶答的選手編號將被鎖存顯示。即選手按搶答鍵后,搶答器鎖存選手編號,蜂鳴器發(fā)出聲響提示,LED指示燈亮,并在顯示屏上顯示選手編號與答題時間;搶答器具有答題限時功能。選手搶答成功后,進(jìn)入答題限時環(huán)節(jié)。此時主持人按開始鍵,進(jìn)入答題限時環(huán)節(jié)。系統(tǒng)默認(rèn)時間是60秒(可通過設(shè)置,修改答題時間);搶答器具有給選手成績加分、減分等操作的功能。參賽選手在規(guī)定的時間內(nèi)進(jìn)行搶答,在答題限時內(nèi)進(jìn)行答題,最后,主持人根據(jù)答題情況對選手進(jìn)行加分或者減分操作;搶答器具有對選手查分的功能。在默認(rèn)狀態(tài)下,按查分鍵,系統(tǒng)進(jìn)入逐屏顯示每路選手的得分情況;搶答器具有搶答時間、答題時間和加減分分值修改功能。在系統(tǒng)默認(rèn)狀態(tài)下,按設(shè)置鍵,再按加鍵或者減鍵,能修改當(dāng)前狀態(tài)下的數(shù)據(jù);通過電池盒供電。
2 硬件電路設(shè)計(jì)
2.1 總體電路
總體電路包括主持人控制電路、選手搶答電路、報(bào)警電路、顯示電路、晶振電路、復(fù)位電路。采用內(nèi)部時鐘信號,在時鐘電路中通過外接石英晶振和電容組成并聯(lián)諧振回路[6]。為兼顧單片機(jī)運(yùn)行速度和功耗,兩電容值均選取30pF,可獲得約12M的晶振頻率。復(fù)位電路采用上電復(fù)位方式,已知復(fù)位條件為在RST引腳出現(xiàn)滿足復(fù)位時間的高電平狀態(tài)。通過阻容充電電路,在上電瞬間,RST電位與VCC相同,隨后逐步衰減。衰減時間由RC時間常數(shù)決定,只需大于復(fù)位時間即可。
2.2 選手搶答電路
采用獨(dú)立式鍵盤,即每個按鍵對應(yīng)一條I/O口[5]。電路由8個搶答按鍵組成,對應(yīng)連接P1.0-P1.7,分別代表8位搶答選手。當(dāng)搶答開始后,P1口均處于高電平狀態(tài)。此時若有選手按下按鍵,P1對應(yīng)口將會下拉至地,單片機(jī)接收信號后在顯示器上輸出選手編號。鍵盤掃描采用查詢方式,在第一位選手搶答后,其他選手的按鍵將被屏蔽。
2.3 主持人控制電路
由五個獨(dú)立按鍵組成,加、減鍵分別連接P3.1、P3.0,開始/暫停鍵連接P3.2,設(shè)置鍵連接P3.7,復(fù)位/查分鍵連接P3.6。按鍵的觸發(fā)方式均為查詢方式,當(dāng)單片機(jī)接收到相應(yīng)I/O口由電平的變化時,執(zhí)行相關(guān)程序。
2.4 報(bào)警電路
報(bào)警電路由指示燈報(bào)警和蜂鳴器報(bào)警兩部分組成[7],前者通過P3.4輸出低電平,利用LED單向?qū)纯牲c(diǎn)亮。后者的蜂鳴器需大電流驅(qū)動,采用共射極BJT,當(dāng)P3.3為低電平時,進(jìn)入放大狀態(tài),驅(qū)動蜂鳴器。
2.5 顯示電路
顯示屏采用LCD1602,RS端(數(shù)據(jù)/命令選擇)接P2.0,RW端(讀寫選擇)接P2.1,E端(使能)接P2.2,數(shù)據(jù)口D0-D7接P0端,由于P0口輸出MOS管漏極開路,需外接上拉電阻,此處選擇10k排阻。RS為低時,可對LCD進(jìn)行初始化設(shè)置,如光標(biāo)是否閃爍、寫入字符后地址指針+1、顯示清零等;RS為高時,即輸入顯示的具體內(nèi)容。本電路中,RW大多處于低電平狀態(tài),即進(jìn)行“寫”操作。當(dāng)按鈕觸發(fā)后,單片機(jī)內(nèi)的程序計(jì)算出相應(yīng)二進(jìn)制代碼,通過P0雙向I/O口將數(shù)據(jù)傳輸?shù)絃CD中,并通過對應(yīng)其內(nèi)部的ASCII碼顯示出相應(yīng)字符。
3 軟件程序設(shè)計(jì)
3.1 流程圖
整個程序運(yùn)行的流程如圖2所示,能夠發(fā)現(xiàn)程序中涉及數(shù)量較多的按鍵操作。傳統(tǒng)通過硬件消抖需額外添加電路,操作復(fù)雜且成本提升。本設(shè)計(jì)進(jìn)行軟件消抖,在代碼中添加延時函數(shù),當(dāng)按鍵按下時,產(chǎn)生約15ms延時以消除抖動。
3.2 程序初始化
在單片機(jī)上電后,軟件端主要涉及的初始化程序設(shè)置為LCD1602、搶答時間定時器T0、作答時間定時器T1。上電后,LCD設(shè)置為光標(biāo)顯示且閃爍,以表示通電成功。在復(fù)位顯示選手得分時,進(jìn)行16×2的顯示(上下兩排),光標(biāo)不顯示不閃爍,第一行字符輸入完畢后指針清零以進(jìn)行第二行的輸入。T0、T1中斷函數(shù)均選擇工作方式1,即16位定時/計(jì)數(shù)器。結(jié)合外掛晶振的頻率,通過設(shè)置相應(yīng)初值,每次產(chǎn)生1s的時間,定時時間一到,倒計(jì)時將會減1,通過循環(huán)運(yùn)行和設(shè)置運(yùn)行次數(shù),可獲得所需要的搶答、作答時間。
4 仿真與實(shí)物驗(yàn)證
電路通過在Visual Studio Code進(jìn)行C51代碼的編譯與調(diào)試,較之傳統(tǒng)Keil的編譯模式,Visual具備更加強(qiáng)大的代碼糾錯和擴(kuò)展能力,通過添加C51擴(kuò)展程序生成.hex文件。在proteus 8中繪制出相應(yīng)原理圖,并進(jìn)行仿真,電路所有功能均正常運(yùn)行。購置相應(yīng)電子元器件后焊接出實(shí)物,并將程序燒錄至51單片機(jī)中并成功運(yùn)行,進(jìn)一步驗(yàn)證了設(shè)計(jì)的可行性。圖3為部分仿真結(jié)果。
5 結(jié)束語
本文所提出的基于51單片機(jī)的復(fù)雜功能八路搶答器,經(jīng)過實(shí)際電路焊接后的調(diào)試,功能均達(dá)到預(yù)期設(shè)計(jì)目標(biāo),適用于靈活多變的應(yīng)用場景。除了傳統(tǒng)搶答器具有的限時搶、作答功能,額外增加了報(bào)警電路、設(shè)置電路(可修改限時時間,選手得分)、復(fù)位查分電路(可重復(fù)使用,鎖存顯示所有選手得分[8]) 。較之當(dāng)前市面的大多數(shù)搶答器,本設(shè)計(jì)具有硬件電路簡單、實(shí)用價(jià)值高、功能完整等特點(diǎn)。
參考文獻(xiàn):
[1] 王曉侃,蘇全衛(wèi).基于AT89C51的智能搶答與表決計(jì)時器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(8):7-9.
[2] 黃永東.基于51單片機(jī)的簡易三路搶答系統(tǒng)設(shè)計(jì)[J].電腦知識與技術(shù),2020,16(33):232-233.
[3] 陳娟,顧吳華.基于單片機(jī)的四路搶答器的設(shè)計(jì)[J].電腦知識與技術(shù),2021,17(26):168-170.
[4] 王法杰.基于單片機(jī)八路搶答器的仿真與設(shè)計(jì)[J].微型電腦應(yīng)用,2019,35(8):155-157.
[5] 馬巍.基于51單片機(jī)智能搶答器的設(shè)計(jì)[J].科技視界,2019(5):67-68.
[6] 周航,陳艷玲,龔浩,等.基于8051單片機(jī)的電子搶答器硬件電路設(shè)計(jì)研究[J].電子制作,2021(7):85-86.
[7] 趙衛(wèi)星.基于AT89C51單片機(jī)八位搶答器的設(shè)計(jì)[J].黃河科技學(xué)院學(xué)報(bào),2019(5):39-42.
[8] 鄭辰瑛.基于單片機(jī)的多功能搶答器的設(shè)計(jì)與實(shí)現(xiàn)[J].中小企業(yè)管理與科技,2021(31):191-193.
【通聯(lián)編輯:梁書】