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

下載本文檔

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

文檔簡介

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

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

3、T2,那么把球擊回,LED燈即刻以0.5S每位左右的速度從右向左依次移動(dòng),等待甲方接球。假設(shè)甲方接球失誤,那么判乙方得分,乒乓球停止運(yùn)動(dòng)LED燈滅,數(shù)碼管顯示得分。球回到乙方手中,由乙方發(fā)球,游戲繼續(xù),開始進(jìn)入下一回合。(5)當(dāng)甲乙中有一人得分為9后,游戲進(jìn)入下一輪,得分較少方一端的LED燈亮,數(shù)碼管重新顯示00。此時(shí)發(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)生一個(gè)復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實(shí)現(xiàn)單片機(jī)自動(dòng)復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時(shí)間2個(gè)機(jī)器周期,單片機(jī)就可以進(jìn)行復(fù)位操作。按鍵復(fù)位電路圖如圖3.1.a所示。 圖3.1.a 復(fù)位電路b 振蕩電路單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容電容一般取30Pf這樣就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器,振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時(shí)鐘信號(hào),再

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

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

溫馨提示

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

評論

0/150

提交評論