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

正文內(nèi)容

基于proteus的推箱子游戲的設(shè)計(jì)畢業(yè)論文(完整版)

  

【正文】 ........... 20 定時(shí)器 1中斷 計(jì)時(shí)程序 ............................................................................ 20 方向控制代碼設(shè)計(jì) ............................................................................................ 20 4 推箱子游戲的系統(tǒng)仿真 ............................................................................................. 21 5 建立工程項(xiàng)目流程 ............................................................................................. 22 Proteus 中原理圖的繪制及文件的加載 ................................................................ 26 開(kāi)機(jī)界面顯示 ................................................................................................... 28 游戲界面顯示 ................................................................................................... 28 仿真結(jié)果分析及解決方法 .................................................................................. 30 5 總結(jié) ........................................................................................................................... 31 參考文獻(xiàn). .................................................................................................................... 31 致謝 ............................................................................................................................... 32 6 1 推箱子游戲編譯介紹 現(xiàn)如今,游戲風(fēng)靡全球,各種游戲?qū)映霾桓F,大到網(wǎng)絡(luò)型的復(fù)雜游戲,小到手機(jī)游戲、單機(jī)游戲、智力游戲等簡(jiǎn)單游戲。在硬件電路里主要包括有源晶振部分、方向控制部分及液晶顯示部分等與單片機(jī)的接線設(shè)計(jì);軟件編程方面主要是子程序 和主程序的編寫(xiě),包括:初始化代碼、液晶驅(qū)動(dòng)代碼、方向按鍵代碼、過(guò)關(guān)判斷代碼、步數(shù)記錄代碼、時(shí)間記錄代碼、按鍵發(fā)聲代碼、關(guān)數(shù)選擇代碼及表格數(shù)據(jù)代碼等等。本系統(tǒng)是以單片機(jī)為其控制核心,以有源晶振構(gòu)成的電路作為時(shí)鐘 信號(hào), 通過(guò)方向鍵的選擇向單片機(jī)控制系統(tǒng)發(fā)出人物移動(dòng)控制命令 ,控制系統(tǒng)接收命令后做出一系列必要的判斷后,控制人物及箱子的移動(dòng)。 Sokoban。其次,它的控件也比較少只有 4 個(gè) 方向鍵和 2 個(gè)輔助的功能鍵,這些控鍵在 Proteus中用彈跳式按鍵代替即可。配置的文字,圖形和外部字 符發(fā)生器 RAM 數(shù)據(jù)能很容易控制其顯示在窗口中,可以自由移動(dòng)、分配內(nèi)存范圍。N0=1/0 光標(biāo)閃爍啟用 /禁 9 關(guān) 3 2 1 0 用 N1=1/0 光標(biāo)顯示啟用 /禁用 。一個(gè)喇叭,用于按鍵發(fā) 聲,以提示按鍵是否有效,電路圖見(jiàn)圖 4. 控件、喇叭與單片機(jī)的接線是:上移鍵接 ;左移鍵接 ;右移鍵接 11 ;下移鍵接 ;確定鍵接 ;選關(guān)鍵接 ;喇叭經(jīng)過(guò)分壓式偏置共射放大電路將信號(hào)放大再與單片機(jī) 口相連,如圖 4: P 3. 1Q12N44 0 0C122 u FR151 kR220 kR32. 7 k C222 0u FR45kC322 u FL S 1S P E A K E R 圖 4 揚(yáng)聲器放大電路 至此,游戲的硬件電路結(jié)構(gòu)及連線全部介紹完成,仿真電路圖如圖 5 所示,整個(gè)電路圖以網(wǎng)絡(luò)標(biāo)號(hào)的形式給出,避免連線過(guò)多顯得電路擁擠。//將狀態(tài)保存 return a。//為數(shù)據(jù)操作條件 Pin=Data1。} 寫(xiě)雙參數(shù)程序 // Data1/Data2 為傳入的參數(shù), Com 為傳入的指令,先 Data1 后 Data2,最后寫(xiě)指令。 Pin=Data2。} 寫(xiě)指令程序 void Write_Com(unsigned char Com) 14 {Enable()。 Write_Com(AUT_WO)。 Write_Data2(Txt_Wide,0,TXT_WID)。 Write_8_Data(Addr+2,INC_WR)。a++)//清屏 320 字節(jié) Write_8_Data(0x83,INC_WR)。 unsigned int temp。 //設(shè)置寫(xiě)地址 Write_Com(point)。Point(x0i,y0+j,n)。 }} 初始化代碼設(shè)計(jì) [6] //初始化代碼里包含定時(shí)器 0、 1的相關(guān)參數(shù)設(shè)置,初始化開(kāi)機(jī)界面顯示等。 Init_disply()。 //設(shè)置個(gè)位數(shù)字顯示的位置 Write_8_Data(0x10+Time%10,0xc4)。}//如果關(guān)數(shù)等于 18 則回 到第一關(guān) (游戲總共 17 關(guān) ) 步數(shù)、關(guān)數(shù)更新代碼設(shè)計(jì) [7] 步數(shù)更新代碼設(shè)計(jì) //當(dāng)按下任意一個(gè)方向鍵,且箱子能移動(dòng)時(shí),會(huì)調(diào)用游戲步數(shù)更新子程序 void New_Step() {Set_xy(7,17)。// 得到關(guān)數(shù)的十位數(shù)據(jù) Set_xy(1,19)。j++) //掃描 9列 //如果關(guān)卡數(shù)組表格中此位置是叉圖形或箱子和叉重合后的圖 if(Customs[Custom1][i][j]==5||Customs[Custom1][i][j]==4) //如果動(dòng)作跟蹤數(shù)組里此位置是箱子和叉重合后的圖,則將 a置 1 if(Follow_Action[i][j]==5)a=1。//更新關(guān)數(shù)顯示 Dispaly()。//將跟蹤數(shù)組中的數(shù)據(jù)傳給動(dòng)態(tài)內(nèi)存 switch(a)//根據(jù)內(nèi)存中的數(shù)據(jù)做出判斷 {case 0:a=0x80。// 如果是 2(墻壁 )則將墻壁字模的地址 84H 傳給內(nèi)存 case 3:a=0x8c。// 將空白圖形顯示出來(lái) Follow_Action[x_Coordinate][y_Coordinate]=0。}//喇叭引腳電平取反 定時(shí)器 1 中斷計(jì)時(shí)程序 void Time_1_Int() interrupt 3 using 1 {TH1=0x3c。//關(guān)數(shù)計(jì)數(shù)器置一,為選關(guān)做準(zhǔn)備 a=Customs[Custom1][x_Coordinate][y_Coordinate]。amp。 Follow_Action[x_Coordinate2][y_Coordinate]=5。 22 建立工程項(xiàng)目流程 1)建立一個(gè)新工程 單擊 Project 菜單, 在彈出的下拉菜單中選中 New Project 選項(xiàng),如下圖 2)然后選擇你要保存的路徑 ,輸入工程文件的名字 ,比如保存到 C51 目錄里 ,工程文件的名字為 C51,如下圖所示 ,然后點(diǎn)擊保存 . 3)這時(shí)會(huì)彈出一個(gè)對(duì)話框 ,要求你選擇單片機(jī)的型號(hào) ,你可以根據(jù)你使用的單片機(jī)來(lái)選擇 ,keil c51 幾乎支持所有的 51核的單片機(jī) ,我這里還是以大家用的比較多的 Atmel 的 89C51來(lái)說(shuō)明 ,如下圖所示 ,選擇 89C51之后 ,右邊欄是對(duì)這個(gè)單片機(jī)的基本的說(shuō)明 ,然后點(diǎn)擊確定 . 23 4)完成上一步驟后,屏幕如下圖所示 5)在下圖中,單擊“ File”菜單,再在下拉菜單中單擊“ New”選項(xiàng) ,如果已經(jīng)寫(xiě)好了 C文件則直接添加為文件,這一步可去掉。而在中間左邊項(xiàng)目窗口中的“ Source Group 1”前多了一個(gè)“ +”號(hào)。 開(kāi)機(jī)界面顯示 點(diǎn)擊仿真按鈕,程序調(diào)用初始化函數(shù),進(jìn)入開(kāi)機(jī)界面顯示,圖片如下: 游戲界面顯示 當(dāng)進(jìn)入開(kāi)機(jī)界面顯示后,只有確定鍵有效,其他按鍵被鎖定,當(dāng)按下確定鍵后,確定鍵失效,其他鍵鎖定解除,畫(huà)面進(jìn)入第 一關(guān)游戲界面顯示,關(guān)數(shù)、步數(shù)、 29 時(shí)間開(kāi)始記錄數(shù)據(jù),圖片如下: 第一關(guān)游戲界面 第四關(guān)游戲界面 第六關(guān)游戲界面 第八關(guān)游戲界面 第十關(guān)游戲界面 第十二關(guān)游戲界面 第十四關(guān)游戲界面 第十七關(guān)游戲界面 30 仿真結(jié)果分析及解決方法 通過(guò)以上給出的仿真波形分析可知,本設(shè)計(jì)中的各項(xiàng)功能夠很好的實(shí)現(xiàn)。這樣大大提高了程序的可靠性。其中繪制電路原理圖、編程是考驗(yàn)我的一道難題。我認(rèn)為不管做畢業(yè)設(shè)計(jì)也好,還是做其他什么樣的事也好,都要努力去做,還要用心去學(xué),更要有堅(jiān)持不懈的精神,只有這樣才能收獲到最好的果實(shí)。 UE9aQGn8xp$Ramp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3tnGK8! z89Am UE9aQGn8xp$Ramp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 ksv*3t。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2zVkumamp。高等教育出版社, 2021 22 周航慈 .單片機(jī)應(yīng)用程序設(shè)計(jì) .北京航空航天大學(xué)出版社, 23 王毅 .單片機(jī)器件應(yīng)用手冊(cè) .人民郵電出版社 ,1994 致謝 歷時(shí)三個(gè)月的畢業(yè)設(shè)計(jì)已經(jīng)告一段落。隨后畫(huà)電路圖,寫(xiě)程序,仿真都沒(méi)少讓我傷透腦筋。沒(méi)修改之前代碼長(zhǎng)度至少多出現(xiàn)在一半,但我不能說(shuō)現(xiàn)在的就是最精煉的,可能有待改進(jìn)的地方還很多。確定鍵能使界面從初始化顯示切換到游戲界面顯示,上下左右鍵控制箱子的移動(dòng)方向,如果可以移動(dòng)則移動(dòng)方塊同時(shí)跟蹤人物的位置及刷新動(dòng)態(tài)數(shù)組的內(nèi)容。通常先點(diǎn)編譯當(dāng)前文件“ Translate current file”,再建立目標(biāo)文件“ Build target”;或直接點(diǎn)重建目標(biāo)文件“ Rebuild all target files”。具體操作如下:將鼠標(biāo)箭頭移至中間左邊項(xiàng)目窗口中的“ Source Group 1”前的圖標(biāo)上,再單擊鼠標(biāo)右鍵,在彈出的菜單項(xiàng)中選擇“ Add files to Group ‘ Source Group 1’”。 //在上面顯示一個(gè)人物 //如果現(xiàn)在人物位置上面是箱子則更新為空白 (因?yàn)橄渥右呀?jīng)移掉了 ) if(b==3)Follow_Action[x_Coordinate1][y_Coordinate]=0。amp。 //現(xiàn)在人物位置上面是什么 if(b==0||b==4)//如果現(xiàn)在人物位置上面是空白或是叉圖形則顯示一個(gè)人 物 {Steps++。// 定時(shí)器 1初值設(shè)定 Counts++。// 將叉圖形顯示出來(lái) Follow_Action[x_Coordinate][y_Coordinate]=4。// 如果是 3(箱子 )則將箱子字模的地址 8cH 傳給內(nèi)存 case 4:a=0x88。//如果是 0(空白 )則將空白字模的地址 80H 傳給內(nèi)存 //如果是 1(人物 )則將人物字模的地址 94H 傳給內(nèi)存 ,并記錄人物位置所在坐標(biāo) case 1:a=0x94。 for(i=0。break。}// 得到關(guān)數(shù)的個(gè)位數(shù)據(jù) 過(guò)關(guān)代碼設(shè)計(jì) //當(dāng)所有箱子都推到指定位置時(shí),會(huì)調(diào)用過(guò)關(guān)子程序,代碼如下: void Pass() {unsigned char i,j,a=1。 //得到步數(shù)的百位數(shù)據(jù) Set_
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1