單片機原理及應用實訓報告:實籃球記分牌_第1頁
單片機原理及應用實訓報告:實籃球記分牌_第2頁
單片機原理及應用實訓報告:實籃球記分牌_第3頁
單片機原理及應用實訓報告:實籃球記分牌_第4頁
單片機原理及應用實訓報告:實籃球記分牌_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 桂林電子科技大學信息科技學院單片機原理及應用實訓報告題 目 籃球計分牌 學 號 0951100228 姓 名 謝锎 指導老師 韓桂明 張錕 趙志鵬 2011 年 9 月 23 日1.系統(tǒng)設計1.1設計要求1.1.1.基本要求 1 設計一個基于單片機的籃球計分牌,實現(xiàn)兩隊的計分功能與24秒計時功能2 結(jié)合硬件能夠正常計分3 能夠正常顯示分值。4 能夠正常修改工作模式(計分與24秒)5 能夠24秒的誤差不小于1秒1.1.2.發(fā)揮部分1 12分鐘倒計時2 能夠兩隊球員犯規(guī)次數(shù)計數(shù)3 重置24秒表4 倒計時結(jié)束報警5 12分鐘倒計時結(jié)束紅燈全部亮1.2設計原理1.2.1 框圖設計1.2.2 程序流程

2、1.2.2.1加分程序流程 中斷開始 中斷開始 a隊顯示分數(shù)加1 b隊顯示分數(shù)加1a按鍵按下 成功否?b按鍵按下成功否? 中斷返回 中斷返回yynn1.2.2.2犯規(guī)程序流程 中斷開始 中斷開始 a隊顯示犯規(guī)加1 b隊顯示犯規(guī)加1a按鍵按下 成功否?b按鍵按下成功否? 中斷返回 中斷返回yynn1.2.2.3 選擇顯示程序流程q=1?q=0?q=3?q=2?q=?加分顯示24秒倒計時顯示12分鐘倒計時顯示犯規(guī)次數(shù)顯示yyyynnn1.3方案比較1.3.1 方案1:是通過按不同的鍵來切換不同的輸入,使用不同的led燈的亮滅來顯示不同的隊加分。電路圖: 1.3.2 方案2:通過一個鍵來切換分數(shù),2

3、4s倒計時,12分鐘倒計時和犯規(guī)次數(shù),通過led燈的亮來判斷是那個隊加分,那個隊犯規(guī),12分鐘倒計時結(jié)束。另外,給a隊b隊加分和加犯規(guī)次數(shù)。通過按鍵,選擇哪種顯示方式,暫停/開始24s倒計時,重置24s;電路圖:1.4方案論證1.4.1總體思路7個按鍵實現(xiàn)對應功能:p16對應a隊加分,第一個紅燈亮;p10對應b隊加分,第二個紅燈亮;p11對應顯示切換,切換有四類顯示方式,第一類是a隊跟b隊的比分顯示,且各兩個數(shù)碼管顯示。第二類是24s倒計時的顯示。第三類是12分鐘倒計時的顯示。第四類是a隊跟b隊的犯規(guī)次數(shù)顯示;p12對應24秒倒計時暫停/開始;p13對應重置24s倒計時,同時24s倒計時暫停;

4、p14對應a隊加犯規(guī)次數(shù),同時第三個紅燈亮;p15對應b隊加犯規(guī)次數(shù),同時第四個紅燈亮;外加復位鍵,按下則清零;24秒倒數(shù)為0時蜂鳴器響起警報,重新倒數(shù)時蜂鳴器關(guān)閉。12分鐘倒計時結(jié)束時,蜂鳴器響起警報,紅燈全亮。1.4.2設計方案使用了延時子程序(delay)用來按鍵消抖,還有定時中斷程序來顯示數(shù)碼管,啟止24s倒計時,12分鐘倒計時,使用了p0口作為數(shù)碼管的段選和p2口的位選,使用p1口作為按鍵作為輸入,p3口的發(fā)光二極管作為判斷a隊和b隊的選擇和作為模式的選擇部分和蜂鳴器作為倒計時24秒的計時的時間到;在主程序里面有各按鍵的功能,a隊加分,b隊加分,切換功能,重置24s功能,a隊加犯規(guī),

