已閱讀5頁(yè),還剩51頁(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)介
0 基于 51 單片機(jī)的推箱子游戲設(shè)計(jì)方案 1、課程設(shè)計(jì)目的 程設(shè)計(jì)是與 51 單片機(jī)課程相配套的實(shí)踐教學(xué)環(huán)節(jié)。 51單片機(jī)是一門(mén)實(shí)踐性很強(qiáng)的專(zhuān)業(yè)基礎(chǔ)課,通過(guò)課程設(shè)計(jì),達(dá)到進(jìn)一步理解單片機(jī)的硬件、軟件和綜合應(yīng)用方面的知識(shí),培養(yǎng)實(shí)踐能力和綜合應(yīng)用能力,開(kāi)拓學(xué)習(xí)積極性、主動(dòng)性, 學(xué)會(huì)靈活運(yùn)用已經(jīng)學(xué)過(guò)的知識(shí),并能不斷接受新的知識(shí)。培養(yǎng)大膽發(fā)明創(chuàng)造的設(shè)計(jì)理念, 為今后就業(yè)打下良好的基 礎(chǔ)。 通過(guò)課程設(shè)計(jì),掌握以下知識(shí)和技能: 2、 課程設(shè)計(jì)題目和實(shí)現(xiàn)目標(biāo) 程設(shè)計(jì)題目: 基于 51單片機(jī)的推箱子游戲設(shè)計(jì) 設(shè)計(jì)一款在以 51 單片機(jī)為核心的硬件系統(tǒng)中運(yùn)行的推箱子游戲。 游戲一共 9關(guān),功能包括: ( 1)顯示游戲開(kāi)機(jī)界面和游戲界面; ( 2)按鍵處理包括移動(dòng)小人和移動(dòng)箱子,通過(guò)移動(dòng)上下左右鍵來(lái)控制小人的移動(dòng),通過(guò)小人推動(dòng)箱子,把箱子推到指定的目的地為過(guò) 關(guān),箱子只能推不能拉; ( 3)用于可以任意選關(guān),并能隨時(shí)退出、進(jìn)入游戲; ( 4)每一關(guān)都有時(shí)間計(jì)時(shí),顯示當(dāng)前玩家的游戲耗時(shí)。 1 3、設(shè)計(jì)方案 根據(jù)設(shè)計(jì)目標(biāo),整個(gè)系統(tǒng)框圖如下 : 圖 1 系統(tǒng)框圖 制模塊 選用 生產(chǎn)的 是 是一個(gè)低電壓,高性能位 單片機(jī) , 主要功能特性如下: 1、 兼容 2、 8大于 1000次) 7、 2個(gè)串行中斷,可編程 8、 2個(gè)外部中斷源,共 8個(gè)中斷源; 9、 2個(gè)讀寫(xiě)中斷口線, 3級(jí)加密位; 10、 低功耗空閑和掉電模式, 軟件 設(shè)置睡眠和喚醒功能; 本次課設(shè)選用 ,其引腳功能如圖 2所示,圖 3為最小系統(tǒng): 2 圖 2 引腳功能 圖 3 最小系統(tǒng) 220120示模塊 選用內(nèi)置 制控制器的 12864圖形點(diǎn)陣液晶(以下簡(jiǎn)稱(chēng) 為顯示模 塊。 示驅(qū)動(dòng)所需的參數(shù),例如:占空比系數(shù)、每行驅(qū)動(dòng)傳輸?shù)淖止?jié)數(shù)、字符的字體選擇等均由引腳電平設(shè)置。所以,液晶顯示模塊在上電時(shí) 制器就進(jìn)行初始化設(shè)置,軟件操作的主要精力就可以全部用于顯示界面的設(shè)計(jì)上。 市場(chǎng)上出售此控制器的液晶很多,本次課設(shè)選用深圳市晶日達(dá)科技有限公司生產(chǎn) 通過(guò)模擬操作時(shí)序的方法控制液晶顯 3 示。具體的接線圖如圖 4所示 圖 4 顯示模塊 于做 16個(gè)輕觸按鍵連接成 4*4矩陣鍵盤(pán),做為按鍵模塊,如圖 5所示 圖 5 4*4矩陣鍵盤(pán) 最終系統(tǒng)的硬件系統(tǒng)如下: 4 圖 6 硬件系統(tǒng) 4、 真原理圖 在 5 圖 7 硬件系統(tǒng) 圖 8 開(kāi)機(jī)畫(huà)面 6 圖 9 游戲畫(huà)面 圖 10 游戲畫(huà)面 7 圖 11 讀寫(xiě)指令 /數(shù)據(jù)時(shí)序圖 準(zhǔn)備向 行操作時(shí),首先要讀取 當(dāng)前的狀態(tài) ,只有關(guān)程序如下: /* 函數(shù)名: 功能:狀態(tài)位 /寫(xiě)指令 ), /寫(xiě)數(shù)據(jù))判斷 入口參數(shù): 返回值:狀態(tài)值 i */ i; ; ; i=10;i0; =0 ; i; /* 函數(shù)名 :功能:寫(xiě)數(shù)據(jù) 入口參數(shù): 8位數(shù)據(jù) 8 返回值: */ =0); ; P0=; /* 函數(shù)名 :功能:寫(xiě)命令,無(wú)參數(shù) 入口參數(shù): 8位命令 回值: */ =0); ; P0=; /* 函數(shù)名 :功能:寫(xiě)單參數(shù)命令 入口參數(shù): 8位數(shù)據(jù) 8位命令 回值: */ /* 函 數(shù)名 :功能:寫(xiě)雙參數(shù)命令 入口參數(shù): 8位數(shù)據(jù) 8位數(shù)據(jù) 8位命令 回值: */ 9 圖 12 為 指令集,向 入相關(guān)的指令,即可控制其顯示。 圖 12 使用液晶前必須對(duì)其進(jìn)行初始化操作,初始化的內(nèi)容包括 光標(biāo)指針設(shè)置,圖形區(qū)首地址,圖形區(qū)寬度,顯示方式設(shè)置,圖形方式顯示,標(biāo)形狀設(shè)置。相關(guān)程序如下: /* 函數(shù)名 : 功能:初始化 口參數(shù): 返回值: */ ;/初始化 (0(16,0(0,正常顯示 ,不顯示字母,只打點(diǎn) 鍵掃描程序 初始 有按鍵下時(shí),電平發(fā)生變化,開(kāi)始程序開(kāi)始掃描判斷哪個(gè)按鍵被按下,并返回按鍵號(hào),相關(guān)程序如下: /* 函數(shù)名 : 功能:按鍵掃描 入口參數(shù): 返回值:按鍵號(hào) */ 1 != 0 0 ); 0 : 0;: 1;: 2;: 3; 16; 0); ( 4) 0 := 0;:= 4;:= 8;:= 12; 11 戲元素設(shè)計(jì) 出現(xiàn)在顯示畫(huà)面中的游戲元素總共有 6種:墻壁,箱子,小人,目的地,空白,箱子在目的地。每個(gè)元素在液晶上以一個(gè)字符顯示,即 8 8的點(diǎn)陣。在字模提取軟件設(shè)計(jì)各個(gè)元素,并獲得元素的顯示碼。顯示碼的每 8位構(gòu)成字符的一行, 8就行有 8個(gè)字節(jié)。其中 1表示該點(diǎn)顯示, 0表示該點(diǎn)不顯示。 圖 13 圖 13 小人 圖 14 墻壁 圖 15 箱子 圖 16 目的地 圖 17 箱子在目的地 圖 18空白 定義一個(gè)二維數(shù)組 8,存儲(chǔ)這些點(diǎn)陣信息。其中第一個(gè)地址為元素代號(hào) 8= 0 /0 空白 0 /1人物 0 /2 磚頭 0 /3箱子 0 /4 目標(biāo) 0 /5箱子到達(dá)目標(biāo) ; 由于 字符( 8點(diǎn)),行 1點(diǎn)來(lái)定位的,所以 顯示時(shí),要先定位顯示字符位的列字符和行字符首地址,即行 *0;再定義一個(gè)循環(huán) 12 變量 i,從 0,到 7,定位該字符位的 8個(gè)點(diǎn)行,即行 *0 +i*0位到每個(gè)點(diǎn)行后,寫(xiě)入對(duì)應(yīng)的元素字節(jié),即 素代號(hào) i,就可以在液晶的指定字符位置上顯示該元素了。相關(guān)元素顯示子函數(shù)如下: /* 函數(shù)名 : 功能:指定字符位置 ,顯示元素 入口參數(shù) :列字符地址 字符地址 素代碼 回值: */ yh, i; i=0;i # # # ; /初始化 51 ; /初始化 12864 ; ; ; ) /等待確定鍵按下 6; 1!=0 /若沒(méi)有這句,有可能在按鍵掃描后執(zhí)行 1!=0就得不到按鍵值,使按鍵失效 ; 1!=0 : ; ; 28 ;/清屏 ; /顯示第一關(guān) ; ; /游戲中 . ; ; * 函數(shù)名 :x) 功能:按鍵掃描延時(shí) 入口參數(shù): x=延遲時(shí)間 返回值: */ x) i; i=0;i 4) 0 := 0;:= 4;:= 8;:= 12; * 函數(shù)名 :x) 功能:按鍵掃描延時(shí) 入口參數(shù): x=延遲時(shí)間 返回值: */ ; /* 函數(shù)名 : 功能:按鍵掃描 入口參數(shù): 返回值:按鍵號(hào) */ x); 30 /* 功能: 1、 示的相關(guān)函數(shù) 2、游戲操作函數(shù) */ #* 函數(shù)名: 功能:狀態(tài)位 /寫(xiě)指令 ), /寫(xiě)數(shù)據(jù))判斷 入口參數(shù): 返回值:狀態(tài)值 i */ i; ; ; i=10;i0; =0 ; i; /* 函數(shù)名 :功能:寫(xiě)數(shù)據(jù) 入口參數(shù): 8 位數(shù)據(jù) 回值: */ =0); ; P0=; /一定要有這一句,補(bǔ)完后面的時(shí)序! 31 /* 函數(shù)名 :功能:寫(xiě)命令,無(wú)參數(shù) 入口參數(shù): 8 位命令 回值: */ =0); ; P0=; /一定要有這一句,補(bǔ)完后面的時(shí)序! /* 函數(shù)名 :功能:寫(xiě)單參數(shù)命令 入口參數(shù): 8 位數(shù)據(jù) 8 位命令 回值: */ /* 函數(shù)名 :功能:寫(xiě)雙參數(shù)命令 入口參數(shù): 8 位數(shù)據(jù) 8 位數(shù)據(jù) 8 位命令 回值: */ /* 函數(shù)名 : 功能:初始化 口參數(shù): 返回值: */ 32 ;/初始化 (0(16,0(0,正常顯示 ,不顯示字母,只打點(diǎn) /* 函數(shù)名 : 功能:清屏 入口參數(shù): 返回值: */ i; ,0, i = 0; i 33 /*腳位定義 */ ; ; ; 23; /*令宏定義 */ /地址指針設(shè)置 #0:邏輯或 #:邏輯異或 #:邏輯與 #:文本特征 /顯示狀態(tài)設(shè)置 #: 0標(biāo)占的行數(shù): 1 行 8 行 /數(shù)據(jù)自動(dòng)讀寫(xiě)設(shè)置 /數(shù)據(jù)一次讀寫(xiě)設(shè)置 #,地址 +1 #,地址 +1 #,地址 ,地址 ,地址不變 #,地址不變 34 # /紀(jì)錄當(dāng)前小人所在位置 /記錄當(dāng)前關(guān)卡 * 函數(shù) 名 : 功能:定位 入口參數(shù) :列字符地址 x,行位地址 y 返回值: */ x, y) y * 0 x; /* 函數(shù)名 : 功能:指定字符位置 ,顯示元素 入口參數(shù) :列字符地址 字符地址 素代碼 回值: */ yh, i; i=0;i8;i+) /行地址加 +1 0i*0 i, /* 函數(shù)名 : 功能:定位字符位置 入口參數(shù) :列字符 地址 x,行字符地址 y 返回值: 35 */ x, y) y * 0 x; /* 函數(shù)名 : 功能:開(kāi)機(jī)畫(huà)面 入口參數(shù) : 返回值: */ i; ,0); i=0;i1024;i+) i, i,j; j=0;j16;j+) /第 i=0;i2;i+) +i,j); j*2+i, /數(shù)組的地址不要亂! i=0;i2;i+) 2+i,j); j*2+i, /關(guān) 36 j=0;j16;j+) i=0;i2;i+) /列式按字符尋址的,行是按位尋址的 +i,16+j); j*2+i, /用 j=0;j16;j+) i=0;i2;i+) 2+i,16+j); j*2+i, /時(shí) j=0;j16;j+) i=0;i2;i+) 4+i,32+j); j*2+i, /時(shí) /3+i,32+j); /* 功能:分解計(jì)時(shí)值的各位,并顯示在響應(yīng)的位置上 函數(shù)名 : 入口參數(shù):計(jì)時(shí)值 返回值: */ a5=0; j=0;j16;j+) / i=0;i1;i+) 37 +i,32+j); j, j=0;j16;j+) / i=0;i1;i+) 0+i,32+j); j, j=0;j16;j+) / i=0;i1;i+) 1+i,32+j); j, / j=0;j16;j+) / i=0;i1;i+) 2+i,32+j); j, / /* 函數(shù)名 : 功能:顯示游戲本關(guān)卡游戲界面 入口參數(shù) :關(guān)卡代號(hào) g 返回值: */ g) i,j; i=0;i8;i+) /行 38 j=0;j8;j+) /列 if(gij=1) j; i; ij=gij; /當(dāng)前關(guān)卡存入游戲緩沖 j,i,ij); /顯示當(dāng)前關(guān)卡 ; /* 函數(shù)名 : 功能:判斷是否通過(guò)本關(guān)卡 入口參數(shù) : 返回值: */ i,j,k=1; i = 0; i 8; i+) /行 if(k=0) j = 0; j 8; j+) /列 if(ij=4|ij=5) /循環(huán)掃描目標(biāo)位置都有箱子在,此關(guān)卡就通過(guò) if(ij=5) k=1; /此位置箱子在目標(biāo)位置上 k=0; /有目標(biāo)位置沒(méi)有箱子 39 if(k=1) /所有目標(biāo)位置都有箱子 if() 1; ; /通關(guān)后重新從第一關(guān)開(kāi)始 ; /計(jì)時(shí)清零 65536256; 65536256; ; /* 函數(shù)名 : 功能:按向上鍵的操作 入口參數(shù) : 返回值: 注釋含義: ?=:是否等與 上:本位置的上一個(gè)位置 目 : 箱子的目標(biāo)位置 成:箱子在目標(biāo)位置上 位置 箱:箱子 */ if(=0|=4) /上? =目 /成 if(=4|=5) /本,源? =目 /成 4; /本=目 ); 0; /本=空 ); 40 /上=人 /完成一次移動(dòng) 1; ); if(=3) /上? =箱 if(=0) /再上?=空白 if(=4|=5) /本 ,源? =目 /成 4; /本=目 ); /本 =空 0; ); /上=人 1; ); 3; /再上 =箱 /完成一次移動(dòng) ); if(=4) /再上?=目 if(=4|=5) /本,源? =目/成 4; /本=目 ); /本 =空 0; 41 ); 1; /上=人 ); 5; /再上 =成 ); if(=5) /上? =成 if(=0) /再上? =空 if(=4|=5) /本,源? =目 /成 4; /本 =目 ); /本 =空 0; ); /上 =人 1; ); 3; /再上 =箱 ); if(=4) /再上 ?=目 if(=4|=5) /本,源? =目 /成 42 4; /本 =目 ); /本 =空 0; ); /上 =人 1; ); 5; /再上 =成 ); ; /判斷是否完成本關(guān) /* 函數(shù)名 : 功能:按向下鍵的操作 入口參數(shù) : 返回值 : */ if(=0|=4) if ); 0; ); ; 1;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司員工離職申請(qǐng)書(shū)集合15篇
- 業(yè)務(wù)外包承攬合同擬定
- 2025年度公司股份互換免責(zé)協(xié)議模板3篇
- 磚砌體勞務(wù)班組合同
- 2024年瓜果燈項(xiàng)目可行性研究報(bào)告
- 2024年聚會(huì)帽項(xiàng)目可行性研究報(bào)告
- 公司感謝信模板集合五篇
- 大學(xué)生暑假實(shí)踐心得體會(huì)
- 《美麗人生》的觀后感心得感想
- 2024年洗衣機(jī)脫水軸項(xiàng)目可行性研究報(bào)告
- 學(xué)術(shù)不端行為治理研究
- 企業(yè)文化、戰(zhàn)略與電力能源知識(shí)參考題庫(kù)練習(xí)卷含答案(一)
- 福建南平武夷高新技術(shù)產(chǎn)業(yè)控股集團(tuán)有限公司招聘筆試沖刺題2024
- 2024年設(shè)備維修部管理制度(6篇)
- 出租車(chē)行業(yè)服務(wù)質(zhì)量提升方案
- 景區(qū)安全管理教育培訓(xùn)
- 工業(yè)氣瓶使用安全管理規(guī)定(5篇)
- 《高中體育與健康》考試復(fù)習(xí)題庫(kù)及答案
- 高空拋物安全宣傳教育課件
- 供應(yīng)鏈ESG管理策略
- 2024秋期國(guó)家開(kāi)放大學(xué)本科《納稅籌劃》一平臺(tái)在線形考(形考任務(wù)一至五)試題及答案
評(píng)論
0/150
提交評(píng)論