籃球計時計分系統(tǒng)設(shè)計畢業(yè)設(shè)計論文_第1頁
籃球計時計分系統(tǒng)設(shè)計畢業(yè)設(shè)計論文_第2頁
籃球計時計分系統(tǒng)設(shè)計畢業(yè)設(shè)計論文_第3頁
籃球計時計分系統(tǒng)設(shè)計畢業(yè)設(shè)計論文_第4頁
籃球計時計分系統(tǒng)設(shè)計畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄第一部分設(shè)計任務(wù)與調(diào)研21、系統(tǒng)基本任務(wù)功能介紹31.1、賽程時間設(shè)置31.2、賽程時間啟動/暫停設(shè)置31.3、比分刷新控制41.4、比分交換控制41.5、程結(jié)束報警42、AT89C51簡介43、本課題的目的及意義5第二部分設(shè)計說明…………………….91、系統(tǒng)設(shè)計方案92、電路組成103、本設(shè)計特點19第三部分設(shè)計成果……………………20設(shè)計成果圖片20本作品特點20總設(shè)計原理圖20程序21第四部分結(jié)束語………………………26第五部分致謝……………27第六部分參考文獻……………………28

第一部分設(shè)計任務(wù)與調(diào)研1、系統(tǒng)基本任務(wù)功能介紹本設(shè)計要實現(xiàn)的基本功能有:賽程時間設(shè)置,賽程時間啟/停設(shè)置,比分刷新控制,比分交換控制,計時計分顯示,賽程結(jié)束報警。以下對個功能進行介紹。1.1賽程時間設(shè)置通過按鍵K5、K6來設(shè)置賽程時間?;@球比賽的一節(jié)時間為12分鐘,通過按K5按鍵,使LED數(shù)碼管1顯示“1”即可。在按K6按鍵,設(shè)置比賽時間的個位數(shù),即使數(shù)碼管2顯示“2”。當比賽結(jié)束時,如果由于一些特殊原因要增加比賽時間,這時比賽時間的調(diào)整同樣由K5、K6按鍵來設(shè)置,且方法和上面一樣。但一般情況下只需按下K6來設(shè)置即可。因為加賽時間只有幾分鐘。1.2、賽程時間啟動/暫停設(shè)置當時間設(shè)置完成后,比如設(shè)置賽程時間為45分鐘,則在LED顯示器上顯示為4500,45表示分鐘,00表示秒鐘。這時,如果裁判吹響開始的哨聲時,則應(yīng)立即按下按鍵K7,表示賽程開始,計時顯示則由4500變成4459,4458……一直計時直到計為0000時表示賽程結(jié)束。按鍵K7為賽程啟動和暫??刂?。比分刷新控制由于在比賽中,兩隊的比分在不斷變化,所以需要設(shè)置比分刷新控制,該功能由按鍵K1~K4完成,具體如下:K1按鍵:甲隊比分加1;K2按鍵:甲隊比分減1;K3按鍵:乙隊比分加1;K4按鍵:乙隊比分減1。1.4、比分交換控制比分交換控制由計時電路圖2-5中所示的K7鍵完成。我們知道,因為比分交換是在上半場賽程結(jié)束后進行的,也就是說比分交換要受賽程時間控制,只有當上半場計時器指示為0000時,按K7鍵,則會自動交換甲、乙兩隊的比分。如果上半場賽程時間沒有到0000時,則此時按下K7鍵,只會暫停比賽,不能交換分數(shù)。如果要繼續(xù)比賽,再按一次K7即可。因此,K7鍵完成三重功能,即:啟動,暫停,比分交換。計時計分顯示計時計分顯示器是采用七段共陰極LED顯示器來顯示的。其中計分是用6個LED顯示器。計時采用4個LED顯示器;顯示格式為000000和0000。程結(jié)束報警當賽程時間或24s計時結(jié)束時,系統(tǒng)會自動發(fā)出10s報警聲提示。2、AT89C51簡介AT89C51是一個低電壓,高性能CMOS

8位單片機,片內(nèi)含4k

bytes的可反復(fù)擦寫的Flash只讀程序存儲器和128

bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),內(nèi)置功能強大的微型計算機的AT89C51提供了高性價比的解決方案。

