




已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
0 基于 51 單片機的推箱子游戲設計方案 1、課程設計目的 程設計是與 51 單片機課程相配套的實踐教學環(huán)節(jié)。 51單片機是一門實踐性很強的專業(yè)基礎課,通過課程設計,達到進一步理解單片機的硬件、軟件和綜合應用方面的知識,培養(yǎng)實踐能力和綜合應用能力,開拓學習積極性、主動性, 學會靈活運用已經(jīng)學過的知識,并能不斷接受新的知識。培養(yǎng)大膽發(fā)明創(chuàng)造的設計理念, 為今后就業(yè)打下良好的基 礎。 通過課程設計,掌握以下知識和技能: 2、 課程設計題目和實現(xiàn)目標 程設計題目: 基于 51單片機的推箱子游戲設計 設計一款在以 51 單片機為核心的硬件系統(tǒng)中運行的推箱子游戲。 游戲一共 9關,功能包括: ( 1)顯示游戲開機界面和游戲界面; ( 2)按鍵處理包括移動小人和移動箱子,通過移動上下左右鍵來控制小人的移動,通過小人推動箱子,把箱子推到指定的目的地為過 關,箱子只能推不能拉; ( 3)用于可以任意選關,并能隨時退出、進入游戲; ( 4)每一關都有時間計時,顯示當前玩家的游戲耗時。 1 3、設計方案 根據(jù)設計目標,整個系統(tǒng)框圖如下 : 圖 1 系統(tǒng)框圖 制模塊 選用 生產(chǎn)的 是 是一個低電壓,高性能位 單片機 , 主要功能特性如下: 1、 兼容 2、 8大于 1000次) 7、 2個串行中斷,可編程 8、 2個外部中斷源,共 8個中斷源; 9、 2個讀寫中斷口線, 3級加密位; 10、 低功耗空閑和掉電模式, 軟件 設置睡眠和喚醒功能; 本次課設選用 ,其引腳功能如圖 2所示,圖 3為最小系統(tǒng): 2 圖 2 引腳功能 圖 3 最小系統(tǒng) 220120示模塊 選用內置 制控制器的 12864圖形點陣液晶(以下簡稱 為顯示模 塊。 示驅動所需的參數(shù),例如:占空比系數(shù)、每行驅動傳輸?shù)淖止?jié)數(shù)、字符的字體選擇等均由引腳電平設置。所以,液晶顯示模塊在上電時 制器就進行初始化設置,軟件操作的主要精力就可以全部用于顯示界面的設計上。 市場上出售此控制器的液晶很多,本次課設選用深圳市晶日達科技有限公司生產(chǎn) 通過模擬操作時序的方法控制液晶顯 3 示。具體的接線圖如圖 4所示 圖 4 顯示模塊 于做 16個輕觸按鍵連接成 4*4矩陣鍵盤,做為按鍵模塊,如圖 5所示 圖 5 4*4矩陣鍵盤 最終系統(tǒng)的硬件系統(tǒng)如下: 4 圖 6 硬件系統(tǒng) 4、 真原理圖 在 5 圖 7 硬件系統(tǒng) 圖 8 開機畫面 6 圖 9 游戲畫面 圖 10 游戲畫面 7 圖 11 讀寫指令 /數(shù)據(jù)時序圖 準備向 行操作時,首先要讀取 當前的狀態(tài) ,只有關程序如下: /* 函數(shù)名: 功能:狀態(tài)位 /寫指令 ), /寫數(shù)據(jù))判斷 入口參數(shù): 返回值:狀態(tài)值 i */ i; ; ; i=10;i0; =0 ; i; /* 函數(shù)名 :功能:寫數(shù)據(jù) 入口參數(shù): 8位數(shù)據(jù) 8 返回值: */ =0); ; P0=; /* 函數(shù)名 :功能:寫命令,無參數(shù) 入口參數(shù): 8位命令 回值: */ =0); ; P0=; /* 函數(shù)名 :功能:寫單參數(shù)命令 入口參數(shù): 8位數(shù)據(jù) 8位命令 回值: */ /* 函 數(shù)名 :功能:寫雙參數(shù)命令 入口參數(shù): 8位數(shù)據(jù) 8位數(shù)據(jù) 8位命令 回值: */ 9 圖 12 為 指令集,向 入相關的指令,即可控制其顯示。 圖 12 使用液晶前必須對其進行初始化操作,初始化的內容包括 光標指針設置,圖形區(qū)首地址,圖形區(qū)寬度,顯示方式設置,圖形方式顯示,標形狀設置。相關程序如下: /* 函數(shù)名 : 功能:初始化 口參數(shù): 返回值: */ ;/初始化 (0(16,0(0,正常顯示 ,不顯示字母,只打點 鍵掃描程序 初始 有按鍵下時,電平發(fā)生變化,開始程序開始掃描判斷哪個按鍵被按下,并返回按鍵號,相關程序如下: /* 函數(shù)名 : 功能:按鍵掃描 入口參數(shù): 返回值:按鍵號 */ 1 != 0 0 ); 0 : 0;: 1;: 2;: 3; 16; 0); ( 4) 0 := 0;:= 4;:= 8;:= 12; 11 戲元素設計 出現(xiàn)在顯示畫面中的游戲元素總共有 6種:墻壁,箱子,小人,目的地,空白,箱子在目的地。每個元素在液晶上以一個字符顯示,即 8 8的點陣。在字模提取軟件設計各個元素,并獲得元素的顯示碼。顯示碼的每 8位構成字符的一行, 8就行有 8個字節(jié)。其中 1表示該點顯示, 0表示該點不顯示。 圖 13 圖 13 小人 圖 14 墻壁 圖 15 箱子 圖 16 目的地 圖 17 箱子在目的地 圖 18空白 定義一個二維數(shù)組 8,存儲這些點陣信息。其中第一個地址為元素代號 8= 0 /0 空白 0 /1人物 0 /2 磚頭 0 /3箱子 0 /4 目標 0 /5箱子到達目標 ; 由于 字符( 8點),行 1點來定位的,所以 顯示時,要先定位顯示字符位的列字符和行字符首地址,即行 *0;再定義一個循環(huán) 12 變量 i,從 0,到 7,定位該字符位的 8個點行,即行 *0 +i*0位到每個點行后,寫入對應的元素字節(jié),即 素代號 i,就可以在液晶的指定字符位置上顯示該元素了。相關元素顯示子函數(shù)如下: /* 函數(shù)名 : 功能:指定字符位置 ,顯示元素 入口參數(shù) :列字符地址 字符地址 素代碼 回值: */ yh, i; i=0;i # # # ; /初始化 51 ; /初始化 12864 ; ; ; ) /等待確定鍵按下 6; 1!=0 /若沒有這句,有可能在按鍵掃描后執(zhí)行 1!=0就得不到按鍵值,使按鍵失效 ; 1!=0 : ; ; 28 ;/清屏 ; /顯示第一關 ; ; /游戲中 . ; ; * 函數(shù)名 :x) 功能:按鍵掃描延時 入口參數(shù): x=延遲時間 返回值: */ x) i; i=0;i 4) 0 := 0;:= 4;:= 8;:= 12; * 函數(shù)名 :x) 功能:按鍵掃描延時 入口參數(shù): x=延遲時間 返回值: */ ; /* 函數(shù)名 : 功能:按鍵掃描 入口參數(shù): 返回值:按鍵號 */ x); 30 /* 功能: 1、 示的相關函數(shù) 2、游戲操作函數(shù) */ #* 函數(shù)名: 功能:狀態(tài)位 /寫指令 ), /寫數(shù)據(jù))判斷 入口參數(shù): 返回值:狀態(tài)值 i */ i; ; ; i=10;i0; =0 ; i; /* 函數(shù)名 :功能:寫數(shù)據(jù) 入口參數(shù): 8 位數(shù)據(jù) 回值: */ =0); ; P0=; /一定要有這一句,補完后面的時序! 31 /* 函數(shù)名 :功能:寫命令,無參數(shù) 入口參數(shù): 8 位命令 回值: */ =0); ; P0=; /一定要有這一句,補完后面的時序! /* 函數(shù)名 :功能:寫單參數(shù)命令 入口參數(shù): 8 位數(shù)據(jù) 8 位命令 回值: */ /* 函數(shù)名 :功能:寫雙參數(shù)命令 入口參數(shù): 8 位數(shù)據(jù) 8 位數(shù)據(jù) 8 位命令 回值: */ /* 函數(shù)名 : 功能:初始化 口參數(shù): 返回值: */ 32 ;/初始化 (0(16,0(0,正常顯示 ,不顯示字母,只打點 /* 函數(shù)名 : 功能:清屏 入口參數(shù): 返回值: */ i; ,0, i = 0; i 33 /*腳位定義 */ ; ; ; 23; /*令宏定義 */ /地址指針設置 #0:邏輯或 #:邏輯異或 #:邏輯與 #:文本特征 /顯示狀態(tài)設置 #: 0標占的行數(shù): 1 行 8 行 /數(shù)據(jù)自動讀寫設置 /數(shù)據(jù)一次讀寫設置 #,地址 +1 #,地址 +1 #,地址 ,地址 ,地址不變 #,地址不變 34 # /紀錄當前小人所在位置 /記錄當前關卡 * 函數(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ù)名 : 功能:開機畫面 入口參數(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, /關 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, /時 j=0;j16;j+) i=0;i2;i+) 4+i,32+j); j*2+i, /時 /3+i,32+j); /* 功能:分解計時值的各位,并顯示在響應的位置上 函數(shù)名 : 入口參數(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ù)名 : 功能:顯示游戲本關卡游戲界面 入口參數(shù) :關卡代號 g 返回值: */ g) i,j; i=0;i8;i+) /行 38 j=0;j8;j+) /列 if(gij=1) j; i; ij=gij; /當前關卡存入游戲緩沖 j,i,ij); /顯示當前關卡 ; /* 函數(shù)名 : 功能:判斷是否通過本關卡 入口參數(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)掃描目標位置都有箱子在,此關卡就通過 if(ij=5) k=1; /此位置箱子在目標位置上 k=0; /有目標位置沒有箱子 39 if(k=1) /所有目標位置都有箱子 if() 1; ; /通關后重新從第一關開始 ; /計時清零 65536256; 65536256; ; /* 函數(shù)名 : 功能:按向上鍵的操作 入口參數(shù) : 返回值: 注釋含義: ?=:是否等與 上:本位置的上一個位置 目 : 箱子的目標位置 成:箱子在目標位置上 位置 箱:箱子 */ if(=0|=4) /上? =目 /成 if(=4|=5) /本,源? =目 /成 4; /本=目 ); 0; /本=空 ); 40 /上=人 /完成一次移動 1; ); if(=3) /上? =箱 if(=0) /再上?=空白 if(=4|=5) /本 ,源? =目 /成 4; /本=目 ); /本 =空 0; ); /上=人 1; ); 3; /再上 =箱 /完成一次移動 ); 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; /再上 =成 ); ; /判斷是否完成本關 /* 函數(shù)名 : 功能:按向下鍵的操作 入口參數(shù) : 返回值 : */ if(=0|=4) if ); 0; ); ; 1;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度客運合同中承運人旅客行李損壞賠償責任標準
- 二零二五年度特色商業(yè)門面租賃合作協(xié)議
- 二零二五年社區(qū)車位使用權變更合同
- 訂購軟件系統(tǒng)服務合同
- 南方食品產(chǎn)業(yè)園區(qū)開發(fā)建設合同
- 《8和9的加、減法》(教學設計)-2024-2025學年一年級上冊數(shù)學人教版
- 1《場景歌》教學設計-2024-2025學年語文二年級上冊統(tǒng)編版
- 8《天氣與生活》教學設計-2023-2024學年科學二年級下冊青島版
- Unit11 Uncle Jack's farm(教學設計)-2023-2024學年北師大版(一起)英語四年級下冊
- 《7 展示多彩的生活》教學設計-2023-2024學年清華版(2012)信息技術一年級下冊
- GCP原則及相關法律法規(guī)課件
- 厚樸種苗質量分級DB50-T 1259-2022
- 我的家鄉(xiāng)新疆-我愛你課件
- 液化天然氣(LNG)相關的知識培訓
- 施工升降機安全管理培訓課件
- 2017華東六省一市優(yōu)質課課件連乘問題11月29日
- 部編版(統(tǒng)編)一年級語文下冊每課練習題(全冊全套)
- DB62∕T 4134-2020 高速公路服務區(qū)設計規(guī)范
- 《影視鑒賞(第二版)》課件2-0故事片引子
- 青島版科學一年級下冊《塑料》教學設計
- 專利文件撰寫殷紅梅課件
評論
0/150
提交評論