嵌入式系統(tǒng)開(kāi)發(fā)實(shí)訓(xùn)說(shuō)明書(shū)-基于嵌入式ARM的貪吃蛇游戲_第1頁(yè)
嵌入式系統(tǒng)開(kāi)發(fā)實(shí)訓(xùn)說(shuō)明書(shū)-基于嵌入式ARM的貪吃蛇游戲_第2頁(yè)
嵌入式系統(tǒng)開(kāi)發(fā)實(shí)訓(xùn)說(shuō)明書(shū)-基于嵌入式ARM的貪吃蛇游戲_第3頁(yè)
嵌入式系統(tǒng)開(kāi)發(fā)實(shí)訓(xùn)說(shuō)明書(shū)-基于嵌入式ARM的貪吃蛇游戲_第4頁(yè)
嵌入式系統(tǒng)開(kāi)發(fā)實(shí)訓(xùn)說(shuō)明書(shū)-基于嵌入式ARM的貪吃蛇游戲_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、編號(hào): 嵌入式系統(tǒng)開(kāi)發(fā)實(shí)訓(xùn) (論文)說(shuō)明書(shū)題 目: 貪吃蛇游戲 院 (系): 專(zhuān) 業(yè): 電子信息工程 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 2010年1月13日摘 要在電腦極大普及的今天,游戲是我們?nèi)粘I畹闹匾獖蕵?lè)方式。隨著科技的快速發(fā)展,時(shí)間的流逝,至從觀太陽(yáng)、擺鐘到現(xiàn)在電子鐘,人類(lèi)不斷研究,不斷創(chuàng)新紀(jì)錄。隨便計(jì)算機(jī)技術(shù)的發(fā)展,游戲行業(yè)越來(lái)越得到人們的關(guān)注,特別是在年輕人行列。現(xiàn)行的游戲一般是基于個(gè)人計(jì)算機(jī)的,像貪吃蛇這類(lèi)小游戲在高檔掌上電腦或高檔電子消費(fèi)品,但基于小型掌上低端游戲機(jī)在市場(chǎng)上卻幾乎沒(méi)有。本文以飛利浦公司的LPC2124芯片板為平臺(tái),在討論ARM體系結(jié)構(gòu)和游戲開(kāi)發(fā)的同時(shí),設(shè)計(jì)并實(shí)

2、現(xiàn)了貪吃蛇游戲機(jī)的軟件仿真。綜上所述此類(lèi)貪吃蛇游戲機(jī)具有使用方便,綠色安全,低功耗、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。關(guān)鍵詞:ARM;低功耗;游戲;貪吃蛇;LPC2124AbstractIn the great popularity of computers today, games are important forms of entertainment in our daily lives, With the rapid development of science and technology, the passage of time, from con

3、cept to the sun, the electronic clock pendulum clock to now, human constant research, innovation record. Not the development of computer technology, games industry has been growing concern, especially among young people. The current game in general is based on the personal computer, such as Snake ga

4、me in the high-end high-end Pocket PC or consumer electronics, but based on small-scale low-end handheld game in the market is virtually non-existent. In this paper, Philips LPC2124 chip board as a platform, in discussing the ARM architecture and game development, design and realization of the Snake

5、 game simulation software. To sum up such a Snake game with easy-to-use, green safe, low-power, low cost and many other advantages, in line with the electronic instrumentation of the development trend of the market prospects are broad.Key words:ARM; Low power consumption; Game; Greedy snake; LPC2124

6、目 錄 TOC o 1-3 h z u HYPERLINK l _Toc251147053 引言 PAGEREF _Toc251147053 h 1 HYPERLINK l _Toc251147054 1 ARM概述 PAGEREF _Toc251147054 h 1 HYPERLINK l _Toc251147055 2 ARM的開(kāi)發(fā)環(huán)境 PAGEREF _Toc251147055 h 2 HYPERLINK l _Toc251147056 Keil介紹 PAGEREF _Toc251147056 h 2 HYPERLINK l _Toc251147057 ADS介紹 PAGEREF _To