AT89C51具有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。它是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。如圖1.1所示為AT89C51單片機基本構(gòu)造,其基本性能介紹如下。圖1.1AT89C51引腳圖主要特性:與MSC-52兼容4K字節(jié)可編程閃爍存儲器壽命:1000寫/擦除循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0HZ-24MHZ三級程序存儲器鎖定128X8位內(nèi)部RAM32可編程I/O口兩個16位定時器/計數(shù)器5個中斷源可編程串行通道片內(nèi)振蕩器和時鐘電路低功耗空閑和掉電模式AT89C51的主要特性如下表1.1所示。下面介紹各個管腳:VCC:供電電壓。

GND:接地。

P0口:P0口為一個8位漏極開路雙向I/O口,每個引腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0

口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。

P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。

P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容,P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶有內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。

P3口也可作為AT89C51的一些特殊功能口,如表1.2所示。

P3口同時為閃爍編程和編程校驗接收一些控制信號。

RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,

ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,

ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。

/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。表1.1AT89C51主要功能描述兼容MCS—51指令系統(tǒng)4k可反復(fù)擦寫(>1000次)Flash

ROM

32個雙向I/O口可編程UARL通道兩個16位可編程定時/計數(shù)器全靜態(tài)操作0-24MHz1個串行中斷128x8bit內(nèi)部RAM兩個外部中斷源

