基于AT89C51的籃球比賽計分器設計說明_第1頁
基于AT89C51的籃球比賽計分器設計說明_第2頁
基于AT89C51的籃球比賽計分器設計說明_第3頁
基于AT89C51的籃球比賽計分器設計說明_第4頁
基于AT89C51的籃球比賽計分器設計說明_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

......基于AT89C51的籃球比賽計分器課程設計學院:學生__班級:學號:指導.....摘要隨著單片機在各個領域的廣泛應用,許多用單片機作控制的球賽計分器也應運而生,如用單片機控制LCD液晶顯示器的計分器,用單片機控制LED七段顯示器的計分器等等。本次設計的籃球計分系統以AT89C51單片機為核心元件,通過七段共陰極LED來顯示比分。采用CD4094〔8位移位存貯總線寄存器進行串行口擴展顯示器接口,并利用74LS21〔雙四輸入與門來實現比分的刷新功能。關鍵詞:籃球計分器;AT89C51;顯示;矩陣鍵盤;LED數碼管.....目錄TOC\o"1-3"\h\u119471前言196952系統方案設計2187252.1總體方案2269772.1.1設計內容2154812.1.2設計要求2291772.2系統組成398693硬件設計495453.1AT89C51的介紹4165443.2復位電路484853.3鍵盤控制電路5154623.4顯示電路6304324軟件設計868274.1主程序設計835394.2鍵盤識別及處理程序設計9205334.3顯示子程序設計9202694.4復位程序設計10293985系統調試1234215.1硬件接線及調試12142646總結13275256.1設計心得135490參考文獻1528127致謝1612140附錄17......1前言體育比賽記分系統是對體育比賽過程中所產生的比分等數據進行快速采集記錄,加工處理,傳遞利用的信息系統。根據不同運動項目的不同比賽規則要求,體育比賽的記分系統包括測量類,評分類,命中類,制勝類得分類等多種類型。比如籃球比賽是根據運動隊在規定的比賽時間里得分多少來決定勝負的,因此,籃球比賽的記分系統是一種得分類型的系統。籃球比賽的記分系統由計分器等多種電子設備組成,同時,根據目前高水平籃球比賽要求,完善的籃球比賽記分系統設備應能夠與現場成績處理,現場大屏幕,電視轉播車等多種設備相聯,以便實現高比賽現場感,表演娛樂觀眾等功能目標。由于單片機的集成度高,功能強,通用性好,特別是它具有體積小,重量輕,能耗低,價格便宜,可靠性高,抗干擾能力強和使用方便等獨特的優點,使單片機迅速得到了推廣應用,目前已經成為測量控制應用系統中的優選機種和新電子產品的關鍵部位。世界各大電氣廠家,測控技術企業,機電行業,競相把單片機應用于產品更新,作為實現數字化,智能化的核心部件。籃球計分器就是以單片機為核心的計分系統。......2系統方案設計2.1總體方案此計分器的設計采用模塊化結構,主要由以下2個組成,即鍵盤模塊、以及譯碼顯示模塊。以單片機為核心,配以一定的外圍電路和軟件,以實現比賽計分器的功能。它由硬件部分和軟件部分組成。系統設計方案的硬件電路設計方框圖如圖2-1所示。矩矩陣鍵盤89C51甲顯示器89C51甲顯示器乙顯示器乙顯示器圖2-1硬件電路設計方框圖2.1.1設計內容〔1給甲、乙兩隊分別設置加分按鈕,各按鈕按下分別實現給甲、乙隊加1、2、3分。〔2給甲、乙兩隊分別設置減分按鈕,各按鈕按下分別實現給甲、乙隊減1、2、3分。〔3設置一個復位按鈕,按下實現甲、乙隊總分回到初試分及顯示〔4預置分通過甲、乙兩隊加分按鈕實現。2.1.2設計要求〔1方案合理、正確,系統穩定、可靠。〔2軟件設計要求盡可能精練、簡短和運行可靠。〔3硬件電路要求簡單明了,以節約成本。2.2系統組成硬件電路由復位按鈕、80C51單片機、矩陣鍵盤和8位共陰極LED顯示器等組成。軟件部分主程序主要由系統初始化段、鍵盤識別、鍵值處理、8位共陰極LED顯示器掃描顯示子程序組成。3硬件設計3.1AT89C51的介紹AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。3.2復位電路為確保微機系統中電路穩定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機電路是時序數字電路,它需要穩定的時鐘信號,因此在電源上電時,只有當VCC超過4.75V低于5.25V以及晶體振蕩器穩定工作時,復位信號才被撤除,微機電路開始正常工作。目前為止,單片機復位電路主要有四種類型:〔1微分型復位電路;〔2積分型復位電路;〔3比較器型復位電路;〔4看門狗型復位電路在此介紹一下看門狗型的復位電路:看門狗型復位電路主要利用CPU正常工作時,定時復位計數器,使得計數器的值不超過某一值;當CPU不能正常工作時,由于計數器不能被復位,因此其計數會超過某一值,從而產生復位脈沖,使得CPU恢復正常工作狀態。典型的看門狗型復位電路如圖3-1所示:圖3-1看門狗型復位電路此復位電路的可靠性主要取決于軟件設計,即將定時向復位電路發出脈沖的程序放在何處。一般設計,將此段程序放在定時器中斷服務子程序中。然而,有時這種設計仍然會引起程序走飛或工作不正常。原因主要是:當程序"走飛"發生時定時器初始化以及開中斷之后的話,這種"走飛"情況就有可能不能由看門狗復位電路校正回來。因為定時器中斷一真在產生,即使程序不正常,看門狗也能被正常復位。為此提出定時器加預設的設計方法。即在初始化時壓入堆棧一個地址,在此地址內執行的是一條關中斷和一條死循環語句。在所有不被程序代碼占用的地址盡可能地用子程序返回指令RET代替。這樣,當程序走飛后,其進入陷阱的可能性將大大增加。而一旦進入陷阱,定時器停止工作并且關閉中斷,從而使看門狗復位電路會產生一個復位脈沖將CPU復位。當然這種技術用于實時性較強的控制或處理軟件中有一定的困難。3.3鍵盤控制電路在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口<如P1口>就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵<9鍵>。如圖3-2所示。圖3-2矩陣式鍵盤電路需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態就可得知是否有鍵按下了。具體的識別及編程方法如下所述。矩陣式鍵盤的按鍵識別方法確定矩陣式鍵盤上何鍵被按下介紹一種"行掃描法"。行掃描法行掃描法又稱為逐行<或列>掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。判斷鍵盤中有無鍵按下將全部行線Y0-Y3置低電平,然后檢測列線的狀態。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。判斷閉合鍵所在的位置在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。3.4顯示電路顯示器采用兩個四位共陰極LED顯示器,來實現顯示器的動態掃描,八個二極管連接一個陰極的結構,只要另一段為高電平,二極管就會發光,從而形成一段。將八段順序排列后就成為具有一定編碼的共陰顯示器了。動態掃描的頻率有一定的要求,頻率太低,LED將出現閃爍現象。如頻率太高,由于每個LED點亮的時間太短,LED的亮度太低,肉眼無法看清,所以一般均取幾個ms左右為宜,這就要求在編寫程序時,選通某一位LED使其點亮并保持一定的時間,程序上常采用的是調用延時子程序。4軟件設計4.1主程序設計主程序主要由系統初始化段、開中斷、鍵盤識別、鍵值處理、兩個4位共陰極LED顯示器掃描顯示子程序和中斷處理子程序等組成。通過對以上各段和子程序的結合,以實現系統功能。該系統主程序流程圖如下圖4-1所示。開始開始顯示顯示鍵盤識別鍵盤識別鍵值鍵值判斷鍵值判斷鍵值 a隊 b隊對應處理減對應處理加對應處理加對應處理減對應處理減對應處理加對應處理加對應處理減顯示顯示圖4-1主程序流程圖4.2鍵盤識別及處理程序設計按鍵識別及處理程序主要由鍵盤識別和鍵值處理組成。其中鍵盤識別子程序不斷地對鍵盤進行判斷是否有鍵按下。當有鍵按下時則轉到鍵碼處理即甲、乙總分處理子程序對相應按鍵進行相應處理,即可實現對甲、乙兩隊總分的計算與處理。鍵盤識別即依次判斷第一列、第二列、第三列、第四列是否有鍵按下。如果有鍵按下,先得出列,再反向賦值得出行,最后得出所在行和列的位置。鍵值處理即先定義各按鍵,再對按鍵值進行保存,通過判斷鍵值來判斷分別對甲隊或是乙隊加減分,最后顯示出甲隊、乙隊得分。甲、乙總分處理子程序流程圖如下圖4-2所示。甲或乙甲或乙除以100除以10個位十位百位商商余數余數商余數余數除以100除以10圖4-2鍵值處理子程序流程圖4.3顯示子程序設計由于該系統使用的是8位LED顯示器顯示計分器比分,因此顯示采用動態掃描顯示方法,即由顯示器掃描顯示子程序控制顯示器逐個循環從左至右依次點亮各個顯示器。這樣雖然在任一時刻只要一個顯示器點亮,但是由于人眼具有視覺殘留效應,看起來與全部顯示器持續點亮效果一樣。顯示器掃描顯示子程序顯示每一位用如圖4-3所示流程方法完成。從80C51的P1口送顯示器位碼從80C51的P1口送顯示器位碼讀相應位存儲單元數據〔中間兩位顯示"——"無此步由讀得數據查表確定段碼由80C51送相應顯示器位下一位顯示上一位顯示圖4-3顯示子程序流程圖4.4復位程序設計在矩陣鍵盤中設置相應的復位按鍵,當識別到復位按鍵按下時,執行復位程序。在主程序運行過程中,只要系統識別到與單片機引腳相連的按鍵按下,程序則會轉去執行復位程序,完成對甲、乙總分的清零,與此同時也就使顯示器各位計數同時也清零,執行完畢后,返回主程序,等待識別下一個按鍵。流程圖如4-4所示。復位按鍵的存在,保證了計分器能的多次使用,當比賽結束后,通過按鍵復位到初始狀態,繼續進行下一場比賽。開始開始鍵值判斷鍵值判斷按鍵按下按鍵按下比分清零比分清零返回返回圖4-4復位程序流程圖5系統調試5.1硬件接線及調試接線是設計中最關鍵的一步,我的接線原則是從全局出發,逐個模塊連接調試,最后總體調試。逐個模塊接線再調試,可以為總體調試省去很多時間,只要每個模塊正常運行,幾個模塊通過地址總線連接之后,結果也就接近了。調試前的直觀檢查:檢查連線是否正確,在通電之前應先檢查一下電路的連線是否正確,包括錯線,少線和多線的情況。根據課程設計的需求所寫出的程序檢查接線是否正確。這是一種以元件為中心進行查線的方法。把每個元件引腳的連線一次查清,檢查每個接線處在程序中是否出現,這種方法不但可以查出錯線和少線,還容易查處多線的情況。在接線時應該注意數碼管段選、片選連線的順序,防止出現接反的狀況,同時對矩陣鍵盤也要檢查是否正確,是否能正常使用,是否按照實驗要求的順序接線。2、元器件安裝時情況檢查元、器見引腳之間有無短路;連接處有無接觸不良。模擬調試結果記錄如下:通電后,顯示器初始顯示"000--000"。按照鍵盤分布說明按鍵,分布給甲、乙加1分、2分和3分,顯示器跟蹤顯示出總分,然后模擬比賽細節,隨意給甲、乙加分或是減分,均達到預期效果。在甲、乙均有一定總分的情況下對甲、乙進行減分處理,當減到0后便不能夠再進行減分操作,與程序設計相符。在甲、乙均有一定總分的情況下,按清零按鈕,顯示結果清零。重復進行上面操作,結果均符合設計要求。6總結6.1設計心得通過這次的課程設計,我對一些專業的電子設計有了更深的了解,同時也嘗試著去應用自己所掌握的知識。這次課程設計主要是對電路的設計,對單片機開發板的應用,對相關應用軟件的操作的一個綜合性的考核。經過這次的課程設計,讓我受益頗多,同時也明白自己還有很多的不足之處,明白自己應該在以后的學習生活中更加虛心學習,在學習生活中也不應該僅僅只是注重理論上的學習,結合本專業的情況而言,實踐能力與理論知識是同等重要的。都說理論與實踐相結合,理論源于實踐,實踐是理論的應用與發展,因此,我們更應該注重平時的實踐能力,豐富自己,也豐富人生。課程設計不僅給我們提供了一個很好的展現和應用自己所學知識的平臺,而且給檢驗自己所學的知識和實現知識價值能力提供了一個機會。在設計過程中不可避免的會遇到很多的問題,諸如接線問題、調試問題等,看似很簡單的電路,要動手把它給設計出來,其實是一件十分不容易的事,主要原因是我們沒有經常動手設計過電路,平時都是直接用查閱到的電路或者依靠書本,根本沒有通過自己的努力去設計過電路。尤其是在最后調試部分,會因為各種原因而無法得到設計的結果,由于單片機系統的知識似懂非懂,而且很多知識當時弄明白了,現在要用的時候又不記得,造成需要花費大量的時間去重新查閱各種資料和程序命令,但一旦問題解決了,就會豁然開朗。在這次課程設計中,我在整個設計過程中懂得了許多東西,也培養了獨立思考和設計的能力,樹立了對知識應用的信心,相信會對今后的學習工作和生活有非常大的幫助,并且提高了自己的動手實踐操作能力,使自己充分體會到了在設計過程中的成功喜悅。雖然這個設計做的并不是那么完美,但這是經過自己的努力得到的成功,想想也是知足的了,但是更加重要的是在設計過程中所學到的東西是這次課程設計的最大收獲和財富。通過本次課程設計我受益匪淺,不僅使我學會了用單片機編寫程序的方法,而且對學過的相關知識得到了進一步的鞏固和提高,通過閱讀相關專業書籍掌握了一些曾經模糊的知識以及自己并未在課本上學到的知識;同時也熟悉了實驗設備,對本專業的學習方案有了更深刻的認識,也讓我明白了,我們專業是很重視學生的動手能力的,真正的實踐能力會為我們帶來很多意想不到的機會。更重要的是,在我學習和掌握這些知識的同時,能夠在思維上得到提高和升華,提高了自己思維能力和對實驗的熱愛,讓我覺得實驗的方方面面都是十分有趣的。這次課程設計使我完善了知識結構、拓寬了知識面,開闊了眼界、提高了對各科知識綜合應用的能力;同時也鍛煉和培養了我的基本素質,它使我更加耐心、謹慎、細致。讓我學會在以后的學習生活里應該以積極的態度面對困難,因為我知道,解決了困難的欣喜是無可替代的。做任何事情其實需要的不僅僅是能力,更應有信心。只有自己相信了自己,別人才會相信你。這次課程設計其實本質上并不困難,看似很難的事,其實往往是我們把它夸大了。迎面面對生活中的挫折,堅強與努力,信心與勇氣,最終會讓一個人得到成功的果實的。這次的課程設計給我的不只是知識上的鞏固與提升,也許讓我學到的遠遠不是這些。參考文獻[1]許立梓.微型計算機原理及應用.北京:機械工業出版社,2002[2]劉樂善.微型計算機接口技術及應用.XX:華中理工大學出版社,2000[3]鄒逢興.計算機硬件技術基礎試驗教程.北京:高等教育出版社,2000[4]周佩玲.16位微型計算機原理接口及其應用.北京:中國科學技術大學出版社,2000[5]吳秀清.微型計算機原理與接口技術.北京:中國科學技術出版社,2001[6]鄧亞平.微型計算機接口技術.北京:清華大學出版社,2001[7]王迎旭.單片機原理及及應用.北京:機械工業出版社,2001[8]周航慈.單片機應用程序設計技術.北京:北京航空航天大學出版社,2002[9]謝宜仁.單片機實用技術問答.北京:人民郵電出版社,2002致謝首先要感謝王克進老師對我的悉心指導,無論是在嵌入式的理論講解中,還是在單片機實驗課上,亦或是課程設計的過程中,都要謝謝老師的教導與幫助,使我學到了理論知識,鍛煉了實踐操作能力,培養了科學的思維,教會了我學習、思考的方法,對以后的學習、工作、生活產生了積極影響,謝謝老師!同時,在這次課程設計中也要謝謝關心幫助我的同學們,謝謝大家的幫助,沒有大家的相互探討,就沒有相互的促進與提高,正是在老師、同學的幫助下,成功的完成了課程設計。還要感謝信息工程學院的諸位老師為我們提供了良好的設計條件,讓我們順利完成此次課程設計。.....附錄/* PO控制連接段選,P2連接位選,P1連接矩陣鍵盤 矩陣鍵盤按下按鍵,數碼管顯示相應的數據 比賽開始后,初始狀態為000--000 比賽結束后,可復位為000--000*/#include<reg51.h>sbitkey=P1; //P1連接矩陣鍵盤voidLED<>; //數碼管顯示voidkaishi<>; //開始或復位voidexchange<>;//交換得分voidguan<>; //關閉voidjixu<>;//繼續voidajian<intt>; //a-tvoidbjian<intt>; // b-tvoiddelay<unsignedinti>;//延時程序unsignedcharkeyscan<void>;//矩陣鍵盤掃描unsignedinta,b,m;unsignedcharj[16]={0x7e,0x7d,0x7b,0x77,0xbe,0xbd,0xbb,0xb7,0xde,0xdd,0xdb,0xd7,0xee,0xed,0xeb,0xe7};//鍵值unsignedcharDisp_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段選unsignedchardispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //位選main<>{ a=0;b=0;m=0; while<1> { unsignedkey; LED<>;//顯示數碼管 key=keyscan<>;//調用鍵盤掃描, switch<key> { case0x7e:a=a+1;LED<>;break; //a隊加1 case0x7d:a=a+2;LED<>;break; /a隊加2 case0x7b:a=a+3;LED<>;break; //a隊加3 case0x77:a=0;b=0;kaishi<>;break; // 復位 case0xbe:ajian<1>;LED<>;break; //a隊減1 case0xbd:ajian<2>;LED<>;break; //a隊減2 case0xbb:ajian<3>;LED<>;break; //a隊減3 case0xb7:jixu<>;break;//暫停,繼續 case0xde:b=b+1;LED<>;break; //b隊加1 case0xdd:b=b+2;LED<>;break; //b隊加2 case0xdb:b=b+3;LED<>;break; //b隊加3 case0xd7:exchange<>;LED<>;break; //交換比分 case0xee:bjian<1>;LED<>;break; //b隊減1 case0xed:bjian<2>;LED<>;break; //b隊減2 case0xeb:bjian<3>;LED<>;break; //b隊減3 case0xe7:guan<>;break;//關閉 }}}voidkaishi<>{ m=1;LED<>;}voidajian<intt>{if<a>=t>{a=a-t;}}voidbjian<intt>{if<b>=t>{b=b-t;}}voidjixu<>{ m=!m;LED<>;}voidguan<>{m=0; LED<>;}voidexchange<>{ unsignedinti; i=a; a=b; b=i;}voidLED<>{unsignedinti,d,LedNumVal=1; //變量定義unsignedintLedOut[10]; //變量定義unsignedintDelayCNT=0;for<d=0;d<30;d++>{ if<++DelayCNT>=20> //控制數字變化速度 { DelayCNT=0; //20個掃描周期清零一次 } if<m==1> {LedOut[2]=Disp_Tab[a/100];LedOut[1]=Disp_Tab[a%100/10];LedOut[0]=Disp_Tab[a%10];LedOut[3]=0x40; LedOut[4]=0x40; LedOut[7]=Disp_

溫馨提示

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

評論

0/150

提交評論