版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 費(fèi)用報(bào)銷制度
- 評(píng)優(yōu)評(píng)先制度
- 2025 小學(xué)四年級(jí)科學(xué)下冊(cè)合作學(xué)習(xí)的組織與評(píng)價(jià)課件
- 老年人護(hù)理用專業(yè)與愛心守護(hù)長(zhǎng)者健康
- 2026北京人保財(cái)險(xiǎn)分公司校園招聘參考考試題庫(kù)附答案解析
- 2026年度青島市市南區(qū)所屬事業(yè)單位公開招聘工作人員(25名)參考考試題庫(kù)附答案解析
- 2026山東事業(yè)單位統(tǒng)考威海經(jīng)濟(jì)技術(shù)開發(fā)區(qū)鎮(zhèn)街招聘初級(jí)綜合類崗位15人參考考試試題附答案解析
- 2026交通運(yùn)輸部所屬事業(yè)單位第四批招聘160人參考考試題庫(kù)附答案解析
- 2026山東濟(jì)寧金鄉(xiāng)縣事業(yè)單位招聘初級(jí)綜合類崗位人員備考考試題庫(kù)附答案解析
- 2026臨沂職業(yè)學(xué)院招聘教師和教輔人員22人參考考試試題附答案解析
- 項(xiàng)目論證制度
- 股東合作協(xié)議模板
- Y -S-T 732-2023 一般工業(yè)用鋁及鋁合金擠壓型材截面圖冊(cè) (正式版)
- GB/T 43829-2024農(nóng)村糞污集中處理設(shè)施建設(shè)與管理規(guī)范
- 萬科物業(yè)服務(wù)指南房屋和設(shè)施維修管理
- 高一英語完型填空10篇實(shí)戰(zhàn)訓(xùn)練及答案
- 施工吊籃工程監(jiān)理實(shí)施細(xì)則
- 10kV架空線路現(xiàn)場(chǎng)驗(yàn)收表
- 抗體偶聯(lián)藥物(ADC)專題分析報(bào)告
- 浙江省生態(tài)環(huán)境專業(yè)工程師職務(wù)任職資格量化評(píng)價(jià)表
- 成都市計(jì)劃生育條例
評(píng)論
0/150
提交評(píng)論