共6個中斷源可直接驅(qū)動LED3級加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能表1.2AT89C51特殊功能表端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)3、本課題的目的及意義1)目的這次設(shè)計可以使我們進一步熟悉和掌握了單片機的內(nèi)部結(jié)構(gòu)和工作原理,了解了單片機應(yīng)用系統(tǒng)設(shè)計的基本方法和步驟,掌握了單片機仿真軟件Proteus的使用方法,鍵盤和顯示器在的單片機控制系統(tǒng)中的應(yīng)用以及撰寫課程設(shè)計報告的方法。此次設(shè)計很好的將書本上的理論知識和實踐有機的聯(lián)系了起來,是我們對理論知識有了更進一步的掌握,鍛煉了我們的動手能力,同時也讓我們懂得了理論與實際相結(jié)合的意義。為以后的工作和學(xué)習(xí)提供了寶貴的經(jīng)驗。2)意義在這個電子信息技術(shù)迅速普及的今天,人們對電子電子產(chǎn)品的需求越來越多。二十一世紀的今天,科學(xué)技術(shù)迅猛發(fā)展,時代前進的腳步越邁越寬,應(yīng)用自動化設(shè)備,現(xiàn)代化通訊,計算機處理,數(shù)字化信息,現(xiàn)代化顯示設(shè)備等一些高新技術(shù)使人類邁向智能化發(fā)展。目前單片機在我們生活各個領(lǐng)域無處不在。導(dǎo)彈的導(dǎo)航系統(tǒng),飛機上的各種儀表的控制,工業(yè)自動化實現(xiàn)過程中的實時控制以及數(shù)據(jù)處理,計算機采用的網(wǎng)絡(luò)通訊和數(shù)據(jù)傳輸,在生活中被廣泛使用的智能IC卡,民用轎車的安全系統(tǒng),錄像機、洗衣機、攝像機,以及遙控玩具和一些電子玩具等等,以上這些全都離不了單片機。更不用說那些自動控制機器人、醫(yī)療器械、智能儀表了。可見無論是軍事還是民用等各個領(lǐng)域都離不開單片機。通過這次籃球計分牌的設(shè)計,我可以更清楚的了解單片機程序設(shè)計的基本指令功能、編程步驟和技巧來講述單片機編程,并對AT89C51單片機的原理和結(jié)構(gòu)進行講述,熟悉了基于單片機開發(fā)應(yīng)用的相關(guān)芯片的工作原理,和相關(guān)外圍電路的設(shè)計和調(diào)試過程,對我以后工作學(xué)習(xí)也有幫助。第二部分設(shè)計說明1、系統(tǒng)設(shè)計方案1.1籃球賽計時計分器設(shè)計的現(xiàn)狀分析體育比賽計時計分系統(tǒng)是對體育比賽過程中所產(chǎn)生的時間,比分等數(shù)據(jù)信息進行快速采集記錄、加工處理、傳遞和利用的系統(tǒng)。根據(jù)運動項目的不同,比賽規(guī)則要求也不同,體育比賽的計時計分系統(tǒng)包括測量類、評分類、命中類、制勝類和得分類等多種類型?;@球比賽是根據(jù)運動隊員在規(guī)定的比賽時間里得分多少來決定勝負的,因此,籃球比賽的計時計分系統(tǒng)是一種得分類型的系統(tǒng)?;@球比賽的計時計分系統(tǒng)由計時器、計分器等多種電子設(shè)備組成的,同時,根據(jù)目前高水平籃球比賽要求,完善的籃球比賽計時計分系統(tǒng)設(shè)備應(yīng)能與現(xiàn)場成績處理、現(xiàn)場大屏幕、電視轉(zhuǎn)播車等多種設(shè)備相聯(lián),以便實現(xiàn)激烈的比賽現(xiàn)場感和表演娛樂等功能目標?,F(xiàn)在,根據(jù)設(shè)計要求,介紹一下設(shè)計方案。1.2系統(tǒng)總體設(shè)計方案根據(jù)課題要求,單片機帶外圍擴展,驅(qū)動數(shù)碼管工作的電路,可提升學(xué)生對單片機接口電路的綜合運用能力;計時電路主要由按鍵開關(guān)、單片機AT89C51、LED顯示器構(gòu)成。當調(diào)時開關(guān)(十位)按下時產(chǎn)生一個低電平。調(diào)時按鍵開關(guān)每按一次,數(shù)字自動加1。直到調(diào)到需要設(shè)置的時間即可。調(diào)時(個位)的操作方法與之相同。時間設(shè)置完后,啟動定時器。如果比賽中暫停,按一下暫停鍵即可暫停計時。球賽計時計分器系統(tǒng)圖如1-1圖所示。圖1-1系統(tǒng)構(gòu)成圖2、電路組成2.1、計時電路1.顯示器及其接口顯示器是最普遍的輸出設(shè)備,種類繁多,單片機中最常用的是發(fā)光二極管顯示器(LED)和液晶顯示器(LCD)。這兩種顯示器結(jié)構(gòu)簡單,價格便宜,因而得到廣泛的應(yīng)用。下面介紹發(fā)光二極管顯示器(LED)的結(jié)構(gòu)、工作原理及其接口電路。(1)LED結(jié)構(gòu)與原理圖3-1為典型的數(shù)碼管。圖3-17段LED數(shù)碼管圖3-2共陰極與共陽極LED顯示器如圖3-1,LED顯示器又稱為數(shù)碼管,LED數(shù)碼管顯示器是由若干個發(fā)光二極管組成的,當發(fā)光二極管導(dǎo)通時,相應(yīng)的點或線段發(fā)光,將這些發(fā)光二極管排成一定的圖形,控制不同組合的二極管導(dǎo)通,就可以顯示出不同的字形和符號。單片機系統(tǒng)中常用的LED顯示器為七段顯示器,再加上一個小數(shù)點,因此也可以把它稱之為八段數(shù)碼管顯示器。其機構(gòu)形式有共陰極和共陽極兩種。共陰極是把所有組成八段數(shù)碼管的發(fā)光二極管的陰極連在一起,通常接地,通過控制每一只發(fā)光二極管的陽極電平來使其發(fā)光或熄滅,陽極為高電平則發(fā)光,陽極為低電平則熄滅;共陽極是把組成八段數(shù)碼管的所有發(fā)光二極管的陽極連起來,通常為高電平(如+5V),通過控制每一只發(fā)光二極管的陰極電平的高低來使其發(fā)光或是熄滅,陰極為低電平發(fā)光,為高電平則熄滅。表3-1列出了共陽極與共陰極LED顯示器顯示數(shù)字、字母與顯示代碼之間的對應(yīng)關(guān)系。表3-1代碼對應(yīng)表顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼03FHC087FH80H106HF996FH90H25BHA4A77H88H34FHB0B7CH83H466H99HC39HC656DH92HD5EHA1H67DH82HE79H86H707HF8F71H8EH(2)LED顯示器顯示方式 點亮LED顯示器有兩種方式:一是靜態(tài)顯示;二是動態(tài)顯示。在本次設(shè)計中,采用的是靜態(tài)顯示。靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機中CPU的開銷小。這種電路的優(yōu)點在于:在同一時間可以顯示不同的字符;但缺點就是占用端口資源較多。從圖3-3可以看出,每位LED顯示器需要單獨占用8根端口線,因此,在數(shù)據(jù)較多的時候,往往不采用這種設(shè)計,而是采用動態(tài)顯示方式。本設(shè)計采用的便是此種顯示方式。圖3-3靜態(tài)顯示圖圖3-4動態(tài)顯示圖由于所有的段選碼連在一起,所以同一瞬間只能顯示同一種字符。但如果要顯示不同字符,則要由位選碼來控制。(如果LED為共陰極則P2.0~~P2.3輸出為高電平,如果LED為共陽極則P2.0~~P2.3輸出為低電平。)例如,現(xiàn)在要顯示“5678”四個數(shù)字,則首先應(yīng)該將“5”的顯示代碼(共陰LED顯示器的顯示代碼為6DH,共陽LED顯示器的顯示代碼為92H)由P1.0送出,然后P2.0~~P2.3輸出相應(yīng)位碼(LED為共陰則P2.0~~P2.3輸出1000,LED為共陽則P2.0~~P2.3輸出0111)時,則可以看到在數(shù)碼管1上顯示的數(shù)字為“5”。再將顯示的數(shù)字“5”延時5~10ms,以造成視覺暫留效果;同時代碼由P1.0送出。用同樣的方法將其余3個數(shù)字“678”送數(shù)碼管2,3,4顯示,于是最后則可以在4位LED顯示器上看到“5678”四個數(shù)字。為了使顯示效果更加穩(wěn)定,可以使每個數(shù)碼管所顯示的數(shù)字不斷的重復(fù),但其中重復(fù)頻率達到了一定的程度的時候,加之人眼睛本身的視覺暫留效果的作用,便可以看到相當穩(wěn)定的“5678”四個數(shù)字。如表3-2,即為模擬以上的過程表(以共陰LED設(shè)置顯示代碼,共陽型與此相反)。表3-2模擬過程表2.2.報警器(1)報警器的分類蜂鳴器有兩類3大品種。一類是壓電式,一類是電磁式,電磁式又有兩大品種,鐵振膜式和動圈式,我們選擇的是電磁式。所有蜂鳴器都有兩種類型:純蜂鳴器和帶驅(qū)動的蜂鳴器,蜂鳴器都是用音頻信號驅(qū)動的,都是交流驅(qū)動。(2)報警 器的工作原理報警器的種類很多,本次設(shè)計采用的是電磁式蜂鳴器作為報警器。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、震動膜片以及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號通過電磁線圈,使得電磁線圈產(chǎn)生了一個磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性的振動發(fā)聲。2.3.計時電路的工作原理圖如圖3-5所示。圖3-5計時電路原理圖2.4.計時電路的工作原理計時電路主要由開關(guān)K5~~K7,單片機AT89C51,時間設(shè)置完成后,啟動定時器T0開始定時計數(shù)。一節(jié)比賽為15分鐘,按下開始鍵數(shù)碼管顯示倒計時,時間已過去1秒鐘,即為44分59秒。這樣一直持續(xù)下去,直到變?yōu)椤?000”時表示賽程結(jié)束。如果比賽中,裁判叫暫停,則只要按一下K7鍵,即可暫停計時。2.5.振蕩電路本次設(shè)計要使用到AT89C51單片機的時鐘振蕩功能。AT89C51中有一個用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入和輸出端。這個放大器與作為反饋元件的片外石英晶體[6]或者陶瓷諧振器一同構(gòu)成自激振蕩器。振蕩電路如圖3-6所示。如圖3-6,外接石英晶體或者陶瓷諧振器以及電容C1,C2接在放大器的反饋電路中構(gòu)成并聯(lián)諧振電路。諧振器本身對外接電容C1、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度以及溫度的穩(wěn)定性,如果使用石英晶體,推薦使用30pF,而建議若使用陶瓷諧振器選擇40pF。我們也可以使用外部時鐘,采用外部時鐘電路如圖3-7所示。在外接時鐘的情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘脈沖的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個兩分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小的高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合技術(shù)條件以及本次設(shè)計所采用硬件的要求。圖3-6時鐘振蕩電路圖3-7外部時鐘電路晶振電路:51單片機最小系統(tǒng)晶可以采用6MHz或者11.0592MHz,在正常工作的情況下可以采用更高頻率的晶振,51單片機最小系統(tǒng)晶振的振蕩頻率直接影響單片機的處理速度,頻率越大處理速度越快。典型的晶振取11.0592MHz(因為可以準確地得到9600波特率和19200波特率,用于有串口通訊的合)/12MHz(產(chǎn)生精確的uS級時歇,方便定時操作),本設(shè)計使用的晶振為12MHz。2.6.計分電路每次得分由裁判選擇住客加1、2、3分。加錯比分可進行減分確保比賽正常進行。數(shù)碼管做多可加到999足夠比賽的進行。2.7.器件選擇及介紹本系統(tǒng)在設(shè)計的過程中主要選取了以下一些器件:單片機:AT89C51顯示器件:7段共陰極LED顯示器按鍵:歐姆龍按鍵3、本設(shè)計特點本次設(shè)計用由AT89C51編程控制LCD作顯示的球賽計時計分系統(tǒng)。該系統(tǒng)具有賽程時間暫停,及時刷新甲、乙雙方的成績等功能。它具有價格低廉,性能穩(wěn)定,操作方便并且易于攜帶等特點。廣泛適合各類學(xué)?;蛘咝⌒蛨F體作為賽程計時計分。

