籃球賽計(jì)時(shí)計(jì)分器的設(shè)計(jì)_第1頁
籃球賽計(jì)時(shí)計(jì)分器的設(shè)計(jì)_第2頁
籃球賽計(jì)時(shí)計(jì)分器的設(shè)計(jì)_第3頁
籃球賽計(jì)時(shí)計(jì)分器的設(shè)計(jì)_第4頁
籃球賽計(jì)時(shí)計(jì)分器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 題 目 籃球賽計(jì)時(shí)計(jì)分器的設(shè)計(jì) 學(xué)生姓名 李照明 學(xué)號(hào) 所在學(xué)院 陜西理工學(xué)院 專業(yè)班級(jí) 電子1203班 指導(dǎo)教師 梁芳 完成地點(diǎn) 物理與電信工程學(xué)院實(shí)驗(yàn)室 2016 年 6 月 2 日 籃球賽計(jì)時(shí)計(jì)分器的設(shè)計(jì) 作者:李照明 (陜西理工學(xué)院 物理與電信工程學(xué)院 電子信息工程專業(yè)12級(jí)3班,陜西 ) 指導(dǎo)老師:梁芳 摘要介紹基于STC89C51單片機(jī)的籃球比賽計(jì)時(shí)計(jì)分系統(tǒng)。本次設(shè)計(jì)的籃球賽計(jì)時(shí)計(jì)分系統(tǒng)通過STC89C51編 程控制LED七段數(shù)碼管來實(shí)現(xiàn)計(jì)時(shí)和計(jì)分的功能。通過按鍵控制電路設(shè)置比賽定時(shí)時(shí)間,暫停時(shí)間,立即刷新甲、 乙兩隊(duì)的比分, 比賽進(jìn)行到半場(chǎng)結(jié)束交換場(chǎng)地時(shí),兩隊(duì)比分能交換顯示的位

2、置,比賽結(jié)束時(shí),系統(tǒng)可以發(fā)出報(bào)警的指令以及在賽后 及時(shí)暫存成績(jī)等功能。該系統(tǒng)價(jià)格低廉,性能穩(wěn)定,攜帶方便且操作簡(jiǎn)潔,廣泛應(yīng)用于各類學(xué)校或者小型團(tuán)體作為 賽程計(jì)時(shí)計(jì)分。 關(guān)鍵詞單片機(jī);籃球比賽計(jì)時(shí)計(jì)分器;數(shù)碼管 Design of timing and scoring device for basketball match Author:Zhaoming Li (Grade 12,Class 03,Major in Electronics /數(shù)碼管0-9的編碼 unsigned char minit,second,count,count1; /分,秒,計(jì)數(shù)器 sbit add1=P10;/甲對(duì)加

3、分,每按一次加1分 /在未開始比賽時(shí)為加時(shí)間分 sbit dec1=P11;/甲對(duì)減分,每按一次減1分 /在未開始比賽時(shí)為減時(shí)間分 sbit exchange=P12;/交換場(chǎng)地 sbit add2=P13;/乙對(duì)加分,每按一次加1分 /在未開始比賽時(shí)為加時(shí)間秒 sbit dec2=P14;/乙對(duì)減分,每按一次減1分 /在未開始比賽時(shí)為減時(shí)間秒 sbit secondpoint=P07;/秒閃動(dòng)點(diǎn) /-數(shù)碼管的位選控制腳,共有11位數(shù)碼管- sbit led1=P27; sbit led2=P26; sbit led3=P25; sbit led4=P24; sbit led5=P23; sb

4、it led6=P22; sbit led7=P21; sbit led8=P20; sbit led9=P37; sbit led10=P36; sbit led11=P35; sbit alam=P17;/報(bào)警 bit playon=0;/比賽進(jìn)行標(biāo)志位,為1時(shí)表示比賽開始,計(jì)時(shí)開啟 bit timeover=0;/比賽結(jié)束標(biāo)志位,為1時(shí)表示時(shí)間已經(jīng)完 bit AorB=0;/甲乙對(duì)交換位置標(biāo)志位 bit halfsecond=0;/半秒標(biāo)志位 unsigned int scoreA;/甲隊(duì)得分 unsigned int scoreB;/乙隊(duì)得分 /=延時(shí)= void Delay5ms(v

5、oid) unsigned int i; for(i=100;i0;i-); void display(void) /-顯示時(shí)間分- LEDData=LEDCodeminit/10; /顯示分鐘的十位 led1=0;/開啟位選 Delay5ms();/延時(shí),以便足以點(diǎn)亮數(shù)碼管。 led1=1;/關(guān)閉位選 LEDData=LEDCodeminit%10;/顯示分鐘的個(gè)位 led2=0; Delay5ms(); led2=1; /-秒點(diǎn)閃動(dòng)- if(halfsecond=1) LEDData=0 x80; else LEDData=0 x00; led2=0; Delay5ms(); led2=1

6、; secondpoint=0; /-顯示時(shí)間秒- LEDData=LEDCodesecond/10;/顯示秒鐘的十位 led3=0; Delay5ms(); led3=1; LEDData=LEDCodesecond%10;/顯示秒鐘的個(gè)位 led4=0; Delay5ms(); led4=1; /-顯示1組的分?jǐn)?shù)百位- if(AorB=0) LEDData=LEDCodescoreA/100; else LEDData=LEDCodescoreB/100; led5=0; Delay5ms(); led5=1; /-顯示1組分?jǐn)?shù)的十位- if(AorB=0) LEDData=LEDCode

7、(scoreA%100)/10; else LEDData=LEDCode(scoreB%100)/10; led6=0; Delay5ms(); led6=1; /-顯示1組分?jǐn)?shù)的個(gè)位- if(AorB=0) LEDData=LEDCodescoreA%10; else LEDData=LEDCodescoreB%10; led7=0; Delay5ms(); led7=1; /-顯示2組分?jǐn)?shù)的百位- if(AorB=1) LEDData=LEDCodescoreA/100; else LEDData=LEDCodescoreB/100; led8=0; Delay5ms(); led8=1

8、; /-顯示2組分?jǐn)?shù)的十位- if(AorB=1) LEDData=LEDCode(scoreA%100)/10; else LEDData=LEDCode(scoreB%100)/10; led9=0; Delay5ms(); led9=1; /-顯示2組分?jǐn)?shù)的個(gè)位- if(AorB=1) LEDData=LEDCodescoreA%10; else LEDData=LEDCodescoreB%10; led10=0; Delay5ms(); led10=1; /=按鍵檢測(cè)程序= = void keyscan(void) if(playon=0)/在比賽未開始的狀態(tài)下 if(add1=0)/

9、當(dāng)add1按鍵按下時(shí) display();/調(diào)用顯示,同時(shí)作為延時(shí)消抖 if(add1=0);/延時(shí)消抖后,依然檢查到按鍵按下 if(minit0) minit-; else minit=0; do display(); while(dec1=0); if(add2=0)/調(diào)整秒,與上原理相同 display(); if(add2=0); if(second0) second-; else second=0; do display(); while(dec2=0); if(exchange=0)/換場(chǎng)鍵 display(); if(exchange=0); TR1=0;/關(guān)閉T1計(jì)數(shù)器 ala

10、m=1;/關(guān)報(bào)警 AorB=AorB;/開啟交換 minit=15;/并將時(shí)間預(yù)設(shè)為15:00 second=0; do display(); while(exchange=0); else/在比賽開始時(shí)。 if(add1=0)/當(dāng)add1鍵按下時(shí), display();/調(diào)用顯示,同時(shí)作為延時(shí)消抖, if(add1=0); if(AorB=0)/當(dāng)場(chǎng)地標(biāo)志位=0時(shí), if(scoreA999)/當(dāng)A方的比分小于999時(shí),比分加1 scoreA+; else scoreA=999;/否則最大值為999分 else/當(dāng)場(chǎng)地標(biāo)志位=1時(shí), if(scoreB0) scoreA-; else sco

11、reA=0; else if(scoreB0) scoreB-; else scoreB=0; do display(); while(dec1=0); if(add2=0)/原理與上一樣 display(); if(add2=0); if(AorB=1) if(scoreA999) scoreA+; else scoreA=999; else if(scoreB0) scoreA-; else scoreA=0; else if(scoreB0) scoreB-; else scoreB=0; do display(); while(dec2=0); /*主函數(shù)* * void main(v

12、oid) TMOD=0 x11;/TMOD設(shè)置 TL0=0 xb0;/定時(shí)器0,初值為0 x3CB0,既定時(shí)0.05s TH0=0 x3c; TL1=0 xb0;/定時(shí)器1,初值為0 x3CB0,即定時(shí)0.05s TH1=0 x3c; minit=15;/初始值為15:00 second=0; EA=1;/開總中斷 ET0=1;/開T0中斷 ET1=1;/開T1中斷 TR0=0; TR1=0; EX0=1;/開外部中斷0 IT0=1; IT1=1; /EX1=1; PX0=1; /PX1=1; PT0=0; P1=0 xFF; P3=0 xFF; while(1) keyscan();/按鍵檢

13、查 display();/顯示程序 /=外部中斷0中斷程序= void PxInt0(void) interrupt 0 Delay5ms(); EX0=0;/關(guān)中斷使能 alam=1;/關(guān)蜂鳴器 TR1=0;/關(guān)定時(shí)器0 if(timeover=1)/當(dāng)一節(jié)比較時(shí)間結(jié)束時(shí),結(jié)束標(biāo)志位=1 timeover=0;/清除標(biāo)志位 if(playon=0)/當(dāng)比賽結(jié)束或暫停時(shí) playon=1;/開始標(biāo)志位 TR0=1;/開啟計(jì)時(shí) else playon=0;/開始標(biāo)志位清零,表示暫停 TR0=0;/暫停計(jì)時(shí) EX0=1;/重新開中斷 /=定時(shí)器0中斷服務(wù)函數(shù)= void time0_int(voi

14、d) interrupt 1 TL0=0 xb0;/重賦初值 TH0=0 x3c; TR0=1;/啟動(dòng)計(jì)時(shí) count+;/軟件計(jì)數(shù)器加1 if(count=10)/0.05s*10=0.5s,即0.5秒鐘時(shí) halfsecond=0;/半秒標(biāo)志位清零 if(count=20)/0.05s*20=1s,即1秒鐘 count=0;/清除計(jì)數(shù)器 halfsecond=1;/半秒標(biāo)志置1 if(second=0) /倒計(jì)時(shí),每計(jì)時(shí)1秒鐘,時(shí)間減1,當(dāng)秒=0時(shí),秒=59,分鐘減1 if(minit0) second=59; minit-; else/當(dāng)分,秒都為0時(shí),表示倒計(jì)時(shí)時(shí)間到, timeove

15、r=1;/時(shí)間標(biāo)志位置1 playon=0;/比賽標(biāo)志清0,表示1節(jié)比賽結(jié)束 TR0=0;/關(guān)閉定時(shí)器0 TR1=1;/開啟定時(shí)1,使蜂鳴器報(bào)警 else second-; /=定時(shí)器1中斷服務(wù)函數(shù)= void time1_int(void) interrupt 3 TL1=0 xb0;/重賦初值 TH1=0 x3c; TR1=1;/啟動(dòng)計(jì)時(shí) count1+;/軟件計(jì)數(shù)器加1 if(count1=10)/0.05s*10=0.5s,也就是半秒鐘 alam=0;/開啟蜂鳴器 if(count1=20)/0.05s*20=1s,也就是1秒鐘 count1=0;/清除軟件計(jì)數(shù)器, alam=1;/關(guān)閉蜂鳴器,也就是蜂鳴器以1秒的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論