基于51單片機(jī)8x8點(diǎn)陣貪吃蛇綜合課程設(shè)計(jì)報(bào)告_第1頁(yè)
基于51單片機(jī)8x8點(diǎn)陣貪吃蛇綜合課程設(shè)計(jì)報(bào)告_第2頁(yè)
基于51單片機(jī)8x8點(diǎn)陣貪吃蛇綜合課程設(shè)計(jì)報(bào)告_第3頁(yè)
基于51單片機(jī)8x8點(diǎn)陣貪吃蛇綜合課程設(shè)計(jì)報(bào)告_第4頁(yè)
基于51單片機(jī)8x8點(diǎn)陣貪吃蛇綜合課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、電子線路綜合課程設(shè)計(jì)報(bào)告設(shè)計(jì)課題: 貪吃蛇掌上游戲機(jī) 專(zhuān)業(yè)班級(jí): 電子信息121班 學(xué)生姓名: 指導(dǎo)教師: 設(shè)計(jì)時(shí)間: 2015 .12 . 31 贛南師范學(xué)院科技學(xué)院數(shù)學(xué)與信息科學(xué)系 貪吃蛇掌上游戲機(jī) 一、設(shè)計(jì)任務(wù)與要求基本功能:制作一個(gè)8*8點(diǎn)陣的貪吃蛇游戲,系統(tǒng)以單片機(jī)的c語(yǔ)言的軟件設(shè)計(jì),系統(tǒng)通過(guò)LED點(diǎn)陣屏為載體顯示數(shù)據(jù),并用四個(gè)輸入端表示四個(gè)控制鍵(上下左右)。系統(tǒng)硬件部分由STC89C52RC單片機(jī),8*8點(diǎn)陣屏, 4個(gè)按鍵,軟件部分在keil環(huán)境下用c51語(yǔ)言編寫(xiě),包括游戲初始蛇的段數(shù),以及障礙墻壁,游戲結(jié)束時(shí)自動(dòng)復(fù)位。具體要求:1、用四個(gè)按鈕控制蛇的方向,蛇的原始段數(shù)為2點(diǎn),并

2、設(shè)置墻壁。2、蛇的移動(dòng)速度隨著蛇的段數(shù)增加而增加,當(dāng)蛇碰到墻壁和自己的身體時(shí)死亡 3、用proteus設(shè)計(jì),仿真基于STC89C52RC單片機(jī)的8*8點(diǎn)陣貪吃蛇的硬件電路。4、蛇死亡,游戲結(jié)束,系統(tǒng)自動(dòng)復(fù)位。二、方案設(shè)計(jì)與論證圖1、系統(tǒng)框圖1、貪吃蛇的移動(dòng)當(dāng)蛇沒(méi)有吃到任何食物時(shí),每次步進(jìn)蛇頭的將要到的下一個(gè)LED燈點(diǎn)亮,而蛇尾那個(gè)LED燈會(huì)滅掉,程序設(shè)計(jì)時(shí)只要將蛇尾那點(diǎn)位置的值傳給蛇頭下一個(gè)位置的值,再改變蛇尾的值即可。而蛇頭下一個(gè)位置根據(jù)蛇頭和偏移量來(lái)確定,每次上下左右按鍵決定了蛇步進(jìn)的偏移量,只要將蛇頭的位置加上偏移量的值即得到新的蛇頭位置。當(dāng)蛇頭碰到四周的墻壁或者碰到自己的身體,小蛇就立

