張洪濤 王翔宇
【摘要】本研究利用AT89C51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間和選手號(hào)碼。用開關(guān)做鍵盤輸出,揚(yáng)聲器發(fā)生提示。系統(tǒng)達(dá)到要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時(shí)間和回答問題的時(shí)間為1-99s設(shè)定;可以顯示是哪位選手有效搶答和無效搶答;搶答時(shí)間和回答問題時(shí)間倒記時(shí)顯示,時(shí)間完后系統(tǒng)自動(dòng)復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。
【關(guān)鍵詞】AT89C51;搶答器;計(jì)時(shí)
單片機(jī)把我們帶入了智能化的電子領(lǐng)域,許多繁瑣的系統(tǒng)若由單片機(jī)進(jìn)行設(shè)計(jì),便能收到電路更簡單、功能更齊全的良好效果。若把經(jīng)典的電子系統(tǒng)當(dāng)作一個(gè)僵死的電子系統(tǒng),那么智能化的現(xiàn)代電子系統(tǒng)則是一個(gè)具有“生命”的電子系統(tǒng)。本項(xiàng)目研究的數(shù)字搶答器由主體電路與擴(kuò)展電路組成。優(yōu)先編碼電路、鎖存器、譯碼電路將參賽隊(duì)的輸入信號(hào)在顯示器上輸出;用控制電路和主持人開關(guān)啟動(dòng)報(bào)警電路,以上兩部分組成主體電路。通過定時(shí)電路和譯碼電路將秒脈沖產(chǎn)生的信號(hào)在顯示器上輸出實(shí)現(xiàn)計(jì)時(shí)功能,構(gòu)成擴(kuò)展電路。經(jīng)過布線、焊接、調(diào)試等工作后數(shù)字搶答器成形。更具有實(shí)用性。
一、本數(shù)字搶答器的組成
本搶答器的電路主要有四部分組成:數(shù)字搶答電路、時(shí)序控制電路、報(bào)警電路以及可預(yù)置時(shí)間的定時(shí)電路。其中數(shù)字搶答部分有一個(gè)74DC373鎖存器和LED數(shù)碼管顯示器組成,可以將八位搶答者的按鈕通過LED數(shù)碼管顯示器顯示出他們最先搶答者的序號(hào)。而時(shí)序控制電路的功能是當(dāng)參賽選手按動(dòng)搶答器時(shí),使揚(yáng)聲器發(fā)聲,這時(shí)搶答電路和定時(shí)電路停止工作。而且設(shè)定的時(shí)間到達(dá)后若無人搶答,則報(bào)警電路工作。報(bào)警電路工作的條件是當(dāng)設(shè)定時(shí)間到達(dá)后或者有人搶答時(shí),報(bào)警電路被輸入一個(gè)高電平,這時(shí)此電路工作。
二、系統(tǒng)硬件的設(shè)計(jì)
本設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì),這兩者相互結(jié)合,不可分離;從時(shí)間上看,硬件設(shè)計(jì)的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計(jì)的大返工是比較少的,軟件設(shè)計(jì)的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計(jì)任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來越高,硬件設(shè)計(jì)的工作量在整個(gè)項(xiàng)目中的所占的比重逐漸下降。
(一)時(shí)鐘頻率電路的設(shè)計(jì)
單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 C1,C2的作用有兩個(gè):一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF,有選擇的晶振大小決定。
單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),常用fosc表示。圖中時(shí)鐘頻率為12MHz,即fosc=12MHz,則時(shí)鐘周期為1/12?s。
(二)復(fù)位電路的設(shè)計(jì)
單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài)。電解電容C3、電阻R9構(gòu)成復(fù)位電路。由于單片機(jī)是高電平復(fù)位,所以單片機(jī)的9腳RESET管腳處于高電平,此時(shí)單片機(jī)處于復(fù)位狀態(tài)。當(dāng)上電后,由于電容的緩慢充電,單片機(jī)的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時(shí)間后,單片機(jī)的9腳處于穩(wěn)定的低電平狀態(tài),此時(shí)單片機(jī)上電復(fù)位完畢,系統(tǒng)程序從0000H開始執(zhí)行。
值得注意的是,在設(shè)計(jì)當(dāng)中使用到了軟件復(fù)位功能,倒計(jì)時(shí)時(shí)間的記憶功能實(shí)現(xiàn)的前提條件就是不能對單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。
(三)發(fā)聲電路
我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。
單片機(jī)的14腳輸出具有復(fù)合功能,此處用到了單片機(jī)17腳的IO端口功能,單片機(jī)通過內(nèi)部定時(shí)器的操作實(shí)現(xiàn)交替變換的波形輸出驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。
本章詳細(xì)講述了以AT89C51為核心元件的搶答器的硬件電路設(shè)計(jì)過程,分析了電路。在設(shè)計(jì)過程中,實(shí)現(xiàn)搶答功能的是通過編寫程序的方法集成在AT89C51內(nèi)部。接著將程序下載到硬件電路中,配合周邊的時(shí)鐘電路,復(fù)位電路等,制作出符合設(shè)計(jì)要求的搶答器。
三、軟件設(shè)計(jì)
軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。從軟件的功能來看可分為兩大類:一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測量,計(jì)算,顯示,打印,輸出控制和通信等,另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計(jì)方法各有特色,執(zhí)行軟件的設(shè)計(jì)偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化。
軟件任務(wù)分析時(shí),應(yīng)將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義(輸入輸出定義)。在各執(zhí)行模塊進(jìn)行定義時(shí),將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題也一并規(guī)劃好。各執(zhí)行模塊規(guī)劃好后,就可以監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務(wù)明確單純,比較容易編程,而監(jiān)控程序較易出問題。
軟件任務(wù)分析的另一個(gè)內(nèi)容是如何安排監(jiān)控軟件和各執(zhí)行模塊。整個(gè)系統(tǒng)軟件可分為后臺(tái)程序(背景程序)和前臺(tái)程序。后臺(tái)程序指主程序及其調(diào)用的子程序,這類程序?qū)?shí)時(shí)性要求不是太高,延誤幾十ms甚至幾百ms也沒關(guān)系,故通常將監(jiān)控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺(tái)程序中執(zhí)行;而前臺(tái)程序安排一些實(shí)時(shí)性要求較高的內(nèi)容,如定時(shí)系統(tǒng)和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺(tái),后臺(tái)程序?yàn)椤笆瓜到y(tǒng)進(jìn)入睡眠狀態(tài)”,以利于系統(tǒng)節(jié)電和抗干擾。
四、軟硬件綜合調(diào)試
為了更好地完成課程設(shè)計(jì)這一重要教學(xué)環(huán)節(jié),我們采用Proteus軟件與Keil軟件整合構(gòu)建單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)。首先在PC上利用Proteus軟件自己搭建硬件電路,并利用系統(tǒng)提供的功能完成電路分析、系統(tǒng)調(diào)試和輸出顯示的硬件設(shè)計(jì)部分;同時(shí)在Keil軟件中編制程序,進(jìn)行相應(yīng)的編譯和仿真,完成系統(tǒng)的軟件設(shè)計(jì)部分。當(dāng)系統(tǒng)的設(shè)計(jì)工作完成后,我們可以在PC上看到最終的運(yùn)行效果。最后再通過proteus設(shè)計(jì)PCB,再完成真正硬件的調(diào)試。
參考文獻(xiàn):
[1] 程相波,衛(wèi)安軍.基于MCS-51單片機(jī)的八路搶答器設(shè)計(jì)方法研究[J].北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,(2).
[2]林凌,李剛,丁茹,李小霞.新型單片機(jī)接口器件與技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005年.
[3]李增生.對《搶答器》的改進(jìn)[J].電子制作,2000,(12).
[4]馬軻瀛.八路數(shù)字搶答器系統(tǒng)[J].華商,2007,(23).
[5]高偉.AT89單片機(jī)原理及應(yīng)用[M].北京:國防工業(yè)出版社,2008年.
[6]蔡朝陽.單片機(jī)控制實(shí)習(xí)與專題制作[M].北京:北京航空航天大學(xué)出版社,2006年.