基于單片機(jī)的乒乓球游戲系統(tǒng)設(shè)計_第1頁
基于單片機(jī)的乒乓球游戲系統(tǒng)設(shè)計_第2頁
基于單片機(jī)的乒乓球游戲系統(tǒng)設(shè)計_第3頁
基于單片機(jī)的乒乓球游戲系統(tǒng)設(shè)計_第4頁
基于單片機(jī)的乒乓球游戲系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)的乒乓球游戲系統(tǒng)的設(shè)計姓 名:學(xué) 號:專業(yè)班級: 院系: 設(shè)計時間: 設(shè)計地點: 指導(dǎo)教師評語: 成績: 簽名: 年 月 日目錄一、 題目要求二、 方案設(shè)計三、 硬件原理四、 軟件設(shè)計五、 結(jié)論與體會 附:硬件原理圖基于單片機(jī)的乒乓球游戲系統(tǒng)的設(shè)計一、題目要求以STC12C5410AD單片機(jī)為核心設(shè)計一款“乒乓球游戲機(jī)。用8支連續(xù)排列的發(fā)光二極管,通過發(fā)光二極管的依次點亮代表乒乓球的運動。再用2個按鍵模擬左右2個球拍,鍵按下代表球拍擊球。“左拍按下可使發(fā)光二極管從左向右依次點亮,模擬乒乓球從左向右飛來;反之,“右拍按下那么可使發(fā)光二極管從右向左依次點亮,代表球從右向左運動。本游戲供兩

2、人玩,以一方按鍵發(fā)球開始,這時乒乓球就向?qū)Ψ竭\動,接球方應(yīng)在乒乓球到達(dá)終點之前擊球。如果擊球時機(jī)適宜,那么把球擊回,否那么就算失誤,由對方重新發(fā)球。在游戲過程中用LED數(shù)碼管顯示雙方比分。二、方案設(shè)計(1) 本游戲開始時球在左方甲手中,數(shù)碼管顯示雙方最初比分00。(2)當(dāng)甲方按下按鍵T1時,球開始往右邊移動,此時8位LED燈從左至右逐次點亮。左右的速度移動一位。 (3)假設(shè)接球方乙提前或遲后按下按鍵T2擊球,那么判已失誤,由甲得分,乒乓球停止運動發(fā)光二極管熄滅,數(shù)碼管顯示得分。球重新回到甲手中,由甲方再次發(fā)球,游戲進(jìn)入下一回合。(4)假設(shè)接球方乙擊球時機(jī)適宜,即在LED燈到達(dá)最右端之前按下按鍵

3、T2,那么把球擊回,LED燈即刻以0.5S每位左右的速度從右向左依次移動,等待甲方接球。假設(shè)甲方接球失誤,那么判乙方得分,乒乓球停止運動LED燈滅,數(shù)碼管顯示得分。球回到乙方手中,由乙方發(fā)球,游戲繼續(xù),開始進(jìn)入下一回合。(5)當(dāng)甲乙中有一人得分為9后,游戲進(jìn)入下一輪,得分較少方一端的LED燈亮,數(shù)碼管重新顯示00。此時發(fā)球權(quán)交給在上輪比賽中落后得分較少的一方,當(dāng)其按下按鍵后下一輪游戲正式開始。三、硬件原理1.STC12C5410AD單片機(jī)的主電路a 復(fù)位電路 復(fù)位操作有兩種根本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,假設(shè)要復(fù)位,只要按圖中的RESET鍵,電源VCC經(jīng)

4、電阻R1、R2分壓,在RESET端產(chǎn)生一個復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實現(xiàn)單片機(jī)自動復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時間2個機(jī)器周期,單片機(jī)就可以進(jìn)行復(fù)位操作。按鍵復(fù)位電路圖如圖3.1.a所示。 圖3.1.a 復(fù)位電路b 振蕩電路單片機(jī)內(nèi)部有一個高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容電容一般取30Pf這樣就構(gòu)成了一個穩(wěn)定的自激振蕩器,振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時鐘信號,再

5、在二分頻的根底上三分頻產(chǎn)生ALE信號,此時得到的信號時機(jī)器周期信號。振蕩電路如圖3.1.b所示:圖3.1.b 晶體振蕩電路2. LED燈接口電路 圖3.2 LED燈接口電路3. LED數(shù)碼管顯示電路圖3.3 LED數(shù)碼管顯示電路4. 按鍵設(shè)定電路獨立式鍵盤:獨立式鍵盤中,每個按鍵占用一根I/O口線,每個按鍵電路相對獨立。I/O口通過按鍵與地相連,I/O口有上拉電阻,無鍵按下時,引腳端為高電平,有鍵按下時,引腳電平被拉低。I/O口內(nèi)部有上拉電阻時,外部可不接上拉電阻。本設(shè)計中鍵盤接口電路如圖3.4所示:圖3.4 按鍵設(shè)定電路四、軟件設(shè)計軟件設(shè)計流程圖大體為:開始初始化按鍵K1甲發(fā)球K2適時?NY

