版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于單片機籃球賽計時計分器設計</p><p> Design of Timing and Scoring of Basketball Competition Based on Single Chip Computer</p><p><b> 摘 要</b></p><p> 籃球比賽計時計分器是為了解決籃球比賽時
2、計分與計時準確的問題。此裝置利用單片機AT89C51完成了計時和計分的功能。本文詳細地介紹了系統(tǒng)硬件與軟件的設計過程,設計由AT89C51編程控制LED七段數(shù)碼管作顯示的球賽計時計分系統(tǒng)。該系統(tǒng)具有賽程定時設置,賽程時間暫停,及時刷新甲、乙雙方的成績以及賽后成績暫存等功能。它具有價格低廉,性能穩(wěn)定,操作方便并且易于攜帶等特點。廣泛適合各類學校或者小型團體作為賽程計時計分。</p><p> 關鍵詞:單片機 籃球
3、賽計時 籃球賽計分 </p><p><b> ABSTRACT</b></p><p> Time scoring basketball game is to solve the game of basketball with the time points when the issue of accuracy. This device is complete
4、d using AT89C51 single- chip timing and scoring functions. This article describes in detail the system hardware and software design process, design by AT89C51 programming control for LED Seven-Segment LED display subsyst
5、em of the game time. The system is set up with the schedule from time to time, schedule time to pause, refresh in time A, B, and after the two s</p><p> Key words: MCU Basketball Time Basketball Scoreboard&
6、lt;/p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p> Abstract1</p><p><b> 目 錄I</b></p><p> 第一章 引言- 1 -</p>&l
7、t;p> 1.1 背景知識介紹- 1 -</p><p> 1.2 設計意義- 1 -</p><p> 1.3 設計目的- 1 -</p><p> 第二章 系統(tǒng)硬件介紹- 3 -</p><p> 2.1 MCS-51單片機簡述- 3 -</p><p> 2.1.1 單片機AT89C5
8、1簡介- 3 -</p><p> 2.1.2 主要特性- 4 -</p><p> 2.1.3 管腳說明- 4 -</p><p> 2.1.4 芯片擦除- 6 -</p><p> 2.1.5 掉電模式- 6 -</p><p> 2.1.6 程序儲存器的加密- 6 -</p>
9、<p> 2.2 顯示器及其接口- 7 -</p><p> 2.2.1 顯示器介紹- 7 -</p><p> 2.2.2 結(jié)構與原理- 7 -</p><p> 2.2.3 LED顯示器顯示方式- 8 -</p><p> 2.3 CD4094芯片介紹- 8 -</p><p> 2
10、.4 74LS21芯片介紹- 9 -</p><p> 2.5 報警器- 9 -</p><p> 2.5.1 報警器的分類- 10 -</p><p> 2.5.2 報警器工作原理- 10 -</p><p> 第三章 硬件電路設計- 11 -</p><p> 3.1 系統(tǒng)方案設計- 11 -
11、</p><p> 3.1.1 系統(tǒng)構成框圖- 11 -</p><p> 3.1.2 器件選擇- 12 -</p><p> 3.2 硬件總體設計- 12 -</p><p> 3.3 計時電路部分- 12 -</p><p> 3.3.1 振蕩電路- 12 -</p><p&
12、gt; 3.3.2 計時電路的工作原理- 15 -</p><p> 3.4 計分電路部分- 16 -</p><p> 3.4.1 串行接口工作原理- 16 -</p><p> 3.4.2 計分電路原理圖- 16 -</p><p> 3.4.3 計分電路的工作原理- 17 -</p><p>
13、 第四章 籃球計時計分器軟件設計- 19 -</p><p> 4.1 球賽計時計分器的工作過程- 19 -</p><p> 4.2 籃球計時計分器編程設計- 19 -</p><p> 4.3 主要模塊說明- 20 -</p><p> 4.3.1 計時部分模塊流程- 20 -</p><p>
14、 4.3.2 記分部分模塊流程- 21 -</p><p> 4.4 籃球計時計分器程序源代碼- 21 -</p><p> 結(jié) 論- 31 -</p><p> 參考文獻- 32 -</p><p> 致 謝- 33 -</p><p><b> 第一章 引言</b><
15、;/p><p> 1.1 背景知識介紹</p><p> 單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機。它的體積小、質(zhì)量輕、價格便宜、為學習、應用和開發(fā)提供了便利條件。同時,學習使用單片機是了解計算機原理與結(jié)構的最佳選擇[2]。</p><p><b> 1.2 設計意
16、義</b></p><p> 單片機的應用是具有高度現(xiàn)實意義的。單片機極高的可靠性,微型性和智能性(我們只要編寫不同的程序后就能夠完成不同的控制工作),單片機已成為工業(yè)控制領域中普遍采用的智能化控制工具,已經(jīng)深深地滲入到我們的日常生活當中。</p><p> 通過此次基于單片機設計的籃球計時計分系統(tǒng),我們可以更清楚詳細的了解單片機程序設計的基本指令功能、編程步驟和技巧來講述
17、單片機編程,并對MCS-51單片機的結(jié)構和原理進行講述,以及基于單片機開發(fā)應用的相關芯片的工作原理,并且可以在將來的工作和學習中加以應用[5]。</p><p><b> 1.3 設計目的</b></p><p> 隨著單片機在各個領域的廣泛應用,許多用單片機做控制的球賽計時計分系統(tǒng)也應運而產(chǎn)生,如用單片機控制LCD液晶顯示器計時計分器,用單片機控制LED七段顯示
18、器計時計分器等。</p><p> 本次設計用由AT89C51編程控制LED七段數(shù)碼管作顯示的球賽計時計分系統(tǒng)。該系統(tǒng)具有賽程定時設置,賽程時間暫停,及時刷新甲、乙雙方的成績以及賽后成績暫存等功能。它具有價格低廉,性能穩(wěn)定,操作方便并且易于攜帶等特點。廣泛適合各類學校或者小型團體作為賽程計時計分 [8]。</p><p> 通過本次基于C51系列籃球計時計分器的設計,可以了解、熟悉有關
19、單片機開發(fā)設計的過程,并加深對單片機的理解和應用以及掌握單片機與外圍接口的一些方法和技巧,這主要表現(xiàn)在以下一些方面:</p><p> (1) 籃球賽計時計分系統(tǒng)包含了8051系列單片機的最小應用系統(tǒng)的構成,同時在此基礎上擴展了一些使用性強的外圍接口。</p><p> (2) 可以了解到LED顯示器的結(jié)構、工作原理以及這種顯示器的接口實例與具體連接與編程方法。</p>
20、<p> (3) 怎樣利用串行口來擴展顯示接口等[6]。</p><p> 第二章 系統(tǒng)硬件介紹</p><p> 2.1 MCS-51單片機簡述</p><p> 2.1.1 單片機AT89C51簡介</p><p> 本課題中用到的芯片就是AT系列中的AT89C51單片機芯片。</p><p>
21、 AT89C51是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含4k bytes的可反復擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),內(nèi)置功能強大的微型計算機的AT89C51提供了高性價比的解決方案 [7]。</p><p> AT89C51具有PDIP、PQFP/TQFP及PLCC等三種封
22、裝形式,以適應不同產(chǎn)品的需求。它是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。如圖所示圖2-1為AT89C51單片機基本構造,其基本性能介紹如圖2-1:</p>
23、<p> 圖2-1 AT89C51引腳圖</p><p> AT89C51本身內(nèi)含40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中端口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。</p><p&
24、gt; 2.1.2 主要特性</p><p> AT89C51的主要特性如表2-1所示:</p><p> 表2-1 AT89C51主要功能描述</p><p> 2.1.3 管腳說明 VCC:供電電壓。</p><p><b> GND:接地。</b>&l
25、t;/p><p> P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口
26、緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。</p><p> P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將
27、輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”
28、后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> P3口也可作為AT89C51的一些特殊功能口,如表2-2所示:</p><p> 表2-2 AT89C51特殊功能表</p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p&g
29、t; RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p> ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE
30、脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p> /EA/VPP:當/EA保持低電平
31、時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p>
32、;<p> 2.1.4 芯片擦除</p><p> 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。</p><p> 此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。<
33、;/p><p> 在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止 [6]。</p><p> 2.1.5 掉電模式</p><p> 在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)RAM和特殊功能寄存器的內(nèi)容在終
34、止掉電模式前被凍結(jié)。推出掉電模式的唯一方法是硬件復位。復位后將重新定義全部特殊功能寄存器但不改變RAM中的內(nèi)容,在VCC恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重新啟動并且穩(wěn)定的工作 [5]。</p><p> 表2-3 外部引腳狀態(tài)表</p><p> 2.1.6 程序儲存器的加密</p><p> AT89C51可使用對芯片上的三個
35、加密位LB1、LB2、LB3[2]進行編程(P)</p><p> 或者不進行編程(U)。當加密位LB1被編程時,在復位期間,EA斷的邏輯電平被采樣并鎖存,如果單片機上電后一直沒有服位,則鎖存起的初始值是一個隨機數(shù),這個隨機數(shù)會保存到真正復位為止 [5]。</p><p> 2.2 顯示器及其接口</p><p> 2.2.1 顯示器介紹</p>
36、<p> 顯示器是最常用的輸出設備,其種類繁多,但在單片機系統(tǒng)設計中最常用的是發(fā)光二極管顯示器(LED)和液晶顯示器(LCD)兩種。由于這兩種顯示器結(jié)構簡單,價格便宜,接口容易實現(xiàn),因而得到廣泛的應用。液晶顯示器分很多種類,按顯示方式可分為段式,行點陣式和全點陣式。段式與數(shù)碼管類似,行點陣式一般是英文字符,全點陣式可顯示任何信息, 如漢字、圖形、圖表等 [4]。</p><p><b>
37、 兩者之間的區(qū)別:</b></p><p> (1)二極本身發(fā)光, 液晶本身不發(fā)光,只是透射光。 </p><p> (2)二極管體積大,圖像質(zhì)量一般,適合作室外大屏幕,價格較低。液晶成本較高,面積無法做得很大,但圖像質(zhì)量很好,適合做顯示器。 </p><p> ?。?)二極管耗電大,液晶耗電小。</p><p> ?。?)二
38、極管圖像刷新率低,液晶的高 </p><p> 2.2.2 結(jié)構與原理</p><p> 圖2-2 7段LED數(shù)碼管</p><p> 如圖2-2,LED顯示器又稱為數(shù)碼管,LED顯示器由8個發(fā)光二極管組成。中7個長條形的發(fā)光管排列成“日”字形,另一個賀點形的發(fā)光管在顯示器的右下角作為顯示小數(shù)點用,它能顯示各種數(shù)字及部份英文字母。LEDD顯示器有兩種不同的形
39、式:一種是8個發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED顯示器;另一種是8個發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED顯示器 [1]。如圖2-3所示。</p><p> 圖2-3 共陰與共陽極LED顯示器</p><p> 2.2.3 LED顯示器顯示方式</p><p> 點亮LED顯示器有兩種方式:一是靜態(tài)顯示;二是動態(tài)顯示。在本次設計中,采用
40、的是靜態(tài)顯示。</p><p> 這種電路的優(yōu)點在于:在同一時間可以顯示不同的字符;但缺點就是占用端口資源較多。從下圖可以看出,每位LED顯示器需要單獨占用8根端口線,因此,在數(shù)據(jù)較多的時候,往往不采用這種設計,而是采用動態(tài)顯示方式 [3]。</p><p> 所謂動態(tài)顯示,就是將要顯示的多位LED顯示器采用一個8位的段選端口,然后采用動態(tài)掃描一位一位地輪流點亮各位顯示器。圖2-4為4
41、位LED顯示器動態(tài)顯示電路。</p><p> 圖2-4 動態(tài)顯示圖</p><p> 2.3 CD4094芯片介紹</p><p> 在本次設計的計分電路中,我們使用集成電路CD4094。CD4094是8位移位寄存器,它主要完成串行輸入,并行輸出8位數(shù)據(jù)的功能,所以又叫8位串/并轉(zhuǎn)換器。圖2-5為CD4094的引腳圖:</p><p&g
42、t; 圖2-5 CD4094引腳分布圖</p><p> 2.4 74LS21芯片介紹</p><p> 本次設計中的比分校正電路采用四輸入與門74LS21來實現(xiàn)。74LS21是雙4輸入與門。在一個芯片里有兩個相同的單元,其中一個任何一個都是1/2斷口。同型號的74系列、74HC系列、74LS系列芯片,邏輯功能上是一樣的。表2-4為74、74HC、74LS系列芯片資料 [8]。<
43、;/p><p> 表2-4 74、74HC、74LS相關資料表</p><p><b> 2.5 報警器</b></p><p> 2.5.1 報警器的分類</p><p> 蜂鳴器有兩類3大品種。一類是壓電式,一類是電磁式,電磁式又有兩大品種,鐵振膜式和動圈式,二者原理一樣只是結(jié)構不同。所有蜂鳴器都有兩種類型:純
44、蜂鳴器和帶驅(qū)動的蜂鳴器,蜂鳴器都是用音頻信號驅(qū)動的,都是交流驅(qū)動。 </p><p> 2.5.2 報警器工作原理</p><p> 報警器的種類很多,比如:揚聲器,蜂鳴器等,本次設計采用的是電磁式蜂鳴器作為報警器。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、震動膜片以及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號通過電磁線圈,使得電磁線圈產(chǎn)生了一個磁場。振動膜片在電磁線
45、圈和磁鐵的相互作用下,周期性的振動發(fā)聲 [2]。</p><p> 第三章 硬件電路設計</p><p> 系統(tǒng)硬件由以下幾個部分組成:</p><p> ?。?)單片機 AT89C51</p><p><b> (2)計時電路</b></p><p><b> ?。?)計分電路&
46、lt;/b></p><p><b> ?。?)按鍵開關</b></p><p> 說明:整個系統(tǒng)只用一片AT89C51;在圖中將計時電路與計分電路分開畫,只是為了能夠更好的更清晰的說明問題;并且在整個畫圖過程中將AT89C51引腳打亂是為了使圖示能夠更加的清晰明了[7]。</p><p> 3.1 系統(tǒng)方案設計</p>
47、<p> 3.1.1 系統(tǒng)構成框圖</p><p> 基于單片機系統(tǒng)的籃球賽計時計分器的系統(tǒng)構成框圖如圖3-1所視。</p><p> 圖3-1 系統(tǒng)構成圖</p><p> 本系統(tǒng)采用單片機AT89C51作為本設計的核心元件。利用7段共陰LED作為顯示器件。在本次設計中,共接入十個七段共陰LED顯示器,其中6個用于記錄 甲、乙兩隊的分數(shù),每隊3
48、個LED顯示器分數(shù)范圍可達到0—99分,足夠滿足賽程需要。另外4個LED顯示器則用于記錄賽程的時間,其中兩個用于顯示分鐘;2個用于顯示秒鐘。賽程計時采用倒計時方式。即比賽前將時間設置好,比賽開始時啟動計時,直至計時到零為止。根據(jù)設計,計時范圍可達0—99分鐘,也完全滿足賽程的需要。</p><p> 其次,為了配合計時器和計分器校正、調(diào)整時間和比分,特在本設計中設立了7個按鍵。其中4個用于輸入甲、乙兩隊的分數(shù);
49、另外3個則用于完成設置、調(diào)整、啟動和暫停賽程時間等功能 [6]。</p><p> 3.1.2 器件選擇</p><p> 本系統(tǒng)在設計的過程中主要選取了以下一些器件:</p><p> 單片機:AT89C51</p><p> 四一七段BCD譯碼芯片:CD4511</p><p> 并行 / 串行轉(zhuǎn)換芯片:
50、CD4094</p><p> 四輸入與門:74LS21</p><p> 顯示器件:7段共陰LED顯示器</p><p><b> 按鍵:歐姆龍按鍵</b></p><p> 3.2 硬件總體設計</p><p> 這次設計的核心是:如何運用AT89C51單片機,CD451譯碼芯片,C
51、D4094 8位移位寄存器。7段共陰LED顯示數(shù)碼管等電子元件完成顯示設計在電路上的實現(xiàn) [8]。</p><p> 從理論上說,不論顯示圖形還是文字,只要控制與組成這些圖形和文字的各個點所在位置對應的LED器件發(fā)光,就能得到結(jié)果。</p><p> 本次設計采用的是靜態(tài)驅(qū)動方式。</p><p> 所謂靜態(tài)驅(qū)動,就是每一個顯示器都要占用單獨的具有鎖存功能的I
52、/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機中CPU的開銷小[4]。</p><p> 這種電路的優(yōu)點在于:在同一時間可以顯示不同的字符;但缺點就是占用端口資源較多 [3]。</p><p> 3.3 計時電路部分</p><p> 3.3.1 振蕩電
53、路</p><p> 本次設計要使用到AT89C51單片機的時鐘振蕩功能。AT89C51中有一個用于構成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構成自激振蕩器[1]。</p><p> 振蕩電路如圖3-2所示</p><p> 圖3-2 時鐘振蕩電路</
54、p><p> 圖3-3 外部時鐘電路</p><p> 圖3-4 系統(tǒng)總體電路</p><p> 圖3-5 計時電路原理圖</p><p> 3.3.2 計時電路的工作原理</p><p> 計時電路如圖3-5所示,主要由開關K5-K7,單片機AT89C51,譯碼器以及LED顯示器構成。</p>
55、<p><b> 其工作過程如下:</b></p><p> 當比賽準備開始的時候,當調(diào)時(十位)開關K5按下時,產(chǎn)生一個低電平;立即數(shù)00H取出,同時對應調(diào)分(十位)控制端P2.0的LE輸出高電平,表示此時可以向調(diào)分(十位)的CD4511發(fā)送數(shù)據(jù),但CD4511的輸出端不會有輸出,因為LE=1時,CD4511鎖存。</p><p> 這時,只要將要顯
56、示數(shù)據(jù)的代碼經(jīng)過P1口的P1.0送到CD4511的輸入端A~~D端,送完后,將LE清零。這時便可以將要顯示數(shù)據(jù)的代碼經(jīng)過CD4511譯碼后,從輸出端a~~g輸出,送LED顯示器顯示即可。調(diào)時按鍵開關每按一次,數(shù)字自動加1,直到調(diào)到需要設置的時間即 [2]。</p><p> 3.4 計分電路部分</p><p> 8051系列單片機除了有4個8位并行口外,還有一個能同時進行串行發(fā)送和接
57、收的全雙工串行通信口。它能同時發(fā)送和接收數(shù)據(jù),還能作為同步移位寄存器使用。球賽計分電路正是利用了8051單片機串行口可以外接串行輸入并行輸出移位寄存作用為輸出口來實現(xiàn)球賽比分刷新顯示的 [9]。</p><p> 3.4.1 串行接口工作原理</p><p> MCS-51系列單片機片內(nèi)有一個串行I/O端口,通過引腳 RXD(P3.0)和TXD(P3.1)可與外設電路進行全雙工的 串行
58、異步通信 [12]。 </p><p> 8051單片機的串行端口有4種基本工作方式,通過編程設置,可以使其工作在任一方式,以滿足不同應用場合的需要。其中,方式0主要用于外接移位寄存器,以擴展單片機的I/O電路;方式1多用于雙機之間或與外設電路的通信;方式2,3除有方式l的功能外,還可用作多機通信,以構成分布式多微機系統(tǒng)。串行端口有兩個控制寄存器(SCON和PCON),用來設置工作方式、發(fā)送或接收的狀態(tài)、特征位
59、、數(shù)據(jù)傳送的波特率(每秒傳送的位數(shù))以及作為中斷標志等 [11]。</p><p> 串行端口有一個數(shù)據(jù)寄存器SBUF(在特殊功能寄存器中的字節(jié)地址為99H),該寄存器為發(fā)送和接收所共同。發(fā)送時,只寫不讀;接收時,只讀不寫。在一定條件下,向SBUF寫入數(shù)據(jù)就啟動了發(fā)送過程;讀SBUF就啟動了接收過程。串行通信的波特率可以程控設定。在不同工作方式中,由時鐘振蕩頻率的分頻值或由定時器T1的溢出率確定,使用十分方便靈
60、活 [10]。</p><p> 3.4.2 計分電路原理圖</p><p> 圖3-6 計分電路原理圖</p><p> 3.4.3 計分電路的工作原理</p><p> 計分電路主要由單片機AT89C51,串行/并行轉(zhuǎn)換器(CD4094),LED顯示器,74LS21以及按鍵開關組成。其工作過程如下:按鍵開關K1~~K4組成甲、乙兩
61、隊加減分控制。按鍵K1~~K4一端接地,另一端輸入與門74LS21的9腳,10腳,12腳,13腳,以及單片機AT89C51的P3.5,P3.4,P0.2,P0.1,8腳接AT89C51的P3.2腳。當按鍵開關K1~~K4四個按鍵的任何一個一位按下時,與門的8腳輸出都會產(chǎn)生低電平使單片機中斷,從而使相應LED顯示。因為按鍵開關按下時為低電平 [12]。</p><p> 第四章 籃球計時計分器軟件設計</p
62、><p> 4.1 籃球計時計分器的工作過程</p><p> 首先在比賽之前,接通電源,系統(tǒng)自動復位,此時計時電路與計分電路中的共陰極數(shù)碼管全部顯示為0000和000 000;然后我們按照計時電路中的K5鍵來設置比賽時間的十位數(shù),例如比賽時間上半場為20分鐘,則通過K5鍵,使數(shù)碼管1顯示“2”即可;再按下K6鍵,設置比賽時間的個位數(shù),使數(shù)碼管2顯示“0”即可。一般比賽時間為40分鐘,所示
63、只需要按下K5鍵顯示“4”,按下K6鍵顯示“0”即可。</p><p> 時間設置好時,等待賽程開始,當裁判吹響哨聲時,啟動計時,這時計時電路便開始工作,計時采用到計時方式,即從20分鐘減為0分鐘表示上半場結(jié)束。上半場結(jié)束時,蜂鳴器會發(fā)出10秒鐘響聲,通知上半場結(jié)束,這時按下K7鍵,便完成了甲、乙兩隊的分數(shù)交換。在整個賽程中,我們還要對兩隊比分進行及時刷新,這時我們通過計分電路中的K1-K4鍵完成此功能,K1和
64、K2鍵完成甲隊加分、減分,K3和K4鍵完成乙隊加分、減分。按鍵每按一下,表示加上或者減去1分。</p><p> 由于加分、減分我們采用中斷完成,且加、減分的中斷優(yōu)先權小于計時電路中的中斷優(yōu)先權,所以不會對計時電路造成影響。如果在賽程過程中,一方的教練申請暫停時,經(jīng)裁判批準,我們立即按下K7鍵,即可以暫停計時,暫停時間到時,再按下K7鍵繼續(xù)計時,直至上半場賽程結(jié)束,蜂鳴器會發(fā)出10秒的響聲。下半場的流程和上半場
65、基本上是一樣的 [8]。</p><p> 4.2 籃球計時計分器編程設計</p><p> 編程前,必須設置好地址、數(shù)據(jù)以及控制信號。</p><p> 編程單元的地址加在P1口和P2口的P2.0—P2.3(11位地址范圍為0000H—0FFFH),數(shù)據(jù)從P0口輸入,引腳P2.6、P2.7、P3.6、P3.7的電平設置參考校驗電路,/PSEN為低電平,RST
66、保持高電平,EA/Vpp引腳是編程電源的輸入端,按要求加上編程電壓,ALE/PROG引腳輸入編程脈沖。</p><p> 編程時,可采用4—20MHZ的時鐘振蕩器,本次設計采用12MHZ的石英晶體振蕩器。具體過程是:</p><p> ?。?)在地址線上加上要編程單元的地址信號,這里為33H,34H,35H,36H,37H,38H,6個地址符。</p><p>
67、?。?)在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié),比如甲隊加一分就是在36H地址上加上(偏移)一個字符06H。</p><p> ?。?)激活相應的控制信號。</p><p> (4)在高電壓編程方式時,將EA/Vpp端加上+12V編程電壓。</p><p> ?。?)改變編程單元的地址和寫入的數(shù)據(jù),重復1—5步驟,直到全部文件編程結(jié)束,每個字節(jié)寫入周期是自身定時的,通常約
68、為1.5ms [7]。</p><p> 本次設計的程序流程圖如4-1:</p><p> 圖4-1 程序流程圖</p><p> 4.3 主要模塊說明</p><p> 4.3.1 計時部分模塊流程</p><p> 圖4-2 計時部分流程圖</p><p> 4.3.2 記分部分
69、模塊流程</p><p> 圖4-3 計分部分流程</p><p> 4.4 籃球計時計分器程序源代碼</p><p><b> 程序代碼:</b></p><p> ORG 0000H</p><p> AJMP LK1 ;主程序地址</p>
70、;<p> ORG 000BH ;定時中斷入口地址</p><p> AJMP CTCO</p><p> ORG 0013H ;外部中斷入口地址</p><p> AJMP CXT</p><p> LK1: MOV 33H
71、,#00H ;甲隊記分清0</p><p> MOV 34H,#00H </p><p> MOV 35H,#00H</p><p> MOV 36H,#00H ;乙隊記分清0</p><p> MOV 37H,#00H <
72、/p><p> MOV 38H,#00H</p><p> MOV 40H,#00H ;記時分鐘清0</p><p> MOV 41H,#00H</p><p> CLR P0.0</p><p> Mp: CLR P2.0
73、 ;計時牌子清零</p><p> CLR P2.1 ;分分秒秒清0</p><p> CLR P2.2 </p><p> CLR P2.3</p><p> MOV P1,#00H</p><p><b> NOP</b>
74、;</p><p><b> NOP</b></p><p> SETB P2.0</p><p> SETB P2.1</p><p> SETB P2.2</p><p> SETB P2.3</p><p> MOV 42H,#05H
75、 ;送秒鐘初值59秒</p><p> MOV 43H,#09H</p><p> MOV SCON,#00H ;計分牌子清零程序</p><p> CLR P3.7</p><p> MOV R1,#33H</p><p> MOV R2,#06 &l
76、t;/p><p> LP: MOV A,@R1</p><p> MOV DPTR,#TAB ;取顯示數(shù)</p><p> MOVC A,@A+DPTR</p><p> MOV SBUF,A ;通過串行口發(fā)顯示數(shù)據(jù)</p><p> JN
77、B TI,$ ;是否發(fā)送完畢</p><p> CLR TI ;清除標志位</p><p><b> INC R1</b></p><p> DJNZ R2,LP ;6次是否 發(fā)送完畢</p><p> SETB P
78、3.7 ;顯示數(shù)據(jù)</p><p> LK3: JB P2.4,LK6 </p><p> ACALL D10MS</p><p> JB P2.4,LK3 </p><p> ACALL D2S</p><p
79、> LK4: JB P2.4,LK3 ;調(diào)整分鐘(十位)</p><p> CLR P2.0 ;顯示分鐘十位數(shù)據(jù)</p><p> MOV P1,40H</p><p> SETB P2.0</p><p> ACALL D2S
80、 ;調(diào)用延時程序</p><p> INC 40H ;將十位加1</p><p> MOV A,40H</p><p> CJNE A,#0AH,LK4 ;十到了沒有</p><p> MOV 40H,#00H</p><
81、p> AJMP LK4</p><p> LK6: JB P2.5,LK5 </p><p> ACALL D10MS</p><p> JB P2.5,LK6</p><p> ACALL D2S</p><p> LK7:
82、 JB P2.5,LK6 ; 調(diào)分鐘(個位)</p><p> CLR P2.1 ;顯示分鐘個位數(shù)據(jù)</p><p> MOV P1,41H</p><p> SETB P2.1</p><p> ACALL D2S
83、 ;調(diào)用延時程序</p><p> INC 41H ;將個位加1</p><p> MOV A,41H</p><p> CJNE A,#0AH,LK7 ;十到了沒有</p><p> MOV 41H,# 00H</p><p>
84、 AJMP LK7</p><p> LK5: JB P2.6,LK3 ;等待啟動計時</p><p> ACALL D10MS</p><p> JB P2.6,LK5</p><p> CLR P2.2 ;顯示秒鐘十位
85、</p><p> MOV P1,42H</p><p><b> NOP</b></p><p><b> NOP</b></p><p> SETB P2.2</p><p> CLR P2.3 ;顯示秒鐘個位
86、</p><p> MOV P1,43H</p><p><b> NOP</b></p><p><b> NOP</b></p><p> SETB P2.3</p><p> SETB P0.0 ;點亮計時指示
87、燈</p><p> MOV TMOD,#01H ;定時中斷初始化</p><p> MOV TL0,#0B0H ;送定時初值</p><p> MOV TH0,#3CH</p><p> SETB ET0 ;開放定時中斷</p>
88、<p> SETB EX1 ;開放外部中斷</p><p> CLR IT0 ;外部中斷低電平有效</p><p> SETB TR0 ;啟動定時</p><p> MOV R0,#14H</p><
89、p><b> SJMP $</b></p><p> CTCO: JNB P2.6,LK8 ;定時中斷程序</p><p> DJNZ R0,NEXT ;一秒鐘到了嗎?</p><p> MOV R0,#14H</p><p>
90、DEC 43H</p><p> CLR P2.3 ;顯示時間</p><p> MOV P1,43H ;顯示秒鐘個位</p><p><b> NOP</b></p><p><b> NOP</b></p>
91、;<p> SETB P2.3</p><p> CLR P2.2 ;顯示秒鐘十位</p><p> MOV P1,42H</p><p><b> NOP</b></p><p><b> NOP</b></p>
92、<p> SETB P2.2</p><p> CLR P2.1 ;顯示分鐘個位</p><p> MOV P1,41H</p><p><b> NOP</b></p><p><b> NOP</b></p>
93、<p> SETB P2.1</p><p> CLR P2.0 ;顯示分鐘十位</p><p> MOV P1,40H</p><p><b> NOP</b></p><p><b> NOP</b></p>&l
94、t;p> SETB P2.0</p><p> MOV A,43H</p><p> CJNE A,#00H,NEXT ;秒鐘個位回到0沒有</p><p> MOV 43H,#0AH ;秒鐘個位送初值10</p><p> MOV A,42H</p><p>
95、; CJNE A,00H,LP3 ;秒鐘十位回到0沒有</p><p> MOV 42H,#05H ;秒鐘十位送初值5</p><p> MOV A,41H</p><p> CJNE A,#00H,LP2 ;分種個位回到0沒有</p><p> MOV 41H,#09H
96、 ;分鐘個位送初值9</p><p> MOV A,40H</p><p> CJNE A,#00H,LP1 ;分鐘十位回到0沒有</p><p> CLR P0.0 </p><p> CLR P3.6 ;時間到發(fā)出警備10S&l
97、t;/p><p> ACALL D10S</p><p> SETB P3.6</p><p> KP11: JB P2.6,KP11 ;等待交換</p><p> AJMP KP12 ;去兩隊分數(shù)交換程序 </p><p>
98、 LK8: ACALL D10MS </p><p> JB P2.6,CTCO ;計時暫停處理</p><p> CLR P0.0</p><p> LK9: JNB P2.6,LK9 ;等待鍵按下</p><p> KL
99、10: JB P2.6,LK10 ;等待鍵放開</p><p> SETB P0.0 ;繼續(xù)計時</p><p> AJMP CTCO</p><p> P3: DEC 42H ;將秒鐘十位減1 </p>
100、;<p> AJMP NEXT</p><p> LP1: DEC 40H ;將分鐘十位減1</p><p> AJMP NEXT</p><p> LP2: DEC 41H ;將分鐘個位減1</p>
101、<p> NEXT: MOV TL0,#0B0H ;定時中斷送初值返回</p><p> MOV TH0,#3CH</p><p><b> RETI</b></p><p> KP12: MOV A,33H ;甲乙兩隊交換分數(shù)<
102、/p><p> XCH A,36H </p><p> MOV 33H,A</p><p> MOV A,34H</p><p> XCH A,37H</p><p> MOV 34H,A</p><p> MOV A,35H<
103、;/p><p> XCH A,38H</p><p> MOV 35H,A</p><p> AJMP mp ;返回顯示交換后的分數(shù)</p><p> CXT: JNB P3.5,KP1 ;甲隊+1</p><p>
104、 JNB P3.4,KP2 ;甲隊-1</p><p> JNB P0.2,KP3 ;乙隊+1</p><p> JNB P0.1,KP4 ;乙隊-1</p><p><b> AJMP KP</b></p><p> KP
105、1: JNC 36H ;甲隊+1程序</p><p> MOV A,36H</p><p> CJNE A,#0AH,KP5</p><p> MOV 36H,#00H</p><p> INC 37H</p><p> MOV
106、 A,37H</p><p> CJNE A,#0AH,KP5</p><p> MOV 37H,#00H</p><p> INC 38H</p><p> AJMP KP5</p><p> KP2: MOV A,36H ;甲隊
107、-1程序</p><p> CJNE A,#00H,AP1</p><p> MOV 36H,#09H</p><p> DEC 37H</p><p> AJMP KP5</p><p> AP1: DEC 36H</p><p>
108、AJMP KP5</p><p> KP3: INC 33H ;乙隊+1程序</p><p> MOV A,33H</p><p> CJNE A,#0AH,KP5</p><p> MOV 33H,#00H</p><p> INC
109、 34H</p><p> MOV A,34H</p><p> CJNE A,#0AH,KP5</p><p> MOV A,34H</p><p> CJNE A,# 0AH,KP5</p><p> MOV 34H,#00H</p><p> IN
110、C 35H</p><p> AJMP KP5</p><p> KP4: MOV A,33H ;乙隊-1程序</p><p> CJNE A,#00H,AP2</p><p> MOV 34H,#09H</p><p> DEC 35H
111、</p><p> AJMP KP5</p><p> AP2: DEC 34H</p><p> KP5: CLR P3.7 ;顯示分數(shù)</p><p> MOV R1,#33H</p><p> MOV R2,#
112、06H</p><p> LP6: MOV A,@R1</p><p> MOV DPTR,#TAB ;查找顯示數(shù)據(jù)</p><p> MOVC A,@A+DPTR</p><p> MOV SBUF,A ;通過串行口發(fā)送顯示</p><
113、p> JNB TI,$ ;串行口是否發(fā)送完畢</p><p> CLR TI ;串行口標志清0</p><p><b> INC R1</b></p><p> DJNZ R2,L ;6次是否發(fā)送完畢</p><p
114、> SETB P3.7</p><p> KP6: JNB P3.3,KP6</p><p> KP: RETI</p><p> TAB: DB 3FH, 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H ;顯示字</p>
115、<p> D10S: MOV 50H,#05H ;延時程序10S</p><p> D2S: MOV R3,#0AH ;延時程序2S</p><p> D200MS: MOV R7,#14H</p><p> D10MS:
116、MOV R6,#05H</p><p> LOOP3: MOV R5,#0F9H</p><p><b> NOP</b></p><p><b> NOP</b></p><p> LOOP2: DJNZ R5,LOOP2</p&g
117、t;<p> DJNZ R6,LOOP3</p><p> DJNZ R7,D10MS</p><p> DJNZ R3,D200MS</p><p> DJNZ 50H,D2S</p><p><b> RET</b></p><p><b>
118、 結(jié) 論</b></p><p> 在本次畢業(yè)設計,我通過基于典型單片機AT89C51的設計和應用,對于單片機工作原理,功能有了宏觀的了解,并對單片機匯編程序的應用有了新的、進一步的認識。</p><p> 在本次設計的過程中,我發(fā)現(xiàn)很多的問題,給我的感覺就是下手很難,很不順手,看似很簡單的電路,要動手把它給設計出來,是很難的一件事,主要原因是我們沒有經(jīng)常動手設計過電路。另
119、外單片機系統(tǒng)的知識似懂非懂,而且很多知識當時弄明白了,現(xiàn)在要用的時候又不記得,造成我用了大量的時間去查閱各種資料和程序命令,因此整個過程時間安排不合理。由于設計的計劃沒有安排好,設計的時間極為倉促,尤其是在硬件調(diào)試的過程中出現(xiàn)了很大的問題。另外資料的查找也是一大難題,這就要求我們在以后的學習中,應該注意到這一點,更重要的是我們要學會把從書本中學到的知識和實際的電路聯(lián)系起來,這不論是對我們以后的就業(yè)還是學習,都會起到很大的促進和幫助。&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 籃球賽計時計分器畢業(yè)設計
- 課程設計--- 基于單片機的籃球賽計時計分器的設計
- 畢業(yè)設計(論文)-基于at89c51單片機的籃球賽計時計分器設計
- 畢業(yè)設計--基于單片機的籃球賽計分器
- 畢業(yè)設計-- 基于單片機的籃球賽計分器
- 畢業(yè)設計---基于單片機的籃球計時計分器設計
- 課程設計-- 籃球賽計時計分器
- -基于單片機的籃球計時計分器設計
- 基于單片機的籃球計時計分器設計設計
- 基于單片機的籃球賽計分器
- 開題報告---籃球賽計時計分器設計與實現(xiàn)
- 單片機課程設計——籃球計時計分器
- 單片機課程設計—籃球計時計分器
- 單片機課程設計——籃球計時計分器
- 單片機課程設計—籃球計時計分器
- 單片機籃球計時計分器課程設計
- 單片機課程設計——籃球計時計分器 - 副本
- 單片機課程設計報告-籃球計時計分器
- 畢業(yè)設計----籃球賽計時記分器設計
- 畢業(yè)設計(論文)-基于at89s52單片機的籃球計時計分器設計
評論
0/150
提交評論