籃球比賽計時計分器是為了解決籃球比賽時計分與計時準確的問題。此裝置利用單片機AT89C51完成了計時和計分的功能。本文詳細地介紹了系統(tǒng)硬件與軟件的設(shè)計過程,采用該裝置可根據(jù)實際情況進行比分修改和時間的準確顯示,具有低功耗,可靠性,安全性以及低成本等特點。

第三部分設(shè)計成果1.設(shè)計成果圖片2.本作品特點本次設(shè)計用由AT89C51編程控制LCD作顯示的球賽計時計分系統(tǒng)。該系統(tǒng)具有賽程時間暫停,及時刷新甲、乙雙方的成績等功能。它具有價格低廉,性能穩(wěn)定,操作方便并且易于攜帶等特點。廣泛適合各類學(xué)校或者小型團體作為賽程計時計分。

籃球比賽計時計分器是為了解決籃球比賽時計分與計時準確的問題。此裝置利用單片機AT89C51完成了計時和計分的功能。本文詳細地介紹了系統(tǒng)硬件與軟件的設(shè)計過程,采用該裝置可根據(jù)實際情況進行比分修改和時間的準確顯示,具有低功耗,可靠性,安全性以及低成本等特點。3、總設(shè)計原理圖4、程序Mian.c#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitA9=P1^6;sbitA10=P1^7;sbitZh_Add=P3^0; //主隊加sbitZh_Sub=P3^1; //主隊減sbitKe_Add=P3^2; //客隊加sbitKe_Sub=P3^3; //客隊減sbitKe_Start=P3^4; //開始sbitKey_Stop=P3^5; //暫停sbitKey_JH=P3^6; //比分交換ucharcodenum[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共陽極數(shù)碼管段選【0、1、2、】uintKe_Score,Zh_Score,Fen,Miao,aa;/**************延時**********************/voidDelay_ms(uintz){ uintx,y; for(x=z;x>0;x--) for(y=100;y>0;y--);}/**************位選**********************/voidShuma_We(ucharx){ switch(x) { case1:P0=0x01;A9=0;A10=0;break; case2:P0=0x02;A9=0;A10=0;break; case3:P0=0x04;A9=0;A10=0;break; case4:P0=0x08;A9=0;A10=0;break; case5:P0=0x10;A9=0;A10=0;break; case6:P0=0x20;A9=0;A10=0;break; case7:P0=0x40;A9=0;A10=0;break; case8:P0=0x80;A9=0;A10=0;break; case9:P0=0x00;A9=1;A10=0;break; case10:P0=0x00;A9=0;A10=1;break; }}/**************數(shù)碼管顯示**********************/voidShuma_Show(ucharwe,uchardu){ Shuma_We(we); P2=num[du]; Delay_ms(2); P2=0xff;}/**************按鍵檢測**********************/voidKey_Detection(void){ uintx; if(Zh_Add==0)//主隊加1 { Delay_ms(5); if(Zh_Add==0) { while(!Zh_Add); Zh_Score++; } } if(Zh_Sub==0)//主隊減1 { Delay_ms(5); if(Zh_Sub==0) { while(!Zh_Sub); Zh_Score--; if(Zh_Score>=1000){Zh_Score=0;} } } if(Ke_Sub==0) //客隊減1 { Delay_ms(5); if(Ke_Sub==0) { while(!Ke_Sub); Ke_Score--; if(Ke_Score>=1000){Ke_Score=0;} } } if(Ke_Add==0) //客隊加一 { Delay_ms(5); if(Ke_Add==0) { while(!Ke_Add); Ke_Score++; } } if(Ke_Start==0) //開始 { Delay_ms(5); if(Ke_Start==0) { while(!Ke_Start); TR0=1; } } if(Key_Stop==0) //停止 { Delay_ms(5); if(Key_Stop==0) { while(!Key_Stop); TR0=0; } } if(Key_JH==0) //交換比分 { Delay_ms(5); if(Key_JH==0) { while(!Key_JH); x=Zh_Score; Zh_Score=Ke_Score; Ke_Score=x; } }}/**************初始化*********************/voidInit(void){ TMOD=0x01; //設(shè)置工作方式 TH0=(65536-50000)/256; //裝初值 TL0=(65536-50000)%256; EA=1; //開總中斷 ET0=1; //中斷允許位 TR0=0; //關(guān)中斷 Fen=15; Miao=0;}voidmain(void){ Init(); while(1) { Key_Detection();//按鍵檢測 Shuma_Show(1,Zh_Score/100); Shuma_Show(2,(Zh_Score%100)/10); Shuma_Show(3,(Zh_Score%100)%10); Shuma_Show(4,Fen/10); Shuma_Show(5,Fen%10); Shuma_Show(6,Miao/10); Shuma_Show(7,Miao%10); Shuma_Show(8,Ke_Score/100); Shuma_Show(9,(Ke_Score%100)/10); Shuma_Show(10,(Ke_Score%100)%10); }}/**************定時器0*********************/voidTime0(void)interrupt1{ aa++; TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(aa==20) { aa=0; Miao--; if(Miao>=100) { Miao=59; Fen--; if(Fen>=100) { Fen=15; Miao=0; TR0=0; } } }}

第四部分結(jié)束語通過這次的畢業(yè)設(shè)計,我對一些專業(yè)的電子設(shè)計有了更深的了解,同時也嘗試著去應(yīng)用自己所掌握的知識。這次畢業(yè)設(shè)計主要對電路的設(shè)計,單片機AT89C51的應(yīng)用,各種設(shè)計軟件的操作的一個綜合性的考核。經(jīng)過這次的設(shè)計,我感受很深。畢業(yè)設(shè)計不僅給我們提供了一個很好的展現(xiàn)和應(yīng)用自己所學(xué)知識的平臺,又是檢驗自己所學(xué)的知識和實現(xiàn)知識價值能力的一個機會。在設(shè)計過程中不可避免的會遇到很多的問題,給我的感覺就是下手很難,很不順手,看似很簡單的電路,要動手把它給設(shè)計出來,是很難的一件事,主要原因是我們沒有經(jīng)常動手設(shè)計過電路。尤其是在最后調(diào)試部分,會因為各種原因使得自己得不到滿意的結(jié)果,由于單片機系統(tǒng)的知識似懂非懂,而且很多知識當時弄明白了,現(xiàn)在要用的時候又不記得,造成需要花費大量的時間去重新查閱各種資料和程序命令,但一旦問題解決了,會使得自己得到重來沒有過的興奮與自豪。

第五部分致謝經(jīng)過這次的畢業(yè)設(shè)計,我對電子設(shè)計有了更深的了解,同時也去應(yīng)用自己所掌握的知識。這次畢業(yè)設(shè)計主要對電路的設(shè)計,單片機AT89C51的應(yīng)用,各種設(shè)計軟件的操作的一個綜合性的考核。畢業(yè)設(shè)計不僅給我們提供了一個很好的展現(xiàn)和應(yīng)用自己

溫馨提示

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

評論

0/150

提交評論