6、顯示甲得分K1適時?顯示乙得分N按鍵K2乙發(fā)球Y乙得分為9?YN甲得分為9?YN軟件設(shè)計原代碼為:#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define led P1#define shuma P2sbit k1=P30;sbit k2=P31;sbit dig1=P32;sbit dig2=P33;uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x7

7、9,0x71 ;uchar flag1,flag2,pair1,pair2,score1,score2,wait;void delay(uint);void ledmove();void keyscan();void score();void showscore(); void delay(uint time)uint i,j; for(i=time;i>0;i-) for(j=100;j>0;j-);void main()A0: led=0x7f;score1=0;score2=0;flag1=0;flag2=0;dig1=1;dig2=1;shuma=table0;delay(

8、2000);B0: while(1) keyscan(); ledmove();score();showscore();if(score1=9|score2=9) break; if(score2=9) showscore(); delay(1000); goto A0;if(score1=9) showscore();delay(1000);led=0xfe; score1=0;score2=0;flag1=0;flag2=0;dig1=1;dig2=1;shuma=table0;delay(2000);goto B0;void ledmove()if(led=0x7f)&&

9、(pair1=1)flag1=1;flag2=0; if(flag1=1)led=(led>>1)|(0x80);delay(300);wait=1;if(led=0xfe)&&(pair2=1)flag2=1;flag1=0;if(flag2=1)led=(led<<1)|(0x01);delay(300);wait=1;void keyscan()if(k1=0)delay(20);if(k1=0)pair1=1;else pair1=0;else pair1=0;if(k2=0)delay(20);if(k2=0)pair2=1;else pair

10、2=0;else pair2=0;void score()if(led=0xfe)&&(pair2=0)&&(wait=1) score1+;led=0x7f;flag1=0;flag2=0;wait=0;if(led=0x7f)&&(pair1=0)&&(wait=1)score2+; led=0xfe;flag1=0;flag2=0;wait=0;void showscore()dig1=1;dig2=0;shuma=tablescore1;delay(20);dig1=0;dig2=1;shuma=tablescore2;d

11、elay(20);五、結(jié)論與體會本設(shè)計的乒乓球游戲系統(tǒng)是由STC單片機(jī)、共陰數(shù)碼顯示管、控制按鍵、三極管等器件構(gòu)成的,設(shè)有雙位數(shù)據(jù)顯示、兩個游戲按鍵以及一個系統(tǒng)整機(jī)復(fù)位按鈕。設(shè)計精簡,使用簡單易懂。系統(tǒng)設(shè)計合理,線路簡單、功能先進(jìn),性能穩(wěn)定,程序精簡。并給出了詳細(xì)的電路設(shè)計方法。本系統(tǒng)是以單片機(jī)為核心,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,以作完善。通過一個星期的努力,我終于完成了單片機(jī)的課程設(shè)計。在設(shè)計的過程中,我發(fā)現(xiàn)了自身的許多缺乏,比方自己的編程能力薄弱,軟件不夠熟悉、焊接技術(shù)有待提高等等。我覺得作為一名自動化專業(yè)的學(xué)生,單片機(jī)的課程設(shè)計是很有意義的,更重要的是如何把自己平時所學(xué)的東西應(yīng)用到實際中。通過這次課程設(shè)計,加強(qiáng)了我們動手、思考和解決問題的能力。通過本次設(shè)計,復(fù)習(xí)穩(wěn)固我們以前所學(xué)習(xí)的數(shù)電、模電、單片機(jī)原理及應(yīng)用等課程知識,加深對各門課程及相互關(guān)系的理解,并成功使用了Wave、Protel 2004和Proteus三款電子軟件,使理論知識系統(tǒng)化、實用化,系統(tǒng)地掌握微機(jī)應(yīng)用系統(tǒng)的一般設(shè)計方法,培養(yǎng)較強(qiáng)的編程能力、開發(fā)能力。在這次課程設(shè)計過程中,我們了解了很多元件的功能,并且對于其在電路中的使用有了更多的認(rèn)識。動手實踐讓我們對各個元件各個單元的組成及其相應(yīng)的功能映象深刻。認(rèn)識來源于實踐,實踐是認(rèn)

溫馨提示

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

評論

0/150

提交評論