7、c251147057 h 2 HYPERLINK l _Toc251147058 3 系統(tǒng)的硬件設(shè)計(jì) PAGEREF _Toc251147058 h 3 HYPERLINK l _Toc251147059 電路設(shè)計(jì)框圖 PAGEREF _Toc251147059 h 3 HYPERLINK l _Toc251147060 系統(tǒng)硬件概述 PAGEREF _Toc251147060 h 3 HYPERLINK l _Toc251147061 系統(tǒng)主要硬件 PAGEREF _Toc251147061 h 3 HYPERLINK l _Toc251147062 LPC2124 PAGEREF _Toc

8、251147062 h 3 HYPERLINK l _Toc251147063 LP3228顯示屏 PAGEREF _Toc251147063 h 6 HYPERLINK l _Toc251147064 用戶操作接口 PAGEREF _Toc251147064 h 7 HYPERLINK l _Toc251147065 4 軟件仿真 PAGEREF _Toc251147065 h 7 HYPERLINK l _Toc251147066 5 系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc251147066 h 8 HYPERLINK l _Toc251147067 游戲說(shuō)明 PAGEREF _T

9、oc251147067 h 8 HYPERLINK l _Toc251147068 游戲結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc251147068 h 8 HYPERLINK l _Toc251147069 游戲具體設(shè)計(jì) PAGEREF _Toc251147069 h 8 HYPERLINK l _Toc251147070 矩陣鍵盤(pán)按鍵掃描子程序 PAGEREF _Toc251147070 h 8 HYPERLINK l _Toc251147071 矩陣鍵盤(pán)處理子程序 PAGEREF _Toc251147071 h 9 HYPERLINK l _Toc251147072 LCD顯示子程序 PAGER

10、EF _Toc251147072 h 10 HYPERLINK l _Toc251147073 主程序流程 PAGEREF _Toc251147073 h 10 HYPERLINK l _Toc251147074 6 程序測(cè)試 PAGEREF _Toc251147074 h 11 HYPERLINK l _Toc251147075 仿真測(cè)試 PAGEREF _Toc251147075 h 11 HYPERLINK l _Toc251147076 程序的局限性 PAGEREF _Toc251147076 h 11 HYPERLINK l _Toc251147077 7 總結(jié) PAGEREF _T

11、oc251147077 h 12 HYPERLINK l _Toc251147078 謝 辭 PAGEREF _Toc251147078 h 13 HYPERLINK l _Toc251147079 參考文獻(xiàn) PAGEREF _Toc251147079 h 14 HYPERLINK l _Toc251147080 附 錄 PAGEREF _Toc251147080 h 15 HYPERLINK l _Toc251147081 附錄一 統(tǒng)仿真電路圖 PAGEREF _Toc251147081 h 15 HYPERLINK l _Toc251147082 附錄二 程序文件清單 PAGEREF _T

12、oc251147082 h 16 HYPERLINK l _Toc251147083 附錄三 使用說(shuō)明書(shū) PAGEREF _Toc251147083 h 17 引言基于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

13、只能用于字符和數(shù)字的簡(jiǎn)單顯示,不能滿足圖形曲線和漢字顯示的要求,而點(diǎn)陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實(shí)現(xiàn)屏幕上下左右滾動(dòng)動(dòng)畫(huà)功能,分區(qū)開(kāi)窗口、反轉(zhuǎn)、閃爍等功能,用途十分廣泛,為了簡(jiǎn)化液晶顯示電路的設(shè)計(jì)和應(yīng)用,生產(chǎn)廠家通常將液晶顯示單元、顯示控制器,顯示內(nèi)存和顯示驅(qū)動(dòng)電路等裝配在一起,做成液晶顯示模塊LCD Module(LCM)。目前,基于ARM芯片的產(chǎn)品遍布人類(lèi)生活空間,在移動(dòng)娛樂(lè)工具上應(yīng)用廣泛,特別在 游戲制作方面越來(lái)越收人們的歡迎。 ARM概述ARM(Advanced RISC Machines),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類(lèi)微