3、即斃命并結(jié)束游戲。2、食物的隨機(jī)出現(xiàn)食物的出現(xiàn)是一種隨機(jī)行為,所以必須做一個(gè)隨機(jī)數(shù),而且食物出現(xiàn)的位置不能與蛇的位置相同,也不能超出墻外,否則就要重置食物。這里使用程序中的定時(shí)計(jì)數(shù)器的低八位 TL0的數(shù)值,由于TL0不斷變化,不同的時(shí)間點(diǎn)數(shù)值不同,我這里使用的是C語(yǔ)言里的stdlib.h文件庫(kù),使用里面的隨機(jī)函數(shù)srand(),先利用srand(TL0)獲得TL0的數(shù)值,再利用兩次rand()%8分別得到食物出現(xiàn)的橫縱坐標(biāo)的位置。三、原理圖及元器件清單1單位電路設(shè)計(jì)(1)AT89C52單片機(jī)最小系統(tǒng)模塊本系統(tǒng)以STC89C52RC為核心加上復(fù)位電路和晶振電路組成,本系統(tǒng)選用12M的晶振,使得單

4、片機(jī)有合理的運(yùn)行速度。起振電容30pF對(duì)振蕩器的頻率高低,振蕩器的穩(wěn)定性和振蕩器的快速性影響較合適復(fù)位電路為按鍵高電平復(fù)位。圖2、最小系統(tǒng)模塊(2)8*8點(diǎn)陣屏模塊LED點(diǎn)陣屏通過(guò)LED(發(fā)光二極管)組成,以燈珠亮滅來(lái)顯示程序的運(yùn)行情況,是模塊化的顯示組件,本設(shè)計(jì)采用8*8共陽(yáng)紅色點(diǎn)陣顯示屏,用來(lái)顯示貪吃蛇的游戲畫(huà)面。圖3、8*8點(diǎn)陣屏模塊(3)獨(dú)立按鍵模塊4個(gè)按鍵控制蛇的游走方向(上下左右)的功能簡(jiǎn)介明了圖4、獨(dú)立鍵盤(pán)(4)系統(tǒng)總原理圖說(shuō)明貪吃蛇是一款經(jīng)典的小游戲,玩家使用方向鍵控制一條很短(游戲剛開(kāi)始)的蛇,通過(guò)不斷的吃豆豆,蛇身會(huì)逐漸的加長(zhǎng),當(dāng)蛇撞到身體或墻壁時(shí)游戲結(jié)束圖5、總原理圖2元

5、件清單表1、元件清單元件名稱符號(hào)數(shù)值單位備注單價(jià)(元/個(gè))電阻R1R810K歐姆1/4瓦8電解電容C510F電解,250v耐壓2瓷片電容C1-4103PF50v耐壓48*8點(diǎn)陣屏LED8*81晶振X112M250v耐壓1單片機(jī)MUC1STC89C52RC1按鍵Key1-44二極管D1-41N34A正向?qū)▔航导s為0.20.3V4總計(jì): 12 元四、安裝與調(diào)試程序軟件編譯器使用uVision3。在用uVision3編寫(xiě)單片機(jī)程序時(shí),因uVision3往往只能修改語(yǔ)法上的錯(cuò)誤,對(duì)于算法上的問(wèn)題不好檢查,而直接下到單片機(jī)里又受電路板的限制而不方便調(diào)試,因此這里使用Proteus進(jìn)行電路仿真。該軟件具

6、有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能,同時(shí)有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。先在Proteus上繪制硬件電路(并未畫(huà)出驅(qū)動(dòng)電路),電路設(shè)計(jì)完成后就可以進(jìn)行仿真。先雙擊單片機(jī),把用uVision3編譯生成的HEX文件指定為下載文件,點(diǎn)擊PLAY鍵即可進(jìn)行仿真。當(dāng)出現(xiàn)ANALYSER ERRORS時(shí),表示電路有錯(cuò)誤,列表中說(shuō)明了具體的錯(cuò)誤,必須要先排錯(cuò)才可以進(jìn)行仿真。軟件調(diào)試及Proteus仿真完成后就進(jìn)行硬件的安裝。本設(shè)計(jì)按照原先設(shè)計(jì)好的電路圖進(jìn)行總體上的布置,采用人工搭電路的

