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

正文內(nèi)容

基于proteus的推箱子游戲的設(shè)計(jì)畢業(yè)論文(已改無(wú)錯(cuò)字)

2023-04-10 10:17:40 本頁(yè)面
  

【正文】 四象限打點(diǎn) j=0。 }} 初始化代碼設(shè)計(jì) [6] //初始化代碼里包含定時(shí)器 0、 1的相關(guān)參數(shù)設(shè)置,初始化開(kāi)機(jī)界面顯示等。 EA=ET0=ET1=1。//開(kāi)啟中斷總開(kāi)關(guān),允許外部中斷 0、 1 中斷 TMOD=0x11。//將定時(shí)器 0、 1都設(shè)為定時(shí)模式且工作在方式一。 TH0=64800/256。//定時(shí)器 0 初始值裝載,用于按鍵發(fā)聲 17 TL0=64800%256。 TH1=0x3c。// 定時(shí)器 1 初始值裝載,每 25ms 中斷一次 TL1=0xb0。 Init_disply()。//調(diào)用開(kāi)機(jī)界面顯示子函數(shù),包含了開(kāi)機(jī)界面的所有內(nèi)容 游戲時(shí)間代碼設(shè)計(jì) if(F) //當(dāng)程序檢測(cè)到讀時(shí)間標(biāo)志位 F=1(由定時(shí)器 1控制)時(shí)會(huì)刷新一次時(shí)間。 {F=0。//為下一次做準(zhǔn)備 Set_xy(13,17)。//設(shè)置百位數(shù)字顯示的位置 Write_8_Data(0x10+Time/100,0xc4)。//得到時(shí)間的百位數(shù)據(jù) Set_xy(13,18)。 //設(shè)置十位數(shù)字顯示的位置 Write_8_Data(0x10+Time%100/10,0xc4)。//得到時(shí)間的十為數(shù)據(jù) Set_xy(13,19)。 //設(shè)置個(gè)位數(shù)字顯示的位置 Write_8_Data(0x10+Time%10,0xc4)。}//得到時(shí)間的個(gè)位數(shù)據(jù) 游戲選關(guān)代碼設(shè)計(jì) //當(dāng)按下選關(guān)按鍵后,主程序調(diào)用選關(guān)函數(shù),程序代碼如下: void Choice_Customs() {Time=Steps=0。//選關(guān)時(shí)將時(shí)間、步數(shù)歸零 New_Step()。//更新步數(shù)顯示 Custom=Cust。//將選得的關(guān)傳給關(guān)數(shù)寄存器 New_Custom()。//更新關(guān)數(shù)顯示 Dispaly()。//更新地圖顯示 Cust++。//沒(méi)按下一次鍵鍵關(guān)數(shù)加一 if(Cust==18)Cust=1。}//如果關(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)。 //設(shè)置百位數(shù)字顯示的位置 Write_8_Data(0x10+Steps/100,0xc4)。 //得到步數(shù)的百位數(shù)據(jù) Set_xy(7,18)。 //設(shè)置十位數(shù)字顯示的位置 18 Write_8_Data(0x10+Steps%100/10,0xc4)。 //得到步數(shù)的十位數(shù)據(jù) Set_xy(7,19)。 //設(shè)置個(gè)位數(shù)字顯示的位置 Write_8_Data(0x10+Steps%10,0xc4)。} //得到步數(shù)的個(gè)位數(shù)據(jù) 關(guān)數(shù)更新代碼設(shè)計(jì) void New_Custom() {Set_xy(1,18)。// 設(shè)置十位數(shù)字顯示的位置 Write_8_Data(0x10+Custom/10,0xc4)。// 得到關(guān)數(shù)的十位數(shù)據(jù) Set_xy(1,19)。// 設(shè)置個(gè)位數(shù)字顯示的位置 Write_8_Data(0x10+Custom%10,0xc4)。}// 得到關(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。//內(nèi)存空間分配 for(i=0。i8。i++)//掃描 8 行 {if(!a)break。//如果 a=0則直接跳出函數(shù) for(j=0。j9。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。 //如果動(dòng)作跟蹤數(shù)組里此位置不是箱子和叉重合后的圖,則將 a 置 0,并退出 else {a=0。break。}} if(a){Custom++。//如果 a=1 則將關(guān)數(shù)加一 (因?yàn)樗邢渥佣家淹坪?,可以過(guò)關(guān) ) Steps=Time=0。//過(guò)關(guān)時(shí)將時(shí)間、步數(shù)歸零 New_Step()。//更新步數(shù)顯示 if(Custom==18)Custom=1。//如果關(guān)數(shù)等于 18 則回到第一關(guān) (游戲總共 17 關(guān) ) New_Custom()。//更新關(guān)數(shù)顯示 Dispaly()。}}//更新地圖顯示 圖形顯示子程序 圖形顯示子程序包括地圖顯示程序和原來(lái)位置顯示子程序兩個(gè) 19 地圖顯示子程序 //在調(diào)用過(guò)關(guān)函數(shù)或選關(guān)函數(shù)時(shí) ,會(huì)調(diào)用到顯示子函數(shù),功能是刷新地圖 void Dispaly() {unsigned char i,j,a。 for(i=0。i8。i++)//掃描 8 行 {for(j=0。j9。j++)//掃描 9列 {Follow_Action[i][j]=Customs[Custom1][i][j]。將關(guān)卡數(shù)組中的數(shù)據(jù)傳給跟蹤數(shù)組 a=Follow_Action[i][j]。//將跟蹤數(shù)組中的數(shù)據(jù)傳給動(dòng)態(tài)內(nèi)存 switch(a)//根據(jù)內(nèi)存中的數(shù)據(jù)做出判斷 {case 0:a=0x80。break。//如果是 0(空白 )則將空白字模的地址 80H 傳給內(nèi)存 //如果是 1(人物 )則將人物字模的地址 94H 傳給內(nèi)存 ,并記錄人物位置所在坐標(biāo) case 1:a=0x94。x_Coordinate=i。y_Coordinate=j。break。 case 2:a=0x84。break。// 如果是 2(墻壁 )則將墻壁字模的地址 84H 傳給內(nèi)存 case 3:a=0x8c。break。// 如果是 3(箱子 )則將箱子字模的地址 8cH 傳給內(nèi)存 case 4:a=0x88。break。// 如果是 4(叉 )則將叉字模的地址 88H 傳給內(nèi)存 case 5:a=0x90。break。}//如果是 5(箱子和叉重合 )則將地址 90H 傳給內(nèi)存 Han_Zi(2*i,2*j,a)。}}}//調(diào)用寫漢字程序,將圖形顯示出來(lái) 原來(lái)位置顯示子程序 //此程序顯示 當(dāng)人物移動(dòng)后,人物本身位置所要顯示的圖形 void _Display() {if(a==0||a==3||a==1) //如果原來(lái)人物這個(gè)位置是空白或是箱子則顯示一個(gè)空白 {Han_Zi(2*x_Coordinate,2*y_Coordinate,0x80)。// 將空白圖形顯示出來(lái) Follow_Action[x_Coordinate][y_Coordinate]=0。}//更新跟蹤數(shù)組中的內(nèi)容 //如果人物本身這里是一個(gè)叉圖形或是箱子或叉重合后的圖則顯示一個(gè)叉 if(a==4||a==5) {Han_Zi(2*x_Coordinate,2*y_Coordinate,0x88)。// 將叉圖形顯示出來(lái) Follow_Action[x_Coordinate][y_Coordinate]=4。}}// 更新跟蹤數(shù)組中的內(nèi)容 中斷代碼設(shè)計(jì) 中斷代碼設(shè)計(jì)包括定時(shí)器 0 和 1 兩段,定時(shí)器 0為中斷發(fā)聲代碼,定時(shí)器 1 20 為中斷計(jì)時(shí)代碼,代碼如下: 定時(shí)器 0 中斷發(fā)聲程序 void Time_0_Int() interrupt 1 using 0 {TH0=64800/256。TL0=64800%256。//定時(shí) 器 0初值設(shè)定 Count++。//每次進(jìn)入中斷,發(fā)聲計(jì)數(shù)數(shù)據(jù)加 1 if(Count==150)TR0=Count=0。//發(fā)聲 100ms 后 Count 中數(shù)據(jù)歸零,并關(guān)定時(shí)器 Speaker=~Speaker。}//喇叭引腳電平取反 定時(shí)器 1 中斷計(jì)時(shí)程序 void Time_1_Int() interrupt 3 using 1 {TH1=0x3c。TL1=0xb0。// 定時(shí)器 1初值設(shè)定 Counts++。//每次進(jìn)入中斷,計(jì)時(shí)計(jì)數(shù)數(shù)據(jù)加 1 if(Counts==40)//如果 1秒中到 {Counts=0。Time++。F=1。}}// Counts 數(shù)據(jù)歸零,時(shí)間全局量加 1,讀時(shí)間標(biāo)志置1 方向控制代碼設(shè)計(jì) [8] 游戲共有 4個(gè)方向鍵,每一個(gè)鍵代碼編寫的原理,判斷順序及執(zhí)行何種操作都是一樣的,不同的是方向各不相同,現(xiàn)已向上推箱子為例詳細(xì)說(shuō)明其執(zhí)行過(guò)程。 void On_Push()//向上推子函數(shù) {Cust=1。//關(guān)數(shù)計(jì)數(shù)器置一,為選關(guān)做準(zhǔn)備 a=Customs[Custom1][x_Coordinate][y_Coordinate]。//原來(lái)人物這個(gè)位置是什么 b=Follow_Action[x_Coordinate1][y_Coordinate]。 //現(xiàn)在人物位置上面是什么 if(b==0||b==4)//如果現(xiàn)在人物位置上面是空白或是叉圖形則顯示一個(gè)人 物 {Steps++。//箱子可以移動(dòng),步數(shù)加 1 New_Step()。//更新步數(shù) Han_Zi(2*(x_Coordinate1),2*y_Coordinate,0x94)。//在上面顯示人物 _Display()。//調(diào)用原來(lái)位置顯示子程序,還原人物本身位置圖形 x_Coordinate。}//更新人物坐標(biāo) if(b==3||b==5)//如果現(xiàn)在人物位置上面是箱子或是箱子和叉重合的圖形則還 21 得判 //斷人物上面的上面是什么圖形 ,如果人物上面的上面不是箱子、墻壁和箱子和叉 //重合后的圖形則可以移動(dòng) {if(Follow_Action[x_Coordinate2][y_Coordinate]!=2amp。amp。Follow_Action[x_Coor dinate2][y_Coordinate]!=3amp。amp。Follow_Action[x_Coordinate2][y_Coordinate]!=5) {Steps++。//箱子可以移動(dòng),步數(shù)加 1 New_Step()。//更新步數(shù) //如果現(xiàn)在人物位置上面的上面是空白 if(Follow_Action[x_Coordinate2][y_Coordinate]==0) {Han_Zi(2*(x_Coordinate2),2*y_Coordinate,0x8c)。//則在上面的上面顯示個(gè)箱子 Follow_Action[x_Coordinate2][y_Coordinate]=3。}//更新箱子的位置 //如果現(xiàn)在人物位置上面的上面是叉 else if(Follow_Action[x_Coordinate2][y_Coordinate]==4) {//則在上面的上面顯示一個(gè)箱子和叉重合后的圖 Han_Zi(2*(x_Coordinate2),2*y_Coordinate,0x90)。 Follow_Action[x_Coordinate2][y_Coordinate]=5。 }//更新箱子和叉重合的位置 Han_Zi(2*(x_Coordinate1),2*y_Coordinate,0x94)。 //在上面顯示一個(gè)人物 //如果現(xiàn)在人物位置上面是箱子則更新為空白 (因?yàn)橄渥右呀?jīng)移掉了 ) if(b==3)Follow_Action[x_Coordinate1][y_Coordinate]=0。 //如果現(xiàn)在人物位置上面是箱子和叉重合的圖則更新為叉 (因?yàn)橄渥右?經(jīng)移掉了 ) if(b==5)Follow_Action[x_Coordinate1][y_Coordinate]=4。 _Display()。//調(diào)用原來(lái)位置顯示子程序,顯示人物本身位置所要顯示的圖形 x_Coordinate。//更新人物坐標(biāo) Pass()。}}}//調(diào)用過(guò)關(guān)子程序,判斷是否過(guò)關(guān) 4 推箱子游戲的系統(tǒng)仿真 [9,10,11,12] 在仿真前先介紹有關(guān)工程項(xiàng)目的建立及編譯生成可執(zhí)行文件( *.Hex)的具體過(guò)程。 22 建立工程項(xiàng)目流程 1)建立一個(gè)新工程 單擊 Project 菜單, 在彈出的下拉菜單中選中 New Project 選項(xiàng),如下圖 2)然后選擇你要保存的路徑 ,輸入工程文件的名字 ,比如保存到 C51 目錄里 ,工程
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1