14、處理器的通稱(chēng),還可以認(rèn)為是一種技術(shù)的名字。1991 年ARM 公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM 技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即我們通常所說(shuō)的ARM 微處理器,已遍及工業(yè)控制、消費(fèi)類(lèi)電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無(wú)線系統(tǒng)等各類(lèi)產(chǎn)品市場(chǎng),基于ARM 技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC 微處理器75以上的市場(chǎng)份額,ARM 技術(shù)正在逐步滲入到我們生活的各個(gè)方面。ARM 公司是專(zhuān)門(mén)從事基于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)買(mǎi)其設(shè)計(jì)的ARM

15、微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM 微處理器芯片進(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)、銷(xiāo)售,工具軟件設(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ò)。 ARM的開(kāi)發(fā)環(huán)境 Keil

16、介紹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)

17、用于下載應(yīng)用程序到FLASH ROM中的FLASH編程器;(9)完善的開(kāi)發(fā)工具手冊(cè)、設(shè)備數(shù)據(jù)手冊(cè)和用戶向?qū)?。uVision3 IDE使用簡(jiǎn)單、功能強(qiáng)大,是設(shè)計(jì)者完成設(shè)計(jì)任務(wù)的重要保證。uVision3 IDE還提供了大量的例程及相關(guān)信息,有助于開(kāi)發(fā)人員快速開(kāi)發(fā)嵌入式應(yīng)用程序。ADS介紹ADS 集成開(kāi)發(fā)環(huán)境是 ARM 公司推出的 ARM 核微控制器集成開(kāi)發(fā)工具,英文全稱(chēng)為ARM Developer Suite,成熟版本為。ADS1.2 支持 ARM10 之前的所有 ARM 系列微控制器,支持軟件調(diào)試及 JTAG 硬件仿真調(diào)試,支持匯編、C、C+源程序,具有編譯效率高、 系統(tǒng)庫(kù)功能強(qiáng)等特點(diǎn), 可以

18、在 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 組成表名稱(chēng)描述使用方式代碼生產(chǎn)工具ARM匯編去,ARM的C、C+編譯器,Thumb的C、C+編譯器,ARM連接器由CodeWarrior IDE 調(diào)用集成開(kāi)發(fā)環(huán)境CodeWarrior IDE工程管理,編譯連接調(diào)試器AXD,ADW/ADU

19、,armsd仿真調(diào)試指令模擬器ARMulator由AXD調(diào)用ARM開(kāi)發(fā)包一些底層的例程,實(shí)用程序(如fromELF)一些實(shí)用程序由CodeWarrior IDE 調(diào)用ARM應(yīng)用庫(kù)C、C+函數(shù)庫(kù)等用戶程序使用系統(tǒng)的硬件設(shè)計(jì) 電路設(shè)計(jì)框圖系統(tǒng)以LPC2124ARM芯片作為核心控制器件,外圍只有液晶顯示和鍵盤(pán)操作,且均為串行通信器件,使得系統(tǒng)線路簡(jiǎn)單可靠性高。系統(tǒng)結(jié)構(gòu)框圖所示。ARMLPC212主控液晶顯示鍵盤(pán)輸入 系統(tǒng)硬件概述本電路由ARM芯片LPC2124為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;液晶顯示部份由LM2124液晶顯示器作為顯示,因其具有很多優(yōu)點(diǎn),被廣泛使用;按鍵部分

20、我們使用矩陣鍵盤(pán),因其使用方便,且便于記住,所以我們使用矩陣鍵盤(pán)而不是用獨(dú)立鍵盤(pán)。 系統(tǒng)主要硬件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è)外部中斷使它們特別適用于