7、方法進(jìn)行硬件的安裝。安裝時(shí)要考慮受熱、穩(wěn)固等多方面的影響使用電烙鐵時(shí)要控制好焊接的時(shí)間,電烙鐵停留的時(shí)間太短,焊錫不易完全熔化,形成“虛焊”,而焊接時(shí)間太長(zhǎng)又容易損壞元器件,每一兩秒內(nèi)要焊好一個(gè)焊點(diǎn),若沒(méi)完成,寧愿等一會(huì)兒再焊一次。其次芯片的擺置要方便連線,焊接時(shí)要先把芯片拔出,等線接好了再插上去。在焊接時(shí)要考慮電路的抗干擾能力同時(shí)要充分考慮電源對(duì)單片機(jī)的影響。每焊接完一個(gè)模塊,要用萬(wàn)能表根據(jù)電路圖檢查有沒(méi)有接錯(cuò)、短路等現(xiàn)象,確認(rèn)正確后再繼續(xù)下一個(gè)模塊五、性能測(cè)試與分析主程序工作流程如圖3所示,系統(tǒng)上電后首先對(duì)LED進(jìn)行初始化,接著對(duì)定時(shí)器初始化,并啟動(dòng)定時(shí)器,接著執(zhí)行程序主體邏輯,程序主體邏

8、輯執(zhí)行一遍后檢查是否有中斷發(fā)生。中斷源有兩個(gè),一個(gè)是驅(qū)動(dòng)貪吃蛇自動(dòng)前行的定時(shí)中斷,另一個(gè)是用戶控制貪吃蛇移動(dòng)方向的鍵盤(pán)中斷,任意中斷的到來(lái)都將改變貪吃蛇的當(dāng)前狀態(tài)。若當(dāng)前沒(méi)有中斷發(fā)生,主程序繼續(xù)判斷蛇頭是否碰壁或頭尾相撞,若是,結(jié)束游戲,否則繼續(xù)執(zhí)行程序主體循環(huán)。圖6 主程序工作流程七、結(jié)論與心得1.通電前要檢查電路是否短路。2.嚴(yán)禁在系統(tǒng)連錯(cuò)的情況下通電。3.在調(diào)試過(guò)程中發(fā)現(xiàn)有元器件燒毀,應(yīng)立即切斷主電源,認(rèn)真檢查電路找出原因,才可再次通電.4. 在調(diào)試過(guò)程中如有發(fā)現(xiàn)時(shí)間變化參數(shù)很大,應(yīng)認(rèn)真找出原因,是否原件的熱性不好。應(yīng)更換元件,電路設(shè)計(jì)是否合理。八、參考文獻(xiàn)1 李朝青,劉艷玲等.單片機(jī)原

9、理及接口技術(shù)M.北京:北京航空航天大學(xué)出版社,2013. 2邊春元等.C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用M.北京:機(jī)械工業(yè)出版社,2008.3楊將新,李軍華,劉東駿等.單片機(jī)程序設(shè)計(jì)及 應(yīng)用從基礎(chǔ)到實(shí)M. 北京:電子工業(yè)出版社,2006.4雷思孝,馮育長(zhǎng)等.單片機(jī)系統(tǒng)設(shè)計(jì)及工程應(yīng)用M.北京:電子工業(yè)出版社,2005.5白小明,徐芳等.匯編語(yǔ)言程序設(shè)計(jì)M.北京:中國(guó)鐵道出版社,2009.6于京,張景璐.51單片機(jī)C程序設(shè)計(jì)與應(yīng)用案例M.北京:中國(guó)電力出版社,2006.7王港元.電子電工實(shí)踐指導(dǎo)(第三版)M.南昌:江西科學(xué)技術(shù)出版社,2003.8閻石.數(shù)字電子技術(shù)基礎(chǔ)M.北京:高等教育出版社,2006