5、b隊加犯規(guī);2、模塊電路的設計2.1 at89s51單片機芯片 在本設計中p3.7p3.4口接led燈,p2.7口(28腳)接蜂鳴器電路,p1.0p1.6(17腳)口接7個按鍵,rst(9腳)接復位電路,p2.0p2.4(2124腳)接四位數(shù)碼管的位選腳,p0.0p0.7(3239腳)接四位數(shù)碼管段位腳,18、19腳接晶振電路,20腳接gnd,31腳、40腳接vcc。2.2 四位共陰數(shù)碼管電路2.3 復位電路2.4 內(nèi)振蕩電路(時鐘電路)2.5 蜂鳴器電路2.6 下載口電路2.7 二極管顯示電路3、開發(fā)軟件及編程語言簡介3.1 keil c編程軟件3.1.1 系統(tǒng)概述keil c51是德國ke

6、il software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。3.1.2. keil c51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)c51工具包的整體結(jié)構(gòu),其中uvision與ishell分別是c51 for

7、 windows和for dos的集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標文件(.obj)。目標文件可由lib51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)l51連接定位生成絕對目標文件(.abs)。abs文件由oh51轉(zhuǎn)換成標準的hex文件,以供調(diào)試器dscope51或tscope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如eprom中。3.2 keil開發(fā)工具-uvision3 uvision3集成開發(fā)環(huán)境是一個基于wi

8、ndow的開發(fā)平臺,包括一個全功能的源代碼編輯器,一個項目管理器和一個make工具。利用源代碼編輯器可以高效地編輯源程序。利用項目管理器可以很方便地創(chuàng)建和維護項目,利用make工具可以匯編,編譯和連接。4、制作與調(diào)試過程4.1制作過程:4.1.1編程時用c語言編寫并需要結(jié)合電路原理圖編寫;4.1.2在使用proteus軟件仿真時,要找到元器件相應的符號及其使用方法;4.1.3在制作電路板時,由于使用萬用板,在焊接元器件的管腳時需要注意焊錫的使用量,用量過多會導致該焊錫與其它的銅孔相連,有可能導致電路的某條支路短路;4.1.4在焊接按鍵時,需要分清楚其的管腳,可以用萬用表測試管腳的導通,則可以區(qū)

9、分管腳;4.1.5在焊接數(shù)碼管的管腳時,應該注意其管腳的分布;4.1.6在焊接at89s52的管腳時,需要注意分清各個管腳;4.1.7在焊接晶振的管腳時需要注意將其盡量靠近該芯片的xtal1,xlal2的兩端;4.1.8在焊接下載端口的管腳時需要注意各管腳與芯片的管腳對應。4.2調(diào)試過程:4.2.1初步調(diào)試程序時并下載到芯片上時,通過操作驗證“暫停部分的程序”在比賽結(jié)束后再按暫停按鍵時,可以實現(xiàn)倒計時,但是當t=0時,開始出現(xiàn)亂碼,針對該問題,需要在其暫停部分的程序加以“break”到相應的程序中,經(jīng)調(diào)試,下載可以實現(xiàn)將程序跳出“死循環(huán)”。4.2.2在調(diào)試電路板時不能將程序下載到芯片的情況,經(jīng)

10、分析得出晶振接觸不良。4.2.3 硬件搭建好后,發(fā)現(xiàn)程序下載不了,經(jīng)檢查發(fā)現(xiàn),下載端口接反,下載口連接正確后,程序依然下載失敗。經(jīng)常長時間電路檢查依然為發(fā)現(xiàn)問題。后面通過仔細查看單片機最小系統(tǒng),最終發(fā)現(xiàn)單片機的ea端沒接vcc導致單片機無法讀取片內(nèi)rom。4.2.4 下載成功后,然后再補充了led燈跟功能對應的顯示。5、心得體會通過本次實訓,發(fā)現(xiàn)自身在電子制作,程序編寫方便有著非常大的不足。對以往學習過的編程知識沒有好好掌握,特別是編程這方便的知識較薄弱。學習過的知識在實際應用中仿佛是冰山一角,完全不夠用,需要通過查閱很多資料才能解決到碰到的相關(guān)問題。而且實訓中出現(xiàn)的問題都是實際應用出比較典型