21、工業(yè)控制、醫(yī)療系統(tǒng)、訪問(wèn)控制和POS機(jī)。 在 64 腳的封裝中,最多可使用 46 個(gè) GPIO。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟modern以及其它各種類(lèi)型的應(yīng)用。LPC2124是64管腳封裝的,其封裝圖如圖所示。圖3.3 LPC2124封裝圖LPC2124里面最重要的組成部分是寄存器,其部分寄存器功能如表3-1所示。表3.1 管腳連接映射名稱(chēng)描述訪問(wèn)復(fù)位值地址PINSEL0管腳選擇寄存器0讀/寫(xiě)0 x0000 00000 xE002C000PINSEL1管腳選擇寄存器讀/寫(xiě)0 x1540 00000 xE002C004PINSEL2管腳選擇寄存器

22、讀/寫(xiě)見(jiàn)表63和640 xE002C014其管腳功能選擇寄存器如表3-2和表3-3所示。表3.2 PINSEL0管腳選擇功能PINSEL0管腳名稱(chēng)00011011復(fù)位值1:0TXD(UART0)PWM1保留003:2RXD(UART0)PWM3EINT0005:4SCL(C)捕獲(TIMER0)保留007:6SDA(C)匹配(TIMER0)EINT1009:8SCK(SPI0)捕獲(TIMER0)保留0011:10MIS0(SPI0)匹配0.1(TIMER0)保留0013:12MOSI(SPI0)捕獲(TIMER0)保留0015:14SSEL(SPI0)PWM2EINT20017:16TXD(

23、UART1)PWM4保留0019:18RXD(UART1)PWM8保留0021:20RTS(UART1)捕獲(TIMER1)保留0023:22CTS(UART1)捕獲(TIMER1)保留0025:24DSR(UART1)匹配(TIMER1)保留0027:26DTR(UART1)匹配(TIMER1)保留0029:28CD(UART1)EINT1保留0031:30RI(UART1)EINT2保留00表3.3 PINSEL1管腳選擇功能PINSEL1管腳名稱(chēng)00011011復(fù)位值1:0P0.16GPIO EINT0PWM1捕獲(TIMER0)003:27GPIO 捕獲(TIMER1)PWM3匹配(T

24、IMER1)005:4P0.18GPIO捕獲(TIMER1)捕獲(TIMER0)匹配(TIMER1)007:6P0.19GPIO匹配(TIMER1)匹配(TIMER0)匹配(TIMER1)009:8GPIO 匹配(TIMER1)捕獲(TIMER0)EINT30011:10GPIOPWM5保留捕獲(TIMER1)0013:12P0.22GPIO 保留捕獲0.0(TIMER0)匹配(TIMER0)0015:14GPIO保留保留保留0017:16GPIO 保留保留保留0019:18GPIO保留保留保留0021:20保留0023:22GPIO AIN0(A/D轉(zhuǎn)換器)捕獲0.1(TIMER0)匹配0.

25、1(TIMER0)0125:24GPIO AIN1(A/D轉(zhuǎn)換器)匹配0.2(TIMER0)匹配0.2(TIMER0)0127:26P1.29GPIOAIN2(A/D轉(zhuǎn)換器)匹配0.3(TIMER0)匹配0.3(TIMER0)0129:28GPIO AIN3(A/D轉(zhuǎn)換器)EINT3捕獲0.0(TIMER0)0131:30保留00LP3228顯示屏采用LM3228液晶顯示,其擁有微功耗無(wú)電磁輻射,壽命長(zhǎng),價(jià)格低,接口方便等一系列顯著特點(diǎn),被廣泛應(yīng)用于各種儀器儀表,測(cè)量顯示裝置,計(jì)算機(jī)顯示終端等方面。它是以點(diǎn)陣為單位組成的液晶顯示器,內(nèi)部CMOS驅(qū)動(dòng),由日本東芝公司T6963C 控制集成電路,印

