目 錄
摘 要
1 概述
2系統總體方案及硬件設計
2.1 AT89C51簡介
2.2 數碼管顯示原理
2.3 系統總體方案
3 編程設計
3.1 定時/計數器
3.2 程序流程圖
3.3 程序分析
4 Proteus軟件仿真
4.1 Proteus仿真軟件簡介
4.2 仿真過程
5 調試分析
6 心得體會
致謝
參考文獻
附錄一 程序清單
附錄二 電路原理圖
摘 要
本系統是采用單片機AT89C51作為本設計的核心元件。利用7段共陽LED作為顯示器件。在此設計中共接入了2個7段共陽LED顯示器,用于記錄該隊的分數, 2個LED顯示器顯示范圍可達到0~99分,基本滿足賽程需要。當比賽隊得1分時,按下S1鍵加1分,得2分時按S2鍵加2分,得3分時按下S3鍵加3分。如分數計錯需減分時,每按一次S4鍵減1分。
采用單片機控制是這個系統按鍵操作使用簡潔,LED顯示,安裝方便。解決了籃球比賽計數器的安裝問題,節約了線材,適合在各種規模的體育場館使用,完全可以代替傳統的用鐘表進行計時的方法,當然稍加改動也可以用于其他球類比賽,是體育器材向智能化發展的一個實例。
1 概述
體育比賽計分系統是對體育比賽過程中所產生的時間,比分等數據進行快速采集記錄,加工處理,傳遞利用的信息系統。根據不同運動項目的不同比賽規則要求,體育比賽的計時計分系統包括測量類,評分類,命中類,制勝類得分類等多種類型。
籃球比賽是根據運動隊在規定的比賽時間里得分多少來決定勝負的,因此,籃球比賽的計時系統是一種得分類型的系統。籃球比賽的計時系統由計時器等多種電子設備組成,同時,根據目前高水平籃球比賽要求,完善的籃球比賽計時系統設備應能夠與現場成績處理,現場大屏幕,電視轉播車等多種設備相聯,以便實現高比賽現場感,表演娛樂觀眾等功能目標。
由于單片機的集成度高,功能強,通用性好,特別是它具有體積小,重量輕,能耗低,價格便宜,可靠性高,抗干擾能力強和使用方便等獨特的優點,使單片機迅速得到了推廣應用,目前已經成為測量控制應用系統中的優選機種和新電子產品的關鍵部位。世界各大電氣廠家,測控技術企業,機電行業,競相把單片機應用于產品更新,作為實現數字化,智能化的核心部件。籃球計時計分器就是以單片機為核心的計時計分系統,由于對于單片機是剛剛學習,對于編程也不是十分熟練,故本次設計的內容相較簡單,達不到正式比賽需求,僅供學習之用。
2系統總體方案及硬件設計
2.1 AT89C51簡介單片機是在一塊芯片中集成了CPU、RAM、ROM、定時/計數器和多功能I/O口等計算機所需要的基本部件的大規模集成電路,又稱MCU。 其以體積小、功能全、性價比等諸多優點而獨具特色,在工業控制、尖端武器、通信設備、家用電器等嵌入式應用領域中獨占鰲頭。如果說C語言程序設計課程設計的基礎課,那么單片機以其系統硬件構架完整、價格低廉、學生能動手等特點,成為工科學生硬件設計基礎課。其管腳圖如右圖所示。  圖2.1 AT89C51管腳圖 2.2 數碼管顯示原理數碼管實際上是由7個發光管組成8字形構成的,加上小數點就是8個。我們分別把他命名為A,B,C,D,E,F,G,H。 圖2.2 數碼管內部結構圖 假設我們要顯示一個數字2, 那么 A、B、G、E、D這5個段的發光管亮就可以了,C、F、H不亮,同時由于接法為共陽接法,那么為低電平是亮,為高電平是滅。從高往低排列, P1.7-P1.0寫成二進制為01111110, 把他轉化為16進制則為A2H。我們可以根據硬件的接線把數碼管顯示數字編制成一個表格,見下表,以后直接調用就行了。
表2.1 共陽極數碼管顯示
數碼管的接口有靜態接口和動態接口兩種。靜態接口為固定顯示方式,無閃爍,其電路可采用一個并行口接一個數碼管,數碼管的公共端按共陽接VCC,本次課程設計由于所需數碼管較少,故可用些種方法接線。這種接法占用接口多,僅能接少量數碼管。 動態接口采用各數碼管循環輪流顯示的方法,當循環顯示的頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現象,這種顯示需要一個接口完成字形碼的輸出,另一接口完成各數碼管的輪流點亮。 2.3 系統總體方案因所設計的籃球計分器功能較少,電路結構也相對簡單。只有兩個部分:開關控制和數碼管的顯示。P0口接四個開關,分別作為比分+1、+2、+3、-1的控制按鍵;P1口和P3口分別按靜態接口方法接兩個數碼管來顯示比分。 采用數碼管靜態接法,P3口接數碼管個位顯示、P1口接數碼管十位顯示、P0口接四個開關,中間串接上電阻來作分壓用,使得其高低電平能夠清楚的分開從而可以實現開關上高低電平的跳變,使數碼管工作。
3 編程設計
3.1 定時/計數器籃球比賽計分器其實就是一個計數器,本次課程設計就是利用單片機中的定時/計數器來實現其計分的功能。在51單片機中有兩個16位的定時/計數器T0,T1,分別由TH0、TL0和TH1、TL1組成,它們均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。它們用于存放定時或計數的初始值。此外,內部還有一個8位的方式寄存器TMOD和一個8位的控制寄存器TCON。用于選擇和控制定時/計數器的工作。其格式見下面兩表: 表3.1 方式控制寄存器TMOD
表3.2 控制寄存器
籃球比賽計分器利用單片機的計數器進行工作,計數器對外部脈沖的下降沿進行加1計數,直至計滿回零。作為可編程器件,單片機中的定時/計數器初始化編程步驟如下: 根據定時時間要求或計數要求計算計數器初值; 將工作方式控制字寫入TMOD寄存器; 將計數初值寫入THX和TLX寄存器; 啟動定時器/計數器,即將TRX置位。 如果工作于中斷方式,需置位EA(中斷總開關)及ETX(允許定時/計數器中斷),并編寫中斷服務程序。 3.2 程序流程圖籃球比賽中,得分可分為1分、2分、3分三種情況,為防止出見加分錯誤要另設一減分開關。根據這樣的設計要求,結合數碼管的顯示以及51單片機中計數器的工作實現方式、接口應用、中斷控制等可設計出程序流程圖如下所示: 圖3.1 簡易籃球比賽計分器 3.3 程序分析數碼管的顯示,在TAB中加入數碼管顯示數字時對應的16進制數 MOV DPTR,#TAB TAB: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H 數碼管顯示程序: MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P1,A
MOV A,B
MOVC A,@A+DPTR
MOV P3,A
由于需要四個開關,取出A中的低四位來接開關,用ANL命令實現。其程序如下: MOV A,P0
ANL A,#0FH
CJNE A,#0FH,KEY1
SJMP START 四個開關加1、加2、加3、減1,直接通過加法在累加器中實現,以開關1為例,程序如下: MOV R1,#1 MOV A,R0 ADD A,R1
MOV R0,A 4 Proteus軟件仿真
4.1 Proteus仿真軟件簡介Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。 Protues提供了豐富的資源: 仿真元器件資源:仿真數字和模擬、交流和直流等數千種元器件,有30多個元件庫。仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調試器、I2C調試器、信號發生器、模式發生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調用。Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數指標。另外Proteus還提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。 在Protues中進行電路仿真時,先繪制好原理圖,再調入已編譯好的目標代碼文件:*.HEX,隨后便可在PROTEUS的原理圖中模擬的實物運行狀態和過程,進行觀察從而改良自己的設計方案。操作簡單,非常適合初學者進行單片機的仿真,進而了解其原理,增強實踐。
4.2 仿真過程在用Protues進行仿真之前,先要用WAVE軟件將我們編寫好的匯編程序編譯。具體方法是先新建一項目,之后輸入編寫的程序,輸入完成后保存然后執行項目、編譯,在目標文件夾內生成編譯好的程序文件,其中*.HEX文件就是我們所需要的,在之后電路設計好后用于放入AT89C51中執行其功能。 在生成*.HEX文件后,進入Protues軟件,此時軟件已自動打開一新建項目。我們可直接在其中構建電路圖,點擊板面左側按鍵P,在彈出的Pick devices對話框中進行元器件的選擇,如下圖: 圖4.1 查找元器件 元器件都找到后,先進行排版再按照電路圖連接,如連接好后如下圖所示: 圖4.2仿真電路圖 在電路連接好后,雙擊AT89C51在彈出對話框中選擇單片機中要輸入的程序,見下圖: 圖4.3 向AT80C51中加入程序 在輸入程序后,即可開始進行仿真了,選擇執行后點擊開關可觀察到數碼管亮,并能實現加1、加2、加3、減1的功能。 圖4.4 仿真結果圖 5 調試分析在仿真成功之后,便可進行實踐了。實物和仿真還是有一定的差別的,制作實物時要考慮的方面比仿真多的多。做實物時,不僅要考慮到電路正確同時也要注意版面的設計,不僅設計功能要求實現,版面的美觀也是必不可少的一方面,這就要注意盡量少的接線。 在電路板剛剛焊好后,與以前制作的單片機板連接在一起,接好電路,烤入程序后發現第一個數碼管的C段一直處于亮的狀態,經檢查后確定不是硬件出現的問題,但在仿真時能正確顯示也證明程序也是正確的,找不到問題所在讓我非常郁悶。想著原因可能程序讀入時出現錯誤,試著重新將程序烤入單片機中,顯示結果果然變得正常,實踐成功。
6 心得體會 這次課程設計歷時二個星期多左右,通過這兩個星期的學習,發現了自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經驗還是比較缺乏,理論聯系實際的能力還急需提高。 在這個過程中,我也曾經因為實踐經驗的缺乏失落過,也曾經仿真成功而熱情高漲。生活就是這樣,汗水預示著結果也見證著收獲。勞動是人類生存生活永恒不變的話題。雖然這只是一次的極簡單的課程制作,可是平心而論,也耗費了我們不少的心血。通過這次課程設計,我想說:為完成這次課程設計我確實很辛苦,但苦中仍有樂,當我們仿真實驗成功的時候,當我們連好線,按下按鈕,LED亮了起來的時候我們的心中就不免興奮,不免激動。以前種種艱辛這時就變成了最甜美的回憶!對我而言,知識上的收獲重要,精神上的豐收更加可喜。讓我知道了學無止境的道理。我們每一個人永遠不能滿足于現有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經歷是一份擁有。這次課程設計必將成為我人生旅途上一個非常美好的回憶!
致謝本文是在曾剛和陳德軍老師精心指導和大力支持下完成的。兩位老師以其嚴謹求實的治學態度、高度的敬業精神、兢兢業業、孜孜以求的工作作風和大膽創新的進取精神對我產生重要影響。淵博的知識、開闊的視野和敏銳的思維給了我深深的啟迪。同時,在此次畢業設計過程中我也學到了許多關于單片機設計方面的知識,實驗技能有了很大的提高。 另外,我還要特別感謝同學對我實驗以及論文寫作的指導,他們為我完成這篇論文提供了巨大的幫助。 最后,再次對關心、幫助我的老師和同學表示衷心地感謝
程序源碼:
- ORG 0000H
- MOV R0,#0
- MOV DPTR,#TAB
- START:MOV A,P0
- ANL A,#0FH ;取A的低四位
- CJNE A,#0FH,KEY1
- SJMP START
- KEY1:LCALL DELAY ;調用延遲子程序
- MOV A,P0 ;確認按鍵是否確實按下
- ANL A,#0FH
- CJNE A,#0FH,KEY2
- SJMP START
- KEY2:JNB ACC.0,K1 ;確認按下的是哪個開關
- JNB ACC.1,K2
- JNB ACC.2,K3
- JNB ACC.3,K4
- LJMP START
- K1:MOV R1,#1 ;分別輸入不同數值對應不同開關
- LJMP ADDOPR
- K2:MOV R1,#2
- LJMP ADDOPR
- K3:MOV R1,#3
- LJMP ADDOPR
- K4:DEC R0
- LJMP WAIT
- ADDOPR:MOV A,R0 ;與值相加
- ADD A,R1
- MOV R0,A
- WAIT:MOV A,P0
- ANL A,#0FH
- CJNE A,#0FH,WAIT
- MOV A,R0
- MOV B,#10
- DIV AB
- MOVC A,@A+DPTR
- MOV P1,A
- MOV A,B
- MOVC A,@A+DPTR
- MOV P3,A
- LJMP START
- DELAY:MOV R6,#15 ;延時子程序
- DEL2:MOV R7,#200
- DEL1:DJNZ R7,DEL1
- DJNZ R6,DEL2
- RET
- TAB: DB 0C0H,0F9H,0A4H,0B0H,99H
- DB 92H,82H,0F8H,80H,90H
復制代碼
附錄二 電路原理圖
完整的Word格式文檔51黑下載地址:
單片機籃球計分器1.doc
(342.5 KB, 下載次數: 85)
2018-10-30 22:35 上傳
點擊文件名下載附件
單片機籃球計分器設計報告 下載積分: 黑幣 -5
|