freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于proteus的推箱子游戲的設計畢業(yè)論文(參考版)

2025-03-02 10:17本頁面
  

【正文】 ksv*3t。 qYpEh5pDx2zVkum amp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 ksv*3tnGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 ksv*3tnGK8! z89Am UE9aQGn8xp$Ramp。 qYpEh5pDx2zVkumamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkum amp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkum amp。ksv*3t nGK8!z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 UE9aQGn8xp$Ramp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。在這段時間里,楊老師嚴謹?shù)闹螌W態(tài)度和熱忱的工作作風令我十分欽佩,他的指導使我受益非淺。高等教育出版社, 2021 22 周航慈 .單片機應用程序設計 .北京航空航天大學出版社, 23 王毅 .單片機器件應用手冊 .人民郵電出版社 ,1994 致謝 歷時三個月的畢業(yè)設計已經(jīng)告一段落。我認為不管做畢業(yè)設計也好,還是做其他什么樣的事也好,都要努力去做,還要用心去學,更要有堅持不懈的精神,只有這樣才能收獲到最好的果實。 我相信在這設計過程中的所有酸甜苦辣最終都會化為甜美的甘泉。 雖然我的這次論文作品并不是很完善,還有很多的不足之處,但是我仍可以肯定地說,這里面的每一個圖、每一個字,都是經(jīng)過我的大腦篩選出來的。隨后畫電路圖,寫程序,仿真都沒少讓我傷透腦筋。其中繪制電路原理圖、編程是考驗我的一道難題。其次用單片機邊游戲是一個不常見的課題,這方面的資料不是很多,所有的一切只有靠自己去摸索,這是一個比較漫長的過程。 31 5 總結 在這段設計的過程中,確實也遇到很多的困難。沒修改之前代碼長度至少多出現(xiàn)在一半,但我不能說現(xiàn)在的就是最精煉的,可能有待改進的地方還很多。這樣大大提高了程序的可靠性。既在實際當中由于偶然的原因鍵盤抖動而導致引腳電平為低人后瞬間又恢復為高, 或雖然只是按下按鍵一次然后放掉,結果在按鍵信號穩(wěn)定前后,竟出現(xiàn)了一些不該存在的噪聲, 這些情況下按鍵是并沒有真的被按下的 ,如果沒有去抖動程序,游戲會將其當做一次正確的按鍵操作去執(zhí)行相應功能,這樣就會引起電路的誤動作。選關鍵用于選擇游戲關數(shù),在游戲過程中這個鍵任何時候都有效,當按下選關鍵后,游戲地圖返回第一關,再次按下時游戲進入二關,這樣每按下一次鍵游戲關數(shù)加一,如果游戲到了第 17 關將自動返回第一關。確定鍵能使界面從初始化顯示切換到游戲界面顯示,上下左右鍵控制箱子的移動方向,如果可以移動則移動方塊同時跟蹤人物的位置及刷新動態(tài)數(shù)組的內(nèi)容。 開機界面顯示 點擊仿真按鈕,程序調(diào)用初始化函數(shù),進入開機界面顯示,圖片如下: 游戲界面顯示 當進入開機界面顯示后,只有確定鍵有效,其他按鍵被鎖定,當按下確定鍵后,確定鍵失效,其他鍵鎖定解除,畫面進入第 一關游戲界面顯示,關數(shù)、步數(shù)、 29 時間開始記錄數(shù)據(jù),圖片如下: 第一關游戲界面 第四關游戲界面 第六關游戲界面 第八關游戲界面 第十關游戲界面 第十二關游戲界面 第十四關游戲界面 第十七關游戲界面 30 仿真結果分析及解決方法 通過以上給出的仿真波形分析可知,本設計中的各項功能夠很好的實現(xiàn)。這個文件就是我們要下載到單片機中的程序文件。編譯或匯編的結果見如圖所示,上面提示“ 0 個錯誤、 0個報警”。通常先點編譯當前文件“ Translate current file”,再建立目標文件“ Build target”;或直接點重建目標文件“ Rebuild all target files”。而在中間左邊項目窗口中的“ Source Group 1”前多了一個“ +”號。點“ Add”按鈕,再點“ Close”按鈕。點“ Add”按鈕,再在彈出的對話框中選擇文件類型,如“ Assembly language file”;再點“ Close”按鈕。具體操作如下:將鼠標箭頭移至中間左邊項目窗口中的“ Source Group 1”前的圖標上,再單擊鼠標右鍵,在彈出的菜單項中選擇“ Add files to Group ‘ Source Group 1’”。 22 建立工程項目流程 1)建立一個新工程 單擊 Project 菜單, 在彈出的下拉菜單中選中 New Project 選項,如下圖 2)然后選擇你要保存的路徑 ,輸入工程文件的名字 ,比如保存到 C51 目錄里 ,工程文件的名字為 C51,如下圖所示 ,然后點擊保存 . 3)這時會彈出一個對話框 ,要求你選擇單片機的型號 ,你可以根據(jù)你使用的單片機來選擇 ,keil c51 幾乎支持所有的 51核的單片機 ,我這里還是以大家用的比較多的 Atmel 的 89C51來說明 ,如下圖所示 ,選擇 89C51之后 ,右邊欄是對這個單片機的基本的說明 ,然后點擊確定 . 23 4)完成上一步驟后,屏幕如下圖所示 5)在下圖中,單擊“ File”菜單,再在下拉菜單中單擊“ New”選項 ,如果已經(jīng)寫好了 C文件則直接添加為文件,這一步可去掉。//更新人物坐標 Pass()。 _Display()。 //在上面顯示一個人物 //如果現(xiàn)在人物位置上面是箱子則更新為空白 (因為箱子已經(jīng)移掉了 ) if(b==3)Follow_Action[x_Coordinate1][y_Coordinate]=0。 Follow_Action[x_Coordinate2][y_Coordinate]=5。//則在上面的上面顯示個箱子 Follow_Action[x_Coordinate2][y_Coordinate]=3。//箱子可以移動,步數(shù)加 1 New_Step()。amp。amp。//調(diào)用原來位置顯示子程序,還原人物本身位置圖形 x_Coordinate。//更新步數(shù) Han_Zi(2*(x_Coordinate1),2*y_Coordinate,0x94)。 //現(xiàn)在人物位置上面是什么 if(b==0||b==4)//如果現(xiàn)在人物位置上面是空白或是叉圖形則顯示一個人 物 {Steps++。//關數(shù)計數(shù)器置一,為選關做準備 a=Customs[Custom1][x_Coordinate][y_Coordinate]。}}// Counts 數(shù)據(jù)歸零,時間全局量加 1,讀時間標志置1 方向控制代碼設計 [8] 游戲共有 4個方向鍵,每一個鍵代碼編寫的原理,判斷順序及執(zhí)行何種操作都是一樣的,不同的是方向各不相同,現(xiàn)已向上推箱子為例詳細說明其執(zhí)行過程。Time++。// 定時器 1初值設定 Counts++。}//喇叭引腳電平取反 定時器 1 中斷計時程序 void Time_1_Int() interrupt 3 using 1 {TH1=0x3c。//每次進入中斷,發(fā)聲計數(shù)數(shù)據(jù)加 1 if(Count==150)TR0=Count=0。TL0=64800%256。// 將叉圖形顯示出來 Follow_Action[x_Coordinate][y_Coordinate]=4。// 將空白圖形顯示出來 Follow_Action[x_Coordinate][y_Coordinate]=0。}//如果是 5(箱子和叉重合 )則將地址 90H 傳給內(nèi)存 Han_Zi(2*i,2*j,a)。// 如果是 4(叉 )則將叉字模的地址 88H 傳給內(nèi)存 case 5:a=0x90。// 如果是 3(箱子 )則將箱子字模的地址 8cH 傳給內(nèi)存 case 4:a=0x88。// 如果是 2(墻壁 )則將墻壁字模的地址 84H 傳給內(nèi)存 case 3:a=0x8c。 case 2:a=0x84。y_Coordinate=j。//如果是 0(空白 )則將空白字模的地址 80H 傳給內(nèi)存 //如果是 1(人物 )則將人物字模的地址 94H 傳給內(nèi)存 ,并記錄人物位置所在坐標 case 1:a=0x94。//將跟蹤數(shù)組中的數(shù)據(jù)傳給動態(tài)內(nèi)存 switch(a)//根據(jù)內(nèi)存中的數(shù)據(jù)做出判斷 {case 0:a=0x80。j++)//掃描 9列 {Follow_Action[i][j]=Customs[Custom1][i][j]。i++)//掃描 8 行 {for(j=0。 for(i=0。//更新關數(shù)顯示 Dispaly()。//更新步數(shù)顯示 if(Custom==18)Custom=1。//如果 a=1 則將關數(shù)加一 (因為所有箱子都已推好,可以過關 ) Steps=Time=0。break。j++) //掃描 9列 //如果關卡數(shù)組表格中此位置是叉圖形或箱子和叉重合后的圖 if(Customs[Custom1][i][j]==5||Customs[Custom1][i][j]==4) //如果動作跟蹤數(shù)組里此位置是箱子和叉重合后的圖,則將 a置 1 if(Follow_Action[i][j]==5)a=1。//如果 a=0則直接跳出函數(shù) for(j=0。i8。}// 得到關數(shù)的個位數(shù)據(jù) 過關代碼設計 //當所有箱子都推到指定位置時,會調(diào)用過關子程序,代碼如下: void Pass() {unsigned char i,j,a=1。// 得到關數(shù)的十位數(shù)據(jù) Set_xy(1,19)。} //得到步數(shù)的個位數(shù)據(jù) 關數(shù)更新代碼設計 void New_Custom() {Set_xy(1,18)。 //得到步數(shù)的十位數(shù)據(jù) Set_xy(7,19)。 //得到步數(shù)的百位數(shù)據(jù) Set_xy(7,18)。}//如果關數(shù)等于 18 則回 到第一關 (游戲總共 17 關 ) 步數(shù)、關數(shù)更新代碼設計 [7] 步數(shù)更新代碼設計 //當按下任意一個方向鍵,且箱子能移動時,會調(diào)用游戲步數(shù)更新子程序 void New_Step() {Set_xy(7,17)。//更新地圖顯示 Cust++。//將選得的關傳給關數(shù)寄存器 New_Custom()。//選關時將時間、步數(shù)歸零 New_Step()。 //設置個位數(shù)字顯示的位置 Write_8_Data(0x10+Time%10,0xc4)。 //設置十位數(shù)字顯示的位置 Write_8_Data(0x10+Time%100/10,0xc4)。//設置百位數(shù)字顯示的位置 Write_8_Data(0x10+Time/100,0xc4)。 {F=0。 Init_disply()。 TH1=0x3c。 TH0=64800/256。//開啟中斷總開關,允許外部中斷 0、 1 中斷 TMOD=0x11。 }} 初始化代碼設計 [6] //初始化代碼里包含定時器 0、 1的相關參數(shù)設置,初始化開機界面顯示等。Point(x0i,y0j,n)。Point(x0+i,y0j,n)。Point(x0+i,y0+j,n)。Point(x0i,y0+j,n)。 j++。i=R。 Point(x0,y0,n)。 //設置寫地址 Write_Com(point)。 Write_Data2(tempamp。 else pointamp。point=0xf7y%8。 unsigned int temp。a++)//992 字節(jié) 16 Write_8_Data(Tab[a],INC_WR)。 for(a=0。 Set_CGRAM()。a++)//清屏 320 字節(jié) Write_8_Data(0x83,INC_WR)。//從最左上角開始 for(a=0。} 清屏程序 void Clear_LCD() {unsigned int a。 Write_8_Data(Addr+1,INC_WR)。 Write_8_Data(Addr+2,INC_WR)。} 顯示一個漢字子程序 //x 表示顯示的行 (0~15), y表示顯示的列 (0~19),n 表示字在表格中的位置 void Han_Zi(unsigned char x,unsigned char y,unsign
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1