26、制電路板和金屬支持框架所組成。LM3228液晶可以用來(lái)顯示字母,數(shù)字,漢字等,因此可以用LM3228液晶形象的模擬出貪吃蛇的形狀和它運(yùn)動(dòng)的情況。LM3228的硬件結(jié)構(gòu)圖如圖所示。圖3.3 LM3228的硬件結(jié)構(gòu)圖用戶操作接口用戶操作接口采用的是44矩陣鍵盤(pán),用戶可以通過(guò)操縱鍵盤(pán)控制貪吃蛇的游動(dòng)方向,控制方向如表3-4所示:表3.4貪吃蛇方向控制8貪吃蛇向上運(yùn)動(dòng)2貪吃蛇向下運(yùn)動(dòng)4貪吃蛇向左運(yùn)動(dòng)6貪吃蛇向右運(yùn)動(dòng)5暫停/繼續(xù)游戲矩陣鍵盤(pán)原理圖如圖所示:圖3.5 矩陣鍵盤(pán)原理圖矩陣鍵盤(pán)的工作原理如下:(1)先讀取鍵盤(pán)的狀態(tài),得到按鍵的特征編碼。先從P1口的高四位輸出低電平,低四位輸出高電平,從P1口的

27、低四位讀取鍵盤(pán)狀態(tài)。再?gòu)腜1口的低四位輸出低電平,高四位輸出高電平,從P1口的高四位讀取鍵盤(pán)狀態(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è)鍵。 軟件仿真 Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集

28、成電路,該軟件的特點(diǎn)是:實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類(lèi)型有: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)中,也必須具有這些功能

29、;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。具有強(qiáng)大的原理圖繪制功能。該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。本次實(shí)中設(shè)計(jì)的貪吃蛇電路,電路核心是LPC2124,P0端接液晶顯示屏,P1端接的是控制按鍵,具體仿真電路圖請(qǐng)見(jiàn)附錄一。 系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn) 游戲說(shuō)明游戲目標(biāo)是控制貪吃蛇吃掉畫(huà)面中的目標(biāo)豆,每吃掉一個(gè)目標(biāo)豆就會(huì)加分,但同時(shí)貪吃蛇的尾巴會(huì)相應(yīng)地長(zhǎng)上一截,吃得越多,尾巴越長(zhǎng)。游戲中,貪吃蛇碰上了自己的身體游戲即結(jié)束。分?jǐn)?shù)增加到一定后,貪吃蛇移動(dòng)的速度增加,從而逐步增加游戲的難度。 游戲結(jié)構(gòu)設(shè)計(jì)游戲主要分為A、B、C三個(gè)模塊

30、。A模塊主要用于控制游戲的開(kāi)始、暫停與結(jié)束,這些方法與其他程序相同。B模塊主要用于完成游戲的主要功能,包括了蛇體控制,目標(biāo)豆的擺放,游戲控制,屏幕繪制等。C模塊主要用于完成蛇體在屏幕上的定位。游戲具體設(shè)計(jì)矩陣鍵盤(pán)按鍵掃描子程序用戶設(shè)計(jì)行列鍵盤(pán)接口,一般常采用3種方法讀取鍵值。分別為:中斷式,掃描法和反轉(zhuǎn)法。(1)中斷式:在鍵盤(pán)按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,并由中斷處理程序通過(guò)不同的地址讀取數(shù)據(jù)線上的狀態(tài),判斷哪個(gè)按鍵被按下。(2)掃描法:對(duì)鍵盤(pán)上的某一行送低電平,其他行為高電平,然后讀取列值。若列值中有一位是低,則表明該行與低電平對(duì)應(yīng)列的鍵被按下;否則,掃描下一行。(3)反轉(zhuǎn)法:先將所有行