10、.9高吉祥,徐欣,吳帥等.基本技能訓(xùn)練與單元電路設(shè)計(jì)M.北京:電子工業(yè)出版社,2007.10孫裕晶,沙玲等.實(shí)用控制系統(tǒng)設(shè)計(jì)教程M.長(zhǎng)春:吉林大學(xué)出版社,2000.九、附錄1、電路總原理圖圖7、總原理圖2、PCB設(shè)計(jì)圖圖8、PCB圖3、電路板效果圖圖9、實(shí)物圖4、外型設(shè)計(jì)圖圖10、外觀CAD圖5、作品整體效果圖圖11、作品整體效果圖6、程序#include <reg51.h>#define uchar unsigned char#define SNAKE 20 /最大長(zhǎng)度#define TIME 50 /顯示延時(shí)時(shí)間#define SPEED 71 /速度控制sbit keyena

11、ble=P36;/方向使能sbit keyy=P02;/上下*/sbit up=P33; /downsbit down=P31;sbit right=P32;sbit left=P34;uchar xSNAKE+1;uchar ySNAKE+1; uchar time,n,i,e; /延時(shí)時(shí)間,當(dāng)前蛇長(zhǎng),通用循環(huán)變量,當(dāng)前速度char addx,addy; /位移偏移量/*延時(shí)程序*/void delay(char MS)char us,usn;while(MS!=0)usn = 0;while(usn!=0)us=0xff;while (us!=0)us-;usn-;MS-;/*判斷碰撞*/

12、bit knock()bit k;k=0;if(x1>7|y1>7)k=1; /撞墻for(i=2;i<n;i+)if(x1=xi)&(y1=yi)k=1; /撞自己return k;/*上下左右鍵位處理*/void turnkey()/ interrupt 0 using 2 if(keyenable)if(left)addy=0;if(addx!=1)addx=-1; else addx=1;if(right)addy=0;if(addx!=-1)addx=1; else addx=-1;if(up)addx=0;if(addy!=-1)addy=1; else

13、addy=-1;if(down)addx=0;if(addy!=1)addy=-1; else addy=1;/*乘方程序*/uchar mux(uchar temp) if(temp=7)return 128;if(temp=6)return 64;if(temp=5)return 32;if(temp=4)return 16;if(temp=3)return 8;if(temp=2)return 4;if(temp=1)return 2;if(temp=0)return 1;return 0;/*顯示時(shí)鐘 顯示程序*/void timer0(uchar k)while(k-)for(i=0

14、;i<SNAKE+1;i+)P2=mux(xi);P1=255-mux(yi);turnkey(); /上下左右鍵位處理delay(TIME); /顯示延遲P2=0x00;P1=0xff; /*主程序*/void main(void)e=SPEED; P0=0x00; P1=0xff; P2=0x00; P3=0x00;while(1) /if(keyenable=1)P1=0x00;P2=0xff;elseP1=0xff;P2=0x00; for(i=3;i<SNAKE+1;i+)xi=100;for(i=3;i<SNAKE+1;i+)yi=100;/初始化 x0=4;y0

15、=4; /果子 n=3; /蛇長(zhǎng) n=-1 x1=1;y1=0; /蛇頭 x2=0;y2=0; /蛇尾1 addx=0;addy=0; /位移偏移 k=1; while(1)if(keyenable)break;timer0(1); while(1) timer0(e); if(knock()e=SPEED;break; /判斷碰撞 if(x0=x1+addx)&(y0=y1+addy) /是否吃東西 n+; if(n=SNAKE+1) n=3;e=e-10; for(i=3;i<SNAKE+1;i+)xi=100; for(i=3;i<SNAKE+1;i+)yi=100; x0=xn-2; y0=yn-2; for(i=n-1;i>1;i-)xi=xi-1;yi=yi-1; /xn-1=x2;yn-1=y2; x1=x2+addx;y1=y2+addy; /移動(dòng) 電子線路綜合課

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論