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

正文內(nèi)容

畢業(yè)論文基于單片機(jī)的推箱子游戲設(shè)計(jì)(參考版)

2024-11-11 20:55本頁面
  

【正文】 若是 C 語言源程序文件“ *.c”;或匯編語言的源程序文件“ *.asm”,則點(diǎn)“文件類型”右側(cè)文本框中的倒三角,在彈出的下拉菜單中選“ c source f。在彈出的對(duì)話框中選擇剛才編輯保存好的源程序文件 ;需點(diǎn)“文件類型”右側(cè)文本框中的倒三角,在彈出的下拉菜單中選“ All files(*.*)”,然后再找到程序文件 。 新建文件后屏幕如下圖所示 在建立目標(biāo)文件之前,首先要將文件添加到組里去??傊?,該軟件是一款 集單片機(jī)和 SPICE 分析于一身的仿真軟件,功能極其強(qiáng)大,是其他任何一款軟件不能相比的。③ 目前支持的單片機(jī)類型有 : 68000 系列、 8051 系列、 AVR 系列、PIC12 系列、 PIC16 系列、 PIC18 系列、 Z80 系列、 HC11 系列以及各種外圍芯片。 該軟件的特點(diǎn):① 全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢(shì)。此外,還可以結(jié)合微控制器軟件使用動(dòng)態(tài)的鍵盤,開關(guān),按鈕, LEDs 甚至 LCD 顯示 CPU 模型 . 1. 支持許多通用的微控制器 ,如 PIC,AVR,HC11 以及 8051. 最新支持 ARM 2. 交互的裝置模型包括 : LED 和 LCD 顯示 ,RS232 終端 ,通用鍵盤 ,I2C, SPI 器件 3. 強(qiáng)大的調(diào)試工具 ,包括寄存器和存儲(chǔ)器 ,斷點(diǎn)和單步模式 4. IAR CSPY 和 Keil uVision2 等開發(fā)工具的 源層調(diào)試 5. 應(yīng)用特殊模型的 DLL 界面 提供有關(guān)元件庫的全部文件 6. 最新版支持非常豐富仿真元件共 7000 多種,還有很多第三方模型。 其功能模塊 :— 個(gè)易用而又功能強(qiáng)大的 ISIS 原理布圖工具; PROSPICE 混合模型 SPICE 仿真 。 Proteus 產(chǎn)品系列也包含了我們革命性的 VSM 技術(shù) ,用戶可以對(duì)基于微控制器的設(shè)計(jì)連同所有的周圍電子器件一起仿真。 Proteus 組合了高級(jí)原理布圖、混合模式 SPICE 仿真 ,PCB 設(shè)計(jì)以及自動(dòng)布線來實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。 Proteus 在線仿真平臺(tái)介紹 Proteus 軟件是來自英國(guó) Labcenter electronics 公司的 EDA 工具軟件, Proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它 EDA 工具一樣的原理布圖、 PCB 自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿 真是互動(dòng)的,針對(duì)微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級(jí)的實(shí)時(shí)調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,您不需要?jiǎng)e的,Proteus 為您建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境!尤其重要的是 Proteus Lite 可以完全免費(fèi),也可以花微不足道的費(fèi)用注冊(cè)達(dá)到更好的效果 。 此外, 181。這個(gè)內(nèi)核完全集成在 C51 編譯器中,使用非常簡(jiǎn)單。 ⒍ RTX51 實(shí)時(shí)操作系統(tǒng) RTX51 實(shí)時(shí)操作系統(tǒng)是針對(duì) 80C51 為控制器系列的一個(gè)多任務(wù)內(nèi)核。Vision2 調(diào)試器與多功能 EDA 軟件 Proteus 相連接,通過 181。Vision2 調(diào)試器提供了幾種在實(shí)際目標(biāo)硬件上測(cè)試程序的方法。 ⒌ 181。調(diào)試器包括一個(gè)高速模擬器,可以使用它模擬整個(gè) 80C51 系統(tǒng),包括片上外圍器件和外部硬件。Vision2 軟件調(diào)試器 181。所有的代碼和數(shù)據(jù)都被固定在具體的存儲(chǔ)器單元中。 ⒊ BL51 連接器 /定位器 BL51 鏈接器使用從庫中提取出來的目標(biāo)模塊和有編譯器、匯編器生成的目標(biāo)模塊,創(chuàng)建一個(gè)絕對(duì)地址 目標(biāo)模塊。這些庫是按規(guī)定格式排列的目標(biāo)模塊,可在以后被鏈接器所使用。 Keil A51 宏匯編器支持 80C51 及其派生系列的所有指令集。 Keil C51 編譯器遵照 ANSI C 語言標(biāo)準(zhǔn),支持 C 語言的所有標(biāo)準(zhǔn)特性。 ⒈ C51 編譯器和 A51 匯編器 由 181。Vision2 支持所有的 Keil 80C51 的工具軟件,包括 C51 編譯器、宏匯編器、鏈接器器 /定位器和目標(biāo)文件至 Hex 格式轉(zhuǎn)換器, 181。Vision2 for Windows:是一個(gè)集成開發(fā)環(huán)境,它將項(xiàng)目管理、源代碼編輯和程序調(diào)試等組合在一個(gè)功能強(qiáng)大的環(huán)境中; 2. C51 國(guó)際際準(zhǔn)化 C 交叉編譯器:從 C 源代碼產(chǎn)生可重定位的目標(biāo)模塊; 3. A51 宏匯編器:從 80C51 匯編源代碼產(chǎn)生可重定位的目標(biāo)模塊; 4. BL51 鏈接器 /定位器:組合由 C51 和 A51 產(chǎn)生的可重定位的目標(biāo)模塊,生成絕對(duì)目標(biāo)模塊; 5. LIB51 庫管理器:從目標(biāo)模塊生成連接器可以使用的庫文件; 6. OH51 目標(biāo)文件至 HEX 格式的轉(zhuǎn)換器,從絕對(duì)目標(biāo)模塊生成 Intel Hex 文件; 7. RTX51 實(shí)時(shí)操作系統(tǒng):簡(jiǎn)化了復(fù)雜的實(shí)時(shí)應(yīng)用軟件項(xiàng)目的設(shè)計(jì)。Vision2 集成開發(fā)環(huán)境是 Keil Software, Inc/Keil Elektronik GmbH開發(fā)的基于 80C51 內(nèi)核的微處理器軟件開發(fā)平臺(tái),內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立到管理、編譯、鏈接、目標(biāo)代碼的生成、軟件仿真、硬件仿真等完整的開發(fā)流程尤其是 C 編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高的水平,而且可以附加靈活的控制選項(xiàng),在開發(fā)大型項(xiàng)目時(shí)非常理想。Vision2 和在線仿真平臺(tái) Proteus SP6,接著介紹有關(guān)工程項(xiàng)目的建立及編譯生成可執(zhí)行文件( *.Hex)的具體過程。//更新人物坐標(biāo) Pass()。 _Display()。 //在上面顯示一個(gè)人物 //如果現(xiàn)在人物位置上面是箱子則更新為空白 (因?yàn)橄渥右呀?jīng)移掉了 ) if(b==3)Follow_Action[x_Coordinate1][y_Coordinate]=0。 Follow_Action[x_Coordinate2][y_Coordinate]=5。//則在上面的上面顯 示 個(gè)箱子 Follow_Action[x_Coordinate2][y_Coordinate]=3。//箱子可以移動(dòng),步數(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)在人物位置上面是空白或是叉圖形則顯示一個(gè)人物 {Steps++。//關(guān)數(shù)計(jì)數(shù)器置一,為選關(guān)做準(zhǔn)備 a=Customs[Custom1][x_Coordinate][y_Coordinate]。}}// Counts 數(shù)據(jù)歸零,時(shí)間全局量加 1, 讀時(shí)間標(biāo)志 置 1 方向控制代碼設(shè)計(jì) 游戲共有 4 個(gè)方向鍵,每一個(gè)鍵代碼編寫的原理,判斷順序及執(zhí)行何種操作都是一樣的,不同的是方向各不相同,現(xiàn)已向上推箱子為例詳細(xì)說明其執(zhí)行過程。Time++。// 定時(shí)器 1 初值設(shè)定 Counts++。}//喇叭引腳電平取反 定時(shí)器 1 中斷計(jì)時(shí)程序 void Time_1_Int() interrupt 3 using 1 {TH1=0x3c。//每次進(jìn)入中斷,發(fā)聲計(jì)數(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)存 ,并記錄人物位置所在坐標(biāo) case 1:a=0x94。//將跟蹤數(shù)組中的數(shù)據(jù)傳給動(dòng)態(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。//更新關(guān)數(shù)顯示 Dispaly()。//更新步數(shù)顯示 if(Custom==18)Custom=1。//如果 a=1 則將關(guān)數(shù)加一 (因?yàn)樗邢渥佣家淹坪?,可以過關(guān) ) Steps=Time=0。break。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。//如果 a=0 則直接跳出函數(shù) for(j=0。i8。}// 得到關(guān)數(shù)的個(gè)位數(shù)據(jù) 過關(guān)代碼設(shè) 計(jì) //當(dāng)所有箱子都推到指定位置時(shí),會(huì)調(diào)用過關(guān)子程序,代碼如下: void Pass() {unsigned char i,j,a=1。// 得到關(guān)數(shù)的十位數(shù)據(jù) Set_xy(1,19)。} //得到 步數(shù)的 個(gè)位數(shù)據(jù) 關(guān)數(shù)更新代碼設(shè)計(jì) void New_Custom() {Set_xy(1,18)。 //得到 步數(shù)的 十位數(shù)據(jù) Set_xy(7,19)。 //得到 步數(shù)的 百位數(shù)據(jù) Set_xy(7,18)。}//如果關(guān)數(shù)等于 18 則回到第一關(guān) (游 戲總共 17 關(guān) ) 步數(shù) 、關(guān)數(shù) 更新 代碼設(shè)計(jì) 步數(shù)更新代碼設(shè)計(jì) //當(dāng)按下任意一個(gè)方向鍵,且箱子能移動(dòng)時(shí), 會(huì)調(diào)用游戲步數(shù)更新子程序 void New_Step() {Set_xy(7,17)。//更新地圖顯示 Cust++。//將選得的關(guān)傳給關(guān)數(shù)寄存器 New_Custom()。//選關(guān)時(shí)將時(shí)間、步數(shù)歸零 New_Step()。 //設(shè)置個(gè)位數(shù)字顯示的位置 Write_8_Data(0x10+Time%10,0xc4)。 //設(shè)置十位數(shù)字顯示的位置 Write_8_Data(0x10+Time%100/10,0xc4)。//設(shè)置百位數(shù)字顯示的位置 Write_8_Data(0x10+Time/100,0xc4)。 {F=0。 Init_disply()。 TH1=0x3c。 TH0=64800/256。//開啟中斷總開關(guān),允許外部中斷 0、 1 中斷 TMOD=0x11。 }} 初始化代碼設(shè)計(jì) //初始化 代碼里包含定時(shí)器 0、 1 的相關(guān)參數(shù)設(shè)置,初始化開機(jī)界面顯示等。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)。 //設(shè)置寫地址 Write_Com(point)。 Write_Data2(tempamp。 else pointamp。point=0xf7y%8。 unsigned int temp。a++)//992 字節(jié) 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)。} 顯示一個(gè)漢字子程序 //x 表示顯示的行 (0~15), y 表示顯示的列 (0~19),n 表示字在表格中的位置 void Han_Zi(unsigned char x,unsigned char y,unsigned char Addr) {Set_xy(x,y)。 Write_Com(Disp_Mode)。 Write
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1