


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、廣東工業(yè)大學(xué)華立學(xué)院課程設(shè)計(jì)(論文)課程名稱微機(jī)原理與單片機(jī)技術(shù)綜合設(shè)計(jì)與實(shí)踐題目名稱貪吃蛇游戲機(jī)學(xué)生系部機(jī)電工程學(xué)部專業(yè)班級(jí)09電氣3班學(xué)號(hào)12030903039學(xué)生姓名指導(dǎo)教師王贊2012年06月5日廣東工業(yè)大學(xué)華立學(xué)院課程設(shè)計(jì)(論文)任務(wù)書題目名稱貪吃蛇游戲機(jī)學(xué)系學(xué)部機(jī)電工程學(xué)部專業(yè)班級(jí)09電氣3班姓 名12030903039學(xué)號(hào)一、課程設(shè)計(jì)(論文)的內(nèi)容設(shè)計(jì)一款貪吃蛇游戲機(jī)。主要功能有:(1) 進(jìn)行經(jīng)典的貪吃蛇游戲;(2) 顯示玩家當(dāng)前關(guān)卡;(3) 記錄玩家分?jǐn)?shù);(4) 游戲暫停,重新開(kāi)始;(5 )上下顛倒畫面,以適應(yīng)習(xí)慣左手或右手操作的玩家。二、課程設(shè)計(jì)(論文)的要求與數(shù)據(jù)(1 )方
2、案論證;(2 )系統(tǒng)原理圖或各功能模塊的硬件電路原理框圖;(3) 主程序流程圖;(4) 系統(tǒng)調(diào)試與分析;(5) 源程序清單。三、課程設(shè)計(jì)(論文)應(yīng)完成的工作(1) 完成方案論證;(2) 完成器件選型;(3) 給出硬件電路原理圖;(4) 給出程序流程圖;(5) 完成源程序設(shè)計(jì)及調(diào)試;(6) 完成課程設(shè)計(jì)報(bào)告的撰寫。四、課程設(shè)計(jì)(論文)進(jìn)程安排序號(hào)設(shè)計(jì)(論文)各階段內(nèi)容地點(diǎn)起止日期1選擇課題,明確設(shè)計(jì)要求,查閱資料校內(nèi)5.262方條論證、系統(tǒng)總體設(shè)計(jì)校內(nèi)6.073硬件電路原理圖設(shè)計(jì)校內(nèi)6.074程序流程圖設(shè)計(jì)、源程序的編制及調(diào)試校內(nèi)6.07-6.105系統(tǒng)調(diào)試及分析校內(nèi)6.106課程設(shè)計(jì)報(bào)告的撰寫
3、校內(nèi)6.10五、應(yīng)收隼的資料及主要參考文獻(xiàn)1 孫育才-MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用M.東南大學(xué)出版社,2004.6發(fā)岀任勢(shì)書日期:2012年05月19日 指導(dǎo)教師簽名:計(jì)劃完成日期:2012年06月5日 教學(xué)單位責(zé)任人簽章:目錄1系統(tǒng)分析12系統(tǒng)設(shè)計(jì)22.1系統(tǒng)硬件設(shè)計(jì)2系統(tǒng)硬件接線圖2單片機(jī)引腳接線表2液晶屏引腳功能3微動(dòng)開(kāi)關(guān)功能42.2系統(tǒng)軟件設(shè)計(jì)5221系統(tǒng)MAIN程序設(shè)計(jì)5222系統(tǒng)SNAKE程序設(shè)計(jì)6223系統(tǒng)KEY程序設(shè)計(jì)72.3.4 MAIN 源程序72.3.5 SNAKE 源程序82.3.6 KEY 源程序133元件清單14參考文獻(xiàn)151系統(tǒng)分析本文設(shè)計(jì)一款貪吃蛇游戲
4、機(jī),以STC 12C5A60S2芯片為控制核心,24MHz晶振,并 采用一塊2. 4英寸,以ILI9325為控制器,分辨率為320*240的TFT彩色顯示屏,保證 了顯示效果細(xì)膩流暢。山于顯示屏自帶的背光,使得畫面在黑暗中也能清晰地展現(xiàn)出來(lái)。 作品基于一塊7cm*9cm的玻璃纖維萬(wàn)能版制作,體積重量與一般智能手機(jī)相當(dāng),并集成 了獨(dú)立移動(dòng)電源,便于攜帶。游戲機(jī)外觀如圖1.1所示。左邊為顯示屏,右邊是總開(kāi)關(guān)和游戲鍵盤,屏幕下方焊 接有單片機(jī),晶振以及兩塊3V的CR2032紐扣電池。作品主要功能有:(6)進(jìn)行經(jīng)典的貪吃蛇游戲(7)顯示玩家當(dāng)前關(guān)卡(8)記錄玩家分?jǐn)?shù)(9)游戲暫停,重新開(kāi)始(10)上下
5、顛倒畫面,以適應(yīng)習(xí)慣左手或右手操作的玩家圖1.1貪吃蛇游戲機(jī)外觀圖2系統(tǒng)設(shè)計(jì)2.1硬件設(shè)計(jì)本系統(tǒng)的硬件主要111 12C5A60S2單片機(jī)、24MHz晶振.2.4英寸TFT顯示屏、若干 微動(dòng)開(kāi)關(guān)組成。單片機(jī)的作用是運(yùn)行游戲程序,驅(qū)動(dòng)顯示屏,識(shí)別微動(dòng)開(kāi)關(guān);顯示屏的 作用是顯示游戲畫面、微動(dòng)開(kāi)關(guān)的作用是控制蛇的運(yùn)動(dòng)方向等設(shè)置。系統(tǒng)硬件接線圖CPLETTXTA11 XTAL2POO-ADO POLAD】 PO2'AD2 PO3AD3 POSADA POS-ADS L FO&d 卜 PO7-AD7X3TEAVPPPl Q-T2kestPI 1T2EXALEPl .2 PLSPLXPJO
6、IlxDPl.5PJ:TxDPl.6Pl.7P3 3OCT1P54T0P55T1P20A8 P: bACP361VRPJ7U25'P22A10 P23 All P2AA12 P25A1S P26AUP27A1532X40 THC3 RESET圖21系統(tǒng)硬件接線圖單片機(jī)引腳分配單片機(jī)引腳對(duì)應(yīng)元件引腳P1.0微動(dòng)開(kāi)關(guān)REVERSEP1.7微動(dòng)開(kāi)關(guān) PAUSE/RESTARTP3.1微動(dòng)開(kāi)關(guān)DOWNP3.5微動(dòng)開(kāi)關(guān)RIGHTP3.6微動(dòng)開(kāi)關(guān)UPP3.7微動(dòng)開(kāi)關(guān)LEFTxtal224MHz晶振XTALi24MHz晶振VssGNDVer+5V DCP0.0TFT DBOP0.1TFT DB1P0
7、.2TFT DB2P0.3TFT DB3P0.4TFT DB4P0.5TFT DB5P0.6TFTDB6P0.7TFT DB7P2.6TFT RDP2.5TFT WRP2.4TFT RSP2.2TFT CSP2TFT RESET2. 1.3TFT液晶屏引腳功能符號(hào)功能說(shuō)明CS-選通RESET復(fù)位DB7髙4位三態(tài)、雙向數(shù)據(jù)總線4位DB6髙4位三態(tài)、雙向數(shù)據(jù)總線4位DB5高4位三態(tài)、雙向數(shù)據(jù)總線4位DB4髙4位三態(tài)、雙向數(shù)據(jù)總線4位DB3低4位三態(tài)、雙向數(shù)據(jù)總線4位DB2低4位三態(tài)、雙向數(shù)據(jù)總線4位DBl低4位三態(tài)、雙向數(shù)據(jù)總線4位DBO低4位三態(tài)、雙向數(shù)據(jù)總線4位RD通過(guò)讀數(shù)據(jù)寄存器從GRAM讀
8、取18位數(shù)據(jù)WR寫RS為寄存器選擇,奇電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器NC懸空VCC+5V DCGNDGND微動(dòng)開(kāi)關(guān)功能本系統(tǒng)硬件選用了 6個(gè)微動(dòng)開(kāi)關(guān),分布在顯示屏的同一側(cè),其作用分別為:微動(dòng)開(kāi)關(guān)名稱功能說(shuō)明UP令蛇向上走DOWN令蛇向下走LEFT令蛇向左走RIGHT令蛇向右走PAUSE/RESTART游戲暫停/重新開(kāi)始REVERSE顛倒屏幕單片機(jī)識(shí)別微動(dòng)開(kāi)關(guān)動(dòng)作的原理是判斷引腳置零與否。把所有微動(dòng)開(kāi)關(guān)常開(kāi)引腳的 一端接地,另一端接單片機(jī)相應(yīng)的引腳,當(dāng)微動(dòng)開(kāi)關(guān)觸點(diǎn)閉合,則相當(dāng)于把單片機(jī)相應(yīng) 的引腳接地,輸入了 “0”信號(hào),于是單片機(jī)能識(shí)別到該微動(dòng)開(kāi)關(guān)閉合,在程序運(yùn)行上 作出預(yù)先
9、設(shè)定好的改變。2. 2軟件設(shè)計(jì)本系統(tǒng)的軟件系統(tǒng)主要可分為MAIN, KEY, SNAKE程序三大模塊。2.2. 1系統(tǒng)MAIN程序設(shè)計(jì)主程序的任務(wù)是對(duì)系統(tǒng)進(jìn)行初始化,清屏,運(yùn)行SNAKE和KEY程序。程序框圖如圖2. 2示。圖2. 2主程序流程圖2. 2. 2系統(tǒng)SNAKE程序設(shè)計(jì)SNAKE程序是本系統(tǒng)的核心程序,此程序的正常運(yùn)行與否直接影響到游戲的顯示和 操作效果。其作用為:(1)繪制游戲界面(2)顯示死亡界面(3)顯示過(guò)關(guān)界面(4)控制蛇的運(yùn)動(dòng)(5)判斷蛇是否碰壁(6)判斷蛇是否咬到自己(7)判斷蛇是否吃到豆程序框圖如圖2. 3所示。圖2. 3 SNAKE程序流程圖2. 2. 3系統(tǒng)KEY
10、程序設(shè)計(jì)KEY程序是本系統(tǒng)唯一的玩家操控程序,通過(guò)識(shí)別玩家對(duì)六個(gè)獨(dú)立開(kāi)關(guān)的操作,控制游戲里蛇的走向等。程序框圖如圖24示。圖2. 4 KEY程序流程圖源程序 include HSTC12C5A60S2.hM include HKEY_SWEERHM include ” SNAKE, h” include H9325tp.hH main()ILI9325Jnitial();CLR_Screen(OXFFFF):Init_SNAKE();P3=OXFF:P1=OXFF;while(l)Run_SNAKE();Key();2. 3.5 SNAKE 源程序 include HSTC12C5A6OS2.
11、hMinclude <KEY_SWEEP.H> #includeH9325tp.hMinclude ”SNAKE.h”#define uchar unsigned char struct(uchar Y;uchar Yes;Food; 食物結(jié)構(gòu)體#definc SNAKE_Max_Long 3structuchar X S N A KE_Max_Long :uchar YSNAKE_Max_Long;uchar Long;uchar Life;uchar Score;uchar Level; idata Snake;uchar idata Key_V_temp=O; extern
12、unsigned char xdata Kcy_flag;void Delay_l mS(unsigned int n)unsigned int xdata i;unsigned char xdata j;for(i=0;i<n;i+)for(j=0;j<120;j +);void Init_timeO (void)EA=1;/ET1=1;TMODI=0x20;TL 1=0X00;TR1=1;void Trun_On_Point (uchar x.uint y.uchar color)Bar(2*(x+2),(2*(y+2),(2*(x+4),(2*(y+4),color);voi
13、d Trun_Off_Point (uchar x,uint y)Bar(2*(x+2),(2*(y+2),(2*(x+4),(2*(y+4),0xBE5F);void Init_SNAKE(void)(uchar xdata i;Init_timeO();CLR_Screen(0xBE5F);Rectangle(&81,231,2700x8a);繪制一個(gè)矩形框.0-127Rectangle(7,7-1,232,271,0x8a);/繪制一個(gè)矩形框,0-127Rectangle(6,6-1,233,272,0x8a);/繪制一個(gè)矩形框,0-127LCD_PutString(50,275
14、/SCORE,0x00ff0xBE5F);LCD_PutString( 150.275JLEVEL”.0x00ff0xBE5F);LCDShow_uCharNumber( 156,290,Snake. Level,0x00ff,0xBE5F);Snake.Long=16;Snake.Life=O;Snake.Level=0;Food.Yes=l;Key_Value=O;Kcy_V_tcmp=O;for(i=0;i<Snake.Long;i+)Snake.Xi=i+6;Snake.Yi=6;)for(i=0;i<Snake.Long;i+)Trun_On_Point(Snake.X(
15、i,Snake.Yi,Oxa8);void Display_dead(void)LCD_PutString(80.80/GAME OVEROxOOft;OxBE5F);while(Key_Value!=Key_Enter)Key();Init_SNAKE();void Display_Pass(void)Snake.Level+:LCD_PutString(68.80/You are*0xcc8 &0xBE5F):LCD_PutString(74J00/WIN!,0xcc88.0xBE5F);while(Key-Value!=Key_Enter)Key();Init_SNAKE();v
16、oid Run_SNAKE(void)uchar xdata i=0;if( Key_Value=Key_Right&&Key_Vjemp!=Key_Left)ll(Key_Value=Key_Left&&Kcy_V_temp= =Key_Right)Trun_OfLPoint(Snake.X0,Snake.YOJ);for(i=0;i<Snake.Long 1 ;i+)Snake.Xi=Snake.Xi+l:Snake.Yi=Snake.Yi+l;Snake.XSnake.Long-l=Snake.XSnake.Long-2+l;Snake.YSnake
17、.Long-l=Snake.YSnake.Long-2+0;for(i=0;i<Snake.Long;i+)Trun_On_Point(Snake.Xi,Snake.Yi,Oxaa);Kcy_V_temp=Kcy_Right;)if(Key_flag)if(Key_Value=Key_Left&&Key-Vjemp!=Key_Right)ll(Key_Value=Key_Right&&Kcy_V_tcmp=Key_Left)Trun_Off_Point(Snake.X0,Snake.Y0J);for(i=0;i<Snake.Long 1 ;i+)Sn
18、ake.Xi=Snake.Xi+l;Snake.Yi=Snake.Yi+l;Snake.XSnake.Long-l=Snake.XSnakc.Long-2-l;Snake.YSnake.Long-l=Snake.YSnake.Long-2+0;for(i=0;i<Snake.Long;i+)Trun_On_Point(Snake.Xi,Snake.Yi,Oxaa);Key_V_temp=Key_Left;if( Key_Value=Key_Up&&Kcy_Vcmp!=Kcy_Down)ll( Kcy_Valuc=Kcy_Down&&Key_V_tem p=
19、Kcy_Up)Trun_Off_Point(Snake.X0,Snake.Y0);for(i=0;i<Snake.Long-1 ;i+)Snake.Xi=Snake.Xi+l:Snake.Yi=Snake.Yi+l;Snake.XSnake.Long-l=Snake.XSnake.Long-2+0;Snake.YSnake.Long-l=Snake.YSnakc.Long-2-l;for(i=0;i<Snake.Long;i+)Trun_On_Point(Snake.Xi,Snake.Yi,Oxaa);Kcy_V_tcmp=Kcy_Up;if( Key_Value=Key_Down
20、&&Kcy_V_tcmp!=Kcy_Up)ll( Key_Value=Key_Up&&Key_Vjemp= =Kcy_Down)Trun_OfLPoint(Snake.X0,Snake.Y0);for(i=0;i<Snake.Long 1 ;i+)Snake.Xi=Snake.Xi+l:Snake.Yi=Snake.Yi+l;Snake.XSnake.Long-l=Snake.XSnakc.Long-2+0;Snake. YSnake.Long-l =Snake.YSnake.Long-2+1;for(i=0;i<Snake.Long;i+)Trun
21、_On_Point(Snake.Xi,Snake.Yi,Oxaa);Kcy_V_tcmp=Kcy_Down;IISnake.YSnake.Long-l<=2)Snake.Life=l;for(i=Snake.Long-2:i>0;i-)if(Snake.Xi=Snake.XSnake.Long-1 &&Snake. Yi=Snake. YSnake.Long-1 )Snake.Life=l;if(Snake.Life=l) Display_dcad();Display_Pass();if(Snake.XSnake.Long-1 -1 <=Food.X &
22、;&Snake.XSnake.Long-l +1 >=Food.X&&/Trun_Off_Poim( Food XFood Y);Snake.Long+;Snake.XSnake.Long-l=Food.X;Snake.YSnake.Long-l=Food.Y;Snake.Score+=5;LCDShow_uCharNumber(56,290,Snake.Score,0x00ff.0xBE5F):Food.Yes=l;)if(Food.Yes=0)if(Food.Yes=l)while(l)Food.X=(TL 1 +60)»2);Food. Y=(TL
23、 1 +85)»2);for(i=0;i<Snake.Long;i+) if(Food.X=Snake.Xi)&&(Food.X=Snake.Yi) break;)if(i=Snake.Long)Food.Yes=0;break:)Delay_lmS(3OO-Snake.LeveI*2OO);2. 3. 6 KEY源程序void Key (void)if(P3!=0XFF) II (P1!=OXFF)Delay(lO);if(P3!=0XFF)if(K_UP=0) Key_Value= 1:Key.flag =1; if(K_DOWM=0) Kcy_Valuc=2;Kcy_flag =1: if(K_LEFT=O) Key_
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年搪瓷洗衣機(jī)脫水桶行業(yè)深度研究分析報(bào)告
- 復(fù)合地基承載力檢測(cè)方案
- 2025年全自動(dòng)地?zé)岷銐汗┧O(shè)備合作協(xié)議書
- 贖回合同范本
- 巨菌草購(gòu)銷合同范本
- 基于AR技術(shù)的歷史文化街區(qū)文旅交互體驗(yàn)設(shè)計(jì)研究
- 間隙強(qiáng)化近球形鈦粉制備及其SLM工藝適配性研究
- 秋季中醫(yī)教育傳承與創(chuàng)新
- 疫病防控從教育視角看法律責(zé)任與案例
- 分包瓦工貼磚合同范本
- 重慶市2024-205學(xué)年秋高二(上)期末考試歷史試卷(含答案)康德卷
- 設(shè)備維修績(jī)效考核方案
- 2025年職業(yè)衛(wèi)生工作計(jì)劃
- 做賬實(shí)操-農(nóng)貿(mào)市場(chǎng)的賬務(wù)處理示例
- 余華《活著》解讀課件
- 關(guān)于納粹德國(guó)元首希特勒的歷史資料課件
- 護(hù)理帶教老師述職報(bào)告
- 《中國(guó)居民膳食指南》課件
- 銀行柜面業(yè)務(wù)操作流程手冊(cè)
- 燒烤配方出售合同范例
- 婦科手術(shù)麻醉
評(píng)論
0/150
提交評(píng)論