基于AT89C51的籃球計時、計分器設計.doc_第1頁
基于AT89C51的籃球計時、計分器設計.doc_第2頁
基于AT89C51的籃球計時、計分器設計.doc_第3頁
基于AT89C51的籃球計時、計分器設計.doc_第4頁
基于AT89C51的籃球計時、計分器設計.doc_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

淮陰師范學院畢業(yè)論文(設計)畢 業(yè) 論 文學生姓名張傲學 號170906039學院 物理與電子電氣工程學院專 業(yè)電子信息科學與技術題 目基于AT89C51的籃球計時、計分器設計指導教師 魏東旭 碩士/講師 2013年5月22摘 要:本文中的系統主要使用AT89C51芯片作為核心元件,結合外部的顯示電路及鍵盤控制電路,構成了一個籃球計時計分器。整體電路主要由AT89C51芯片、鍵盤控制、計分顯示器和計時顯示器四個模塊組成。設計中主要使用Keil軟件和Proteus軟件。Keil軟件主要用來對C語言程序進行編譯。Proteus軟件主要用來對硬件電路進行仿真。整個設計可以實現計分顯示、計時顯示和比賽結束報警等功能。設計結果表明,在籃球比賽中使用計時計分器可以準確的記錄比分和比賽時間,也可以增加籃球比賽的觀賞性。關鍵詞:AT89C51,籃球,計時器,計分器Abstract:In this paper, the system mainly uses AT89C51 chip as a core component, combination of external display circuit and keyboard control circuit, constituting a basketball timing score indicator. Overall circuit mainly consists of AT89C51 chip, the keyboard control, a scoring display and a timer display. The design Mainly used Keil software and Proteus software. Keil software is mainly used to compile the C language program. Proteus software is mainly used for the simulation of hardware circuit. The design can realize scoring display, timer display and alarm functions at the end of the game. Design results show that using the timer in the basketball match score indicator can accurately record the score and the game time. It can also add to the look of a basketball game.Keywords:AT89C51, basketball, timer, score indicator目錄1 緒論51.1設計背景51.2設計目的51.3設計要求62 系統硬件介紹62.1單片機概述62.2 AT89C51性能介紹62.3顯示器介紹113 硬件電路設計123.1系統構成框圖123.2振蕩電路133.3計時計分LED顯示器設計133.4控制鍵盤器154 軟件設計方案164.1籃球計時計分器總流程如圖174.2計時器示流程圖184.3計分器顯示流程圖195 仿真與調試205.1軟件簡介205.2仿真結果21結 論28參 考 文 獻29致 謝30附錄A 硬件電路整體圖31附錄B 源程序321 緒論本文介紹的是基于單片機控制的籃球計時計分器的發(fā)展和前景,論述其系統的組成框圖,對各部分電路的功能及其器件進行論證,主要包括計分器顯示電路,計時器顯示電路、鍵盤控制電路、振蕩電路等。具體論述電路的實現方案及各部分電路使用器件。并設計軟件部分的程序流程圖、編寫相應的程序。最后,應用Proteus軟件,實現了功能仿真。1.1設計背景在日常生活中單片機將我們的生活變的更加智能,許多繁瑣的系統如果改由單片機進行設計,便能使系統更簡潔、更智能。給人們的生活帶來更大的便捷。隨著現在技術發(fā)展,智能化越來越普遍,越來越給人們的生活帶來改變。單片機與串口通信的結合更多地應用到各種系統中已成一種趨勢。此次設計就是單片機和籃球的完美結合?,F如今籃球是一項風靡全球的運動,特別是美國職業(yè)籃球的球星們更是眾多球迷所喜愛的運動員。很多人很熟悉籃球,也對籃球的計時計分有所了解。籃球比賽是兩個隊在規(guī)定的時間內得分多少來決定勝負的,這就需要有計時計分器記錄下每隊的得分以及所花時間。因此籃球計時計分器就應運而生?;蛟S許多人有著用翻牌器計分的記憶,但是根據目前高水平的籃球要求,需要更精確更及時的計時計分。以便于觀眾能更好的欣賞比賽,能更好的感受比賽緊張的氣氛。于是就有了應用AT89C51設計的籃球計時計分器。1.2設計目的當今社會隨著單片機在各個領域的廣泛應用,許許多多用單片機做核心的球賽計時計分系統也隨之而產生,例如用AT89C51單片機控制LCD液晶顯示器計時計分器,還有使用單片機控制LED七段顯示器計時計分器等。本次設計采用的是由AT89C51控制LED七段數碼管作顯示的籃球比賽計時計分器。該系統具有比賽時間設置,比賽時間暫停,甲乙雙方比分累加,甲乙雙方比分切換等功能。它具有價格低廉,性能穩(wěn)定,操作方便并且易于攜帶等特點。廣泛適合各類學校或者小型團體作為賽程計時計分 1。通過本次基于C51系列籃球計時計分器的設計,可以了解、熟悉有關單片機開發(fā)設計的過程,并加深對單片機的理解和應用以及掌握單片機與外接設備連接的一些方法和技巧,這主要表現在以下一些方面:(1) 籃球賽計時計分系統包含了8051系列單片機的最小系統的構成,同時在此基礎上擴展了一些外接設備。(2) 可以了解到LED顯示器的結構、工作原理以及這種顯示器的接口實例、具體連接與編程方法。1.3設計要求(1)籃球計時計分器功能:記錄比賽雙方比分,可進行加減分交換場地時比分交換倒計時形式記錄比賽時間比賽結束發(fā)出報警聲(2)設計硬件電路圖。(3)畫出程序流程圖、編寫程序、完成編譯。(4)硬件電路進行連接、調試、并完成Proteus仿真。2 系統硬件介紹2.1單片機概述單片機是把一個計算機系統集成在一塊半導體芯片上,其目的在于計算機微型化和提高系統的可靠性。單片機的內部硬件結構和指令系統主要是針對自動控制應用而設計的,所以單片機又稱微控制器MCU(Micro Controller Unit)。單片機由運算器,控制器,存儲器,輸入輸出設備構成,相當于一個微型的計算機(最小系統),和計算機相比,單片機缺少了外圍設備等。單片機是通過內部的總線把計算機的各個主要部分連接到一個機構,其內部包括三種總線:地址總線、控制總線和數據總線2。單片機的體積小、質量輕、價格便宜,為學習、應用和開發(fā)提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇3。2.2 AT89C51性能介紹MCS-51是指由美國INTEL公司生產的一系列單片機的總稱,這一系列單片機包括了很多品種,如8031,8051,8751等,其中8051是最早最典型的產品,該系列其它單片機都是在8051的基礎上進行功能的增、減、改變而來的,所以人們習慣于用8051來稱呼MCS51系列單片機。AT89C51是一個低電壓,高性能CMOS 8位單片機,片內含4k 字節(jié)的可反復擦寫的只讀程序存儲器和128 bytes的隨機存取數據存儲器(RAM)。AT89C51單片機使用的是高密度的生產技術并且還不容易丟失內部存儲的數據,對其進行編譯是可以使用51單片機指令系統。AT89C51是一個使用性能高但是損耗功率很小的單片機,40個外部引腳,其中包含有32個雙向輸入/輸出(I/O)端口,單片機內部還含2個全雙工串行通信口,以及2個16位可編程定時計數器和2個外中斷口;它主要由中央處理器,控制器,存儲器,I/O接口,定時器/計數器, 中斷控制系統,內部總線等部分組成。如圖2-1所示 2-1 AT89C51引腳圖主要特性:兼容MCS-51的相關指令系統4K字節(jié)可擦寫存儲器32個I/O接口8*128bit位內部RAM2個16位定時/計數器工作時鐘頻率0-24MHz5個中斷源可供編程使用的串行口管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口是一個8位雙向輸入/輸出端口,擁有內部上拉電阻。P2端口輸出的緩沖器能夠驅動4個TTL邏輯電平。當P2端口寫“1”時,內部上拉電阻拉高端口,這種狀態(tài)下P2端口可以作為輸入端口使用。在被作為輸入端口使用時,被外部拉低的引腳因為內部電阻的原因,從而輸出電流。當訪問外部程序存儲器或使用16位地址的外部數據存儲器(例如執(zhí)行MOVX DPTR)時,P2口送出高8位地址數據。在此應用中,P2口運用很強的內部上拉發(fā)送“1”。當使用8位地址(如MOVX RI)來訪問外部數據存儲器時,P2端口輸出P2鎖存器的內容。因此,當Flash編程和校驗時,P2口也會同時接收高8位地址字節(jié)和大量的控制信號3。P3口:P3口為8位準雙向I/O接口,內部具有上拉電阻,它是雙功能復用口,每個引腳可驅動4個TTL負載。作為通用I/O接口時,功能與P1口相同,常使用第二功能。 P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能 P3.7端口也作為 /RD端口,功能是:外部數據存儲器讀選通 P3.6 端口也作為 /WR端口,功能是:外部數據存儲器寫選通 P3.5 端口也作為T1端口,功能是:記時器1外部輸入 P3.4 端口也作為T0端口,功能是:記時器0外部輸入 P3.3 端口也作為/INT1端口,功能是:外部中斷1 P3.2 端口也作為/INT0端口,功能是:外部中斷0 P3.1 端口也作為TXD端口,功能是:串行輸出口 P3.0 端口也作為RXD端口,功能是:串行輸入口 P3口同時也可以接收一些控制信號供編程校驗和閃爍編程使用。RST端口:復位輸入端。當RST端口持續(xù)兩個機器周期的高電平時,則單片機進行復位。ALE/PROG:地址鎖存允許/編程引腳。當訪問外部的程序存儲器時,ALE的輸出用于鎖存地址的地位字節(jié),一邊與P0口實現地址/數據復用。當不訪問外部程序存儲器時,ALE端口將輸出一個1/6時鐘頻率的脈沖信號,這個信號可以用于識別單片機是否工作,也可以當做一個時鐘向外輸出。第二功能是對EPROM芯片進行編程和校驗是,此引腳傳送52ms寬的負脈沖信號。在需要的情況下,可以將地址為8EH單元的SFR的D0位置“1”,則ALE操作將無效。若這個位置“1”,ALE則僅在執(zhí)行MOVC或MOVX指令時能被激活13。PSEN:作為片外ROM選通線。在執(zhí)行訪問片外ROM的指令MOVC時,80C51自動在該引腳上產生一個負脈沖,用于對片外ROM的選通。在其他情況下,該引腳均為高電平封鎖狀態(tài)。EA/VPP:作為允許訪問片外程序存儲器/編程電源線。80C51內置有4KB的程序存儲器,當EA為高電平并且程序地址小于4KB時,讀取內部程序存儲器指令數據,而超過4KB地址時,則讀取外部程序存儲器指令。如果為低電平,則不管地址大小,一律讀取外部程序存儲器指令。由此看出,對于片內沒有程序存儲器的單片機,此引腳必須接地。此引腳是復用引腳,其第二功能是片內EPROM編程/校驗時的電源線,在編程時,此引腳需加上21V的編程電壓。XTAL1/XTAL2:作為片內振蕩電路的輸入端。作為片內振蕩電路的輸出端。1.振蕩器特性:XTAL1引腳為片內振蕩電路的輸入端,XTAL2引腳為片內振蕩電路的輸出端。80C51單片機的時鐘有兩種方式:一種是片內時鐘振蕩方式,但是需要在18和19引腳外部接上一個石英晶振和振蕩電容,振蕩電容的值一般取30pF;另一種是外部時鐘方式,就是將XTAL1懸空,外部時鐘信號從XTAL2引腳輸入12。2.芯片擦除當ALE引腳持續(xù)10ms的低電平時,我們可以通過準確的控制信號的不同組合方式來對三個鎖定位和整個陣列進行電擦除。要想擦除芯片,就需要在不為空的存儲字節(jié)在程序中被重復的編程之前,將代碼陣列的值全部設置為“1”,如果不采取此動作,則無法擦除芯片4。此外,穩(wěn)態(tài)邏輯也存在于AT89C51中,靜態(tài)邏輯在頻率接近零頻率時產生,而且其掉電模式能夠從兩種不同的軟件中自選。在空閑工作式下,將IDL位置為1,此時封鎖了進入CPU的時鐘,于是CPU進入空閑待機狀態(tài)。中斷系統、串行口、計數器/定時器,仍有時鐘信號,繼續(xù)工作。在掉電工作方式下,將PD位置為1,可以使單片機的振蕩器停止振蕩,只有片內的RAM和SER中的數據保持不變,而且包括中斷系統在內的全部電路都將處于停止工作的狀態(tài) 6。3.掉電模式在掉電工作方式下,將PD位置為1,可以使單片機的振蕩器停止振蕩,只有片內的RAM和SER中的數據保持不變,而且包括中斷系統在內的全部電路都將處于停止工作的狀態(tài)。要想退出掉電工作方式,只能采用硬件復位,即需要在RST引腳上外加一個足夠寬的復位脈沖,使80C51復位。不能采用中斷喚醒的方法。想要使單片機從掉電方式退出后繼續(xù)執(zhí)行掉電前的程序,則必須在掉電前預先把SFR中的內容保存到片內RAM中 5。表2-3 外部引腳狀態(tài)表模式空閑模式空閑模式掉電模式掉電模式程序存儲器內部外部內部外部ALE1100/PROG1100P0數據浮空數據浮空P1數據數據數據數據P2數據數據數據數據P3浮空浮空數據數據4.程序儲存器的加密AT89C51可使用對芯片上的三個加密位LB1、LB2、LB3進行編程(P)或者不進行編程(U)。當加密位LB1被編程時,在復位期間,EA斷的邏輯電平被采樣并鎖存,如果單片機上電后一直沒有服位,則鎖存起的初始值是一個隨機數,這個隨機數會保存到真正復位為止 。2.3顯示器介紹顯示器是最常用的輸出設備,其種類繁多,但在單片機系統設計中最常用的是發(fā)光二極管顯示器(LED)和液晶顯示器(LCD)兩種。由于這兩種顯示器結構簡單,價格便宜,接口容易實現,因而得到廣泛的應用。液晶顯示器分很多種類,按顯示方式可分為段式,行點陣式和全點陣式。段式與數碼管類似,行點陣式一般是英文字符,全點陣式可顯示任何信息, 如漢字、圖形、圖表等 。兩者之間的區(qū)別:(1)二極本身發(fā)光, 液晶本身不發(fā)光,只是透射光。 (2)二極管體積大,圖像質量一般,適合作室外大屏幕,價格較低。液晶成本較高,面積無法做得很大,但圖像質量很好,適合做顯示器。 (3)二極管耗電大,液晶耗電小。(4)二極管圖像刷新率低,液晶的高 LED顯示器又稱為數碼管,LED數碼管是將8個發(fā)光二極管組合在一起從而構成一個數碼管。其中7個組成一個“8”字型,還有一個是圓點樣的發(fā)光二極管作為一個小數點。由于其內部結構的引線已經全部連接完成,所以只要導出各自的每一筆劃以及公共的電極。LED顯示器有兩種不同的形式:共陰極LED顯示器和共陽極LED顯示器,如圖2-2所示 。本次設計使用的是共陰極LED顯示器。 圖2-2 共陰與共陽極LED顯示器結構LED顯示器有兩種方式:一是靜態(tài)顯示;二是動態(tài)顯示。在本次設計中,采用的是動態(tài)顯示。靜態(tài)顯示和動態(tài)顯示各有各的有點;LED的靜態(tài)顯示優(yōu)點是編程容易、管理簡單,但是靜態(tài)顯示所要占的I/O口資源很多;而動態(tài)顯示所占用資源較少,因此在顯示的LED點較多的情況下,一般都采用動態(tài)顯示方式4。在本次設計中,采用的是動態(tài)顯示。這種電路的優(yōu)點在于:通過分時方法分別控制每一個LED數碼管的COM端口,從而促使每個數碼管依次的接受控制并顯示。通過程序設置依次點亮每個數碼管,產生1ms2ms的發(fā)光時間,因為每個人都存在視覺暫留的現象,加之受到發(fā)光二極管余輝效應的影響和信號的掃描達到一定足夠的速度,就能看到點亮后的顯示結果。LED數碼顯示器如圖2-3所示。 2-3 7段LED數碼管3 硬件電路設計 3.1系統構成框圖 本次設計主要基于AT89C51單片機,主體的計時計分器系統框圖如圖3-1所示。計分顯示電路晶振電路89C51計時顯示電路控制鍵盤圖3-1系統整體框圖本系統采用單片機AT89C51作為本設計的核心元件。利用7段共陰LED作為顯示器件。在本次設計中,共接入8個共陰LED顯示器,其中4個用于記錄 甲、乙兩隊的分數,每隊2個LED顯示器分數范圍可達到099分,足夠滿足賽程需要。另外4個LED顯示器則用于記錄賽程的時間,分別用于記錄分鐘和秒鐘。賽程計時采用倒計時方式。即比賽前將時間設置為10分鐘,比賽開始時啟動計時,直至計時到零為止。其次鍵盤共設置了16個開關,0-7號鍵盤為計分鍵盤分別控制甲隊、乙隊得分,為防止出現分加錯的情況,特別設置了3、7號開關為減分按鈕。8、9按鈕分別是比分清零和比分切換按鈕。A-F按鈕則是控制時間及比賽開始。復位按鈕控制復位情況。3.2振蕩電路本次設計要使用到AT89C51單片機的時鐘振蕩功能。AT89C51中有一個用于構成內部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構成自激振蕩器7。AT89C51的時鐘主要分為兩種方式:第一種是片內時鐘振蕩,另一種是外部時鐘方式。本次設計采用的是第一種片內時鐘振蕩方式,通過在18和19端口外接石英晶體和振蕩電容組成,這樣既可產生本設計所需的時鐘。振蕩電路如圖3-2所示。 圖3-2 時鐘振蕩電路3.3計時計分LED顯示器設計本次設計的核心就是采用AT89C51設計出一整套計時計分器,以滿足與籃球比賽的需要。本次設計的LED顯示器采用的是動態(tài)驅動方式。動態(tài)驅動,就是通過控制依次點亮每一段數碼管,每個數碼管點亮的時間在1ms至2ms,利用人眼的視覺暫留現象,就可以讓人看到顯示的結果。加之發(fā)光二極管還有余暉效應,只要信號的掃描達到一定的速度,就能穩(wěn)定的顯示信息。動態(tài)驅動不需要使用過多的I/O端口,這樣可以簡化電路。要使LED數碼管要能夠正常顯示,需要用驅動電路驅動數碼管的各個段碼,由此顯示需要的數字和字母,所以按照LED不同的驅動方式,可以將其分為靜態(tài)模式和動態(tài)模式兩種11。(1)動態(tài)顯示驅動:使用數碼管動態(tài)顯示界面的顯示方式,已成為在單片機的應用中最廣泛的一種,動態(tài)驅動就是將每個數碼管的8個顯示的筆劃“a, b, c, d, e, f, g, dp”這幾個引腳的同名端相連接,同時給數碼管公共極COM增加了位元件選通控制電路,該位元件選通通過各自的獨立輸入/輸出線控制。若單片機依次輸出了字形碼,則所有的數碼管必會接收到同樣的字形碼。但是,單片機對于位元件選通電路的控制則決定了最終是哪個數碼管能夠顯示出字形。因此,我們若想所需的數碼管燈亮,則只要打開所需對應的數碼管的選通控制,而不打開相應選通控制的數碼管沒有辦法亮。動態(tài)驅動就是通過分時方法分別控制每一個LED數碼管的COM端口,從而促使每個數碼管依次的接受控制并顯示。數碼管在依次顯示的過程當中,會產生1ms2ms的發(fā)光時間,因為每個人都存在視覺暫留的現象,加之受到發(fā)光二極管余輝效應的影響和信號的掃描達到一定足夠的速度,所以,人會接收到穩(wěn)定的顯示信息10。(2)靜態(tài)顯示驅動:直流驅動被稱為靜態(tài)驅動。所謂的靜態(tài)驅動就是其每一個的段碼都必須要有一個單片機的輸入/輸出端口完成驅動。編程簡單是靜態(tài)驅動的優(yōu)點,它的顯示亮度非常高,占用I/O口多是它的缺點,假設想要驅動5個數碼管都進行靜態(tài)顯示,那么就需要根I/O口來驅動數碼管,因為一個89C52單片機只有32個I/O口,所以,在實際應用時則需要用利用譯碼器進行驅動,因而對于硬件電路來說則提高了它的復雜度9。計時計分器電路分別如圖3-3、3-4所示。 圖3-3計時顯示器電路 圖3-4計分顯示器電路3.4控制鍵盤器控制鍵盤由16個按鈕組成,主要分為兩個部分,第一部分是比分控制鍵盤,另一部分是時間控制鍵盤。比分控制鍵盤由0-9號按鈕組成,分別按下02號按鈕甲隊分別加一分、兩分和三分,3號按鈕為減分按鈕,防止分數加錯,每按下一次甲隊減一分。4-6號按鈕控制的是乙隊的加一分、兩分和三分,7號按鈕同樣是減分按鈕每按下一次,乙隊減一分。按下8號鍵,雙方比分清零;中場結束后開始下半場比賽時需要交換比賽雙方比分,此時按下9號按鈕即可。A-F按鈕則是比賽控制按鈕及時間控制按鈕。按鈕A和按鈕B分別控制時間的加一和減一,時間的加減只能再時間停止時進行。按下按鈕C整個計時計分器啟動,時間顯示器顯示10:00的單節(jié)比賽倒計時,比分顯示器顯示甲乙兩隊初始比分00:00。當比賽需要暫停時按下D按鈕,單節(jié)比賽結束后按下E按鈕則時間恢復為10:00。鍵盤控制電路如圖3-5所示。 3-5控制鍵盤圖4 軟件設計方案在單片機應用系統的開發(fā)過程中,主要采用的有匯編語言和C語言。匯編語言比C語言繁瑣,但是匯編語言能更充分的發(fā)揮指令系統的功能和效率,可以獲得最簡練的目標程序。而C語言的應用最為廣泛,C語言能直接對計算機的硬件進行操作,而且語言靈活、程序結構良好、數據類型及運算符豐富、代碼效率高、可移植性好8。4.1 籃球計時計分器總流程如圖開始I/O初始化比賽開始計時器顯示記分器顯示N時間歸零Y報警器報警比賽結束接通電源后,系統進行初始化處理,系統開始運行,檢測比賽開始按鈕是否按下,比賽開始后,時間倒計時隨即進行。雙方比分增加,時間結束后報警器報警,比賽結束。4.2 計時器示流程圖 開始比賽開始計分器顯示倒計時開始N時間為0Y 報警器報警 結束比賽開始后,計時器則顯示單節(jié)比賽時間10:00,倒計時開始,當比賽時間減到0時,報警器發(fā)出報警聲。部分倒計時主要程序如下:TH0=0x4C; /50ms延時初值TL0=0x00;t+;if(t=20) /50ms走20次剛好1s,1s時間到減1操作t=0;miao-;if(miao=-1)fen-; /當59s減完,分減1miao=59;if(fen=-1)fen=0; /分清零miao=0; /秒清零beep=0; /時間停止,蜂鳴器響4.3計分器顯示流程圖 開始 計分顯示甲隊減分甲隊加分乙隊加分NNN乙隊加分 甲隊加分 NYYYY甲隊減分顯示甲隊加分顯示乙隊減分顯示乙隊加分顯示N 比分切換Y 比分切換顯示N比分清零Y 比分清零顯示 結束比賽開始后,比分顯示器顯示00:00,此后甲隊和乙隊比分增加,中場休息后,兩隊交換場地,比分顯示也隨之交換,比賽結束后,雙方比分清零。部分加分和比分交換程序如下:加分程序(部分):dalay(5);if(temp=0xde)a=a+ /甲隊比分加1if(a=100)a=99;diapaly1(a);比分交換程序:delay(5);if(temp=0xdb)e=a;f=c;a=f;dispaly1(a);c=e;dispaly2(c); /兩隊比分切換5 仿真與調試單片機應用的仿真和調試主要從硬件及軟件方面進行,在本次設計的籃球計時計分器中我主要使用的是Keil和Proteus ISIS軟件。5.1軟件簡介5.1.1 Keil軟件簡介Proteus 簡介Keil C51軟件有很多庫函數,它還有功能強大的集成工具盒開發(fā)工具,還具有調試工具,Keil C51軟件生成的所需代碼的效率特別高,及時語句很多得到的匯編代碼比較少,容易理解。Keil C51軟件使用高級語言編輯,在大型軟件設計中有很大優(yōu)勢。Keil C51單片機軟件開發(fā)系統可以完成連接、仿真、調試、編譯、編輯等開發(fā)流程。該軟件可以用集成開發(fā)環(huán)境IDE本身或其他編輯器C或匯編源文件而易學易用。Keil C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個集成后的開發(fā)環(huán)境包含:調試器,實時操作系統,匯編器,項目管理器,編譯器。5.1.2 Proteus 簡介Proteus是全球出名的EDA仿真軟件,從原理圖繪制、編譯調試代碼到單片機與外部電路同時仿真,只需要一鍵單擊即可切換到PCB設計,從而達到了從想象中的設計到實物設計。是當前全球獨一無二的將三種軟件合一的設計平臺,三種軟件分別是電路仿真軟件,以及PCB設計軟件,還有虛擬模型仿真軟件。其處理器模型有很多種,例如8051、8086和ARM等,并還在不停添加別的類型處理器模型。Proteus可以通過多種軟件進行編譯,例如Keil以及MPLAB,還有IAR軟件也可以。Proteus軟件也還有其它EDA工具軟件的功能:PCB自動或人工布線、SPICE電路仿真、原理布圖等。Proteus還具有仿真處理器、互動的電路仿真及其外圍電路的革命性特點。5.2仿真結果完成硬件電路設計后,檢查線路連接,確認連線沒有錯誤。雙擊單片機AT89C51,用單擊出現的對話框中的Program File按鈕,在之前保存的位置找到經過Keil軟件編譯而生成的HEX文件,載入后點擊“OK”按鈕。然后單擊開始仿真按鈕進行仿真。Proteus仿真總圖如圖5.1所示: 圖5-1 系統仿真總圖籃球計時計分的具體操作:(1) 計時顯示功能計時功能的實現是通過鍵盤控制器中的AE按鈕分別控制時間加1、時間減1、比賽開始倒計時、比賽時間暫停和比賽時間復位。各按鈕對應得到的數碼管顯示如圖5-1、5-2、5-3、5-4、5-5。圖5-1 單節(jié)比賽開始總時間效果圖圖5-2 比賽時間暫停效果圖圖5-3 在暫停情況下時間加1效果圖圖5-4 在暫停情況下時間減1效果圖圖5-5 時間復位效果圖(2) 計分顯示功能計分功能的實現是通過鍵盤控制器中的09按鈕分別控制。03分別控制控制甲隊比分加1、比分加2、比分加3、比分減1;47分別控制乙隊比分加1、比分加2、比分加3、比分減1;8、9分別控制比分清零和中場比分交換。各按鈕對應得到的數碼管顯示如圖5-6、5-7、5-8、5-9、5-10、5-11、5-12、5-13、5-14、5-15、5-16。 5-6甲隊加1分 5-7甲隊加2分 5-8甲隊加3分 5-9 甲隊減1分 5-10乙隊加1分 5-11乙隊加2分 5-12 乙隊加3分 5-13 乙隊減1分 5-14上半場甲乙兩隊得分 5-15 下半場交換場地比分交換 5-16比賽結束比分清零結 論通過本次基于AT89C51的籃球計時、計分器的畢業(yè)設計,實現了籃球比賽的計時計分,可應用于學校中的籃球比賽的計時計分。此次設計也使我對于單片機工作原理、功能有了宏觀的了解,并對單片機匯編程序的應用有了新的、進一步的認識。在進行本次設計之前,覺得這個設計是一個比較簡單的設計,而且自己對籃球比賽也有所了解,舉得自己應該能做好。不過在設計的過程中發(fā)現自己還是有許多不足的,雖然對知識有所了解,但是并不熟練,不能準確的將書本上的知識轉化為設計的結果在本次設計的過程中,我發(fā)現很多的問題,給我的感覺就是下手很難,很不順手,看似很簡單的電路,要動手把它給設計出來,是很難的一件事,主要原因是我們沒有經常動手設計過電路。另外單片機系統的知識似懂非懂,而且很多知識當時弄明白了,現在要用的時候又不記得,造成我用了大量的時間去查閱各種資料和程序命令,因此整個過程時間安排不合理。由于設計的計劃沒有安排好,設計的時間極為倉促,尤其是在硬件調試的過程中出現了很大的問題。另外資料的查找也是一大難題,這就要求我們在以后的學習中,應該注意到這一點,更重要的是我們要學會把從書本中學到的知識和實際的電路聯系起來,這不論是對我們以后的就業(yè)還是學習,都會起到很大的促進和幫助。對于基于AT89C51的籃球計時、計分器的畢業(yè)設計,還有兩點改進之處。一是加入24秒倒計時,對單次進攻時間做出限制;二是在單節(jié)比賽時間小于1分鐘時,倒計時顯示可以精確到0.1秒,這樣可以更直觀的看到比賽最后階段的時間變化,也能使比賽變的更激烈,分秒必爭。 參 考 文 獻1 彭為.黃科,雷道仲.單片機典型系統設計實例精講M.北京:電子工業(yè)出版社,2006.2 李廣弟. 單片機基礎M. 北京:北京航空航天大學出版社,1996.3 胡漢才.單片機原理及其接口技術M.北京:清華大學出版社,1996.4 諸昌鈐.LED顯示屏系統原理及工程技術M.成都:電子科技大學出版社,2000.5 唐俊杰,高秦生. 微型計算機原理及應用M. 北京:高等教育出版社,1998.6 陳梓城. 電子技術實訓M.北京:機械工業(yè)出版社,2002.7 何立民.MCS-51單片機應用系統設計M.北京:北京航天航空大學出版社,1990.8 張建勛.C語言程序設計教程M.北京:清華大學出版社,2008.9 余發(fā)山.單片機原理及應用技術M.徐州:中國礦業(yè)大學出版社,2003.12.10 吳秀清. 微型計算機原理與接口技術M.北京:中國科學技術出版社,2008.6. 11 樊明龍,任麗靜.單片機原理與應用M.北京:化學工業(yè)出版社,2005.6.12 周航慈.單片機應用程序設計技術M.北京:北京航空航天大學出版社,2002.13 崔華,蔡炎光著.單片機實用技術M.北京:清華大學出版社,2001.致 謝在這三個半月的時間里,首先感謝魏老師對我的幫助。魏老師是一個有責任心、有耐心、有包容心的一個老師,具有豐富的單片機知識和設計經驗。在此次設計中魏老師給予了我很大的幫助,當我對程序不知所措時,是魏老師給我指點迷津,讓我在毫無頭緒的狀態(tài)下慢慢理清思緒,在他的幫助和指導下我才能順利的完成此次設計。我從魏老師身上學到了很多專業(yè)知識,還學到了對待學術嚴謹的態(tài)度和獨立發(fā)現并解決問題的能力。其次我要感謝物理與電子電氣工程學院的所有老師,謝謝你們四年來對我的教誨以及幫助,沒有你們的教誨也不會有今天的我。還要感謝我的班主任孫老師,這四年來你為我們操勞了很多,感謝這四年來你對我的關心和指導。我還要感謝我的舍友,大學四年來是你們陪我度過每一個日日夜夜,在你們的支持和陪伴下,我走過來大學四年。在本次設計中你們也給了我很大的幫助,在我困惑的時候幫我理清思路。還要感謝全班同學,是你們給了我一個多姿多彩的大學生活。最后我要感謝所有幫助過我的同學和老師,還有我的父母,在你們的支持下,我走過來大學四年,從你們身上我學到了很多,讓我終生受益,謝謝你們!附錄A 硬件電路整體圖附錄B 源程序#include #define uchar unsigned char#define uint unsigned intUchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff; /0,1,2,3,4,5,6,7,8,9關顯示uchar b,d,t; /定義變量uchar fen=10,miao=0; /定時初始時間變量uchar flag; /標志位uchar temp; /矩陣鍵盤鍵值sbit beep=P17; /蜂鳴器void delay(uint z) /延時子函數uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void dispaly() /定時時間顯示uchar miaoge,fenge,miaoshi,fenshi;miaoge=miao%10;P2=0x80;P0=tabmiaoge;delay(1);miaoshi =miao/10;P2=0x40;P0=tabmiaoshi;delay(1);fenge=fen%10;P2=0x10;P0=tabfenshi;delay(1);P2=0x00;void dispaly1(char a) /甲隊比分顯示uchar ge1,shi1;b=a;ge1=b%10;P2=0x02;P0=tabge1;delay(1);shi1=b/10;P2=0x01;P0=tabshi1;delay(1);P2=0x00;void dispaly2(char c) 乙隊比分顯示uchar ge2,shi2;d=c;ge2=b%10;P2=0x08;P0=tabge2;delay(1);shi2=d/10;P2=0x04;P0=tabshi2;delay(1);P2=0x80;void keyscan() /矩陣鍵盤掃描控制char a,c,e,f;dispaly1(a);dispaly2(c);P3=0xfe;temp=P3;temp=temp&0xf0;while (temp!=0xf0)delay(5);temp=P3;temp=temp&0xf0;while (temp!=0xf0);)temp=P3;if(temp=0xee)delay(5);if(temp=0xee)a+; /甲隊比分加1if(a=100)a=99;dispaly1(a);if(temp=0xde)dalay(5);if(temp=0xde)a=a+2; /甲隊比分加2if(a=100)a=99;diapaly1(a);if(temp=0xbe)dalay(5);if(temp=0xbe)a=a+3; /甲隊比分

溫馨提示

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

評論

0/150

提交評論