鄭辰瑛
【摘? 要】隨著競賽活動的日益豐富,人們對智能搶答器的需求不斷增加。為更深入地研究搶答器并對其功能進行改善,論文采用89C51單片機及外圍接口設(shè)計了一個八路搶答器,用按鍵模擬選手搶答,并結(jié)合單片機定時器/計數(shù)器的功能實現(xiàn)搶答計時。論文介紹了搶答器的總設(shè)計方案,并對其工作原理和功能進行了探討。該多功能搶答控制系統(tǒng)能夠?qū)崿F(xiàn)搶答器參數(shù)修改、搶答倒計時、搶答結(jié)果顯示、搶答報警指示等功能。
【Abstract】With the continuous enrichment of competition activities, people's demand for smart answering device continues to increase. In order to study the answering device more deeply and improve its function, this paper uses 89C51 single chip microcomputer and peripheral interface to design an eight-way answering device, using buttons to simulate the player's answering, and combining the timer/counter function of the single chip microcomputer to realize the answering timing. This paper introduces the general design scheme of the answering device, and discusses its working principle and function. The multi-function answering control system can realize the functions of answering device parameter modification, answering countdown, answering result display, answering alarm indication and so on.
【關(guān)鍵詞】搶答器;多功能;51單片機;功能模塊
【Keywords】answering device; multi-function; 51 single chip microcomputer; functional module
【中圖分類號】TP368.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻標志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號】1673-1069(2021)11-0191-03
1 引言
搶答器可以提高比賽的質(zhì)量和效率,并且保障比賽的公平開展。隨著人們對搶答器功能需求的增加,需要對其功能進行完善,使搶答器向集成化、智能化方向發(fā)展,即采用一種基于單片機的智能搶答器設(shè)計方法,這樣不僅能使設(shè)計與生產(chǎn)制造規(guī)?;?,也能使搶答器功能多元化,從而得到廣泛應(yīng)用。搶答器是被廣泛用于各種競賽活動的通用工具,但使用搶答器的頻率相對較低,所以長期存放會使搶答器內(nèi)部電子器件損壞。為避免采購帶來的成本損失,本文設(shè)計了基于單片機的多功能搶答器。
2 搶答器系統(tǒng)的總體設(shè)計方案
本文簡要介紹了一種多功能數(shù)字搶答器顯示電路的基本結(jié)構(gòu)及其基本組成、設(shè)計和使用功能,該數(shù)字搶答器電路除了應(yīng)當具有基本的數(shù)字搶答顯示功能外,還應(yīng)當同時具有快速計時和自動報警2種功能。主持人可通過搶答時間的預(yù)置自動開關(guān)來設(shè)置每次搶答的持續(xù)時間。隨即系統(tǒng)將自動進入倒計時模式,若在規(guī)定的時間內(nèi)有人進行本次搶答,則計時器將自動停止,自動進入答題模式。若在規(guī)定的時間內(nèi)沒有人進行搶答,則系統(tǒng)的蜂鳴器將會自動發(fā)出警報,提示本次搶答失敗,即時間超出本次搶答的規(guī)定時間則報警表示本次搶答失敗。
本設(shè)計將硬件功能代入現(xiàn)實應(yīng)用場景,即有八組搶答選手以及一位裁判員。裁判員按下倒計時的清零復位按鍵,使得單片機負責倒計時部分的功能清零復位,隨即倒計時部分程序啟動,通過一個數(shù)碼管提示倒計時,提醒參賽者進行搶答。倒計時結(jié)束后,搶答部分的程序就會開始執(zhí)行,選手在倒計時結(jié)束前進行搶答才被視為有效。選手搶答瞬間其信息將被鎖存,搶答成功后由蜂鳴器警報提醒,同時,數(shù)碼管上會顯示當前搶答成功的小組組號。如果小組在非法時間內(nèi)按鍵搶答,蜂鳴器也會發(fā)出警報。下一輪的開始由裁判員控制,循環(huán)往復。
主程序工作流程如圖1所示。
3 51單片機的功能
51單片機是對兼容英特爾8051指令系統(tǒng)的單片機的統(tǒng)稱。51單片機的指令系統(tǒng)、內(nèi)部結(jié)構(gòu)相對簡單,廣泛應(yīng)用于家用電器、汽車、工業(yè)測控、通信設(shè)備。89C51是一種具有4kB閃爍可編程、可擦除只讀存儲器的低電壓、高性能CMOS8位微處理器,俗稱單片機。單片機的可擦永久存儲器可擦寫1000次。該器件采用ATMEL高密度非易失性存儲器技術(shù)制造,與行業(yè)標準MCS-51指令集和輸出引腳兼容。由于多功能8位CPU和閃存結(jié)合在一個芯片中,89C51 ATMEL微控制器是一個高效的微控制器,而89C2051是一個簡化版本。單片機為許多嵌入式控制系統(tǒng)提供了靈活且廉價的解決方案。其結(jié)構(gòu)如下:
①8位CPU;②片內(nèi)振蕩器和時鐘電路;③32根I/O線;④外部存貯器尋址范圍ROM、RAM64K;⑤2個16位的定時器/計數(shù)器;⑥5個中斷源,2個中斷優(yōu)先級;⑦全雙工串行口;⑧布爾處理器。
4 搶答器功能模塊設(shè)計及實現(xiàn)
本文中的多功能搶答系統(tǒng)以AT89C51單片機作為控制核心,其基本工作原理為在搶答過程中有多個信號同時或不同時送入主電路時,內(nèi)部響應(yīng)者寄存器工作并識別和記錄響應(yīng)第一個請求的玩家的數(shù)量。同時,內(nèi)部定時器開始運行,記錄相應(yīng)的時間并產(chǎn)生超時信號。在答錄機、顯示電路、語音電路等整個工作流程中,還要根據(jù)現(xiàn)場的實際情況輸出相應(yīng)的信號給外部電路。其控制系統(tǒng)主要組成包括:復位清零模塊、倒計時模塊、選手搶答鎖存模塊、數(shù)碼顯示模塊、搶答結(jié)束報警模塊。
4.1 復位清零模塊
復位清零端的主要功能是在人為按下按鍵后,單片機內(nèi)部鎖存信息清零,與搶答有關(guān)程序復位,準備進行下一輪搶答,并使單片機內(nèi)部倒計時功能相關(guān)程序執(zhí)行,正式開啟下一輪搶答。
實現(xiàn)方法:外部中斷和內(nèi)部中斷并存。硬件復位端只要保持4個機器周期就可以復位。硬復位后,寄存器和內(nèi)存值被恢復到原始值。本設(shè)計使用機械彈性開關(guān)來實現(xiàn)復位清零功能,當機械觸點連接狀態(tài)轉(zhuǎn)換時,由于其彈性作用,在轉(zhuǎn)換瞬間會產(chǎn)生抖動。為避免該現(xiàn)象,就需要進行按鍵消抖。按鍵的抖動對于人類來說是感覺不到的,但對單片機來說,則是一個很“漫長”的過程,因為單片機處理的速度在“微秒”級,而按鍵抖動的時間至少在“毫秒”級。如果單片機在抖動期間發(fā)生誤判,即按鍵按下或斷開將被誤認為是進行了多次操作,從而引起整個程序的錯誤(見圖2)。所以,為確保單片機對一次按鍵動作只作一次響應(yīng),就必須考慮如何消除按鍵抖動的影響。
進行按鍵消抖的關(guān)鍵即提取一段穩(wěn)定的電平狀態(tài),濾除電平穩(wěn)定前后的抖動。當按鍵次數(shù)較少時可使用硬件方法對按鍵消抖。硬件消抖的一種典型做法是:使用R-S觸發(fā)器進行雙穩(wěn)態(tài)消抖或使用RC積分電路進行濾波消抖。由于復位清零端單獨獨立于選手按鍵端,且為使布線更方便,可以選擇應(yīng)用RC積分電路進行濾波消抖。根據(jù)RC積分電路積分時長估算得出能消除機械抖動的電阻與電容值。圖3為硬件電容消抖初步電路圖,KeyIn1接入單片機9號引腳RESET端,用來實現(xiàn)復位清零功能。
4.2 倒計時模塊
倒計時模塊的主要功能為在復位清零按鍵被按下后自動進入10s倒計時,準確固定搶答開始時間,同時可以進行修改搶答時間。有小組搶到后直接進入30s倒計時,準確固定回答開始時間,同時也可以修改回答時間。同時,本實驗電路的倒計時最后5s,程序會讓蜂鳴器發(fā)出響聲作為倒計時將要結(jié)束的提示。
實現(xiàn)方法:本電路使用計數(shù)器的計時中斷法實現(xiàn)倒計時功能。
為提高系統(tǒng)效率,AT89C51單片機設(shè)置了中斷系統(tǒng)。在CPU與外設(shè)交換信息時,存在一個快速的CPU與慢速的外設(shè)之間的矛盾。為解決這個問題,發(fā)展了中斷的概念。CPU在處理特定事務(wù)時,如果發(fā)生外部或內(nèi)部緊急情況,CPU必須暫停處理以應(yīng)對緊急情況。處理完成后,返回原中斷位置,恢復原中斷操作,這個過程被稱為中斷。AT89C51有3個片內(nèi)定時器/計數(shù)器溢出中斷TF0-TF2,/INT0和/INT1外部中斷,1個TI或RI片內(nèi)串行口中斷。
該系統(tǒng)的晶振頻率為12MHz,每個計時脈沖為1μs,設(shè)定中斷每次移除時間50ms,循環(huán)20次即1s。晶振主要用于為系統(tǒng)提供基本的時鐘信號。為使整個系統(tǒng)各部分保持時鐘同步,經(jīng)常在一個系統(tǒng)內(nèi)使用同一個晶振。晶體有一個很重要的特性即機電效應(yīng),如果給它通電,它就會產(chǎn)生機械振蕩,反之,如果給它機械力,它又會產(chǎn)生電。即晶振可以將機械能和電能相互轉(zhuǎn)化,在單頻共振的狀態(tài)下得到穩(wěn)定振蕩。由于搶答器電路設(shè)計較簡單,所以可以選擇較為簡單的無源晶振。無源晶體振蕩器是一種晶體,它本身不能振蕩,并與其他IC的內(nèi)部振蕩電路一起工作。本電路應(yīng)用內(nèi)部晶振,選擇振蕩頻率為12MHz石英晶體。
4.3 選手搶答鎖存模塊
搶答鎖存模塊的主要功能為將選手搶答結(jié)果準確及時保存,為小組回答問題提供基礎(chǔ)。5s倒計時結(jié)束,開始回復會話后,參與者可以通過按下按鈕進行回復操作。當其中一組成功按下接聽鍵時(例如,第2組按下S2鍵),AT89C51單片機P0口對應(yīng)的P0.2口線由高變低。當CPU檢測到端口線為低電平時,將P1.0端口線從原來的高電平狀態(tài)切換為低電平,DS1發(fā)光二極管亮,P1.7端口線也從原來的高電平狀態(tài)變化,切換到低電平狀態(tài),蜂鳴器會響起,提醒主持人和觀眾部分玩家已成功完成響應(yīng),同時,用數(shù)碼管將當前搶答題目的題號、搶答成功小組的組號顯示出來。
實現(xiàn)方法:選手搶答鎖存模塊的重點為8個參賽小組搶答按鍵互相干擾,這些問題可以通過“自鎖”與“互鎖”操作解決,即當一個小組搶答成功后,搶答器控制系統(tǒng)及時將其按鍵信息進行保存,并且在有一組搶答成功后將其他組的按鍵信息屏蔽,從而保證每次的搶答環(huán)節(jié)只會有一組搶答成功。
搶答器中選手搶答信息輸入電路用S1~S8這8個獨立按鍵和8個上拉電阻組合來模擬選手搶答按鈕。P0.0~P0.7的初始狀態(tài)均為高電平,當沒有搶答鍵被按下時,便保持高電平狀態(tài),而當有小組按下其搶答按鍵時,對應(yīng)的口線就會轉(zhuǎn)換為低電平狀態(tài)。單片機通過對按鍵輸入口的電平采樣判斷選手搶答情況。
4.4 數(shù)碼顯示模塊
數(shù)碼顯示模塊通常有2種顯示方式,一種是靜態(tài)的,一種是動態(tài)的。靜態(tài)顯示的一個特點是顯示穩(wěn)定不閃爍,編程簡單,但占用的端口資源較多;動態(tài)顯示的特點是顯示穩(wěn)定性不如靜態(tài),編程難度大,但相比靜態(tài)顯示,占用端口資源少。
實現(xiàn)方法:本設(shè)計使用BCD編碼在6位共陽7段數(shù)碼管上通過查表法動態(tài)顯示當前題目號、搶答成功小組號、搶答時間和回答時間等信息。主持人預(yù)設(shè)搶答時間后,按下STA鍵宣布搶答環(huán)節(jié)開始,選手即可開始搶答。初始狀態(tài)數(shù)碼管前2位顯示當前回答題目的題號,中間2位無顯示,最后2位數(shù)字顯示回答問題的時間和回答問題的時間。如果玩家在回答倒計時期間按下了回答按鈕,數(shù)碼管第3位就會顯示選手編號,后2位數(shù)碼管開始顯示回答問題倒計時,本設(shè)計中回答時間初始值設(shè)為30s。當選手在規(guī)定時間內(nèi)完成作答,然后主持人按下重置按鈕手動重置。如果響應(yīng)時間結(jié)束,沒有人回答,則本輪搶答視為無效,程序?qū)⒆詣訌臀粶蕚湎乱惠啌尨稹?/p>
4.5 搶答結(jié)束報警模塊
在主持人按下開始按鈕和選手按下?lián)尨鹌靼存I時,蜂鳴器會發(fā)出響聲。除此之外,在搶答倒計時和回答倒計時最后5s,蜂鳴器也會發(fā)出警報聲,并且在非規(guī)定時間內(nèi)選手按下?lián)尨鸢存I時蜂鳴器也會發(fā)出警報聲提示非法搶答??紤]到諸多因素對本設(shè)計進行完善后使搶答器仿真更加直觀逼真。倒計時最后5s發(fā)出報警聲,與實際生活中的搶答器更加契合,體現(xiàn)了設(shè)計的實用性。
實現(xiàn)方法:通過芯片引腳輸出的高低電平來控制蜂鳴器驅(qū)動電路的運行和關(guān)閉。蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于電子產(chǎn)品中作發(fā)聲器件。蜂鳴器的工作電流一般相對較大,所以單片機無法將其直接驅(qū)動。最簡單的喇叭驅(qū)動方式就是利用達林頓晶體管,或者以2個常用的小晶體管連接成達林頓架勢。蜂鳴器驅(qū)動電路中,電阻R為限流電阻,在此利用晶體管的高電流增益,以達到電路快速飽和的目的。如果要由P0輸出到此電路,還需要連接一個10k的上拉電阻。在本電路程序設(shè)計中使用放大電路來驅(qū)動蜂鳴器,即使用1個NPN三極管來放大電流,從而使蜂鳴器可以正常工作。蜂鳴器驅(qū)動電路如圖4所示。
5 搶答器的實現(xiàn)及結(jié)果驗證
利用Keil軟件進行程序的檢查調(diào)試,調(diào)試完成后在仿真器中設(shè)置生成hex文件,編譯無錯誤后進行Proteus仿真。所用的元器件有:15個機械按鍵、12MHz石英晶體、5V直流電源、2個22pF電容、1個1uF電解電容、9個10kΩ上拉電阻、共陽4位7段數(shù)碼管、蜂鳴器。
本搶答器系統(tǒng)工作流程為:比賽開始,當主持人按下開始按鍵后搶答倒計時模塊開始運行,系統(tǒng)默認的初始搶答時間為10s,而該時間可由主持人根據(jù)情況進行調(diào)整。在搶答時間內(nèi)如果有選手搶到該題目,蜂鳴器則會發(fā)出警報提醒該組選手進行作答,系統(tǒng)默認答題時間為30s。仿真模擬情景為:當前搶答題目為第13題,數(shù)碼管顯示“13”。當?shù)?組在搶答時間內(nèi)按下按鍵時,數(shù)碼顯示器會顯示該組組號“2”,并且顯示所剩回答問題的時間“30”。仿真結(jié)果如圖5所示。
6 結(jié)語
本設(shè)計采用AT89C51單片機實現(xiàn)多功能八位轉(zhuǎn)發(fā)器,采用Proteus仿真軟件實現(xiàn)整個設(shè)計過程的仿真。得益于強大的仿真系統(tǒng),對開發(fā)的系統(tǒng)進行實時仿真,以確定系統(tǒng)設(shè)計的正確性和合理性。硬件圖是根據(jù)仿真原理圖制作的,這種設(shè)計具有傳統(tǒng)邏輯設(shè)計方法無法比擬的優(yōu)勢。設(shè)計整體性好、人性化強、可靠性高,實現(xiàn)了數(shù)顯控制的智能化,該搶答器不僅可以實現(xiàn)倒計時、數(shù)顯等基本功能,還可以自定義響應(yīng)倒計時和倒計時時間,讓選手可以根據(jù)不同的游戲場景答題,有效判斷選手非法搶答并給予警告。系統(tǒng)經(jīng)驗證工作穩(wěn)定,保證了比賽中搶答的公平性。
【參考文獻】
【1】黃育雁.智力競賽搶答器邏輯電路的設(shè)計[J].硅谷,2012(6):56+33.
【2】段德功,丁瑩亮.單片機原理及應(yīng)用[M].北京:經(jīng)濟科學出版社,2010.
【3】牛甲,熊剛.基于單片機的的搶答器設(shè)計[J].電腦知識與技術(shù),2018,14(4):240-241.