西安文理學院 趙 源中航工業西安航空發動機(集團)有限公司 韓 旭西安文理學院 韓利凱
?
基于單片機的籃球計時計分器設計
西安文理學院 趙 源
中航工業西安航空發動機(集團)有限公司 韓 旭
西安文理學院 韓利凱
【摘要】基于單片機設計的籃球計時計分器系統,以籃球規則為依據,具有賽程定時設置、比賽時間暫停、主客隊雙方的比分統計等功能。它具有價格低廉、 性能穩定、操作方便且易攜帶等特點,廣泛適合基層籃球比賽計時計分使用。
【關鍵詞】單片機;籃球比賽;計時計分器;顯示
基層籃球比賽時,經常采用人工計時計分,即裁判自帶手表計時和人工翻頁計分。由于要人工記錄兩隊的積累分數、犯規數和雙方暫停數等,一旦協同失誤就會造成錯誤記錄,影響比賽的正常進行[1]。因此,設計一款適合基層籃球比賽,價格低廉、性能穩定、操作方便且易攜帶的籃球計時計分系統,具有重要的現實意義。
系統采用單片機AT89C51作為本設計的核心元件,使用LCD1602液晶顯示屏顯示主隊、客隊兩隊的比賽分數,賽程計時采用倒計時方式,即比賽前將時間設置好,比賽開始時啟動計時,直到計時為零,此時,定時報警系統啟動,通過揚聲器發出報警聲,提示整個賽程結束。

圖1 系統構成框圖
為了配合計時器和計分器的校正和調整,在系統中設立了13個按鍵。其中4個用于甲、乙兩隊的分數加減;另外9個則用于完成設置、調整、啟動和暫停時間等功能。系統構成如圖1所示。
2.1籃球計時計分器模塊的設計
整個籃球比賽計時計分器的工作過程如下:首先在比賽之前,接通電源,系統自動復位,此時計時電路與計分電路中的共陰極數碼管全部顯示為0000和0000;然后按計時電路中的K7按鍵來設置比賽時間的十位數,例如比賽時間上半場為20分鐘,則通過K7鍵,使數碼管1顯示“2”即可,再按K8鍵,設置比賽時間的個位數,使數碼管2顯示“0”即可。一般比賽時間為40分鐘,所以只需按K7鍵顯示“4”,按K8鍵顯示“0”即可。時間設置好時,等待比賽開始,當裁判吹響開始哨聲時,立即按下K9鍵啟動計時,這時計時電路便開始工作,計時采用倒計時方式,即從24分00秒減到00分00秒表示上半場結束,上半場結束時,蜂鳴器會發出10秒鐘響聲,通知上半場結束,這時按一下K9鍵,便完成了甲、乙兩隊的分數交換。在整個賽程中,還要對兩隊比分進行及時刷新,這時可通過計分電路中的K1~K6鍵完成此功能,K1、K2和K3鍵完成對甲隊的加分,K4、K5和K6鍵完成對乙隊的加分。
加分采用中斷來完成,加分的中斷優先權小于計時電路的中斷優先權,所以不會對計時電路造成影響[2]。如果在比賽過程中,一方教練申請暫停時,經裁判批準,只要按下K9鍵,即可以暫停計時,暫停時間到時,再按K9鍵繼續計時,直至本場比賽結束,蜂鳴器會發出10秒鐘響聲,表示比賽結束。
2.2LCD1602顯示模塊設計
LCD1602顯示器可顯示線段和字符。
(1)LCD1602顯示器線段的顯示。
液晶顯示器各種圖形的顯示原理線段的顯示:點陣圖形式液晶由M×N個顯示單元組成,假設LCD顯示屏有64行,每行有128列,每8列對應1字節的8位,即每行由16字節,共16×8=128個點組成,屏上64×16個顯示單元與顯示RAM區1024字節相對應,每一字節的內容和顯示屏上相應位置的亮暗對應[3]。例如屏的第一行的亮暗由RAM區的000H—00FH的16字節的內容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。
(2)LCD1602顯示器字符的顯示:用LCD顯示一個字符時比較復雜,因為一個字符由6×8或8×8點陣組成,既要找到和示屏幕上某幾個位置對應的顯示RAM區的8字節,還要使每字節的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮,這樣一來就組成了某個字符[4]。
系統的軟件由主流程、中斷程序流程、顯示部分等組成。主流程如圖2所示。

圖2 主流程圖
部分軟件的設計:
(1)LCM初始化。
void LCMInit(void) //LCM初始化
{
LCM_Data = 0;
WriteCommandLCM(0x38,0); //三次顯示模式設置,不檢測忙信號
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,1); //顯示模式設置,開始要求每次檢測忙信號
WriteCommandLCM(0x08,1); //關閉顯示
WriteCommandLCM(0x01,1); //顯示清屏
WriteCommandLCM(0x06,1); // 顯示光標移動設置
WriteCommandLCM(0x0C,1); // 顯示開及光標設置
}
(2)按指定位置顯示一個字符。
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
if (Y) X |= 0x40; //當要顯示第二行時地址碼 0x40;
X |= 0x80; // 算出指令碼
WriteCommandLCM(X, 0); //這里不檢測忙信號,發送地址碼
WriteDataLCM(DData);
}
經調試,籃球計時計分器利用單片機實現了比賽計時計分的各項功能。系統電路簡單,操作使用方便易攜帶,成本較低,靈敏可靠,計分準確,具有較高的使用價值,可廣泛適合各類學校和小團體作為賽程計時計分使用。
參考文獻
[1]康華光.電子技術基礎(第四版)[M].北京:高等教育出版社,2012.
[2]基于單片機控制的計時系統設計[J].微計算機信息,2012(4):54~57.
[3]吳昌東.基于單片機的新型顯示器設計[J].微計算機信息,2013(7):133~134.
[4]王偉,劉曉平.高精度數字電壓表方案設計[J].儀表技術,2012(8):36~39.
趙源(1995-),陜西西安人,現就讀于西安文理學院信息工程學院,研究方向:軟件工程。
Design of basketball timing and scoring device based on single chip microcomputer
Zhao Yuan Han Xu Han Likai
(Xi’an University of Arts and Science, Shaanxi 710065, China Aviation Industry Xi’an aviation engine (Group) Co., Ltd. Shaanxi 710021, Xi’an University of Arts and Science, Shaanxi 710065)
Abstract:the basketball timing and scoring system based on single chip microcomputer, which is based on the basketball rules, has the functions of timing setting, time pause, score statistics and so on. It has the characteristics of low price, stable performance, easy to operate and easy to carry, and it is suitable for the use of time and score in the basketball match at the basic level.
Key words:single chip microcomputer; basketball game; timing and scoring device; display
作者簡介: