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

下載本文檔

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

文檔簡(jiǎn)介

27/31學(xué)科分類號(hào)0712本科生畢業(yè)論文(設(shè)計(jì))題目(中文):籃球計(jì)時(shí)計(jì)分器的設(shè)計(jì)與實(shí)現(xiàn)(英文):TheDesignandImplementat(yī)ionofBasketballTimingandScoring本科畢業(yè)論文(設(shè)計(jì))誠(chéng)信聲明作者鄭重聲明:所呈交的本科畢業(yè)論文(設(shè)計(jì)),是在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究所取得的成果,成果不存在知識(shí)產(chǎn)權(quán)爭(zhēng)議。除文中已經(jīng)注明引用的內(nèi)容外,論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的成果。對(duì)論文的研究做出重要貢獻(xiàn)的個(gè)人和集體均已在文中以明確的方式標(biāo)明。本聲明的法律結(jié)果由作者承擔(dān)。本科畢業(yè)論文(設(shè)計(jì))作者簽名:年月日目錄TO(shè)C\o"1—3”\h\u摘要?PAGEREF_Toc23126I關(guān)鍵詞?PAGEREF_Toc29006IAbstract PAGEREF_Toc30604IKeywords?PAGEREF_Toc14354II1前言 12系統(tǒng)設(shè)計(jì)基本要求與方案論證 PAGEREF_Toc1956932.1系統(tǒng)設(shè)計(jì)基本要求 PAGEREF_Toc2042432。2系統(tǒng)方案論證 PAGEREF_Toc1937332。2.1以單片機(jī)作為整個(gè)系統(tǒng)的核心 PAGEREF_Toc81432.2。2采用模擬和數(shù)字混合電路來實(shí)現(xiàn) PAGEREF_Toc2567332.2。3系統(tǒng)的總體方案 PAGEREF_Toc2011043系統(tǒng)的總體設(shè)計(jì)?PAGEREF_Toc1476843。1系統(tǒng)硬件設(shè)計(jì) PAGEREF_Toc1283353。1。1時(shí)鐘以及復(fù)位電路?PAGEREF_Toc1966153.1。2鍵盤部分?PAGEREF_Toc495963.1。3報(bào)警部分 PAGEREF_Toc382563.1.4顯示部分 PAGEREF_Toc139173。2系統(tǒng)軟件設(shè)計(jì) PAGEREF_Toc589573。2。1定時(shí)器子程序?PAGEREF_Toc1253583.2.2鍵盤掃描子程序?PAGEREF_Toc11567113。2.3顯示子程序?PAGEREF_Toc30686133.2.4蜂鳴器報(bào)警子程序 PAGEREF_Toc16766144系統(tǒng)測(cè)試與分析?PAGEREF_Toc28806154.1系統(tǒng)測(cè)試 PAGEREF_Toc25831154.1.1硬件測(cè)試?PAGEREF_Toc21447154.1.2功能測(cè)試 PAGEREF_Toc29133154.2系統(tǒng)分析?PAGEREF_Toc11199165小結(jié) PAGEREF_Toc155016參考文獻(xiàn)?PAGEREF_Toc2102217附錄A電路圖?PAGEREF_Toc1706219附錄BPCB雙面板?PAGEREF_Toc47119附錄C實(shí)物圖 PAGEREF_Toc949220附錄D完整程序代碼?21籃球計(jì)時(shí)計(jì)分器的設(shè)計(jì)與實(shí)現(xiàn)摘要本論文旨在設(shè)計(jì)一個(gè)籃球計(jì)時(shí)計(jì)分器,主要利用單片機(jī)AT89C52作為系統(tǒng)的核心元件,二組四位一體共陰極數(shù)碼管作為顯示器件,獨(dú)立式按鍵控制整個(gè)系統(tǒng).主要實(shí)現(xiàn)了倒計(jì)時(shí)、顯示A/B隊(duì)的分?jǐn)?shù)、并加分,減分,比賽結(jié)束鳴笛警示等功能。以C語言作為編程語言,在Keil開發(fā)軟件平臺(tái)上進(jìn)行C源代碼編寫和調(diào)試。與傳統(tǒng)模擬與數(shù)字電路實(shí)現(xiàn)的籃球計(jì)時(shí)計(jì)分器相比,該系統(tǒng)包括很多優(yōu)點(diǎn),比如成本低廉、性能穩(wěn)定、高準(zhǔn)確度顯示、操作方便且易攜帶等,廣泛適合各類學(xué)校和小團(tuán)體作為賽程計(jì)分。關(guān)鍵詞籃球計(jì)分器;AT89C52;七段數(shù)碼管;獨(dú)立式鍵盤TheDesignandImplementat(yī)ionofBasketballTimingandScoringAbstractThispaperaimstodesignaBasketballTimingScoreIndicator,mainlyusingsinglechipmicrocomputerAT89C52,whichisthecoreofthesystemcomponents,andtwogroupsoffourcommoncathodeintegrat(yī)eddigitaltubeasadisplaydevice,andindependenttypebuttonstocontrolthewholesystem。MainlyimplementsthecountdownandA/Bteam'sscore,andcaninAtimelymannerplusandminuspoints,adjustthescore,theendofthegamewhistlingwarnings,andotherfunctions.WithClanguageastheprogramminglanguage,intheKeilsoftwaredevelopmentplatformforwritinganddebugging.Thecompletionofthesystemdesignincludesmanyadvantages,suchaslowcost,stableperformance,highaccuracydisplay,easytooperateandeasytocarry,etc.Suitableforallkindsofschoolandsmallgroupsscoreasschedule.KeywordsEmbedded;Basketballscoringscree(cuò)n;AT89C52;LED;Simulation1前言進(jìn)入21世紀(jì),伴隨著電子,信息通信技術(shù)的應(yīng)用與普及開發(fā),人們對(duì)電子技術(shù)的要求也越來越高,目前嵌入式單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域。單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù),把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)[1].而當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在單片機(jī)上.按照歷史性、本質(zhì)性、普遍性要求,嵌入式系統(tǒng)應(yīng)定義為:“嵌入到對(duì)象體系中的專用計(jì)算機(jī)系統(tǒng)”,可分軟件部分和硬件部分[2].所以,以MCU為核心,就是各種各樣的單片機(jī),是嵌入式硬件部分的實(shí)現(xiàn)方式之一,它主要是因?yàn)榘烟幚砥骱痛鎯?chǔ)器等部件集成在一塊芯片上[3]。在單片機(jī)的應(yīng)用正在不斷深入的同時(shí),傳統(tǒng)技術(shù)日益更新。幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī).更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。隨著單片機(jī)的發(fā)展,人們對(duì)事物的要求越來越高,單片機(jī)的應(yīng)用軟件技術(shù)也發(fā)生了巨大的變化,從最初的匯編語言,開始演變到C語言開發(fā),不但增加了語言的可讀性,結(jié)構(gòu)性,而且對(duì)于跨平臺(tái)的移植也提供了方便,另外一些復(fù)雜的系統(tǒng)開始在單片機(jī)上采用操作系統(tǒng),一些小的RTO(shè)S等,一方面加速了開發(fā)人員的開發(fā)速度,節(jié)約開發(fā)成本,另外也為更復(fù)雜的實(shí)現(xiàn)提供了可能。當(dāng)前比較流行的RTOS有:WINCE,uClinux,Linux,uC/OS等等[4].單片機(jī)往往作為一個(gè)核心部件來使用,僅單片計(jì)時(shí)計(jì)分機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。單片機(jī)把我們帶入了智能化的電子領(lǐng)域,許多繁瑣的系統(tǒng)若由單片機(jī)進(jìn)行設(shè)計(jì),便能收到電路更簡(jiǎn)單、功能更齊全的良好效果[5]。若把經(jīng)典的電子系統(tǒng)當(dāng)作一個(gè)僵死的電子系統(tǒng),那么智能化的現(xiàn)代電子系統(tǒng)則是一個(gè)具有“生命”的電子系統(tǒng)。隨著各式各樣的電子產(chǎn)品的問世和發(fā)展層出不窮,籃球計(jì)分屏是一個(gè)無處不在的電子產(chǎn)品,經(jīng)過多年的發(fā)展,技術(shù)已經(jīng)相當(dāng)成熟了。根據(jù)目前高水平籃球比賽要求,完善的籃球比賽計(jì)時(shí)系統(tǒng)設(shè)備應(yīng)能夠與現(xiàn)場(chǎng)成績(jī)處理,現(xiàn)場(chǎng)大屏幕,電視轉(zhuǎn)播車等多種設(shè)備相聯(lián),以便實(shí)現(xiàn)高比賽現(xiàn)場(chǎng)感,表演娛樂觀眾等功能目標(biāo)。隨著電子技術(shù)的產(chǎn)業(yè)結(jié)構(gòu)調(diào)整,生產(chǎn)工藝的飛速發(fā)展和籃球的廣泛推廣,市場(chǎng)對(duì)籃球計(jì)分器的需求也越來越大。本設(shè)計(jì)用AT89C52單片機(jī)為核心,包括復(fù)位模塊,按鍵模塊[7],顯示模塊[8]等.單片機(jī)控制的兩組數(shù)碼管中,一組是用來顯示賽事倒計(jì)時(shí)的時(shí)間,令一組來顯示兩球隊(duì)的比分情況[6]。另外在硬件完成后在Keil軟件用C語言進(jìn)行編程,對(duì)單片機(jī)進(jìn)行程序的燒錄,最后測(cè)試功能的完成.具有計(jì)分準(zhǔn)確,體積小,重量輕,能耗低,價(jià)格便宜,可靠性高,抗干擾能力強(qiáng)和使用方便等獨(dú)特的優(yōu)點(diǎn)[7].2系統(tǒng)設(shè)計(jì)基本要求與方案論證2。1系統(tǒng)設(shè)計(jì)基本要求(1)記錄整個(gè)賽程的比賽時(shí)間,并修改比賽時(shí)間;(2)隨時(shí)刷新甲、乙兩隊(duì)在整個(gè)過程中的比分;(3)中場(chǎng)交換比賽場(chǎng)地時(shí),交換甲、乙兩隊(duì)比分;(4)比賽結(jié)束時(shí),發(fā)出報(bào)警聲.2.2系統(tǒng)方案論證2.2。1以單片機(jī)作為整個(gè)系統(tǒng)的核心采用單片機(jī)進(jìn)行設(shè)計(jì),能使許多繁瑣的系統(tǒng)電路更簡(jiǎn)單、功能更齊全的良好效果,這樣不但可以降低整個(gè)設(shè)計(jì)的復(fù)雜性和成本,而且也提高了整個(gè)系統(tǒng)的穩(wěn)定性。由于本系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,用51單片機(jī)就足夠?qū)崿F(xiàn)其功能而且主要用定時(shí)器,因此本系統(tǒng)采用51單片機(jī)來實(shí)現(xiàn)[8].由于本設(shè)計(jì)需要亮度比較的大的顯示因此以七段數(shù)碼管作為顯示器件,為了節(jié)約I/O口采用動(dòng)態(tài)掃描的方式。本系統(tǒng)需要人機(jī)互動(dòng),因此需要鍵盤.在選擇鍵盤時(shí)由于單片機(jī)的I/O充足,在設(shè)計(jì)時(shí)為了方便選用獨(dú)立式鍵盤。在設(shè)計(jì)報(bào)警部分,由于只要簡(jiǎn)單的發(fā)聲器件因此蜂鳴器就足以夠本系統(tǒng)的使用。2.2.2采用模擬和數(shù)字混合電路來實(shí)現(xiàn)采用擬和數(shù)字混合電路,例如門電路、觸發(fā)器、555定時(shí)器、集成運(yùn)算法器等元器件也可以完成此系統(tǒng)的設(shè)計(jì)。但是其實(shí)現(xiàn)的硬件電路也會(huì)相當(dāng)?shù)膹?fù)雜,尤其對(duì)于缺乏硬件電路實(shí)踐經(jīng)驗(yàn)的開發(fā)人員來說,其實(shí)現(xiàn)起來是相當(dāng)困難的.在設(shè)計(jì)時(shí)顯示部分可以使用液晶模塊或者七段數(shù)碼管但其硬件實(shí)現(xiàn)都比較復(fù)雜.鍵盤部分用編碼鍵盤可以簡(jiǎn)單一些,但其價(jià)格比較昂貴.但同時(shí)使用其他的鍵盤如獨(dú)立式鍵盤、矩陣式鍵盤,但會(huì)增加硬件的復(fù)雜性。報(bào)警部分的設(shè)計(jì)相對(duì)來說還是比較容易實(shí)現(xiàn).2.2.3系統(tǒng)的總體方案通過對(duì)方案一與方案二比較容易看出:方案一更適合我們的實(shí)際要求,而且可以縮短我們的開發(fā)周期并且使系統(tǒng)變得簡(jiǎn)單、易于實(shí)現(xiàn)。利用AT89C52單片機(jī)為核心,包括復(fù)位模塊,按鍵模塊,顯示模塊等。單片機(jī)控制的兩組四位一體的數(shù)碼管中,一組是用來顯示賽事倒計(jì)時(shí)的時(shí)間,例如00—99分的顯示,同時(shí)根據(jù)不同的比賽可以設(shè)置不同的倒計(jì)時(shí)時(shí)間,另一組來顯示甲乙兩球隊(duì)的比分情況,通過按鍵根據(jù)比賽的實(shí)時(shí)情況進(jìn)行加分減分。即通過按鍵控制倒計(jì)時(shí)的設(shè)計(jì)及甲乙兩隊(duì)的比分情況[9]。3系統(tǒng)的總體設(shè)計(jì)該系統(tǒng)硬件電路包括:?jiǎn)纹瑱C(jī)AT89C52、時(shí)鐘電路、復(fù)位電路、電源電路、按鍵控制電路、計(jì)分電路、計(jì)時(shí)電路、報(bào)警電路。本設(shè)計(jì)是采用單片機(jī)AT89C52作為本設(shè)計(jì)的核心元件。利用7段共陰LED作為顯示器件。在此設(shè)計(jì)中共接入了2組四位一體的數(shù)碼管,其中1組用于記錄AB隊(duì)的分?jǐn)?shù),每隊(duì)2個(gè)LED顯示器顯示范圍可達(dá)到0—99分,足夠滿足賽程需要,另外一組LED顯示器則用來記錄賽程時(shí)間,其中2個(gè)用于顯示分鐘,2個(gè)用于顯示秒鐘。其次,為了配合計(jì)時(shí)器和計(jì)分器校正調(diào)整時(shí)間和比分,我特定在本計(jì)中設(shè)立了11個(gè)按鍵,其中8?jìng)€(gè)用于比賽分?jǐn)?shù)設(shè)置與調(diào)整,當(dāng)比賽隊(duì)A隊(duì)得1分時(shí),按下A+1鍵;得2分時(shí),按下A+2鍵;得3分時(shí),按下A+3鍵;當(dāng)加分出現(xiàn)錯(cuò)誤時(shí),可以按A-1鍵減1分,可以達(dá)到調(diào)整分?jǐn)?shù)的作用;依照同樣的方法可以記錄B隊(duì)的得分。3。1系統(tǒng)硬件設(shè)計(jì)整個(gè)硬件系統(tǒng)主要包括單片機(jī)電路,電源電路,復(fù)位電路,數(shù)碼管顯示電路,報(bào)警電路,鍵盤電路組成。單片機(jī)主要是利用AT89C52,復(fù)位電路是利用12M的晶振產(chǎn)生時(shí)鐘頻率,在鍵盤部分是通過單片機(jī)檢測(cè)I/O口電平的變化來判斷哪個(gè)按鍵有按下。其硬件系統(tǒng)框圖如圖3.1所示。AAT89C52按鍵控制電路晶振及復(fù)位電路電源輸入電路數(shù)碼管顯示電路報(bào)警電路運(yùn)行指示電路圖3。1籃球賽計(jì)分器的硬件結(jié)構(gòu)框圖3.1.1時(shí)鐘以及復(fù)位電路時(shí)鐘電路:為整個(gè)系統(tǒng)的工作提供一個(gè)基準(zhǔn)時(shí)鐘,本設(shè)計(jì)使用12MHZ的晶振作為時(shí)鐘源。電容C1,C2的作用是引起時(shí)鐘的起振.復(fù)位電路:采用上電復(fù)位,復(fù)位使單片機(jī)重新執(zhí)行程序,恢復(fù)寄存器的默認(rèn)值[10].其原理圖如下:圖3.2時(shí)鐘及復(fù)位電路3.1.2鍵盤部分鍵盤電路如圖3.3所示,主要用于調(diào)節(jié)人機(jī)接口關(guān)系,實(shí)現(xiàn)對(duì)參數(shù)。單片機(jī)通過檢測(cè)I/O口電平的變化來判斷哪個(gè)按鍵有按下,當(dāng)沒有按鍵按下時(shí),I/O被上拉為高電平,有按鍵按下時(shí)被強(qiáng)制拉為低電平。圖3。3鍵盤電路3。1.3報(bào)警部分報(bào)警電路如下圖3.4,通過報(bào)警電路給人們以警告信息。由于單片機(jī)的I/O口驅(qū)動(dòng)能力有限,在這里用了一個(gè)PNP的晶體管起電流放大作用驅(qū)動(dòng)蜂鳴器工作。電阻限流作用,防止晶體管因電流而發(fā)熱燒壞。圖3.4報(bào)警電路3.1.4顯示部分顯示部分采用數(shù)碼管的動(dòng)態(tài)掃描方式,數(shù)碼管采用共陰極的。P0發(fā)送段碼,P2發(fā)送位碼來控制數(shù)碼管的選通。使每個(gè)數(shù)碼管輪回點(diǎn)亮,由于人的視覺停留效應(yīng)在適當(dāng)?shù)臅r(shí)間人們會(huì)認(rèn)為所有的數(shù)碼管是點(diǎn)亮的.計(jì)分部分:各使用兩個(gè)數(shù)碼管來計(jì)量?jī)申?duì)的分?jǐn)?shù),分?jǐn)?shù)變化的控制通過按鍵來控制.計(jì)數(shù)范圍為00-99.定時(shí)部分:各使用兩個(gè)數(shù)碼管來計(jì)量比賽時(shí)間,并采用倒計(jì)時(shí)的計(jì)數(shù)方式。其原理圖如圖3.5所示:圖3.5顯示部分3.2系統(tǒng)軟件設(shè)計(jì)軟件部分要求實(shí)現(xiàn)的功能有:開始時(shí)所有顯示屏都顯示0;有預(yù)置比賽時(shí)間的功能;具有AB兩隊(duì)分別計(jì)分的功能;有鳴笛警示功能;只有當(dāng)預(yù)置時(shí)間后,并按開始按鈕,計(jì)時(shí)器才能開始倒計(jì)時(shí),只有當(dāng)開始計(jì)時(shí)后,AB兩隊(duì)才能進(jìn)行加一分、加二分,減一分;當(dāng)比賽暫停時(shí),計(jì)時(shí)顯示屏停止倒計(jì)時(shí);當(dāng)交換比賽場(chǎng)地時(shí),按交換鍵,甲乙兩隊(duì)的比分交換;當(dāng)?shù)褂?jì)時(shí)時(shí)間為零時(shí),蜂鳴器自動(dòng)鳴笛報(bào)警。3.2。1定時(shí)器子程序51單片機(jī)內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,分別稱為定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1,它們具有四種工作方式,其控制字和狀態(tài)均在相應(yīng)的特殊功能寄存器中,通過對(duì)控制寄存器的編程,就可方便地選擇適當(dāng)?shù)墓ぷ鞣绞?。定時(shí)/計(jì)數(shù)器的核心是的16位加法計(jì)數(shù)器,定時(shí)器T0的加法計(jì)數(shù)器用特殊功能寄存器TH0、TL0表示,TH0表示加法計(jì)數(shù)器的高8位,TL0表示加法計(jì)數(shù)器的低8位。TH1和TL1則分別表示定時(shí)/計(jì)數(shù)器T1的高8位和低8位。它們均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。它們用于存放定時(shí)或計(jì)數(shù)的初始值.此外,內(nèi)部還有一個(gè)8位的工作方式寄存器TMOD和一個(gè)8位的控制寄存器TCON,用于選擇和控制定時(shí)/計(jì)數(shù)器的工作。這些寄存器可根據(jù)需要由程序讀寫.當(dāng)然16位加法計(jì)數(shù)器的輸入端每輸入一個(gè)脈沖,16位加法計(jì)數(shù)器的值自動(dòng)加1,當(dāng)計(jì)數(shù)器的計(jì)數(shù)值超過加法計(jì)數(shù)器字長(zhǎng)所能表示的二進(jìn)制數(shù)的范圍而向第17位進(jìn)位,即計(jì)數(shù)溢出時(shí),置位定時(shí)中斷請(qǐng)求標(biāo)志,向CPU申請(qǐng)中斷。TMOD用于控制T0和T1的工作方式,其格式如表3.1所示:表3.1方式控制寄存器TMOD位D7D6D5D4D3D2D1D0位符號(hào)GATEC/TM1M0GATEC/TM1M0門控開關(guān)計(jì)數(shù)/定時(shí)方式選擇門控開關(guān)計(jì)數(shù)/定時(shí)方式選擇T1方式字段T0方式字段M1,MO:工作方式控制位,可構(gòu)成表3。2所示四種工作方式:表3.2方式控制寄存器TMOD的工作方式M1M0工作方式說明00013位定時(shí)器;01116位計(jì)數(shù)器;102可自動(dòng)再裝載的8位計(jì)數(shù)器;113T0分成兩個(gè)獨(dú)立的8位計(jì)數(shù)器C/T:計(jì)數(shù)工作方式/定時(shí)工作方式選擇位。置0時(shí),設(shè)置為定時(shí)工作方式;置1時(shí),設(shè)置為計(jì)數(shù)工作方式。GATE:門控位,用以決定是由軟件還是硬件啟動(dòng)/停止計(jì)數(shù).GATE=0,INT0/INT1被封鎖,只要用軟件對(duì)TR0(或TR1)置“1”就啟動(dòng)了定時(shí)器;GATA=1時(shí),定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)受外部引腳輸入電平的控制。TMOD的所有位在復(fù)位后清0.TMOD不能位尋址,只能按字節(jié)操作設(shè)置工作方式.定時(shí)/計(jì)數(shù)控制寄存器TCONTFl,TRl,TF0和TR0位用于定時(shí)器/計(jì)數(shù)器;IEl,ITl,IE0和IT0位用于中斷系統(tǒng).其格式如表3。3所示:表3。3控制寄存器TCON位D7D6D5D4D3D2D1D0位符號(hào)TF1TR1TF0TR0IE1IT1IE0IT0各位定義如下:TF0:定時(shí)器0溢出標(biāo)志。其功能及操作情況同TF1.TR0:定時(shí)器0運(yùn)行控制位.其功能及操作情況同TR1。在本系統(tǒng)的設(shè)計(jì)中主要使用定時(shí)器0的16位的定時(shí)模式,也就是工作模式1.程序設(shè)計(jì)的子框圖如圖3.6所示:圖3.6程序設(shè)計(jì)C源程序代碼如下:voidTimer_Inti(void)//定時(shí)器0初始化程序{TMOD=0X01;//設(shè)置工作方式1TH0=(65536—50000)/256;//高位初始值TL0=(65536—50000)%256;//低位初始值ET0=1;//開定時(shí)器0中斷EA=1;//開總中斷TR0=1;//啟動(dòng)定時(shí)器0}voidTimer_ISR()interrupt1//定時(shí)器0中斷服務(wù)程序{TH0=(65536—50000)/256;//重新賦初始值TL0=(65536—50000)%256;//if(count++==20)//定時(shí)1s基準(zhǔn){sec++;//定時(shí)時(shí)間到,sec變量加1,count變量清零?count=0;}}3.2.2鍵盤掃描子程序鍵盤采用獨(dú)立式鍵盤,按鍵是一種機(jī)械彈性開關(guān),當(dāng)鍵按下時(shí)閉合,松開時(shí)斷開.因?yàn)橛袡C(jī)械的接觸,在觸點(diǎn)閉合或斷開的瞬間會(huì)出現(xiàn)電壓抖動(dòng).為了避免鍵輸入錯(cuò)誤,必須進(jìn)行鍵抖動(dòng)的處理。去抖動(dòng)由硬件和軟件兩種方法:硬件方法就是在鍵盤中附加去抖動(dòng)電路消除抖動(dòng),而軟件方法則是采用時(shí)間延遲以消除抖動(dòng).其流程圖如圖3。7所示:圖3。7鍵盤掃描部分流程圖子程序如下所示:voidKey_Scan(void)//鍵盤掃描子函數(shù){if(key==0)//是否有按鍵按下{Delay(10);//延時(shí)去抖If(key==0)//再次檢測(cè)是否有按鍵按下{While(key==0);//等待按鍵釋放}}}3。2。3顯示子程序顯示部分采用共陰極的數(shù)碼管動(dòng)態(tài)掃描方式,子程序的設(shè)計(jì)框圖如圖3.8下所示:圖3.8顯示子程序的設(shè)計(jì)子程序代碼示例如下:unsignedcharcodeDSY_CODE[]=//段碼{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff?};unsignedcharcodeBIT_CODE[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位碼voiddisplay()//顯示子函數(shù){unsignedchari;?while(1) {for(i=0;i〈8;i++){ P0=~DSY_CODE[i];//循環(huán)掃面??P2=BIT_CODE[i];??Delayms(2);//延時(shí)}?}}3.2。4蜂鳴器報(bào)警子程序蜂鳴器采用一定頻率的脈沖來驅(qū)動(dòng)其發(fā)聲,子程序框圖如圖3.9所示:圖3。9蜂鳴器報(bào)警子程序流程圖程序代碼如下:voidbeep(unsignedchart)//蜂鳴器子函數(shù){ uchari;?for(i=0;i<100;i++)?{BEEP=~BEEP;//高低電平取反? DelayMS(t);//延時(shí)?}?BEEP=0;//關(guān)閉蜂鳴器}4系統(tǒng)測(cè)試與分析4.1系統(tǒng)測(cè)試4。1.1硬件測(cè)試(1)經(jīng)過測(cè)量,電源電壓達(dá)到標(biāo)準(zhǔn)的5V;(2)用萬用表測(cè)試,所有的電路都通了;(3)用示波器檢查晶振,看到示波器上顯示標(biāo)準(zhǔn)的正弦波。4.1.2功能測(cè)試(1)當(dāng)一節(jié)比賽完成時(shí),蜂鳴器沒有報(bào)警,后經(jīng)修改程序,達(dá)到了當(dāng)?shù)褂?jì)時(shí)為0時(shí)方波驅(qū)動(dòng)蜂鳴器開始報(bào)警,起到了提示的作用,完成了預(yù)期的目標(biāo)。(2)通過按鍵,完成了甲乙兩隊(duì)的比分刷新與暫停的功能當(dāng)進(jìn)行賽事計(jì)分時(shí),A,B兩隊(duì)可以分別加一分,加兩分,進(jìn)行加分,當(dāng)需要扣分時(shí),按減分鍵進(jìn)行減分,并當(dāng)交換場(chǎng)地時(shí),能交換A,B兩隊(duì)的比分。較好的完成了既定的加分減分功能。4.2系統(tǒng)分析通過硬件測(cè)試和軟件調(diào)試,本設(shè)計(jì)較好的完成了應(yīng)有的指標(biāo)和任務(wù).實(shí)現(xiàn)了單片機(jī)為核心主控外圍電路的想法,各個(gè)電路模塊在程序的控制下,基本實(shí)現(xiàn)了應(yīng)有的功能.5小結(jié)本次設(shè)計(jì)采用了較少的元件,通過巧妙的電路設(shè)計(jì),充分利用硬件資源,以較低的成本實(shí)現(xiàn)籃球計(jì)分器的計(jì)時(shí)和顯示A/B隊(duì)的分?jǐn)?shù),并能及時(shí)進(jìn)行加分,減分,鳴笛警示等功能。并且具有成本低廉、性能穩(wěn)定、高準(zhǔn)確度顯示、操作方便且易攜帶等特點(diǎn)。廣泛適合各類學(xué)校和小團(tuán)體作為賽程計(jì)分。通過此次的畢業(yè)設(shè)計(jì),提高了對(duì)本專業(yè)各個(gè)學(xué)科綜合知識(shí)的實(shí)際運(yùn)用能力,提高了自己實(shí)際動(dòng)手能力,掌握了整個(gè)硬件開發(fā)流程和步驟以及調(diào)試方法,同時(shí)也提高了自身對(duì)產(chǎn)品開發(fā)的嚴(yán)謹(jǐn)性、系統(tǒng)性、科學(xué)性.通過理論與實(shí)際的相結(jié)合,進(jìn)一步深入的體會(huì)到一種學(xué)習(xí)的方法,特別是對(duì)電子設(shè)計(jì)方面。首先,要明確總體的設(shè)計(jì)方案與方法;其次,對(duì)各個(gè)部分進(jìn)行設(shè)計(jì)與改進(jìn);最后,將各個(gè)部分整合到一起進(jìn)行比較、觀察.由于時(shí)間的限制,籃球積分器總的系統(tǒng)還存在一些不足之處,需要進(jìn)一步完善,例如數(shù)碼管的驅(qū)動(dòng)問題,當(dāng)時(shí)就是沒有仔細(xì)考慮數(shù)碼管的亮度問題,節(jié)省原件,就直接用單片機(jī)控制了。其它的也可以進(jìn)行功能擴(kuò)展。HYPERLINK\l"目錄”參考文獻(xiàn)[1]郭天祥主編.新概念51單片機(jī)C語言教程[M]。電子工業(yè)出版社,2009。1:2-15[2]高吉祥主編.數(shù)字電子技術(shù)[M].電子工業(yè)出版社,2009。7:25-32[3]張旭主編.數(shù)碼管動(dòng)態(tài)掃描數(shù)據(jù)顯示[J]。伊春職業(yè)學(xué)院機(jī)電工程系,2012。9:45-53[4]高吉祥主編.模擬電子電路[M].電子工業(yè)出版社,2009.7:34—40[5]郭玉霞主編。MCS-51單片機(jī)原理與應(yīng)用[M].北京航空航天大學(xué)出版社,2010。1:56—78[6]張義和主編.例說51單片機(jī)(C語言版)[M].電子工業(yè)出版社,2008。4:110—132[7]趙建領(lǐng)主編。51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解[M].電子工業(yè)出版社,2009:107~289[8]劉娟主編。單片機(jī)C語言與PROTUES仿真技能實(shí)訓(xùn)[M].中國(guó)電力出版社,2010.8:78-105[9]周潤(rùn)景主編.Protues入門實(shí)用教程[M]。機(jī)械工業(yè)出版社,2007.9:140—173[10]譚浩強(qiáng)主編。C程序設(shè)計(jì)(第三版)[M]。清華大學(xué)出版社,2010.8:170-256致謝附錄A原理圖.圖A原理圖附錄BPCB雙面板圖B1底層PCB圖B2頂層PCB附錄C實(shí)物圖圖C實(shí)物圖附錄D完整程序代碼#include<reg51。h>#defineucharunsignedchar#defineuintunsignedintvoiddelay(ucharx);//延時(shí)(時(shí)間較短)voiddelay1(ucharx);//延時(shí)(時(shí)間較長(zhǎng))voidJs_Jf_Scan(void);//數(shù)碼管動(dòng)態(tài)掃描顯示函數(shù)voidKey_if(void);//A、B兩隊(duì)分值處理函數(shù)voidJs_50ms(void);//定時(shí)50ms中斷函數(shù)voidKey_Y(void);//預(yù)置時(shí)間函數(shù)voidPtime(uchar);//時(shí)間處理函數(shù)voidsound(void);//鳴笛警示函數(shù)sbitCL1=P2^0;//B隊(duì)4位計(jì)分?jǐn)?shù)碼管位控線sbitCL2=P2^1;sbitCL3=P2^2;sbitCL4=P2^3;sbitKL1=P2^4;//A隊(duì)4位計(jì)分?jǐn)?shù)碼管位控線sbitKL2=P2^5;sbitKL3=P2^6;sbitKL4=P2^7;sbitS1=P1^3;//驅(qū)動(dòng)4位計(jì)時(shí)數(shù)碼管位控線sbitS2=P1^2;sbitS3=P1^1;sbitS4=P1^0;sbitYK1=P1^6;//預(yù)置分鐘的十位sbitYK2=P1^7;//預(yù)置分鐘的個(gè)位sbitmusic=P1^4;//P1.4接喇叭,發(fā)聲,鳴笛sbitKey1=P3^0;//B隊(duì)加分鍵sbitKey2=P3^1;//B隊(duì)減分鍵sbitKey3=P3^4;//A隊(duì)加分鍵sbitKey4=P3^5;//A隊(duì)減分鍵sbitInt_Key=P3.2;//鳴笛鍵sbitStar=P3^6;//開始按鈕sbitPuse=P3^7;//停止按鈕intms=0,mg=0,fs=0;//秒鐘的十位、個(gè)位以及秒鐘的變量說明intfg=0;m=0,f,fy,num=0;//分鐘的十位、個(gè)位以及分鐘的變量說明intg,s,b,q,sum=0;//B隊(duì)定義個(gè)十百位intg1,s1,b1,q1,sum1=0;//A隊(duì)定義個(gè)十百位intLED_Num[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,};//段碼voidmain(void){ TMOD=0x01;//設(shè)置T0為工作方式1,作為16位計(jì)數(shù)器 TH0=(65535-50000)/256;//設(shè)置T0的高8位,并且T0的計(jì)數(shù)值為50ms?TL0=(65535-50000)%256;//設(shè)置T0的低8位?music=0;//初值喇叭不響?EA=1;//開放所有中斷?ET0=1;//允許定時(shí)/計(jì)數(shù)器T0溢出中斷 EX0=1;//允許外部中斷0?IT0=1;//設(shè)置外部中斷0為邊沿觸發(fā)方式(下降沿)?while(1)//無窮循環(huán),程序一直運(yùn)行?{??Key_Y();//預(yù)置場(chǎng)次比賽時(shí)間? if(Star==0&&f!=0&&Puse!=0)//按下“開始鍵",設(shè)置好比賽時(shí)間,并且未按“停止”鍵時(shí),比賽正式開始 ?{ ? TR0=1;//啟動(dòng)定時(shí)器T0,開始計(jì)時(shí)? ?Key_if();//開始計(jì)分 } else { ? TR0=0;? //比賽還未開始或比賽結(jié)束時(shí)間到,停止計(jì)時(shí) }??Js_Jf_Scan();//將相應(yīng)的分?jǐn)?shù)、時(shí)間同步進(jìn)行顯示 }}/*******************設(shè)置場(chǎng)次比賽時(shí)間********************/voidKey_Y(void){?if(YK1==0)//初始狀態(tài),分鐘的十位為0?{ delay(1);//延時(shí)去抖動(dòng) ?fs=fs+1;//分十位加1分 ?fy=fs*10+fg;//求出預(yù)置時(shí)間的分鐘值? f=fy;//中間變量?} if(YK2==0)//初始狀態(tài),分鐘的個(gè)位為0 { delay(1);//延時(shí)去抖動(dòng)??fg=fg+1;//分個(gè)位加1分 ?fy=fs*10+fg;//求出預(yù)置時(shí)間的分鐘值 f=fy;//中間變量 } Js_Jf_Scan();}/********T0中斷服務(wù)函數(shù),每隔50ms產(chǎn)生一次中斷********/voidJs_50ms(void)interrupt1using1//定時(shí)器T0中斷,用工作寄存器組1{?TH0=(65535—50000)/256;//定時(shí)器T0的高8位?TL0=(65535-50000)%256;//定時(shí)器T0的低8位?num++;//每50ms累加一次?Ptime(num);//調(diào)用時(shí)間處理函數(shù)}/**********************時(shí)間處理函數(shù)********************/voidPtime(uchartime){ if(time==20)//如果為1s(50ms*20=1s) { ?num=0; ?m++;//每到1s,計(jì)時(shí)器累加1次? ms=m/10;//秒的十位? mg=m%10;//秒的個(gè)位??if(m==60)//如果為1min? { ? m=0;//秒鐘置0? mg=m%10;//秒鐘的個(gè)位置0? ?ms=m/10;//秒鐘的十位置0 ?f—-;//分鐘開始在預(yù)設(shè)的比賽時(shí)間基礎(chǔ)上倒計(jì)時(shí)?? fs=f/10;//分鐘的十位 ?fg=f%10;//分鐘的個(gè)位 ??if(f==0)//分鐘數(shù)倒計(jì)時(shí)到0? ?{? ? TR0=0;//時(shí)間到,停止計(jì)時(shí)???}??? ?}?}}/******************數(shù)碼管動(dòng)態(tài)掃描顯示******************/voidJs_Jf_Scan(void){?ucharj;?for(j=0;j<=5;j++)?{? KL4=0;P0=LED_Num[g1];delay(1);KL4=1;/*將A隊(duì)分?jǐn)?shù)的個(gè)位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ ?KL3=0;P0=LED_Num[s1];delay(1);KL3=1;/*將A隊(duì)分?jǐn)?shù)的十位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ KL2=0;P0=LED_Num[b1];delay(1);KL2=1;/*將A隊(duì)分?jǐn)?shù)的百位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/? KL1=0;P0=LED_Num[q1];delay(1);KL1=1;/*將A隊(duì)分?jǐn)?shù)的千位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ CL4=0;P0=LED_Num[g];delay(1);CL4=1;/*將B隊(duì)分?jǐn)?shù)的個(gè)位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/? CL3=0;P0=LED_Num[s];delay(1);CL3=1; /*將B隊(duì)分?jǐn)?shù)的十位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ ?CL2=0;P0=LED_Num[b];delay(1);CL2=1; /*將B隊(duì)分?jǐn)?shù)的百位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ ?CL1=0;P0=LED_Num[q];delay(1);CL1=1;/*將B隊(duì)分?jǐn)?shù)的千位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ ?S4=0;P0=LED_Num[mg];delay(1);S4=1;/*將秒鐘的個(gè)位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/? S3=0;P0=LED_Num[ms];delay(1);S3=1;?/*將秒鐘的十位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/? S2=0;P0=LED_Num[fg];delay(1);S2=1; /*將分鐘的個(gè)位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ S1=0;P0=LED_Num[fs];delay(1);S1=1;/*將分鐘的十位傳遞給譯碼器,通過按鍵,實(shí)現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/?}}/*****************判斷是哪個(gè)隊(duì)加分或者減分*****************/voidKey_if(void){?if(Key1==

溫馨提示

  • 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. 人人文庫網(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)論