標(biāo)題: 基于ARM9的貪吃蛇游戲設(shè)計(jì) 創(chuàng)新創(chuàng)業(yè)實(shí)踐報(bào)告 [打印本頁(yè)]
作者: wanghaoyu950928 時(shí)間: 2018-11-29 12:44
標(biāo)題: 基于ARM9的貪吃蛇游戲設(shè)計(jì) 創(chuàng)新創(chuàng)業(yè)實(shí)踐報(bào)告
創(chuàng)新創(chuàng)業(yè)實(shí)踐(綜合創(chuàng)新型設(shè)計(jì))
課程論文
題目名稱: 基于ARM9的貪吃蛇游戲設(shè)計(jì)
學(xué)院名稱: 自動(dòng)化與電氣工程學(xué)院
專 業(yè): 測(cè)控技術(shù)與儀器
課程設(shè)計(jì)任務(wù)書
課程設(shè)計(jì)題目:基于ARM9的貪吃蛇游戲設(shè)計(jì)
實(shí)踐教學(xué)要求與任務(wù):
1、熟悉所確定的題目,從問(wèn)題需求、程序結(jié)構(gòu)、難點(diǎn)及關(guān)鍵技術(shù)等方面進(jìn)行分析,形成系統(tǒng)的設(shè)計(jì)方案;
2、根據(jù)方案設(shè)計(jì)硬件電路;
3、軟件編程并調(diào)試;
4、完成課程設(shè)計(jì)報(bào)告,打印程序,給出運(yùn)行結(jié)果。
工作計(jì)劃與進(jìn)度安排:
第17周(1月6日-1月10日):布置設(shè)計(jì)任務(wù),查資料,完成總體設(shè)計(jì)框架,完善設(shè)計(jì)內(nèi)容,系統(tǒng)調(diào)試,驗(yàn)收答辯。
摘 要
在電腦極大普及的今天,游戲是我們?nèi)粘I畹闹匾獖蕵?lè)方式。隨著科技的快速發(fā)展,時(shí)間的流逝,至從觀太陽(yáng)、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀(jì)錄。隨便計(jì)算機(jī)技術(shù)的發(fā)展,游戲行業(yè)越來(lái)越得到人們的關(guān)注,特別是在年輕人行列,F(xiàn)行的游戲一般是基于個(gè)人計(jì)算機(jī)的,像貪吃蛇這類小游戲在高檔掌上電腦或高檔電子消費(fèi)品,但基于小型掌上低端游戲機(jī)在市場(chǎng)上卻幾乎沒(méi)有。
本文以飛利浦公司的LPC2124芯片板為平臺(tái),在討論ARM體系結(jié)構(gòu)和游戲開(kāi)發(fā)的同時(shí),設(shè)計(jì)并實(shí)現(xiàn)了貪吃蛇游戲機(jī)的軟件仿真。
綜上所述此類貪吃蛇游戲機(jī)具有使用方便,綠色安全,低功耗、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。
目 錄
創(chuàng)新創(chuàng)業(yè)實(shí)踐(綜合創(chuàng)新型設(shè)計(jì))
課程論文
引言
1 ARM概述
2 ARM的開(kāi)發(fā)環(huán)境
2.1 Keil介紹
2.2 ADS介紹
3 系統(tǒng)的硬件設(shè)計(jì)
3.1 電路設(shè)計(jì)框圖
3.2 系統(tǒng)硬件概述
3.3 系統(tǒng)主要硬件
3.3.1 LPC2124
3.3.2 LP3228顯示屏
3.3.3 用戶操作接口
4 軟件仿真
5 系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)
5.1 游戲說(shuō)明
5.2 游戲結(jié)構(gòu)設(shè)計(jì)
5.3 游戲具體設(shè)計(jì)
5.3.1 矩陣鍵盤按鍵掃描子程序
5.3.2 矩陣鍵盤處理子程序
5.3.3 LCD顯示子程序
5.3.4 主程序流程
6 程序測(cè)試
6.1 仿真測(cè)試
6.2 程序的局限性
7 總結(jié)
參考文獻(xiàn)
附 錄
附錄一 系統(tǒng)仿真電路圖
附錄二 程序文件清單
附錄三 使用說(shuō)明書
引言基于ARM芯片的產(chǎn)品憑借其強(qiáng)大的功能、低廉的價(jià)格和體積小等優(yōu)點(diǎn),在許多領(lǐng)域得到了廣泛的應(yīng)用。而當(dāng)前在游戲開(kāi)發(fā)中,ARM并沒(méi)有充分顯示出它的這些特點(diǎn)。而彩色液晶顯示器具有功耗低、顯示信息量大、顯示效果逼真等特點(diǎn)。所以若用彩色液晶顯示器為游戲提供界面一會(huì)受到歡迎。
液晶顯示屏LCD作為一種功耗低、體積小、無(wú)輻射的顯示器件,近幾年被廣泛應(yīng)用于各式各樣的嵌入式電子產(chǎn)品中,LCD可分為段位式、字符式和點(diǎn)陣式三種,其中,段位式LCD和字符式LCD只能用于字符和數(shù)字的簡(jiǎn)單顯示,不能滿足圖形曲線和漢字顯示的要求,而點(diǎn)陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實(shí)現(xiàn)屏幕上下左右滾動(dòng)動(dòng)畫功能,分區(qū)開(kāi)窗口、反轉(zhuǎn)、閃爍等功能,用途十分廣泛,為了簡(jiǎn)化液晶顯示電路的設(shè)計(jì)和應(yīng)用,生產(chǎn)廠家通常將液晶顯示單元、顯示控制器,顯示內(nèi)存和顯示驅(qū)動(dòng)電路等裝配在一起,做成液晶顯示模塊LCD Module(LCM)。
目前,基于ARM芯片的產(chǎn)品遍布人類生活空間,在移動(dòng)娛樂(lè)工具上應(yīng)用廣泛,特別在手機(jī)游戲制作方面越來(lái)越收人們的歡迎。
1 ARM概述 ARM(Advanced RISC Machines),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。
1991 年ARM 公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM 技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即我們通常所說(shuō)的ARM 微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無(wú)線系統(tǒng)等各類產(chǎn)品市場(chǎng),基于ARM 技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC 微處理器75%以上的市場(chǎng)份額,ARM 技術(shù)正在逐步滲入到我們生活的各個(gè)方面。ARM 公司是專門從事基于RISC 技術(shù)芯片設(shè)計(jì)開(kāi)發(fā)的公司,作為知識(shí)產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計(jì)許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購(gòu)買其設(shè)計(jì)的ARM 微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐罚瑥亩纬勺约旱腁RM 微處理器芯片進(jìn)入市場(chǎng)。目前,全世界有幾十家大的半導(dǎo)體公司都使用ARM 公司的授權(quán),因此既使得ARM 技術(shù)獲得更多的第三方工具、制造、軟件的支持,又使整個(gè)系統(tǒng)成本降低,使產(chǎn)品更容易進(jìn)入市場(chǎng)被消費(fèi)者所接受,更具有競(jìng)爭(zhēng)力。
ARM公司出售芯片技術(shù)授權(quán)給半導(dǎo)體公司,ARM核因?yàn)榫哂懈咝阅、低成本、低功耗的特點(diǎn)而被廣采用。這樣在全球范圍內(nèi)圍繞著ARM技術(shù)形成了從一個(gè)芯片設(shè)計(jì)、生產(chǎn)、銷售,工具軟件設(shè)計(jì)與開(kāi)發(fā),系統(tǒng)軟件開(kāi)發(fā)以及應(yīng)用軟件開(kāi)發(fā)的龐大產(chǎn)業(yè)鏈。說(shuō)ARM代表著以ARM為核心的軟硬件開(kāi)發(fā)技術(shù)也不為過(guò)。
2 ARM的開(kāi)發(fā)環(huán)境2.1 Keil介紹 uVision3集成開(kāi)發(fā)環(huán)境(uVision3 IDE)是一個(gè)窗口化的軟件開(kāi)發(fā)平臺(tái),它集成了功能強(qiáng)大的編輯器、工程管理器以及各種編譯工具(包括C編譯器、宏編譯器、鏈接/裝載器和十六進(jìn)制文件轉(zhuǎn)換器)。uVision3包括以下功能組件,能加速嵌入式應(yīng)用程序的開(kāi)發(fā)過(guò)程:
(1)功能強(qiáng)大的源代碼編輯器;
(2)可根據(jù)開(kāi)發(fā)工具配置的設(shè)備數(shù)據(jù)庫(kù);
(3)用于創(chuàng)建和維護(hù)工程的工程管理器;
(4)集匯編、編譯和鏈接過(guò)程于一體的編譯工具;
(5)用于設(shè)置開(kāi)發(fā)工具配置的對(duì)話框;
(6)真正集成高速CPU及片上外設(shè)模擬器的源碼級(jí)調(diào)試器;
(7)高級(jí)GDI接口;可用于目標(biāo)硬件的軟件調(diào)試和KEIL ULINK仿真器的連接;
(8)用于下載應(yīng)用程序到FLASH ROM中的FLASH編程器;
(9)完善的開(kāi)發(fā)工具手冊(cè)、設(shè)備數(shù)據(jù)手冊(cè)和用戶向?qū)А?/font>
uVision3 IDE使用簡(jiǎn)單、功能強(qiáng)大,是設(shè)計(jì)者完成設(shè)計(jì)任務(wù)的重要保證。uVision3 IDE還提供了大量的例程及相關(guān)信息,有助于開(kāi)發(fā)人員快速開(kāi)發(fā)嵌入式應(yīng)用程序。
2.2 ADS介紹ADS 集成開(kāi)發(fā)環(huán)境是 ARM 公司推出的 ARM 核微控制器集成開(kāi)發(fā)工具,英文全稱為ARM Developer Suite,成熟版本為 ADS1.2。ADS1.2 支持 ARM10 之前的所有 ARM 系列微控制器,支持軟件調(diào)試及 JTAG 硬件仿真調(diào)試,支持匯編、C、C++源程序,具有編譯效率高、 系統(tǒng)庫(kù)功能強(qiáng)等特點(diǎn), 可以在 Windows98、 Windows XP、 Windows2000 以及 RedHat Linux上運(yùn)行。這里將簡(jiǎn)單介紹使用 ADS1.2 建立工程,編譯連接設(shè)置,調(diào)試操作等等。最后還介紹了基于 LPC2200 系列 ARM7 微控制器的工程模板的使用,EasyJTAG 仿真器的安裝與使用。
ADS 1.2 由 6 個(gè)部分組成,如表2.1所示。
表 2.1 ADS1.2組成表
| | |
| ARM匯編去,ARM的C、C++編譯器,Thumb的C、C++編譯器,ARM連接器 |
由CodeWarrior IDE 調(diào)用 |
| | |
| | |
| | |
| 一些底層的例程,實(shí)用程序(如fromELF) | 一些實(shí)用程序由CodeWarrior IDE 調(diào)用 |
| | |
3系統(tǒng)的硬件設(shè)計(jì)3.1 電路設(shè)計(jì)框圖系統(tǒng)以LPC2124ARM芯片作為核心控制器件,外圍只有液晶顯示和鍵盤操作,且均為串行通信器件,使得系統(tǒng)線路簡(jiǎn)單可靠性高。系統(tǒng)結(jié)構(gòu)框圖3.1所示。
圖3.1系統(tǒng)結(jié)構(gòu)框圖
3.2 系統(tǒng)硬件概述本電路由ARM芯片LPC2124為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;液晶顯示部份由LM2124液晶顯示器作為顯示,因其具有很多優(yōu)點(diǎn),被廣泛使用;按鍵部分我們使用矩陣鍵盤,因其使用方便,且便于記住,所以我們使用矩陣鍵盤而不是用獨(dú)立鍵盤。
3.3 系統(tǒng)主要硬件3.3.1 LPC2124LPC2124 是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的 16/32 位 ARM7TDMI-STM CPU 的微控制器,并帶有128/256 k字節(jié)(kB)嵌入的高速Flash存儲(chǔ)器。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用 16 位 Thumb 模式將代碼規(guī)模降低超過(guò)30%,而性能的損失卻很小。 由于LPC2124較小的 64腳封裝、極低的功耗、多個(gè) 32 位定時(shí)器、4 路 10 位ADC以及多達(dá)9個(gè)外部中斷使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問(wèn)控制和POS機(jī)。 在 64 腳的封裝中,最多可使用 46 個(gè) GPIO。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟modern以及其它各種類型的應(yīng)用。
LPC2124是64管腳封裝的,其封裝圖如圖3.3所示。
圖3.3 LPC2124封裝圖
LPC2124里面最重要的組成部分是寄存器,其部分寄存器功能如表3-1所示。
表3.1 管腳連接映射
其管腳功能選擇寄存器如表3-2和表3-3所示。
表3.2 PINSEL0管腳選擇功能
| | | | | | |
| | | | | | |
| | | | | | |
| | | SCL(  C) | | | |
| | | SDA(  C) | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
表3.3 PINSEL1管腳選擇功能
3.3.2 LP3228顯示屏采用LM3228液晶顯示,其擁有微功耗無(wú)電磁輻射,壽命長(zhǎng),價(jià)格低,接口方便等一系列顯著特點(diǎn),被廣泛應(yīng)用于各種儀器儀表,測(cè)量顯示裝置,計(jì)算機(jī)顯示終端等方面。它是以點(diǎn)陣為單位組成的液晶顯示器,內(nèi)部CMOS驅(qū)動(dòng),由日本東芝公司T6963C 控制集成電路,印制電路板和金屬支持框架所組成。LM3228液晶可以用來(lái)顯示字母,數(shù)字,漢字等,因此可以用LM3228液晶形象的模擬出貪吃蛇的形狀和它運(yùn)動(dòng)的情況。
LM3228的硬件結(jié)構(gòu)圖如圖3.3所示。
圖3.3 LM3228的硬件結(jié)構(gòu)圖
3.3.3 用戶操作接口用戶操作接口采用的是4×4矩陣鍵盤,用戶可以通過(guò)操縱鍵盤控制貪吃蛇的游動(dòng)方向,控制方向如表3-4所示:
表3.4貪吃蛇方向控制
矩陣鍵盤原理圖如圖3.5所示:
圖3.5 矩陣鍵盤原理圖
矩陣鍵盤的工作原理如下:
(1)先讀取鍵盤的狀態(tài),得到按鍵的特征編碼。
先從P1口的高四位輸出低電平,低四位輸出高電平,從P1口的低四位讀取鍵盤狀態(tài)。再?gòu)腜1口的低四位輸出低電平,高四位輸出高電平,從P1口的高四位讀取鍵盤狀態(tài)。將兩次讀取結(jié)果組合起來(lái)就可以得到當(dāng)前按鍵的特征編碼。使用上述方法我們得到16個(gè)鍵的特征編碼。
(2)根據(jù)按鍵的特征編碼,查表得到按鍵的順序編碼。
將16個(gè)鍵的特征編碼按順序排成一張表,然后用當(dāng)前讀得的特征編碼來(lái)查表,當(dāng)表中有該特征編碼時(shí),它的位置就是對(duì)應(yīng)的順序編碼。
(3)根據(jù)特征編碼與順序編碼的對(duì)應(yīng)關(guān)系就可以確定所按下的是哪一個(gè)鍵。
4 軟件仿真Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:①實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。②支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。④具有強(qiáng)大的原理圖繪制功能。該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。
本次實(shí)中設(shè)計(jì)的貪吃蛇電路,電路核心是LPC2124,P0端接液晶顯示屏,P1端接的是控制按鍵,具體仿真電路圖請(qǐng)見(jiàn)附錄一。
5 系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)5.1 游戲說(shuō)明游戲目標(biāo)是控制貪吃蛇吃掉畫面中的目標(biāo)豆,每吃掉一個(gè)目標(biāo)豆就會(huì)加分,但同時(shí)貪吃蛇的尾巴會(huì)相應(yīng)地長(zhǎng)上一截,吃得越多,尾巴越長(zhǎng)。游戲中,貪吃蛇碰上了自己的身體游戲即結(jié)束。分?jǐn)?shù)增加到一定后,貪吃蛇移動(dòng)的速度增加,從而逐步增加游戲的難度。
5.2 游戲結(jié)構(gòu)設(shè)計(jì)游戲主要分為A、B、C三個(gè)模塊。
A模塊主要用于控制游戲的開(kāi)始、暫停與結(jié)束,這些方法與其他程序相同。
B模塊主要用于完成游戲的主要功能,包括了蛇體控制,目標(biāo)豆的擺放,游戲控制,屏幕繪制等。
C模塊主要用于完成蛇體在屏幕上的定位。
5.3 游戲具體設(shè)計(jì)5.3.1 矩陣鍵盤按鍵掃描子程序用戶設(shè)計(jì)行列鍵盤接口,一般常采用3種方法讀取鍵值。分別為:中斷式,掃描法和反轉(zhuǎn)法。
(1)中斷式:在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,并由中斷處理程序通過(guò)不同的地址讀取數(shù)據(jù)線上的狀態(tài),判斷哪個(gè)按鍵被按下。
(2)掃描法:對(duì)鍵盤上的某一行送低電平,其他行為高電平,然后讀取列值。若列值中有一位是低,則表明該行與低電平對(duì)應(yīng)列的鍵被按下;否則,掃描下一行。
(3)反轉(zhuǎn)法:先將所有行掃描線輸出低電平,讀列值。若列值有一位是底,則表明有鍵按下,讀列值;然后所有列掃描線輸出低電平,再讀行值。根據(jù)讀到的值組合就可以查表得到鍵值。
在本次實(shí)訓(xùn)中我們采用的是反轉(zhuǎn)法,其硬件連接請(qǐng)見(jiàn)圖3.5。
關(guān)鍵代碼如下所示,具體可見(jiàn)源代碼。
uint8 Keyboard_Scan(void)
{
uint8 keycode = 0xff;
uint8 row;
uint8 col;
for(col=0;col<KEYBOARD_COLUMN;col++)
{
Column_Clear(col);
for(row=0;row<KEYBOARD_ROW;row++)
{
if(Row_Status(row)==0)
{
keycode = row*KEYBOARD_ROW+col;
}
}
Column_Set(col);
}
return keycode;
}
5.3.2 矩陣鍵盤處理子程序 主要是對(duì)鍵盤掃描子程序返回的鍵值進(jìn)行處理,為了程序化模塊化,處理返回的鍵值時(shí)調(diào)用了各個(gè)鍵的處理函數(shù),這里就不給出具體的處理函數(shù)了,具體可見(jiàn)源代碼。
void Key_Process(uint8 num) //num為鍵盤掃描子程序返回的鍵值
{
switch(num) {
case 1:up();break; //向上
case 4:left();break; //向左
case 5:pause();break; //暫停
case 6:right();break; //向右
case 9:down(); break; //向下
default:move();break; //默認(rèn)為自動(dòng)移動(dòng)
}
}
5.3.3 LCD顯示子程序這部分的處理是在文件LOADBIT.C中完成。
子程序的功能為顯示單色圖形及漢字顯示。實(shí)現(xiàn)的流程是先將圖形轉(zhuǎn)換為對(duì)應(yīng)的點(diǎn)陣數(shù)組,然后即可調(diào)用LM3228的設(shè)備驅(qū)動(dòng)程序中的函數(shù)輸出驅(qū)動(dòng)。
本次實(shí)訓(xùn)中采用LM3228的顯示屏,圖形液晶模塊驅(qū)動(dòng)程序要考慮它的操制器,要參考它的DataSheet來(lái)設(shè)計(jì),這部分程序具體可見(jiàn)源代碼。
5.3.4 主程序流程
主程序 在main.c中,它的程序流程如圖5.3所示。圖5.3 主程序流
6 程序測(cè)試6.1 仿真測(cè)試由于ARM芯片管腳比較多,而且很多元器件都是貼片元件,做成電路板比較困難,由于資源等客觀限制,所以在這里只進(jìn)行仿真測(cè)試。測(cè)試將粗略檢測(cè)貪吃蛇游戲的5項(xiàng)基本功能:向上,向下,向左,向右和暫停功能。這里將測(cè)試貪吃蛇向右運(yùn)動(dòng)的情況,如圖6.1所示。
圖6.1 貪吃蛇向右運(yùn)動(dòng)
測(cè)試結(jié)果:在按了矩陣鍵盤的”6”號(hào)鍵之后,貪吃蛇開(kāi)始向右運(yùn)動(dòng),測(cè)試成功。
然后再測(cè)試貪吃蛇小游戲的暫停和繼續(xù)功能,按了一次矩陣鍵盤的”5”號(hào)鍵之后,貪吃蛇停止運(yùn)動(dòng),再按一次矩陣鍵盤的”5”號(hào)鍵,貪吃蛇又繼續(xù)運(yùn)動(dòng),測(cè)試成功。
6.2 程序的局限性由于時(shí)間的局限性和個(gè)人能力的局限性,這個(gè)程序中檢測(cè)出不少局限性,如下所述。
(1)在算法實(shí)現(xiàn)上,未充分考慮貪吃蛇碰壁的情況,只是簡(jiǎn)單的讓貪吃蛇穿過(guò)墻壁,沒(méi)做其他處理。
(2)貪吃蛇在運(yùn)動(dòng)時(shí)可以改變至相反方向,即存在掉頭情況。
(3)貪吃蛇吃到自己尾巴的時(shí)候,有時(shí)會(huì)分成兩截,有待改進(jìn)。
7 總結(jié)本次實(shí)踐,我選的題目是基于LPC2124實(shí)現(xiàn)的貪吃蛇游戲機(jī)。因?yàn)檎n題貪吃蛇游戲比較難,此次實(shí)踐我多方請(qǐng)教同學(xué)。這次實(shí)踐,我們可謂歷經(jīng)重重困難。第一階段是方案確定,我們花了大量時(shí)間采集資料,整理資料,首先是確定自己的課題,最后著手設(shè)計(jì)。在第二階段將我們的原理圖設(shè)計(jì)好。然后進(jìn)入第三階段軟件的編程。但是在編寫程序時(shí),困難時(shí)刻困擾著我,可能是因?yàn)樽约浩綍r(shí)不太注重動(dòng)手能力的培養(yǎng),在實(shí)踐過(guò)程中遇到了好多問(wèn)題。我們通過(guò)虛心請(qǐng)教計(jì)算機(jī)專業(yè)的同學(xué)和老師,用自己所學(xué)的知識(shí)分析后及時(shí)改正錯(cuò)誤,通過(guò)再次不斷的修改原理圖,請(qǐng)教,再修改程序,但是在程序編寫部分我還是困難重重。當(dāng)自己著手編寫程序時(shí),通過(guò)采集到的資料進(jìn)行修改,通過(guò)不斷的運(yùn)行調(diào)試,仿真。按照自己的設(shè)計(jì)構(gòu)思,經(jīng)過(guò)一系列的測(cè)試工作,我們終于解決了貪吃蛇小游戲中發(fā)生的部分錯(cuò)誤,完善該小游戲的基本功能。在測(cè)試過(guò)程中,面對(duì)所遇到的問(wèn)題,認(rèn)真分析流程圖,根據(jù)原理圖,認(rèn)真檢查程序流程,并觀察各寄存器的變化情況, 最終能基本實(shí)現(xiàn)貪吃蛇小游戲的功能。
由于此次實(shí)踐期間不是考試期間,時(shí)間不是很緊迫,但是我們還是分秒必爭(zhēng),有時(shí)呆在科協(xié)一呆就是一天,經(jīng)常晚上凌晨?jī)扇c(diǎn)才回宿舍。這次實(shí)訓(xùn)真的是對(duì)我們最大的考驗(yàn),困難問(wèn)題的不斷出現(xiàn),讓我們應(yīng)付不過(guò)來(lái),因?yàn)槲覀兊膱?jiān)持不懈,相信失敗是成功之母,功夫不負(fù)有心人,最后終于成功了,成功的喜悅讓人舒心。
通過(guò)這次實(shí)踐,我覺(jué)得對(duì)我來(lái)說(shuō)本身就是一個(gè)提升。真理正是靠實(shí)踐而證明的,而成功就是靠自己的摸索而成功的。當(dāng)自己遇到失敗的時(shí)候,不要心灰氣餒,沉著冷靜,認(rèn)真分析原理,實(shí)在不懂虛心向老師和同學(xué)學(xué)習(xí)請(qǐng)教,終會(huì)有所收獲。
在做作品的過(guò)程中我學(xué)到了很多在課堂上學(xué)不到的東西,雖然說(shuō)這次實(shí)踐很累。但是在這期間,我感覺(jué)真的是過(guò)得和充實(shí),而且得到了許多寶貴的經(jīng)驗(yàn),相信對(duì)我以后的軟件編程和專業(yè)的學(xué)習(xí)都會(huì)有很大的幫助。
參考文獻(xiàn)[1] 崔更申,孫安青.ARM嵌入式系統(tǒng)開(kāi)發(fā)與實(shí)踐[M].北京:中國(guó)電力出版社,2008.
[2] 田澤.嵌入式開(kāi)發(fā)與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.
[3] 周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[4] 譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2002.
附 錄附錄一 系統(tǒng)仿真電路圖
附錄二 程序文件清單表1所示系統(tǒng)源程序文件清單如附。
表1 系統(tǒng)源程序文件清單
| |
| |
| |
| |
| |
| |
| |
| |
| |
| 設(shè)置前景色及背景色變量實(shí)現(xiàn)文件 |
| 顯示單色圖形及漢字顯示實(shí)現(xiàn)文件 |
| 液晶模塊驅(qū)動(dòng)程序?qū)崿F(xiàn)文件 |
| |
| 鍵盤驅(qū)動(dòng)程序?qū)崿F(xiàn)文件 |
| |
| |
| |
| 目標(biāo)板特殊的代碼實(shí)現(xiàn)文件 |
附錄三 使用說(shuō)明書貪吃蛇小游戲簡(jiǎn)單易玩,矩陣鍵盤的2 ,4,6, 8鍵分別使蛇向下,左,右,上方運(yùn)動(dòng),按5鍵為暫停/繼續(xù)游戲,在游戲過(guò)程中貪吃蛇吃到東西身體會(huì)變長(zhǎng),身體長(zhǎng)度長(zhǎng)到一定程序貪吃蛇運(yùn)動(dòng)的速度就加快,游戲的難度就增加,總的來(lái)說(shuō)這款貪吃蛇小游戲比其他的更簡(jiǎn)單更容易上手。
完整的Word格式文檔51黑下載地址:
1506020210王浩宇.doc
(1000 KB, 下載次數(shù): 59)
2018-11-29 12:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: tttkkk 時(shí)間: 2021-5-21 11:10
這個(gè)源代碼在哪呀?大神求救
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |