李生明,楊 紅
(清遠(yuǎn)職業(yè)技術(shù)學(xué)院機電工程學(xué)院,廣東 清遠(yuǎn) 511510)
記分牌是體育比賽中常見常用的體育用品,在比賽中,計時記分牌是必不可少的,隨著比賽規(guī)則的進一步完善,相應(yīng)的計時記分牌也必須隨之改進。由于紙質(zhì)記分牌顯示內(nèi)容極少,觀眾視角范圍小,故設(shè)計了一種可用12V儲電池和220V交流電的電子記分牌。本設(shè)計用STC89C52單片機實現(xiàn)了最新的籃球比賽計時記分系統(tǒng)的軟硬件設(shè)計,不僅具有軟件設(shè)定比賽總時間并實現(xiàn)總時間的倒計時以適應(yīng)最新的比賽規(guī)則,而且實現(xiàn)了比賽雙方的記分功能。該系統(tǒng)采用按鍵操作與紅外遙控復(fù)用、3寸大數(shù)碼管顯示,分別對軟件和硬件進行調(diào)試,最終達到了軟件和硬件的良好結(jié)合。該設(shè)計采用模塊化的設(shè)計,程序結(jié)構(gòu)簡單,任務(wù)明確,易于編寫、調(diào)試和修改。
選擇STC89C52單片機作為控制器;兩隊分?jǐn)?shù)顯示部分由6只3寸高亮紅色共陽數(shù)碼管組成,時間部分由4只3寸高亮紅色共陽數(shù)碼管組成,由單片機控制數(shù)碼管專用芯片M AX7219,通過MAX 7219控制74LS07的輸出電平驅(qū)動各數(shù)碼管的位選、控制ULN2803輸出數(shù)碼管的段選信號;遙控接收使用紅外接收頭1838,該接收頭是一個三端元件,只占 1根 I/O口;用單片機 P0.0口輸出1kH z和 500H z的音頻信號給音頻放大芯片LM 386驅(qū)動揚聲器,作為時間終了時的提示音。系統(tǒng)設(shè)計兩種電源供方式,一種是交流電由變壓器降壓,經(jīng)過整流,濾波后,再由三端穩(wěn)壓器輸出電壓給系統(tǒng);另一種是可用12V的儲電池供電。原理設(shè)計框圖如圖1所示。[1]
2.1.1 控制器電路
圖1 原理設(shè)計框圖
本設(shè)計采用STC89C52單片機作為系統(tǒng)控制器。通過控制數(shù)碼管驅(qū)動電路在大尺寸數(shù)碼管上顯示記分、計時等信息,以及對整個系統(tǒng)進行控制;通過單片編程獲取紅外遙控及按鈕輸入信息,實現(xiàn)兩隊分?jǐn)?shù)加減分和倒計時等。單片機算術(shù)運算功能強,軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種算法和邏輯控制,并且其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點。原理圖如圖2所示。
圖2 控制器電路
2.1.2 數(shù)碼管驅(qū)動電路
圖3 大尺寸數(shù)碼管的字段組成
圖3是3寸共陽高亮紅色數(shù)碼管各字段的組成。A~G 7個段都是由8只發(fā)光二極管串并聯(lián)而成;DP是小數(shù)點,由2只發(fā)光二極管串聯(lián)而成。單個發(fā)光二極管的極限和光電參數(shù)如表1所示。[2]
表1 大尺寸數(shù)碼管單個發(fā)光二極管的參數(shù)
數(shù)碼管的A~G字段的導(dǎo)通電壓為7.2~8V,如何驅(qū)動大數(shù)碼管也成為本設(shè)計的亮點。本設(shè)計采用動態(tài)驅(qū)動電路,動態(tài)掃描驅(qū)動利用人眼視覺暫留的特性,分時進行LED數(shù)碼管驅(qū)動,人眼感受的是有效亮度的平均值。其優(yōu)點是驅(qū)動芯片少,電路簡單,成本低。擴充電壓、電流的驅(qū)動電路如圖4所示。
圖4 驅(qū)動電路
74LS07是6同相電平轉(zhuǎn)換電路,輸出級是集電極開路的晶體管,耐壓30 V,驅(qū)動電流30 mA,在單片機串口電平控制下驅(qū)動10個PNP達林頓功率管TIPl27,實現(xiàn)6只共陽數(shù)碼管的位驅(qū)動。ULN2803是8位NPN達林頓陣列,耐壓50 V,驅(qū)動電流500 mA,R2~R9是大尺寸數(shù)碼管A~G字段的限流電阻,電阻值和功率根據(jù)以下因素計算:[3]
◆大尺寸數(shù)碼管的供電電壓,各段的導(dǎo)通電壓;
◆TIPl27和ULN2803的導(dǎo)通壓降;
◆組成大尺寸數(shù)碼管的單個發(fā)光二極管的驅(qū)動電流。
本設(shè)計中,單個發(fā)光二極管的驅(qū)動電流為45 mA,供電電壓12 V,限流電阻選用30Ω,0.5W規(guī)格。
本電路占用單片機的I/O口較多,單片機要完成數(shù)碼管的譯碼、掃描等任務(wù),負(fù)擔(dān)較重,但對一些小應(yīng)用來說是不錯的選擇,可本系統(tǒng)中要驅(qū)動10個大數(shù)管,所以采用數(shù)碼管專用芯片MAX7219完成掃描的動態(tài)驅(qū)動,以減輕單片機的資源占用,只占用了3個I/O口,簡化程序設(shè)計,效果很好,如圖5所示。
圖5 MAX7219控制電路
MAX 7219/MAX7221是一種集成化的串行輸入/輸出共陰極顯示驅(qū)動器,它連接微處理器與8位數(shù)字的7段數(shù)字LED顯示,也可以連接條線圖顯示器或者64個獨立的LED。其上包括一個片上的B型BCD編碼器、多路掃描回路,段字驅(qū)動器,而且還有一個8×8的靜態(tài)RAM用來存儲每一個數(shù)據(jù)。只有一個外部寄存器用來設(shè)置各個LED的段電流。
MAX7219可通過加在V+和ISET之間的一個外部電阻來控制顯示亮度。段驅(qū)動電流一般是流入ISET端電流的100倍。
2.1.3 兩隊分?jǐn)?shù)顯示數(shù)碼管驅(qū)動電路
兩隊分?jǐn)?shù)顯示部分由6只3寸高亮紅色共陽數(shù)碼管(LED1~LED6)組成,由單片機控制MAX7219,通過MAX 7219控制74LS07輸出電平驅(qū)動U 5~U10 PNP達林頓功率管TIPl27,實現(xiàn)6只共陽數(shù)碼管的位驅(qū)動,由ULN2803輸出電平控制A~G的段選。電路圖如圖6所示。
圖6 分?jǐn)?shù)顯示數(shù)碼管電路
2.1.4 時間顯示數(shù)碼管驅(qū)動電路
時間部分由4只3寸高亮紅色共陽數(shù)碼管(LED7~LED10)組成,由單片機控制MAX7219,通過M AX7219控制74LS07輸出電平驅(qū)動U11~U14 PNP達林頓功率管TIPl27,實現(xiàn)4只共陽數(shù)碼管的字驅(qū)動,由 ULN2803輸出電平控制A~G的段選,時鐘的分隔點由兩個發(fā)光二極管實現(xiàn)。電路圖如圖7所示。[4]
圖7 時間顯示數(shù)碼管電路
2.1.5 紅外遙控電路
遙控接收使用紅外接收模塊1838,該接收模塊是一個3端元件,具有功耗低、抗干擾能力強、輸入靈敏度高、只占1根I/O口等特點。如圖8所示,1838接單片機的P3.2(外中斷0),當(dāng)1838接收到遙控信號時產(chǎn)生中斷,處理遙控數(shù)據(jù),處理完后返回。
圖8 紅外遙控電路
2.1.6 揚聲器電路
用單片機P0.0口輸出1kHz和500Hz的音頻信號給音頻放大芯片LM 386驅(qū)動揚聲器,作為時間終了時的提示音。1kHz信號響100m s,500H z信號響200ms,交替進行,在“音頻放大模塊”區(qū)域中的VOUT端口上接一個8Ω或16Ω的喇叭,電路圖如圖9所示。
圖9 揚聲器電路
2.1.7 電源電路
本系統(tǒng)由于用到12V和5V兩種電壓,而且要考慮到本作品的實用性,所以本系統(tǒng)設(shè)計了兩種電源供方式,如圖10所示,由變壓器降壓,經(jīng)過整流,濾波后,由可調(diào)三端穩(wěn)壓器輸出1~20V可調(diào)電壓,調(diào)節(jié)電阻RW 1使其輸出12V電壓供給系統(tǒng)和數(shù)碼管,如圖11所示,再由系統(tǒng)穩(wěn)壓成5V供給單片機及其他芯片。本作品還設(shè)計了電池供電,在沒有交流電的球場上,可用12V的儲電池供電,插在DC電源插座上即可,開關(guān)S1為供電模式選擇開關(guān)。
圖10 電源電路a
圖11 電源電路b
程序流程圖如圖12所示。
軟件設(shè)計主要從顯示和輸入信號采集兩大部分入手,在沒有輸入信號時顯示球場倒計時時間。當(dāng)檢測到有按鍵按下或遙控信號時,根據(jù)接收到的輸入指令確定是設(shè)置時間調(diào)整還是進行加減分控制,分別進行相應(yīng)的控制,當(dāng)?shù)褂嫊r時間到時起動揚聲器,提示比賽結(jié)束。
圖12 程序流程圖
由于本設(shè)計采用動態(tài)數(shù)碼管顯示方式,一開始存在亮度不足和閃爍問題,通過程序調(diào)試,改變顯示延時時間,改善了數(shù)碼管閃爍問題;數(shù)碼管亮度不足通過 MAX 7219硬件調(diào)整數(shù)碼管亮度,調(diào)整MAX 7219的V+和ISET之間的一個外部電阻來控制顯示亮度,以調(diào)節(jié)到最大亮度,還有通過軟件調(diào)節(jié)MAX 7219的亮度調(diào)節(jié)寄存器的地址,改變D3~D0這半個字節(jié)的值可以調(diào)節(jié)M AX7219的段驅(qū)動平均電流,從而改變數(shù)碼管的亮度。
本設(shè)計的時間計時是利用單片機內(nèi)部定時器進行定時50m s計數(shù)20次產(chǎn)生1s的定時減1,從而實現(xiàn)了倒計時,但系統(tǒng)運行程序需要機器周期,所以產(chǎn)生的定時會存在誤差,經(jīng)過多次調(diào)試后,時間1m in存在的誤差小于0.1s。
在調(diào)試時,一開始按鈕與紅外遙控不能復(fù)用,存在沖突,但經(jīng)過多次軟件調(diào)試,將按鈕子程序與紅外遙控子程序獨立分開處理,從而達到了很好復(fù)用的效果。
將上述調(diào)試結(jié)果進行了比較分析,可以看出,各項指標(biāo)均達到功能要求,設(shè)計較為理想,實驗室制作出來的顯示樣品如圖13所示。
圖13 顯示圖樣
本設(shè)計的出發(fā)點旨在針對一些球場不具備購置高額專用的計時記分器具而考慮,通過此計時記分系統(tǒng)的投入,一方面改善了計時記分條件,另一方面成本也不高,適用于大眾化場合。
[1]湯競南,沈國琴.51單片機C語言開發(fā)與實例[M].北京:人民郵電出版社,2008.
[2]劉 鯤,孫春亮.單片機 C語言入門[M].北京:人民郵電出版社,2008.
[3]張義和,等.例說51單片機(C語言版)[M].北京:人民郵電出版社,2008.
[4]樓然苗,李光飛.單片機課程設(shè)計指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2007.