籃球計時計分器設計報告8400字_第1頁
籃球計時計分器設計報告8400字_第2頁
籃球計時計分器設計報告8400字_第3頁
籃球計時計分器設計報告8400字_第4頁
籃球計時計分器設計報告8400字_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

籃球計時計分器設計報告8400字

湖南鐵道職業(yè)技術學院電氣工程系電子設計大賽設計報告作品名稱:基于單片機的籃球計時記分系統(tǒng)的設計作者:智能電子081班**創(chuàng)作時間:20XX年4月6日目錄一、前言二、設計任務與要求三、總體方案四、單元模塊設計五、程序六、操作說明七、設計總結八、參考文獻九、附:(原理圖)一、前言1、引言在當今社會隨著物質生活的提高,人們對精神文化的需求也越來越高。籃球競技就是其中非常重要的一個方面,而計時記分系統(tǒng)在競賽中更是重中之重。

在籃球比賽中,總的倒計時是必需的,規(guī)定為12min。除此以外,為了加快比賽節(jié)奏,還規(guī)定了隊員的持球時間不能超過24s,否則就犯規(guī)。這里所設計的計時器涵蓋了以上要求,可用于籃球比賽中。用于對總時間和持球時間24s的限制。2、設計簡介本設計是采用AT89S51單片機設計的一個用于籃球比賽的籃球計時計分器。本設計采用定時器T0中斷進行計時,顯示部分分為計時顯示和計分顯示兩部分,均采用LED數碼管動態(tài)顯示,用于顯示整個比賽賽程的比賽時間和兩隊的比分情況。采用四個鍵盤和外部中斷0實現(xiàn)輸入功能,用于賽前調節(jié)時間、比賽過程中計分、暫停和開始、比賽時間結束以后報警等功能。另外,本設計最大的特點是對設定時間的記憶功能。基于籃球比賽是分節(jié)進行的,每節(jié)有固定的時間。本設計可事先設定一節(jié)比賽的時間,一節(jié)比賽結束后,比分保持不變,再次開始后,是從上次設定的時間開始計時。本設計采用AT89S51單片機作為核心部件,整個系統(tǒng)結構簡單、實用性強、操作簡便、具有低功耗,可靠性,安全性以及低成本等特點,該設計方案完全滿足籃球計分器的設計要求。

