單片機作為可編程器件,簡化了電路的設(shè)計、方便了邏輯設(shè)計,從此再也不用使用一大堆電路做硬件邏輯了。拆開任何一件功能稍微復(fù)雜一點電子產(chǎn)品,里邊都可以看到單片機的身影。學(xué)會單片機對找工作也很有利,而且待遇還不錯,今天就從實例分享的角度和大家共享一個案例,用單片機來實現(xiàn)一個搶答器。
在電視節(jié)目中,經(jīng)常看到搶答器出現(xiàn)在知識競賽、答題競賽節(jié)目中,如江蘇衛(wèi)視的《一站到底》,搶答器可以準(zhǔn)確、公正、直觀、公平的顯示出搶答選手的編號,可以更好的促進(jìn)各選手之間的競爭意識,營造緊張的搶答氣氛,增加節(jié)目的趣味性和觀賞性。
搶答器的設(shè)計框圖
搶答器要實現(xiàn)如下功能:搶答功能、顯示功能、倒計時功能、自鎖功能。節(jié)目后臺需要控場,擁有搶答器的絕對控制權(quán)。功能需求 如下:
開始、結(jié)束功能:只有按下開始按鍵后,現(xiàn)場選手才可以開始搶答,否則搶答事件不被處理視為無效;
自鎖、互鎖功能:為了保證搶答的公平性,在開始搶答后,第一個按下?lián)尨鸬囊暈橛行尨?,產(chǎn)生有效搶答后其他搶答視為無效;
計時、設(shè)置功能:后臺/主持人可以設(shè)置搶答時間的長短,以倒數(shù)秒的方式顯示,增強緊張氣氛;
顯示、聲音功能:用數(shù)碼管顯示倒計時秒數(shù),選手搶答成功后顯示搶答者編號和剩余時間;
在該設(shè)計中,按鍵采用機械式的四腿按鍵來實現(xiàn),按鍵數(shù)量10個;顯示采用三位數(shù)碼管來實現(xiàn),兩位顯示時間,一位顯示選手編號;聲音提示用蜂鳴器來實現(xiàn)。核心器件采用51單片機來實現(xiàn)。其功能框圖如下圖所示。
1-搶答器功能框圖
按鍵輸入電路設(shè)計
該搶答器設(shè)計中總共有10個按鍵,其中8個按鍵用于給用戶搶答用,所代表的編號為1-8,另外兩個按鍵分別為開始鍵和結(jié)束鍵,由主持人或者后臺控制。由于8路輸入搶答按鍵具有互鎖功能,所以只要有一個有效輸入后,其他搶答都是無效的,這個功能可以在程序中實現(xiàn),為了方便程序設(shè)計,這里采用8輸入與非門來實現(xiàn),所用型號為74LS30,該與非門有8路輸入,1個輸出,功能框圖如下所示。
2-74LS30與非門框圖
8個按鍵作為74LS30的輸入,輸出通過NPN三極管接入51單片機的外部中斷0接口,以中斷的方式實現(xiàn)按鍵功能的檢測,單片機的中斷資源為低電平有效,為了提高電路穩(wěn)定性在三極管的集電極上加入上拉電阻,以防誤動作。
3-按鍵輸入電路設(shè)計
開始和結(jié)束兩個按鍵采用獨立式按鍵設(shè)計,占用掉單片機的兩個IO口,程序中采用輪詢來實現(xiàn)。
數(shù)碼管顯示電路設(shè)計
顯示部分采用數(shù)碼管來實現(xiàn),根據(jù)設(shè)計要求,兩位用于顯示倒計時時間,最大可以顯示99;一位用于顯示選手編號,故需要3顆數(shù)碼管,該設(shè)計中采用共陽數(shù)碼管來實現(xiàn),所謂共陽數(shù)碼管是指公共端接高電平,段選管腳接低電平后相應(yīng)的字段才會被點亮。共陰數(shù)碼管正好相反,公共端接低電平,段選管腳接高電平后相應(yīng)的字段才會被點亮。數(shù)碼管的實物圖如下所示。
4-數(shù)碼管實物圖
數(shù)碼管的引腳比較多,除了8個段選管腳外,還有公共端/位選引腳,如果用三顆獨立的數(shù)碼管可能需要較多單片機引腳資源,為了解決這個問題,本例設(shè)計采用74HC595作為數(shù)碼管驅(qū)動。74HC595是串入并出的移位寄存器,只需要三個引腳就可以控制8個引腳的輸出,而且還可以實現(xiàn)級聯(lián)。所以74HC595通常在數(shù)碼管驅(qū)動和點陣屏中應(yīng)用比較多。
這三顆數(shù)碼管中,分為時間顯示和編號顯示兩組,用到三顆74HC595,其中兩顆級聯(lián)用于控制時間顯示的數(shù)碼管,總共用到6個單片機的IO口,驅(qū)動電路如下圖所示。
5-數(shù)碼管驅(qū)動電路
蜂鳴器發(fā)聲電路設(shè)計
需求中提到發(fā)聲設(shè)計,當(dāng)有效按鍵事件發(fā)生時,蜂鳴器發(fā)聲作為提示音,當(dāng)?shù)褂嫊r進(jìn)入5秒之內(nèi)后還沒有人按鍵搶答時,蜂鳴器每隔1秒發(fā)聲,制造現(xiàn)場緊張的氣氛,提高節(jié)目的觀賞性和娛樂性,增強節(jié)目效果。本例中選擇了蜂鳴器,蜂鳴器驅(qū)動電路如下圖所示。
6-蜂鳴器驅(qū)動電路
由于單片機的IO口驅(qū)動能力有限,所以采用三極管來驅(qū)動,這里選用了PNP三極管。三極管驅(qū)動蜂鳴器時工作于飽和狀態(tài),為了讓三極管充分飽和,將蜂鳴器接在了三極管的集電極,這個地方初學(xué)者在設(shè)計電路時要注意。圖中當(dāng)單片機的IO口輸出低電平時蜂鳴器工作發(fā)聲。
搶答器程序設(shè)計
該設(shè)計使用keil5作為編程環(huán)境,涉及到數(shù)碼管顯示、按鍵檢測/互鎖、蜂鳴器發(fā)聲、定時器等相關(guān)功能模塊的程序編寫。程序設(shè)計的流程圖如下所示。
7-程序設(shè)計流程圖
程序的功能邏輯介紹如下,上電后數(shù)碼管顯示FFF字樣,并首先檢測“開始”按鍵是否按下,如果沒有按下開始按鍵則表示搶答未開始。如果按下了開始按鍵,搶答器啟動,秒顯示開始倒計時,有人按下?lián)尨疰I時蜂鳴器發(fā)聲、倒計時停止并顯示搶答者編號,整個搶答事件結(jié)束,直到主持人/后臺按下結(jié)束按鍵后再顯示FFF。如果倒計時進(jìn)入5秒內(nèi),仍未有人搶答,則每個整秒蜂鳴器響一次,直至結(jié)束。
以上為程序邏輯設(shè)計和程序的流程圖講解,下面介紹各功能模塊的程序設(shè)計。
首先介紹數(shù)碼管的程序編寫,再編寫程序時,都會預(yù)先定義好數(shù)碼管的字段表,根據(jù)共陽數(shù)碼管和共陰數(shù)碼管的不同,其字段表也是不一樣的,但是兩者是互補的,數(shù)碼管可顯示的字段表如下圖所示。
8-數(shù)碼管字段表
程序代碼如下:
/*共陽數(shù)碼管的0-9數(shù)字字碼表*/
uchar code seg_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x8e,0xff};
其次是按鍵部分,搶答按鍵采用中斷來實現(xiàn),開始/結(jié)束按鍵采用輪詢實現(xiàn),部分定義代碼如下所示。
//定義搶答按鍵
sbit KEY_1=P0^0; //1
sbit KEY_2=P0^1; //2
sbit KEY_3=P0^2; //3
sbit KEY_4=P0^3; //4
sbit KEY_5=P0^4; //5
sbit KEY_6=P0^5; //6
sbit KEY_7=P0^6; //6
sbit KEY_8=P0^7; //6
//定義開始/結(jié)束按鍵
sbit START = P2^4;
sbit STOP = P2^5;
仿真電路的設(shè)計和驗證
在做板子之前,先用Proteus仿真軟件做了仿真。Proteus仿真支持51單片機并可以實現(xiàn)運行程序的功能,當(dāng)把程序?qū)懞煤蠹虞d至Proteus即可實現(xiàn)程序的調(diào)試,Proteus還可以與Keil軟件實現(xiàn)聯(lián)調(diào)功能。所設(shè)計的仿真電路如下圖所示。
9-仿真電路-初始顯示FFF字樣
在上電初期,顯示“FFF”字樣,前兩個數(shù)碼管代表倒計時時間,后一個數(shù)碼管代表搶答者的編號。按下開始按鍵后,搶答器開始工作,如下圖所示。
10-搶答成功界面
上圖表示,在倒計時時間還有7秒的時候,5號選手完成了有效搶答,直至主持人/后臺按下結(jié)束后再顯示FFF,否則一直顯示該界面。
搶答器的焊接調(diào)試
為了實現(xiàn)功能驗證,選擇用萬用板手工焊接實現(xiàn)這個設(shè)計。最終的實物圖如下所示:
11-最終實物圖正面
電源供電為DC5V,可以使用電池盒供電,也可以選擇5V輸出的手機充電器供電,導(dǎo)線走在了電路板正面,雖然丑了點,但是方便一點。電路板的反面如下圖所示。
12-最終實物圖背面
反面是用焊錫連接實現(xiàn)的。由于功能不是很復(fù)雜,程序?qū)懲旰螅{(diào)試了沒幾次就完成了功能,前文中所描述的功能都實現(xiàn)了。按鍵互鎖的功能也實現(xiàn)了。下圖是通電運行的界面,表示5號搶答者在倒計時28秒的時候搶答成功,這時候其他搶答者的按鍵無效。只有開始或者結(jié)束按鍵是其作用的。
13-搶答成功界面
該搶答器的設(shè)計雖然是一個很簡單的練手項目,但是卻涉及到了單片機中最常用的外設(shè)電路,可以幫助初學(xué)者熟悉數(shù)碼管、按鍵、蜂鳴器的使用和控制方法。初學(xué)者可以借助這個產(chǎn)品熟悉單片機開發(fā)過程中所用的各種軟件和產(chǎn)品開發(fā)的流程。
對這個電路進(jìn)行PCB Layout,設(shè)計個外殼就成了一個不錯的產(chǎn)品。還可以增加藍(lán)牙模塊或者WiFi模塊,實現(xiàn)電子屏的控制和顯示,再把功能完善一下,就可以用在舞臺上了。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!