31、掃描線輸出低電平,讀列值。若列值有一位是底,則表明有鍵按下,讀列值;然后所有列掃描線輸出低電平,再讀行值。根據(jù)讀到的值組合就可以查表得到鍵值。在本次實(shí)訓(xùn)中我們采用的是反轉(zhuǎn)法,其硬件連接請(qǐng)見(jiàn)圖。關(guān)鍵代碼如下所示,具體可見(jiàn)源代碼。uint8Keyboard_Scan(void)uint8 keycode = 0 xff;uint8 row;uint8 col;for(col=0;colKEYBOARD_COLUMN;col+) Column_Clear(col); for(row=0;rowKEYBOARD_ROW;row+) if(Row_Status(row)=0) keycode = row

32、*KEYBOARD_ROW+col; Column_Set(col);return keycode;矩陣鍵盤(pán)處理子程序主要是對(duì)鍵盤(pán)掃描子程序返回的鍵值進(jìn)行處理,為了程序化模塊化,處理返回的鍵值時(shí)調(diào)用了各個(gè)鍵的處理函數(shù),這里就不給出具體的處理函數(shù)了,具體可見(jiàn)源代碼。void Key_Process(uint8 num) /num為鍵盤(pán)掃描子程序返回的鍵值 switch(num) case 1:up();break; /向上case 4:left();break; /向左case 5:pause();break; /暫停case 6:right();break; /向右case 9:down();

33、 break; /向下 default:move();break; /默認(rèn)為自動(dòng)移動(dòng) 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所示。圖5.3 主程序流程圖 程序測(cè)試 仿真測(cè)試所示。圖6.1 貪吃蛇向右運(yùn)動(dòng)測(cè)試結(jié)果:在按了矩陣鍵盤(pán)的”6”號(hào)鍵之后,貪吃蛇開(kāi)始向右運(yùn)

34、動(dòng),測(cè)試成功。然后再測(cè)試貪吃蛇小游戲的暫停和繼續(xù)功能,按了一次矩陣鍵盤(pán)的”5”號(hào)鍵之后,貪吃蛇停止運(yùn)動(dòng),再按一次矩陣鍵盤(pán)的”5”號(hào)鍵,貪吃蛇又繼續(xù)運(yùn)動(dòng),測(cè)試成功。 程序的局限性由于時(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)。 總結(jié)本次實(shí)訓(xùn)的主題是基于LPC2124實(shí)現(xiàn)的貪吃蛇游戲機(jī)。因?yàn)檎n題貪吃蛇游戲比較難,此次實(shí)訓(xùn)我多方請(qǐng)教同學(xué)。這次實(shí)訓(xùn),我們可謂歷經(jīng)重重困難。第一

35、階段是方案確定,我們花了大量時(shí)間采集資料,整理資料,首先是確定自己的課題,最后著手設(shè)計(jì)。在第二階段將我們的原理圖設(shè)計(jì)好。然后進(jìn)入第三階段軟件的編程。但是在編寫(xiě)程序時(shí),困難時(shí)刻困擾著我,可能是因?yàn)樽约浩綍r(shí)不太注重動(dòng)手能力的培養(yǎng),在實(shí)訓(xùn)過(guò)程中遇到了好多問(wèn)題。我們通過(guò)虛心請(qǐng)教計(jì)算機(jī)專(zhuān)業(yè)的同學(xué)和老師,用自己所學(xué)的知識(shí)分析后及時(shí)改正錯(cuò)誤,通過(guò)再次不斷的修改原理圖,請(qǐng)教,再修改程序,但是在程序編寫(xiě)部分我還是困難重重。當(dāng)自己著手編寫(xiě)程序時(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í)訓(xùn)期間不是考試期間,時(shí)間不是很緊迫,但是我們還是分秒必爭(zhēng),有時(shí)呆在科協(xié)一呆就是一天,經(jīng)常晚上凌晨?jī)扇c(diǎn)才回宿舍。這

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論