現(xiàn)在籃球比賽計時器的設計大都比較的復雜,所用芯片太多,造成整體的價格提高,而且軟件設計比較的復雜。導致性價比不是很高,很難得到廣泛的推廣。我所設計的這個籃球比賽計時器一改他們的缺點,硬件比較的簡單,軟件也很容易。因此,實用性比較大。二、設計任務與要求1、設計任務:設計并制作一個用于籃球比賽計時計分器,能顯示各種比賽時間,并顯示比賽比分,能實現(xiàn)每次加、減分和時間修改操作,平時顯示時間、時間精確到0.1S。2、設計要求:(一)采用單片機控制,響應迅速,判別精確;主控臺面上有按鍵控制,可同時對比賽時的分數顯示進行加分減分,能顯示整個賽程的比賽時間,暫停時間和比賽的節(jié)數。(二)在比賽的過程中能夠隨時刷新各隊在整個賽程中的比分,通過按鍵輸入比分,顯示在數碼管上;按鍵分別為加1分、減1分鍵和改變當前記分球隊功能鍵。(三)具有計時功能,能正確設置倒計時時間和比賽的節(jié)數,每節(jié)總時間倒計時,24S倒計時,倒計時到聲光報警。比如,第1節(jié)開始12分種倒計時,屏幕顯示“7200.0”“24.0”準備開始倒計時,按開始鍵開始倒計時。(四)具有開始、暫停功能。三、總體方案1、方案比較與選擇一、單片機的選型方案一:51單片機雖然51單片機是8位的,采用總線結構,但具有編程控制簡便、接口簡單、工作可靠,價格經濟,能耗少,容易實現(xiàn)系統(tǒng)小型化。方案二:61單片機61單片機是在51的基礎上擴展起來的,雖然比51多了看門狗,并且是非總線結構,它是16位的,支持16位硬件乘法,還有專門的乘加指令,現(xiàn)在應用非常廣泛,但61單片機價格較貴,要繼續(xù)擴展,比較不方便。因此本系統(tǒng)采用51單片機來實現(xiàn)。二、計時方案方案一:采用計時芯片針對計算機系統(tǒng)對計時芯片的要求,各大芯片廠家推出了鍵時鐘/倒計時/正計時各種芯片,可采用自動控制計時芯片,通過觸發(fā)控制電路使計時器自動地計時,達到預定時間后芯片重新開始計時(實現(xiàn)倒計時功能);也可以通過觸發(fā)控制電路使計時器不計時,達到預定時間后芯片重新開始計時(實現(xiàn)暫停功能),不需要程序干預。計算機可通過中斷或查詢方式讀取計時器數據,實現(xiàn)計時的暫停的功能,并進行顯示,計時功能的實現(xiàn)就無需占用CPU的時間,程序簡單,控制精度高,因此在工業(yè)控制系統(tǒng)中多采用這一類專用芯片來實現(xiàn)計時功能。方案二:軟件控制利用MCS-51內部的定時器/計數器進行中斷定時,配合軟件延時實現(xiàn)計時。該方案節(jié)省硬件成本,并且可綜合運用定時器/計數器、中斷以及程序設計的知識。因此本系統(tǒng)采用軟件方法來實現(xiàn)計時。2、設計思路根據設計任務與要求,設計思路如下:系統(tǒng)采用51單片機軟件方法來實現(xiàn)。設計出籃球記分、計時系統(tǒng),能實現(xiàn)兩隊比分的加分、減分(防誤操作)、計時和各種顯示效果;其控制系統(tǒng)的模塊有:6位動態(tài)顯示記分模塊、7位動態(tài)顯示計時模塊、兩隊加分減分模塊、按鍵查詢模塊、分秒控制系統(tǒng);計分統(tǒng)采用了指令冗余和按鍵延時去抖等抗干擾措施。程序由延時函數、顯示函數、主函數、中斷函數、按鍵掃描函數等組成,主函數中調用顯示函數顯示時間、比分并調用延時函數,比分與時間相互切換進而實現(xiàn)籃球比分、時間顯示修改功能。(1)時間顯示用7個數碼管,分數顯示用6個數碼管,用來動態(tài)掃描方式顯示。時間由單片機的P2口掃描,分數由P0口掃描。(2)時間的暫停與開始,分數的累加,通過接入鍵盤電路實現(xiàn)。系統(tǒng)共涉及4個按鍵,分別定義為:

S1鍵功能:1、啟動、暫停鍵,即當比賽需要啟動、暫停時,可以使24s和總時間隨時開始或者暫停;2、切換鍵,即顯示比分狀態(tài)切換顯示時間狀態(tài);3、切換鍵,即退出1隊加減分狀態(tài)進入2隊加減分狀態(tài);S2鍵功能:1、切換鍵,即顯示比分狀態(tài)切換顯示時間狀態(tài);2、加分鍵,1隊加分鍵、2隊加分鍵即分數加1鍵;S3鍵功能:1、減分鍵,1隊加分鍵、2隊加分鍵即分數加1鍵;2、24秒倒計時復位鍵,即24秒倒計時完或中途狀態(tài)中都能重新賦值24秒;S4鍵功能:12分倒計時復位鍵,即12分倒計時完開始下一節(jié)比賽計時即重新賦值12分鐘;3、硬件電路的設計

根據設計要求與設計思路,確定該系統(tǒng)的設計方案,圖1為該系統(tǒng)設計方案的硬件電路設計框圖。硬件電路由7部分組成:即按鍵輸入電路、單片機、時鐘電路、復位電路、LED數碼管段驅動電路和LED數碼管位驅動電路,LED顯示器。四、單元模塊設計1、設計特點:本設計特點是采用模塊化的設計。其優(yōu)點是:每個模塊的程序結構簡單,任務明確,易于編寫,調試和修改。程序可讀性好,對程序的修改可局部進行,其他部分可保持不變。這里所設計的籃球比賽系統(tǒng),也可以加以修改,用于其他比賽系統(tǒng)或其他用倒計時的系統(tǒng)中。根據模塊的劃分原則,將模塊程序劃分成幾個模塊,如圖2所示:1、延時模塊:程序調用前先聲明,能隨時隨地調用。2、按鍵模塊:按鍵掃描程序主程序中調用,方便快捷。3、數據輸出模塊:時間模塊:每節(jié)總時間倒計時與24秒倒計時,倒計時到聲光報警模塊。比分模塊:具有加減分功能,并在數碼管上顯示雙方比分比賽雙方比分能隨時隨地修改。4、定時中斷模塊:同時控制每節(jié)總時間倒計時和24S倒計時。2、軟件設計流程圖:3、設計結果設計的籃球比賽計時記分系統(tǒng)。按照設計要求實現(xiàn)了單節(jié)12rain的倒計時,24s進攻的倒計時,以及兩隊的記分功能,實現(xiàn)了籃球計時計分器的全部功能,符合NBA籃球計時計分要求。五、程序#include<reg51.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;typedefunsignedlongintUINT32;全局聲明----------------------------------*/codeUINT8SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};codeUINT8SELECT_Score[6]={0x7f,0xbf,0xdf,0xfb,0xfd,0xfe};codeUINT8SELECT_12munite[4]={0x7f,0xbf,0xdf,0xef};codeUINT8SELECT_24sec[3]={0xfb,0xfd,0xfe};#defineS10x0e#defineS20x0d#defineS30x0b#defineS40x0fUINT16ScoreA,ScoreB;UINT16sec=240,munite=7200;sbitBELL=P3^5;延時函數----------------------------------*/voidDelay(UINT16t){UINT16i,j;for(i=0;i<t;i++)for(j=0;j<113;j++);}鍵盤掃描---------------------------------*/UINT8Scankey(void){UINT8key;if((P3&0x0f)==0x0f)return(0xff);Delay(10);if((P3&0x0f)==0x0f)return(0xff);key=P3&0x0f;while((P3&0x0f)!=0x0f);return(key);}12分計時顯示函數-----------------------------------*/voidDisplay_munite(UINT16munite,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[munite/1000];break;case1:P0=SEGMENT[munite%1000/100];break;case2:P0=SEGMENT[munite%100/10]&0x7f;break;case3:P0=SEGMENT[munite%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_12munite[count];count1%=200;count++;count%=4;}24秒計時顯示函數-----------------------------------*/voidDisplay_sec(UINT16sec,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[sec/100];break;case1:P0=SEGMENT[sec%100/10]&0x7f;break;case2:P0=SEGMENT[sec%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_24sec[count];count1%=200;count++;count%=3;}計分顯示函數-----------------------------------*/voidDisplay_Score(UINT8ScoreA,UINT8ScoreB){staticUINT8count=0;P2=0xff;switch(count){case0:P0=SEGMENT[ScoreA/100];break;case1:P0=SEGMENT[ScoreA%100/10];break;case2:P0=SEGMENT[ScoreA%10];break;case3:P0=SEGMENT[ScoreB/100];break;case4:P0=SEGMENT[ScoreB%100/10];break;case5:P0=SEGMENT[ScoreB%10];break;}P2=SELECT_Score[count];count++;count%=6;}中斷初始化-----------------------------------*/voidTimer0_Int(void){TMOD=0x01;TH0=0x4c;TL0=0x00;IE=0x82;}比分加減、啟動暫停函數---------------------------------*/voidAdjust(void){UINT8c,e,num;UINT8ScoreA,ScoreB;c=Scankey();switch(c){caseS1:TR0=!TR0;break;caseS2:TR0=0;while(1){Display_Score(ScoreA,ScoreB);Delay(2);e=Scankey();switch(e){caseS1:num++;break;caseS2:if(num==0)ScoreA+=1;if(num==1)ScoreB+=1;break;caseS3:if(num==0)ScoreA-=1;if(num==1)ScoreB-=1;break;}if(num==2)break;}break;caseS3:TR0=0;sec=240;BELL=1;break;caseS4:TR0=0;munite=7200;BELL=1;break;}}主函數-----------------------------------*/main(){Timer0_Int();while(1){Adjust();Delay(2);if(sec==0){TR0=0;Display_sec(0,1);BELL=0;}elseif(munite==0){TR0=0;Display_munite(0,1);BELL=0;}elseDisplay_sec(sec,0);Delay(2);Display_munite(munite,0);}}定時器T0-----------------------------------*/voidTimer_sec_Int(void)interrupt1{staticUINT8num=0;TH0=0x4c;TL0=0x00;num++;while(num==2){sec--;num=0;munite--;num=0;}}五、操作說明書1、設計功能說明本設計以89S5l單片機為核心器件,組成一個電子計時記分系統(tǒng);系統(tǒng)顯示由8位數碼管組成,分別為記分牌與倒計時牌;可隨時記分,隨時暫停,隨時開始。2、操作說明1、接通電源,系統(tǒng)初始化,數碼管顯示倒計時狀態(tài)為小節(jié)總倒計時和進攻倒計時:“720.0,24.0”。2、當按下開始/暫停按鈕S1后,計時的緩沖區(qū)初始化開始倒計時,系統(tǒng)通過不斷地查詢加減分按鍵(S2,S3)是否按下,若有,經過按鍵去抖動程序后,查詢到當按下S2鍵,系統(tǒng)從倒計時狀態(tài)切換到比分狀態(tài)顯示,顯示為“000,000”然后選擇給紅隊或者籃隊加減分,并進行相應隊的記分顯示處理,同時不斷地查詢按鍵,判斷有無其他指令。如有無暫停,有就調用暫停程序,執(zhí)行暫停;同時查詢S4鍵有無按下重新賦值進攻時間24S,當第一節(jié)比賽結束后,按下S3鍵重新賦值總倒計時12分,這樣又進行第二節(jié)的比賽。第三節(jié)、第四節(jié)與第一節(jié)的處理方法相同。中途可以任意時候接連按下S1兩次,從比分顯示狀態(tài)切換至倒計時顯示狀態(tài)。3、進入比分顯示狀態(tài)后,系統(tǒng)默認為先為紅隊加減分狀態(tài)。按下S1鍵,則切換至為籃隊加減分狀態(tài)。同時,系統(tǒng)不斷地查詢按鍵,判斷是加分(S2)還是減分(S3)指令,并作出相應的命令。附:系統(tǒng)共涉及的4個按鍵,分別定義資料:

S1鍵功能:1、啟動、暫停鍵,即當比賽需要啟動、暫停時,可以使24s和總時間隨時開始或者暫停;2、切換鍵,即顯示比分狀態(tài)切換顯示時間狀態(tài);3、切換鍵,即退出1隊加減分狀態(tài)進入2隊加減分狀態(tài);S2鍵功能:1、切換鍵,即顯示比分狀態(tài)切換顯示時間狀態(tài);2、加分鍵,1隊加分鍵、2隊加分鍵即分數加1鍵;S3鍵功能:1、減分鍵,1隊加分鍵、2隊加分鍵即分數加1鍵;2、24秒倒計時復位鍵,即24秒倒計時完或中途狀態(tài)中都能重新賦值24秒;S4鍵功能:12分倒計時復位鍵,即12分倒計時完開始下一節(jié)比賽計時即重新賦值12分鐘;七、設計總結一、設計心得:1、勇往直前,迎難而上在此次任務中,我遇到了各種各樣的問題,通過努力下最終解決了難題。問題是用來解決的,只要勇往直前,就可以解決所遇到的難題。2、努力學習,共創(chuàng)未來通過此次個人設計與制作,讓我更深入的了解到單片機的功能,提高了對單片機學習的興趣。培養(yǎng)了興趣,找到了自己的知識盲點,對以后學習有很好的向導作用。二、不足與改進:1、硬件:本設計硬件有待進一步完善和提高。例:為節(jié)約成本只用了八個LED數碼管,時間與比分不能同時顯示,只能通過切換實現(xiàn)顯示功能。不過這也是本設計的一大特點:成本低廉。2、軟件程序:本設計程序也進一步完善和提高。例:為節(jié)約成本只用了四個按鍵控制,因而只能加減1分,不能實現(xiàn)加減2分、3分;無中場比賽調換雙方比分位置功能;沒有實現(xiàn)加時賽功能。3、總結:不過這些都是可以解決的問題,而且不難,只要在精心準備下,一定能更好。三、結束語

本設計系統(tǒng)采用MCS-51單片機AT89S51實現(xiàn),外圍電路簡單,可維護性強;完全能滿足籃球比賽中計時、記分的設計要求,通過改變系統(tǒng)軟件的方法,還可以將該系統(tǒng)改為乒乓球、排球計分系統(tǒng)。八、參考文獻[1]王靜霞主編.《單片機應用技術(C語言版)》[M].電子工業(yè)出版社,2009年.[2]劉守義主編.《單片機應用技術》[M].西安電子科技大學出版社,2002年.[3]張大明主編.《單片微機控制應用技術》[M].機械工業(yè)出版社,2000年.[4]李俊婷主編.《計算機輔助電路設計與ProtelDXP》[M].高等教育出版社,2005年.[5]百度資訊.九、附:(原理圖)

+籃球計時計分器設計報告發(fā)表于:2022.12.26來自:字數:8800手機看范文湖南鐵道職業(yè)技術學院電氣工程系電子設計大賽設計報告作品名稱:基于單片機的籃球計時記分系統(tǒng)的設計作者:智能電子081班**創(chuàng)作時間:20XX年4月6日目錄一、前言二、設計任務與要求三、總體方案四、單元模塊設計五、程序六、操作說明七、設計總結八、參考文獻九、附:(原理圖)一、前言1、引言在當今社會隨著物質生活的提高,人們對精神文化的需求也越來越高。籃球競技就是其中非常重要的一個方面,而計時記分系統(tǒng)在競賽中更是重中之重。

在籃球比賽中,總的倒計時是必需的,規(guī)定為12min。除此以外,為了加快比賽節(jié)奏,還規(guī)定了隊員的持球時間不能超過24s,否則就犯規(guī)。這里所設計的計時器涵蓋了以上要求,可用于籃球比賽中。用于對總時間和持球時間24s的限制。2、設計簡介本設計是采用AT89S51單片機設計的一個用于籃球比賽的籃球計時計分器。本設計采用定時器T0中斷進行計時,顯示部分分為計時顯示和計分顯示兩部分,均采用LED數碼管動態(tài)顯示,用于顯示整個比賽賽程的比賽時間和兩隊的比分情況。采用四個鍵盤和外部中斷0實現(xiàn)輸入功能,用于賽前調節(jié)時間、比賽過程中計分、暫停和開始、比賽時間結束以后報警等功能。另外,本設計最大的特點是對設定時間的記憶功能。基于籃球比賽是分節(jié)進行的,每節(jié)有固定的時間。本設計可事先設定一節(jié)比賽的時間,一節(jié)比賽結束后,比分保持不變,再次開始后,是從上次設定的時間開始計時。本設計采用AT89S51單片機作為核心部件,整個系統(tǒng)結構簡單、實用性強、操作簡便、具有低功耗,可靠性,安全性以及低成本等特點,該設計方案完全滿足籃球計分器的設計要求。