11、的問題。發(fā)現(xiàn)問題解決問題,通過不斷的了解,對單片機原理及應用這門課有了更深刻的了解掌握。單片機技術(shù)在當今各方面領域有著極高的應用率,是一門動手能力非常強的技術(shù)。其中的程序和模塊化元件看起來很簡單,但是真正要自己設計有代表性出來是很難的,需要有扎實的知識基礎,和較強的邏輯分析能力。這些條件我們都可以通過平時的努力來積累。碰到問題,先自己思考解決,再請教老師。這次實訓還讓我深刻的體會了結(jié)構(gòu)化程序設計的優(yōu)勢,讓我懂得當我們要進行一個復雜的程序設計時應該先將其分解為多個不同的功能模塊再分別編程實現(xiàn),這樣做不僅降低了編程的難度,也容易讓編程者思路更加清晰,避免出現(xiàn)不必要的錯誤。在做仿真時,仿真圖正確也不

12、一定就是說明一定正確。做實物時,不僅要做到電路正確,也要盡可能做到布局合理、焊接到位,否則很有可能電路原理圖正確、仿真圖正確但是任然調(diào)試不出結(jié)果。另外,焊接的時候不能分心,否則極易出錯。6、參考文獻【1】喻宗泉單片機原理與應用技術(shù)西安:西安電子科技大學出版社。2006【2】李光飛單片機課程設計實例指導北京:航空航天大學出版社。2004【3】張欣單片機原理與c51程序設計基礎教程北京:清華大學出版社。20107、 附錄7.2.1 電路原理圖7.2.2 pcb7.2.3 硬件正面圖7.2.4 硬件反面圖7.2.5元件清單:序號元件名稱規(guī)格數(shù)量151單片機at89s521個2晶振12m晶振1個4七段

13、數(shù)碼管4位共陰極1個5起振電容22pf瓷片電容2個6復位電容10uf1個7電阻1k5個8按鍵8個9led4個10蜂鳴器1個11npn80501個7.2.6 程序#include/*數(shù)碼管段代碼表*/unsigned char tab=0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7,0x20;unsigned char a=0,/a隊分數(shù) b=0,/b隊分數(shù) afg=0,/a隊犯規(guī)次數(shù) bfg=0;/b隊犯規(guī)次數(shù) unsigned char t=24,/倒計時24秒 k=0,/倒計時暫停/開始狀態(tài) h=0,/顯示轉(zhuǎn)換狀態(tài) miao=0,/秒鐘

14、fen=12;/12分鐘倒計時分鐘intbittime=0; /循環(huán)次數(shù)intbitdisplay=0;/顯示sbit p16=p16;/a隊加分sbit p10=p10;/b隊加分sbit p11=p11;/顯示狀態(tài)切換sbit p12=p12;/倒計時暫停/開始sbit p13=p13;/24s倒計時重置sbit p14=p14;/a隊犯規(guī)加次數(shù)sbit p15=p15;/b隊犯規(guī)加次數(shù)sbit fmq=p27;/蜂鳴器/*定時中斷服務程序*/void timer0 (void) interrupt 1 using 0th0=0xf8;tl0=0x30;/定時器賦初值switch (bit

15、display) case 0: p2=0xfe; if(h=0)p0=taba/10;/a隊分數(shù)十位顯示 if(h=1)p0=tabt/10;/倒計時十位顯示 if(h=2)p0=tabfen/10;/每節(jié)比賽12分鐘,分鐘十位顯示 if(h=3)p0=tabafg/10;/犯規(guī)的十位顯示 break; case 1: p2=0xfd; if(h=0)p0=taba%10;/a隊分數(shù)個位顯示 if(h=1)p0=tabt%10; /倒計時個位顯示 if(h=2)p0=tabfen%10;/分鐘的個位顯示 if(h=3)p0=tabafg%10;/a犯規(guī)的個位顯示 break; case 2: p2=0xfb; if(h=0)p0=tabb/10; if(h=1)p0=0x00; if(h=2)p0=tabmiao/10; if(h=3)p0=tabbfg/10; break; case 3: p2=0xf7; if(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論