郭 暢
(南京郵電大學(xué)通達學(xué)院,江蘇揚州,225100)
基于單片機的籃球計分器系統(tǒng)的設(shè)計
郭 暢
(南京郵電大學(xué)通達學(xué)院,江蘇揚州,225100)
本設(shè)計是一款低成本、性能穩(wěn)定、顯示準確、操作方便且易攜帶,適用于各類比賽的計分器。主要實現(xiàn)對籃球比賽中的分數(shù)變化進行及時加減,24秒倒計時警報等功能。包括四個模塊:分數(shù)加減系統(tǒng),倒計時系統(tǒng),24秒警報系統(tǒng),LCD顯示模塊系統(tǒng)。
單片機;LCD;計分
籃球比賽是根據(jù)參賽隊伍在規(guī)定比賽時間內(nèi)分得多少來決定勝負的,因此一次比賽的計時計分非常重要,這就特別需要一個計分器來準確及時的統(tǒng)計雙方的得分情況,以及比賽時間的監(jiān)控。正式比賽中使用的籃球計分器體積過大,對于一般性比賽不適用,所以簡易的籃球計分器更適合。它能減少人工計時計分可能會產(chǎn)生的誤差,也減少了人工費用??梢栽诒荣愔芯_顯示比賽中分數(shù)的實時加減的變化,使觀眾更加準確的了解比賽狀況。并通過LCD液晶顯示器將比賽進程展示在大屏幕上,將比賽變得更加直觀。而采用單片機來設(shè)計的這款籃球計分器就是來滿足籃球比賽中倒計時,加減分以及24秒警報等需求的。
設(shè)計中采用STC89C52單片機作為主控芯片,總體框架設(shè)計圖如圖1所示。
圖1 總體框架設(shè)計圖
顯示模塊使用LCD1602液晶顯示屏,液晶顯示屏的顯示行數(shù)清晰度以及現(xiàn)實的復(fù)雜程度比較高,可以做到清楚的表示出所需要的數(shù)字或字母。矩陣鍵盤電路按鍵為16個,使用4*4模式的矩陣鍵盤。定時器選擇的是單片機自帶的計時裝置。警報系統(tǒng)選擇無源式蜂鳴器。
2.1 系統(tǒng)的工作原理
根據(jù)籃球比賽的規(guī)則本設(shè)計可以實現(xiàn),兩個半時,每半時20分鐘;四節(jié)比賽每節(jié)10分鐘,第一和第二節(jié),第三和第四節(jié)中間的休息時間分別為2分鐘;半場的休息時間為10分鐘。
硬件電路包括以下四部分最小單片機系統(tǒng)電路、LCD顯示電路、矩陣鍵盤電路、報警電路。
(1)24s倒計時結(jié)束后以及每節(jié)結(jié)束后發(fā)出警報,并在每節(jié)結(jié)束后中斷比賽。
實現(xiàn)過程:根據(jù)單片機本身具有的計時器進行24s倒計時過程,接下來需要蜂鳴器發(fā)出警報,但由于無源蜂鳴器無法直接發(fā)出警報,所以加一個電阻產(chǎn)生一個方波,是的蜂鳴器可以發(fā)出警報。
(2)對比賽時間、分數(shù)、節(jié)數(shù)以及其改變進行及時顯示。
實現(xiàn)過程:將顯示器各管腳依次連接到單片機的P0.0到P0.7上,由于防止顯示其運作時間過長溫度過高會損壞元器件,所以接上一個排阻來保護電路。
(3)通過按鍵對各隊比賽分數(shù)改變進行控制,分別為:A隊加一分,加兩分,加三分,以及當比賽積分出錯時進行逐一減分;B隊加一分,加兩分,加三分,單獨積分出錯時進行逐一減分;同時具備,對比賽節(jié)數(shù)加二,減二;對于一節(jié)時間的調(diào)整(以一分鐘為最小單位);比賽的開始和暫停;手動調(diào)節(jié)為加時賽;重置24s倒計時。
實現(xiàn)過程:因為使用4*4矩陣鍵盤,所以,將縱向上的四根連線分別連接到P3.4到P3.7管腳口,將橫向的四根線分別連接到P3.0到P3.3上,以此來實現(xiàn)鍵盤模塊的控制作用。
(4)應(yīng)用單片機內(nèi)部計時器進行比賽時間到計時以及24s警報倒計時。
實現(xiàn)過程:由于屬于單片機內(nèi)置定時器,所以直接通過程序取用就可以了。
2.2 單片機最小系統(tǒng)設(shè)計
本設(shè)計使用STC89C52作為單片機最小系統(tǒng),在設(shè)計時應(yīng)注意,其中一定要包括電源、單片機、時鐘以及復(fù)位電路。設(shè)計時使用的晶振為12MHZ,用它來為電路提供時鐘,這個時鐘的作用就是為單片機提供一個時間上的基準。在單片機中,每執(zhí)行一條命令,所需要的時間為一個機器周期。最先系統(tǒng)中還包括了復(fù)位電路,即每次按下復(fù)位按鍵之后,所有的指令從頭開始運行。設(shè)計圖中加入電阻,其目的是為P0口的漏極電路提供一個上拉電阻,使P0口正常運行。
2.3 LCD顯示電路設(shè)計
1602LCD與單片機的硬件連接圖如圖2所示,由圖中可以看出JPBG接口直接與電源連接。第三引腳接口中的可調(diào)電位器必須與電源與地連接,RS,R/W和E這三個控制位分別對應(yīng)P2.0,P2.1,P2.2。4.P0.0-P0.7是8位數(shù)據(jù)線。
在三個控制位中,RS=0時代表寫或讀指令,RS=1時代表寫數(shù)據(jù)。其中R/W表示讀寫指令,R/W=1表示讀,R/W=0表示寫。E作為使能端,應(yīng)當依據(jù)時序圖去編寫與之對應(yīng)的程序。
圖2 1602LCD與單片機的硬件連接圖
2.4 矩陣鍵盤模塊設(shè)計
矩陣鍵盤電路設(shè)計圖如圖3所示。把單片機的P3.0-P3.7端口通過8聯(lián)撥動撥碼開關(guān)連接到“4*4行列式鍵盤”,其中P3.4-P3.7作為列線,P3.0-P3.3作為行線,系統(tǒng)首先通過CPU對全部鍵盤進行掃描,就是將第一條行線設(shè)置為“0”狀態(tài),剩下的所有行線處于于“1”狀態(tài),讀取輸入緩沖器的狀態(tài),如果其狀態(tài)全部處于“1”則說明該行沒有按鍵被按下,接下來將第二根行線設(shè)置為“0”狀態(tài),繼續(xù)讀取輸入緩沖器的狀態(tài),如這是它的狀態(tài)也全為“1”,那么設(shè)置第一根行線處于“0”狀態(tài),接下來重復(fù)此運行狀態(tài)。如果讀取輸入緩沖器的狀態(tài)不全處于“1”狀態(tài),則確定哪一根列線為“0”狀態(tài),如果某個鍵的行線和列線都為“0”狀態(tài)時,說明此時這個鍵按下。
圖3 矩陣鍵盤模塊電路圖
本次籃球計分器鍵盤設(shè)計布局及功能如表1所示。利用STC89C52的一個P口分別對矩陣鍵盤的4根行線和4根列線進行連接,以此方式來分別實現(xiàn)16個按鍵的功能,這種方法有利于矩陣鍵盤與按鍵之間的使用率,同時也有利于節(jié)約單片機外圍電路的資源。
本設(shè)計的系統(tǒng)功能用了16個獨立鍵盤來實現(xiàn),用它來控制籃球計分器系統(tǒng)功能,這16個控制矩陣鍵盤分別為S1,S2,S3, S4,S5,S6,S7,S8,S9, S10,S11,S12,S13, S14,S15,S16。除了這16個獨立鍵盤還有一個復(fù)位按鈕S17和一個電源開關(guān)按鈕。這些按鍵分別被連接到單片機的P3口上的低四位和高四位。根據(jù)程序設(shè)計的要求,在系統(tǒng)初始化時等待配置比賽時間。
當按下S13按鍵可以實現(xiàn)暫停或開始,按下S17復(fù)位按鍵可以實現(xiàn)時間清零,按下S1,S2,S3, S4按鍵可以實現(xiàn)A隊的+1,+2,+3,-1分的功能。按下S5,S6,S7, S8按鍵可以實現(xiàn)B隊的+1,+2,+3,-1的功功能。按下S9按鍵比賽節(jié)數(shù)加2,按下S10按鍵實現(xiàn)對比賽節(jié)數(shù)減2。按下S11按鍵設(shè)置一節(jié)比賽的時間,按下S12按鍵可以修改一節(jié)比賽時間的錯誤設(shè)置。按下S15按鍵可以實現(xiàn)手動設(shè)置加時賽的時間,按下S16按鍵可以實現(xiàn)籃球24秒的倒計時重置。
表1 按鍵布局及功能表
2.5 報警電路設(shè)計
報警電路原理圖如圖4所示。蜂鳴器系統(tǒng)由一個9012的三極管及一個2.2K的電012三極管其主要作用是驅(qū)動蜂鳴器。由于單片機的IO口驅(qū)動能力不足以使蜂鳴器發(fā)出聲音,于是我們需要通過三極管對驅(qū)動電流進行放大,以此來達到讓蜂鳴器發(fā)出聲音的目的,如果是輸出高電平,則此時三極管導(dǎo)通,集電極電流流過蜂鳴器是的蜂鳴器發(fā)出警報,若輸出為低電平時,此時三極管處于截止狀態(tài),沒有電流通過蜂鳴器,那么此時蜂鳴器不會發(fā)出警報聲。
圖4 報警電路原理圖
選用的編程語言是基礎(chǔ)的編程語言即C語言,采用的編程軟件是keil。
3.1 系統(tǒng)軟件總體設(shè)計
軟件系統(tǒng)有:主程序、中斷程序、LCD顯示程序、分數(shù)加減程序、4*4按鍵程序、倒計時程序、蜂鳴器警報。下面主要介紹主程序,中斷程序,按鍵程序,警報程序,LCD顯示系統(tǒng)的編寫流程,以及遇到的問題。
從主程序流程圖中可以看出,首先,將單片機的電源接通,這時主芯片開始初始化,即刪除上一次運行中可能留下的數(shù)據(jù),以及將數(shù)據(jù)設(shè)置為初始值。其次,通過單片機進行判斷用戶進行的操作,即按下的按鍵所對應(yīng)的功能。最后,顯示對應(yīng)按鍵程序運行出來的結(jié)果。
3.2 主程序模塊
在程序設(shè)計中,主程序起到至關(guān)重要的作用。本設(shè)計的主程序主要需要完成以下功能:(1)系統(tǒng)的初始化;(2)中斷;(3)按鍵是否按下的檢測;(4)以及顯示調(diào)用等。本次設(shè)計中,主程序的功能主要體現(xiàn)在,使用單片機內(nèi)部的定時計數(shù)器來完成倒計時功能。同時接受按鍵的控制實現(xiàn)各項功能,最終將比賽結(jié)果顯示在LCD顯示屏上。接下來將重點講中斷系統(tǒng)。即每節(jié)比賽結(jié)束時比賽自動暫停。
3.3 按鍵程序模塊
使用4*4矩陣鍵盤,此類鍵盤使用的是逐步查詢的方式,所以當單片機接通電源之后,只要有按鍵閉合,接下來先判斷那個按鍵被按下,最后執(zhí)行該按鍵所代表的指令。并是在完成一道指令后,可馬上循環(huán)執(zhí)行下一條指令。
圖5 主要程序設(shè)計流程圖
3.4 加減計分程序模塊
當比賽開始按鍵按下之后程序開始運行。兩隊分數(shù)初始值均為0,當?shù)谝粋€按鍵按下時A隊加一分,第二個按鍵按下時A隊加兩分,第三個按鍵按下時A隊加三分,第四個按鍵按下時A隊減一分;接下來第五到第八個鍵為B隊比分操作按鍵,與A隊一樣依次排列。同時當比賽兩小節(jié)結(jié)束時自動交換場地與比分。
3.5 4LCD顯示程序模塊
本次設(shè)計中LCD顯示模塊,是根據(jù)鍵盤先給出指令,在調(diào)出相應(yīng)的字模代碼,最終在液晶顯示屏上顯示出相應(yīng)的改變的。
3.6 報警程序模塊
在這段程序中需要設(shè)計一個變量,來判斷是否需要報警。在這里將用if語句來實現(xiàn),即由于進攻方在24s內(nèi)必須實現(xiàn)一次進攻。那么在程序編寫中就以24秒為一個界限,進行24秒倒計時,當?shù)褂嫊r結(jié)束時進行提示。如果,進攻一方在24s內(nèi)完成進攻,那么可以通過手動進行24秒倒計時重置。本次設(shè)計的警報時長為兩秒鐘,所以當一次警報結(jié)束,并且重新計時時是從22秒開始倒計時的。
硬件的焊接是一個重要的環(huán)節(jié),由于本設(shè)計所用元器件不多,焊接起來比較簡單,所以就直接在實驗板上焊接電路。電路焊接完成后進行功能測試,對于有多個模塊的電路設(shè)計,在焊接之后必須要進行測試電路是否正確,是否能運行流暢,如果測試中有問題我們要根據(jù)問題的具體情況進行修改。實物按照電路圖焊接好后,燒入程序后程并激活,按照規(guī)定的要進行功能測試。
電路板完成焊接后,首先下載單片機程序,在Keil軟件中生成HEX文件,然后寫入到單片機里。按照設(shè)計的要求進行了測試。調(diào)試結(jié)果顯示分成兩行,第一行顯示兩隊的比賽得分情況,第二行顯示兩隊的比賽時間得分情況、局數(shù)和24秒倒計時。
按下通電按鈕,顯示器的初始顯示狀態(tài)是:第一行顯示“籃球積分器”,第二行顯示“友誼第一,比賽第二”。(2)接下來停留兩秒后,第一行顯示“A:0 VS B:0 ”。第二行顯示“00:00 24S 1/4”。(3)比賽開始,做了如下測試。
時間開始倒計時,當兩隊進球時,開始對進球的一方進行加分;若在比賽中發(fā)現(xiàn)比分記錄錯誤的話,可以按下減分鍵來更改這個隊的比分;比賽具有24秒倒計時功能,在計時到24秒時,蜂鳴器開始發(fā)聲;第一節(jié)比賽完成后,蜂鳴器停止發(fā)聲,顯示器的界面顯示第二小節(jié);在第二節(jié)比賽結(jié)束后,可以自動更改兩隊比分的位置;在比賽開始前可以設(shè)置比賽的時間,對比賽的時間進行加減,但是在比賽進行中是不可以修改時間的,只能暫停時間。
本設(shè)計經(jīng)過測試達到了預(yù)期的效果,實現(xiàn)了計分器的基本功能,即顯示比賽進程,及時進行分數(shù)增減,在比賽中進行警報等。系統(tǒng)主要具有如下優(yōu)點:(1)低成本;(2)穩(wěn)定的性能;(3)顯示準確;(4)操作方便且易攜帶,適用于各類比賽中。
[1]郭天祥.51單片機C語言教程[M].北京:電子工業(yè)出版社, 2009.
[2]王東峰.單片機C語言應(yīng)用100例[M].北京:電子工業(yè)出版社,2009.
[3]趙源.基于單片機的籃球計分器設(shè)計[J].電子世界,2016,3(5):13,32-34.
[4]趙素玲.基于STC89C51單片機的籃球計分器的設(shè)計[J].電腦知識與技術(shù),2015,11(33):159-161.
[5]白亞梅,白永剛,張昌玉.基于單片機的籃球計分器設(shè)計[J].電子制作,2016, 7(13):77-78.
Tongda college of Nanjing University of Posts and Telecommunications
Guo Chang
(Tongda College of Nanjing University of Posts and Telecommunications,Yangzhou Jiangsu,225100)
SCM;LCD;Score indicator
Summary:The design is a score indicator which is low-cost,stable performance, accurate display, convenient operation and easy to carry,suitable for all kinds of games.The main function is to realize fractional change timely addition and subtraction in the basketball game and 24 seconds countdown alarm function,eg.This design includes four modules:score modified system, the countdown system, 24 a second alarm system, LCD display module system.