現(xiàn)在籃球比賽計時器的設計大都比較的復雜,所用芯片太多,造成整體的價格提高,而且軟件設計比較的復雜。導致性價比不是很高,很難得到廣泛的推廣。我所設計的這個籃球比賽計時器一改他們的缺點,硬件比較的簡單,軟件也很容易。因此,實用性比較大。二、設計任務與要求1、設計任務:設計并制作一個用于籃球比賽計時計分器,能顯示各種比賽時間,并顯示比賽比分,能實現(xiàn)每次加、減分和時間修改操作,平時顯示時間、時間精確到0.1S。2、設計要求:(一)采用單片機控制,響應迅速,判別精確;主控臺面上有按鍵控制,可同時對比賽時的分數顯示進行加分減分,能顯示整個賽程的比賽時間,暫停時間和比賽的節(jié)數。(二)在比賽的過程中能夠隨時刷新各隊在整個賽程中的比分,通過按鍵輸入比分,顯示在數碼管上;按鍵分別為加1分、減1分鍵和改變當前記分球隊功能鍵。(三)具有計時功能,能正確設置倒計時時間和比賽的節(jié)數,每節(jié)總時間倒計時,24S倒計時,倒計時到聲光報警。比如,第1節(jié)開始12分種倒計時,屏幕顯示“7200.0”“24.0”準備開始倒計時,按開始鍵開始倒計時。(四)具有開始、暫停功能。三、總體方案1、方案比較與選擇一、單片機的選型方案一:51單片機雖然51單片機是8位的,采用總線結構,但具有編程控制簡便、接口簡單、工作可靠,價格經濟,能耗少,容易實現(xiàn)系統(tǒng)小型化。方案二:61單片機61單片機是在51的基礎上擴展起來的,雖然比51多了看門狗,并且是非總線結構,它是16位的,支持16位硬件乘法,還有專門的乘加指令,現(xiàn)在應用非常廣泛,但61單片機價格較貴,要繼續(xù)擴展,比較不方便。因此本系統(tǒng)采用51單片機來實現(xiàn)。二、計時方案方案一:采用計時芯片針對計算機系統(tǒng)對計時芯片的要求,各大芯片廠家推出了鍵時鐘/倒計時/正計時各種芯片,可采用自動控制計時芯片,通過觸發(fā)控制電路使計時器自動地計時,達到預定時間后芯片重新開始計時(實現(xiàn)倒計時功能);也可以通過觸發(fā)控制電路使計時器不計時,達到預定時間后芯片重新開始計時(實現(xiàn)暫停功能),不需要程序干預。計算機可通過中斷或查詢方式讀取計時器數據,實現(xiàn)計時的暫停的功能,并進行顯示,計時功能的實現(xiàn)就無需占用CPU的時間,程序簡單,控制精度高,因此在工業(yè)控制系統(tǒng)中多采用這一類專用芯片來實現(xiàn)計時功能。方案二:軟件控制利用MCS-51內部的定時器/計數器進行中斷定時,配合軟件延時實現(xiàn)計時。該方案節(jié)省硬件成本,并且可綜合運用定時器/計數器、中斷以及程序設計的知識。因此本系統(tǒng)采用軟件方法來實現(xiàn)計時。2、設計思路根據設計任務與要求,設計思路如下:系統(tǒng)采用51單片機軟件方法來實現(xiàn)。設計出籃球記分、計時系統(tǒng),能實現(xiàn)兩隊比分的加分、減分(防誤操作)、計時和各種顯示效果;其控制系統(tǒng)的模塊有:6位動態(tài)顯示記分模塊、7位動態(tài)顯示計時模塊、兩隊加分減分模塊、按鍵查詢模塊、分秒控制系統(tǒng);計分統(tǒng)采用了指令冗余和按鍵延時去抖等抗干擾措施。程序由延時函數、顯示函數、主函數、中斷函數、按鍵掃描函數等組成,主函數中調用顯示函數顯示時間、比分并調用延時函數,比分與時間相互切換進而實現(xiàn)籃球比分、時間顯示修改功能。(1)時間顯示用7個數碼管,分數顯示用6個數碼管,用來動態(tài)掃描方式顯示。時間由單片機的P2口掃描,分數由P0口掃描。(2)時間的暫停與開始,分數的累加,通過接入鍵盤電路實現(xiàn)。系統(tǒng)共涉及4個按鍵,分別定義為:

S1鍵功能:1、啟動、暫停鍵,即當比賽需要啟動、暫停時,可以使24s和總時間隨時開始或者暫停;2、切換鍵,即顯示比分狀態(tài)切換顯示時間狀態(tài);3、切換鍵,即退出1隊加減分狀態(tài)進入2隊加減分狀態(tài);S2鍵功能:1、切換鍵,即顯示比分狀態(tài)切換顯示時間狀態(tài);2、加分鍵,1隊加分鍵、2隊加分鍵即分數加1鍵;S3鍵功能:1、減分鍵,1隊加分鍵、2隊加分鍵即分數加1鍵;2、24秒倒計時復位鍵,即24秒倒計時完或中途狀態(tài)中都能重新賦值24秒;S4鍵功能:12分倒計時復位鍵,即12分倒計時完開始下一節(jié)比賽計時即重新賦值12分鐘;3、硬件電路的設計

根據設計要求與設計思路,確定該系統(tǒng)的設計方案,圖1為該系統(tǒng)設計方案的硬件電路設計框圖。硬件電路由7部分組成:即按鍵輸入電路、單片機、時鐘電路、復位電路、LED數碼管段驅動電路和LED數碼管位驅動電路,LED顯示器。四、單元模塊設計1、設計特點:本設計特點是采用模塊化的設計。其優(yōu)點是:每個模塊的程序結構簡單,任務明確,易于編寫,調試和修改。程序可讀性好,對程序的修改可局部進行,其他部分可保持不變。這里所設計的籃球比賽系統(tǒng),也可以加以修改,用于其他比賽系統(tǒng)或其他用倒計時的系統(tǒng)中。根據模塊的劃分原則,將模塊程序劃分成幾個模塊,如圖2所示:1、延時模塊:程序調用前先聲明,能隨時隨地調用。2、按鍵模塊:按鍵掃描程序主程序中調用,方便快捷。3、數據輸出模塊:時間模塊:每節(jié)總時間倒計時與24秒倒計時,倒計時到聲光報警模塊。比分模塊:具有加減分功能,并在數碼管上顯示雙方比分比賽雙方比分能隨時隨地修改。4、定時中斷模塊:同時控制每節(jié)總時間倒計時和24S倒計時。2、軟件設計流程圖:3、設計結果設計的籃球比賽計時記分系統(tǒng)。按照設計要求實現(xiàn)了單節(jié)12rain的倒計時,24s進攻的倒計時,以及兩隊的記分功能,實現(xiàn)了籃球計時計分器的全部功能,符合NBA籃球計時計分要求。五、程序#include<reg51.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;typedefunsignedlongintUINT32;全局聲明----------------------------------*/codeUINT8SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};codeUINT8SELECT_Score[6]={0x7f,0xbf,0xdf,0xfb,0xfd,0xfe};codeUINT8SELECT_12munite[4]={0x7f,0xbf,0xdf,0xef};codeUINT8SELECT_24sec[3]={0xfb,0xfd,0xfe};#defineS10x0e#defineS20x0d#defineS30x0b#defineS40x0fUINT16ScoreA,ScoreB;UINT16sec=240,munite=7200;sbitBELL=P3^5;延時函數----------------------------------*/voidDelay(UINT16t){UINT16i,j;for(i=0;i<t;i++)for(j=0;j<113;j++);}鍵盤掃描---------------------------------*/UINT8Scankey(void){UINT8key;if((P3&0x0f)==0x0f)return(0xff);Delay(10);if((P3&0x0f)==0x0f)return(0xff);key=P3&0x0f;while((P3&0x0f)!=0x0f);return(key);}12分計時顯示函數-----------------------------------*/voidDisplay_munite(UINT16munite,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[munite/1000];break;case1:P0=SEGMENT[munite%1000/100];break;case2:P0=SEGMENT[munite%100/10]&0x7f;break;case3:P0=SEGMENT[munite%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_12munite[count];count1%=200;count++;count%=4;}24秒計時顯示函數-----------------------------------*/voidDisplay_sec(UINT16sec,UINT8flag){staticUINT8count=0,count1=0;P2=0xff;switch(count){case0:P0=SEGMENT[sec/100];break;case1:P0=SEGMENT[sec%100/10]&0x7f;break;case2:P0=SEGMENT[sec%10];break;}count1++;if(flag==1&&count1<100){}elseP2=SELECT_24sec[count];count1%=200;count++;count%=3;}計分顯示函數-----------------------------------*/voidDisplay_Score(UINT8ScoreA,UINT8ScoreB){staticUINT8count=0;P2=0xff;switch(count){case0:P0=SEGMENT[ScoreA/100];break;case1:P0=SEGMENT[ScoreA%100/10];break;case2:P0=SEGMENT[ScoreA%10];break;case3:P0=SEGMENT[ScoreB/100];break;case4:P0=SEGMENT[ScoreB%100/10];break;case5:P0=SEGMENT[ScoreB%10];break;}P2=SELECT_Score[count];count++;count%=6;}中斷初始化-----------------------------------*/voidTimer0_Int(void){TMOD=0x01;TH0=0x4c;TL0=0x00;IE=0x82;}比分加減、啟動暫停函數---------------------------------*/voidAdjust(void){UINT8c,e,num;UINT8ScoreA,ScoreB;c=Scankey();switch(c){caseS1:TR0=!TR0;break;caseS2:TR0=0;while(1){Display_Score(ScoreA,ScoreB);Delay(2);e=Scankey();switch(e){caseS1:num++;break;caseS2:if(num==0)ScoreA+=1;if(num==1)ScoreB+=1;break;caseS3:if(num==0)ScoreA-=1;if(num==1)ScoreB-=1;break;}if(num==2)break;}break;caseS3:TR0=0;sec=240;BELL=1;break;caseS4:TR0=0;munite=7200;BELL=1;break;}}主函數-----------------------------------*/main(){Timer0_Int();while(1){Adjust();Delay(2);if(sec==0){TR0=0;Display_sec(0,1);BELL=0;}elseif(munite==0){TR0=0;Display_munite(0,1);BELL=0;}elseDisplay_sec(sec,0);Delay(2);Display_munite(munite,0);}}定時器T0-----------------------------------*/voidTimer_sec_Int(void)interrupt1{staticUINT8num=0;TH0=0x4c;TL0=0x00;num++;while(num==2){sec--;num=0;munite--;num=0;}}五、操作說明書1、設計功能說明本設計以89S5l單片機為核心器件,組成一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論