wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標(biāo)題: 基于ARM9的貪吃蛇游戲設(shè)計(jì) 創(chuàng)新創(chuàng)業(yè)實(shí)踐報(bào)告 [打印本頁]

作者: 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、熟悉所確定的題目,從問題需求、程序結(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畹闹匾獖蕵贩绞健kS著科技的快速發(fā)展,時(shí)間的流逝,至從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀(jì)錄。隨便計(jì)算機(jī)技術(shù)的發(fā)展,游戲行業(yè)越來越得到人們的關(guān)注,特別是在年輕人行列。現(xiàn)行的游戲一般是基于個(gè)人計(jì)算機(jī)的,像貪吃蛇這類小游戲在高檔掌上電腦或高檔電子消費(fèi)品,但基于小型掌上低端游戲機(jī)在市場(chǎng)上卻幾乎沒有。
本文以飛利浦公司的LPC2124芯片板為平臺(tái),在討論ARM體系結(jié)構(gòu)和游戲開發(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的開發(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              游戲說明
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)仿真電路圖
附錄二 程序文件清單
附錄三 使用說明書

引言
基于ARM芯片的產(chǎn)品憑借其強(qiáng)大的功能、低廉的價(jià)格和體積小等優(yōu)點(diǎn),在許多領(lǐng)域得到了廣泛的應(yīng)用。而當(dāng)前在游戲開發(fā)中,ARM并沒有充分顯示出它的這些特點(diǎn)。而彩色液晶顯示器具有功耗低、顯示信息量大、顯示效果逼真等特點(diǎn)。所以若用彩色液晶顯示器為游戲提供界面一會(huì)受到歡迎。
液晶顯示屏LCD作為一種功耗低、體積小、無輻射的顯示器件,近幾年被廣泛應(yīng)用于各式各樣的嵌入式電子產(chǎn)品中,LCD可分為段位式、字符式和點(diǎn)陣式三種,其中,段位式LCD和字符式LCD只能用于字符和數(shù)字的簡單顯示,不能滿足圖形曲線和漢字顯示的要求,而點(diǎn)陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實(shí)現(xiàn)屏幕上下左右滾動(dòng)動(dòng)畫功能,分區(qū)開窗口、反轉(zhuǎn)、閃爍等功能,用途十分廣泛,為了簡化液晶顯示電路的設(shè)計(jì)和應(yīng)用,生產(chǎn)廠家通常將液晶顯示單元、顯示控制器,顯示內(nèi)存和顯示驅(qū)動(dòng)電路等裝配在一起,做成液晶顯示模塊LCD Module(LCM)。
目前,基于ARM芯片的產(chǎn)品遍布人類生活空間,在移動(dòng)娛樂工具上應(yīng)用廣泛,特別在手機(jī)游戲制作方面越來越收人們的歡迎。
1  ARM概述
              ARM(Advanced RISC Machines),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。
1991 年ARM 公司成立于英國劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。目前,采用ARM 技術(shù)知識(shí)產(chǎn)權(quán)(IP)核的微處理器,即我們通常所說的ARM 微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場(chǎng),基于ARM 技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC 微處理器75%以上的市場(chǎng)份額,ARM 技術(shù)正在逐步滲入到我們生活的各個(gè)方面。ARM 公司是專門從事基于RISC 技術(shù)芯片設(shè)計(jì)開發(fā)的公司,作為知識(shí)產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計(jì)許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(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)榫哂懈咝阅堋⒌统杀尽⒌凸牡奶攸c(diǎn)而被廣采用。這樣在全球范圍內(nèi)圍繞著ARM技術(shù)形成了從一個(gè)芯片設(shè)計(jì)、生產(chǎn)、銷售,工具軟件設(shè)計(jì)與開發(fā),系統(tǒng)軟件開發(fā)以及應(yīng)用軟件開發(fā)的龐大產(chǎn)業(yè)鏈。說ARM代表著以ARM為核心的軟硬件開發(fā)技術(shù)也不為過。
2 ARM的開發(fā)環(huán)境2.1    Keil介紹
              uVision3集成開發(fā)環(huán)境(uVision3 IDE)是一個(gè)窗口化的軟件開發(fā)平臺(tái),它集成了功能強(qiáng)大的編輯器、工程管理器以及各種編譯工具(包括C編譯器、宏編譯器、鏈接/裝載器和十六進(jìn)制文件轉(zhuǎn)換器)。uVision3包括以下功能組件,能加速嵌入式應(yīng)用程序的開發(fā)過程:
              (1)功能強(qiáng)大的源代碼編輯器;
              (2)可根據(jù)開發(fā)工具配置的設(shè)備數(shù)據(jù)庫;
              (3)用于創(chuàng)建和維護(hù)工程的工程管理器;
              (4)集匯編、編譯和鏈接過程于一體的編譯工具;
              (5)用于設(shè)置開發(fā)工具配置的對(duì)話框;
              (6)真正集成高速CPU及片上外設(shè)模擬器的源碼級(jí)調(diào)試器;
              (7)高級(jí)GDI接口;可用于目標(biāo)硬件的軟件調(diào)試和KEIL ULINK仿真器的連接;
              (8)用于下載應(yīng)用程序到FLASH ROM中的FLASH編程器;
              (9)完善的開發(fā)工具手冊(cè)、設(shè)備數(shù)據(jù)手冊(cè)和用戶向?qū)А?/font>
uVision3 IDE使用簡單、功能強(qiáng)大,是設(shè)計(jì)者完成設(shè)計(jì)任務(wù)的重要保證。uVision3 IDE還提供了大量的例程及相關(guān)信息,有助于開發(fā)人員快速開發(fā)嵌入式應(yīng)用程序。
2.2    ADS介紹
ADS 集成開發(fā)環(huán)境是 ARM 公司推出的 ARM 核微控制器集成開發(fā)工具,英文全稱為ARM Developer Suite,成熟版本為 ADS1.2。ADS1.2 支持 ARM10 之前的所有 ARM 系列微控制器,支持軟件調(diào)試及 JTAG 硬件仿真調(diào)試,支持匯編、C、C++源程序,具有編譯效率高、 系統(tǒng)庫功能強(qiáng)等特點(diǎn), 可以在 Windows98、 Windows XP、 Windows2000 以及 RedHat Linux上運(yùn)行。這里將簡單介紹使用 ADS1.2 建立工程,編譯連接設(shè)置,調(diào)試操作等等。最后還介紹了基于 LPC2200 系列 ARM7 微控制器的工程模板的使用,EasyJTAG 仿真器的安裝與使用。
ADS 1.2 由 6 個(gè)部分組成,如表2.1所示。
表 2.1 ADS1.2組成表
名稱
描述
使用方式

代碼生產(chǎn)工具
ARM匯編去,ARM的C、C++編譯器,Thumb的C、C++編譯器,ARM連接器

由CodeWarrior IDE 調(diào)用
集成開發(fā)環(huán)境
CodeWarrior IDE
工程管理,編譯連接
調(diào)試器
AXD,ADW/ADU,armsd
仿真調(diào)試
指令模擬器
ARMulator
由AXD調(diào)用
ARM開發(fā)包
一些底層的例程,實(shí)用程序(如fromELF)
一些實(shí)用程序由CodeWarrior IDE 調(diào)用
ARM應(yīng)用庫
C、C++函數(shù)庫等
用戶程序使用
3系統(tǒng)的硬件設(shè)計(jì)3.1  電路設(shè)計(jì)框圖
系統(tǒng)以LPC2124ARM芯片作為核心控制器件,外圍只有液晶顯示和鍵盤操作,且均為串行通信器件,使得系統(tǒng)線路簡單可靠性高。系統(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            LPC2124
LPC2124 是基于一個(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ī)模降低超過30%,而性能的損失卻很小。 由于LPC2124較小的 64腳封裝、極低的功耗、多個(gè) 32 位定時(shí)器、4 路 10 位ADC以及多達(dá)9個(gè)外部中斷使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和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 管腳連接映射
名稱
描述
訪問
復(fù)位值
地址
PINSEL0
管腳選擇寄存器0
讀/寫
0x0000 0000
0xE002C000
PINSEL1
管腳選擇寄存器
讀/寫
0x1540 0000
0xE002C004
PINSEL2
管腳選擇寄存器
讀/寫
見表63和64
0xE002C014
其管腳功能選擇寄存器如表3-2和表3-3所示。
表3.2 PINSEL0管腳選擇功能
PINSEL0
管腳名稱
00
01
10
11
復(fù)位值
1:0
P0.0
GPIO P0.0
TXD(UART0)
PWM1
保留
00
3:2
P0.1
GPIO P0.1
RXD(UART0)
PWM3
EINT0
00
5:4
P0.2
GPIO P0.1
SCL(C)
捕獲0.0(TIMER0)
保留
00
7:6
P0.3
GPIO P0.3
SDA(C)
匹配0.0(TIMER0)
EINT1
00
9:8
P0.4
GPIO P0.4
SCK(SPI0)
捕獲0.1(TIMER0)
保留
00
11:10
P0.5
GPIO P0.5
MIS0(SPI0)
匹配0.1(TIMER0)
保留
00
13:12
P0.6
GPIO P0.6
MOSI(SPI0)
捕獲0.2(TIMER0)
保留
00
15:14
P0.7
GPIO P0.7
SSEL(SPI0)
PWM2
EINT2
00
17:16
P0.8
GPIO P0.8
TXD(UART1)
PWM4
保留
00
19:18
P0.9
GPIO P0.9
RXD(UART1)
PWM8
保留
00
21:20
P1.0
GPIO P1.0
RTS(UART1)
捕獲1.0(TIMER1)
保留
00
23:22
P1.1
GPIO P1.1
CTS(UART1)
捕獲1.1(TIMER1)
保留
00
25:24
P1.2
GPIO P1.2
DSR(UART1)
匹配1.0(TIMER1)
保留
00
27:26
P1.3
GPIO P1.3
DTR(UART1)
匹配1.1(TIMER1)
保留
00
29:28
P1.4
GPIO P1.4
CD(UART1)
EINT1
保留
00
31:30
P1.5
GPIO P1.5
RI(UART1)
EINT2
保留
00
表3.3 PINSEL1管腳選擇功能
PINSEL1
管腳名稱
00
01
10
11
復(fù)位值
1:0
P0.16
GPIO P0.16
EINT0
PWM1
捕獲0.2(TIMER0)
00
3:2
P0.17
GPIO P0.17
捕獲1.2(TIMER1)
PWM3
匹配1.2(TIMER1)
00
5:4
P0.18
GPIO P0.18
捕獲1.3(TIMER1)
捕獲0.0(TIMER0)
匹配1.3(TIMER1)
00
7:6
P0.19
GPIO P0.19
匹配1.2(TIMER1)
匹配0.0(TIMER0)
匹配1.3(TIMER1)
00
9:8
P0.20
GPIO P0.20
匹配1.3(TIMER1)
捕獲0.1(TIMER0)
EINT3
00
11:10
P0.21
GPIO P0.21
PWM5
保留
捕獲1.3(TIMER1)
00
13:12
P0.22
GPIO P0.22
保留
捕獲0.0(TIMER0)
匹配0.0(TIMER0)
00
15:14
P0.23
GPIO P0.23
保留
保留
保留
00
17:16
P0.24
GPIO P0.24
保留
保留
保留
00
19:18
P0.25
GPIO P0.25
保留
保留
保留
00
21:20
P1.26
保留
00
23:22
P1.27
GPIO P1.27
AIN0(A/D轉(zhuǎn)換器)
捕獲0.1(TIMER0)
匹配0.1(TIMER0)
01
25:24
P1.28
GPIO P1.28
AIN1(A/D轉(zhuǎn)換器)
匹配0.2(TIMER0)
匹配0.2(TIMER0)
01
27:26
P1.29
GPIO P1.29
AIN2(A/D轉(zhuǎn)換器)
匹配0.3(TIMER0)
匹配0.3(TIMER0)
01
29:28
P1.30
GPIO P1.30
AIN3(A/D轉(zhuǎn)換器)
EINT3
捕獲0.0(TIMER0)
01
31:30
P1.31
保留
00
3.3.2            LP3228顯示屏
采用LM3228液晶顯示,其擁有微功耗無電磁輻射,壽命長,價(jià)格低,接口方便等一系列顯著特點(diǎn),被廣泛應(yīng)用于各種儀器儀表,測(cè)量顯示裝置,計(jì)算機(jī)顯示終端等方面。它是以點(diǎn)陣為單位組成的液晶顯示器,內(nèi)部CMOS驅(qū)動(dòng),由日本東芝公司T6963C 控制集成電路,印制電路板和金屬支持框架所組成。LM3228液晶可以用來顯示字母,數(shù)字,漢字等,因此可以用LM3228液晶形象的模擬出貪吃蛇的形狀和它運(yùn)動(dòng)的情況。
LM3228的硬件結(jié)構(gòu)圖如圖3.3所示。

圖3.3 LM3228的硬件結(jié)構(gòu)圖
3.3.3        用戶操作接口
用戶操作接口采用的是4×4矩陣鍵盤,用戶可以通過操縱鍵盤控制貪吃蛇的游動(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ù)游戲

矩陣鍵盤原理圖如圖3.5所示:
圖3.5 矩陣鍵盤原理圖
矩陣鍵盤的工作原理如下:
(1)先讀取鍵盤的狀態(tài),得到按鍵的特征編碼。
先從P1口的高四位輸出低電平,低四位輸出高電平,從P1口的低四位讀取鍵盤狀態(tài)。再從P1口的低四位輸出低電平,高四位輸出高電平,從P1口的高四位讀取鍵盤狀態(tài)。將兩次讀取結(jié)果組合起來就可以得到當(dāng)前按鍵的特征編碼。使用上述方法我們得到16個(gè)鍵的特征編碼。
(2)根據(jù)按鍵的特征編碼,查表得到按鍵的順序編碼。
將16個(gè)鍵的特征編碼按順序排成一張表,然后用當(dāng)前讀得的特征編碼來查表,當(dāng)表中有該特征編碼時(shí),它的位置就是對(duì)應(yīng)的順序編碼。
(3)根據(jù)特征編碼與順序編碼的對(duì)應(yīng)關(guān)系就可以確定所按下的是哪一個(gè)鍵。
4  軟件仿真
Proteus ISIS是英國Labcenter公司開發(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)見附錄一。
5  系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)5.1  游戲說明
游戲目標(biāo)是控制貪吃蛇吃掉畫面中的目標(biāo)豆,每吃掉一個(gè)目標(biāo)豆就會(huì)加分,但同時(shí)貪吃蛇的尾巴會(huì)相應(yīng)地長上一截,吃得越多,尾巴越長。游戲中,貪吃蛇碰上了自己的身體游戲即結(jié)束。分?jǐn)?shù)增加到一定后,貪吃蛇移動(dòng)的速度增加,從而逐步增加游戲的難度。
5.2  游戲結(jié)構(gòu)設(shè)計(jì)
游戲主要分為A、B、C三個(gè)模塊。
A模塊主要用于控制游戲的開始、暫停與結(jié)束,這些方法與其他程序相同。
B模塊主要用于完成游戲的主要功能,包括了蛇體控制,目標(biāo)豆的擺放,游戲控制,屏幕繪制等。
C模塊主要用于完成蛇體在屏幕上的定位。
5.3  游戲具體設(shè)計(jì)5.3.1            矩陣鍵盤按鍵掃描子程序
用戶設(shè)計(jì)行列鍵盤接口,一般常采用3種方法讀取鍵值。分別為:中斷式,掃描法和反轉(zhuǎn)法。
(1)中斷式:在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,并由中斷處理程序通過不同的地址讀取數(shù)據(jù)線上的狀態(tài),判斷哪個(gè)按鍵被按下。
(2)掃描法:對(duì)鍵盤上的某一行送低電平,其他行為高電平,然后讀取列值。若列值中有一位是低,則表明該行與低電平對(duì)應(yīng)列的鍵被按下;否則,掃描下一行。
(3)反轉(zhuǎn)法:先將所有行掃描線輸出低電平,讀列值。若列值有一位是底,則表明有鍵按下,讀列值;然后所有列掃描線輸出低電平,再讀行值。根據(jù)讀到的值組合就可以查表得到鍵值。
在本次實(shí)訓(xùn)中我們采用的是反轉(zhuǎn)法,其硬件連接請(qǐng)見圖3.5。
              關(guā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ù)了,具體可見源代碼。
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來設(shè)計(jì),這部分程序具體可見源代碼。
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)鍵之后,貪吃蛇開始向右運(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)上,未充分考慮貪吃蛇碰壁的情況,只是簡單的讓貪吃蛇穿過墻壁,沒做其他處理。
(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í)踐過程中遇到了好多問題。我們通過虛心請(qǐng)教計(jì)算機(jī)專業(yè)的同學(xué)和老師,用自己所學(xué)的知識(shí)分析后及時(shí)改正錯(cuò)誤,通過再次不斷的修改原理圖,請(qǐng)教,再修改程序,但是在程序編寫部分我還是困難重重。當(dāng)自己著手編寫程序時(shí),通過采集到的資料進(jìn)行修改,通過不斷的運(yùn)行調(diào)試,仿真。按照自己的設(shè)計(jì)構(gòu)思,經(jīng)過一系列的測(cè)試工作,我們終于解決了貪吃蛇小游戲中發(fā)生的部分錯(cuò)誤,完善該小游戲的基本功能。在測(cè)試過程中,面對(duì)所遇到的問題,認(rèn)真分析流程圖,根據(jù)原理圖,認(rèn)真檢查程序流程,并觀察各寄存器的變化情況, 最終能基本實(shí)現(xiàn)貪吃蛇小游戲的功能。
由于此次實(shí)踐期間不是考試期間,時(shí)間不是很緊迫,但是我們還是分秒必爭(zhēng),有時(shí)呆在科協(xié)一呆就是一天,經(jīng)常晚上凌晨兩三點(diǎn)才回宿舍。這次實(shí)訓(xùn)真的是對(duì)我們最大的考驗(yàn),困難問題的不斷出現(xiàn),讓我們應(yīng)付不過來,因?yàn)槲覀兊膱?jiān)持不懈,相信失敗是成功之母,功夫不負(fù)有心人,最后終于成功了,成功的喜悅讓人舒心。
通過這次實(shí)踐,我覺得對(duì)我來說本身就是一個(gè)提升。真理正是靠實(shí)踐而證明的,而成功就是靠自己的摸索而成功的。當(dāng)自己遇到失敗的時(shí)候,不要心灰氣餒,沉著冷靜,認(rèn)真分析原理,實(shí)在不懂虛心向老師和同學(xué)學(xué)習(xí)請(qǐng)教,終會(huì)有所收獲。
在做作品的過程中我學(xué)到了很多在課堂上學(xué)不到的東西,雖然說這次實(shí)踐很累。但是在這期間,我感覺真的是過得和充實(shí),而且得到了許多寶貴的經(jīng)驗(yàn),相信對(duì)我以后的軟件編程和專業(yè)的學(xué)習(xí)都會(huì)有很大的幫助。

參考文獻(xiàn)
[1]  崔更申,孫安青.ARM嵌入式系統(tǒng)開發(fā)與實(shí)踐[M].北京:中國電力出版社,2008.
[2]  田澤.嵌入式開發(fā)與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.
[3]  周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[4]  譚浩強(qiáng).C語言程序設(shè)計(jì).北京:清華大學(xué)出版社,2002.

附  錄附錄一 系統(tǒng)仿真電路圖
附錄二 程序文件清單
表1所示系統(tǒng)源程序文件清單如附。
表1 系統(tǒng)源程序文件清單
文件名
說明
config.h
系統(tǒng)及應(yīng)用程序配置文件
GUI_CONFIG.H
GUI配置文件
GUI_StockC.h
設(shè)置前景色及背景色變量聲明文件
lcmdrv.h
液晶模塊驅(qū)動(dòng)程序聲明文件
Loadbit.h
顯示單色圖形及漢字顯示聲明文件
keyboard.h
鍵盤驅(qū)動(dòng)程序聲明文件
LPC2124.h
LPC2124寄存器定義文件
target.h
目標(biāo)板特殊的代碼頭文件
GUI_StockC.C
設(shè)置前景色及背景色變量實(shí)現(xiàn)文件
loadbit.c
顯示單色圖形及漢字顯示實(shí)現(xiàn)文件
lcmdrv.c
液晶模塊驅(qū)動(dòng)程序?qū)崿F(xiàn)文件
resource.c
資源定義文件
keyboard.c
鍵盤驅(qū)動(dòng)程序?qū)崿F(xiàn)文件
main.c
主函數(shù)所在的文件
IRQ.s
中斷處理代碼文件
Startup.s
LPC2124啟動(dòng)代碼文件
Target.c
目標(biāo)板特殊的代碼實(shí)現(xiàn)文件

附錄三 使用說明書
貪吃蛇小游戲簡單易玩,矩陣鍵盤的2 ,4,6, 8鍵分別使蛇向下,左,右,上方運(yùn)動(dòng),按5鍵為暫停/繼續(xù)游戲,在游戲過程中貪吃蛇吃到東西身體會(huì)變長,身體長度長到一定程序貪吃蛇運(yùn)動(dòng)的速度就加快,游戲的難度就增加,總的來說這款貪吃蛇小游戲比其他的更簡單更容易上手。


完整的Word格式文檔51黑下載地址:
1506020210王浩宇.doc (1000 KB, 下載次數(shù): 59)



作者: tttkkk    時(shí)間: 2021-5-21 11:10
這個(gè)源代碼在哪呀?大神求救




歡迎光臨 (http://m.izizhuan.cn/bbs/) Powered by Discuz! X3.1
稀缺小u女呦精品呦| 日韩成人av影院| 蜜桃av久久久亚洲精品| 欧美日韩中文一区| 亚洲精品国产a久久久久久| 久久亚洲精品国产精品紫薇| 日韩超碰人人爽人人做人人添| 日韩av首页| 久草在线资源福利站| 97久久人人超碰caoprom| 九色视频网址| 国产porn视频| 亚洲精品国自产拍在线观看| 天堂网www在线中文天堂| 中文在线字幕在线观看| www.蜜臀av.com| 性生活三级视频| 青青操夜夜操| free性亚洲| av电影资源| jlzzjlzz欧美大全| av免费在线免费| 黄色aa久久| 欧美久久久网站| 欧美成人一二区| 欧美成人高清| 另类国产ts人妖高潮视频| 中文字幕在线免费| 污视频免费在线看| 亚洲图片欧美| 岛国成人毛片| 人人草在线视频| 国产伦精品一区二区三区视频| 国产精品香蕉| 不卡中文一二三区| 91精品一区二区三区综合在线爱| 99国产精品私拍| 免费人成在线不卡| 成人av在线资源网| 国产精品私房写真福利视频| 亚洲欧美电影院| 欧美日韩精品在线| 欧洲一区二区三区免费视频| 欧美一区中文字幕| 亚洲人永久免费| 久久久国产精品x99av| 91精品国产91久久久久久不卡| 青青草精品毛片| 99久久自偷自偷国产精品不卡| 久99久在线| 国产精品自拍合集| 亚洲成人福利在线观看| 亚洲日本久久久| 亚洲自拍第二页| 亚洲电影成人成人影院| sedog在线观看| 在线播放你懂的| 国产精品成人**免费视频| 自拍亚洲一区| 亚洲中字在线| 久久综合久久综合久久综合| 日韩片之四级片| 久久精品国产亚洲一区二区| 欧美一区二区三区四区夜夜大片 | 亚洲国产精品99久久久久久久久 | 欧美第一页在线| 欧美中文在线免费| 91免费视频网站在线观看| 激情av中文字幕| 国产男男gay体育生白袜| 欧美精品另类| 少妇视频一区二区| 超碰在线观看91| 欧美色图第二页| 亚洲大胆人体大胆做受1| 欧美a级大片在线| 在线电影一区二区| 成人免费视频caoporn| 午夜欧美一区二区三区在线播放| 亚洲成人免费网站| 欧美专区第一页| 超碰网在线观看| 原创真实夫妻啪啪av| 国产精品老熟女一区二区| 国产女人高潮的av毛片| 欧美成人片在线| 免费成人毛片| 国产一区福利在线| 调教+趴+乳夹+国产+精品| 亚洲人成网站免费播放| 水蜜桃亚洲一二三四在线| 亚洲欧美手机在线| 国产真人真事毛片| 影音先锋男人每日资源站| 秋霞成人影院| 天天躁日日躁成人字幕aⅴ| 亚洲欧美网站| 欧美在线啊v一区| 性欧美激情精品| 亚洲欧洲国产日韩精品| 免费网站在线观看黄| 精品人妻一区二区三区浪潮在线 | av免费在线观看网址| 一本久久知道综合久久| 欧美日韩国产美女| 午夜精品一区二区三区在线视频 | 亚洲av无码专区在线| 黄色漫画在线免费观看| 亚洲欧美韩国| 亚洲婷婷在线| 国产精品私房写真福利视频| 欧美高清电影在线看| 亚洲视频在线a| 亚洲婷婷综合网| 天堂视频在线观看免费| 国产盗摄在线视频网站| 欧美激情性爽国产精品17p| 欧美日韩免费看| 国产欧美亚洲日本| 久久久无码人妻精品无码| 91精品中文字幕| 色播视频在线观看| www.丝袜精品| 成人午夜视频在线| 欧美不卡视频一区发布| 午夜探花在线观看| 中文字幕电影av| 97精品高清一区二区三区 | 亚洲国产成人精品一区二区三区| 日韩av中文| 久久久久久久久久久久久久久久久久 | 亚洲最大免费视频| 日韩无套无码精品| 91影院在线播放| 黄视频网站在线| 99精品电影| 亚洲另类在线视频| 亚洲综合av影视| 国产精品熟妇一区二区三区四区| 国产黄色免费网站| 大胆人体一区二区| 日韩 欧美一区二区三区| 欧美日韩中文字幕一区二区| 深田咏美在线x99av| 久久久久久av无码免费看大片| 91精品久久久久久9s密挑| 国产精品欧美大片| 欧美性xxxxx极品娇小| 欧美一区二区三区精品电影| 久久综合伊人77777麻豆最新章节| 久草在线视频网| 激情国产在线| 久久久久久99精品| 欧美成人午夜影院| 黄色在线免费播放| 嫩草懂你的影院| 青青草成人影院| 欧美高清视频一二三区 | 中国女人一级毛片| 视频欧美精品| 国产91丝袜在线18| 亚洲欧洲日韩国产| 色噜噜狠狠一区二区三区狼国成人| 国内精品区一区二区三| 欧美wwww| 麻豆精品在线观看| 亚洲黄页视频免费观看| 国产日韩视频在线播放| 激情五月婷婷小说| 在线观看国产视频一二三| 欧美精品一区二区三区精品| 精品国产户外野外| 亚洲乱码国产乱码精品天美传媒| 99久久亚洲精品日本无码 | 在线观看免费中文字幕| 亚洲欧洲自拍| 亚洲一二三四久久| 91嫩草在线视频| 99久久99久久精品免费| eeuss影院www免费看| 久久动漫网址| 疯狂蹂躏欧美一区二区精品| 手机福利在线视频| 久久久久久日本一区99| 国产精品午夜一区二区三区| 日韩欧美黄色影院| 日本丰满大乳奶| 717影院理论午夜伦不卡久久| 最新亚洲精品| 亚洲精品成a人在线观看| 国产又粗又猛大又黄又爽| 四色永久免费网站| 日韩高清一级片| 色狠狠av一区二区三区香蕉蜜桃| 不卡影院一区二区| 成年人福利网站| 亚洲成人tv| 在线观看欧美日韩| 牛夜精品久久久久久久| 无国产精品白浆免费视| 日韩精品视频在线看| 亚洲免费观看在线视频| 亚洲精品白虎| 欧美一区二区三区久久综合| 久久久久久美女精品| 欧美成人免费视频| 国产亚洲欧美精品久久久www| 九色视频在线播放| 蜜桃在线一区二区三区| 国产精品第一视频| 91传媒免费观看| 国产高清免费av在线| 国产最新精品精品你懂的| 欧美精品手机在线| 免费在线观看亚洲| 成人免费网站www网站高清| 欧美亚洲尤物久久| 中文字幕无人区二| av中文字幕免费| 图片区小说区亚洲| 亚洲一区二区在线观看视频| 精品久久久久久久久久中文字幕| 久久久久88色偷偷| 欧美久久99| 久久天天躁狠狠躁夜夜av| 国产chinese中国hdxxxx| 白白色在线发布| 久久蜜桃av一区二区天堂| 日本午夜一区二区三区| 国产成a人亚洲精v品| 日韩精品视频网| 99超碰麻豆| 中文字幕无线码| 日韩一区精品字幕| 国产伦精品一区二区三区视频黑人| 最近中文字幕免费在线观看| 操欧美女人视频| 中文字幕在线看视频国产欧美在线看完整 | 欧美在线观看网站| 97国产精品久久久| 日韩大片在线播放| 日韩精品在线第一页| 777精品久无码人妻蜜桃| 九九热爱视频精品视频高清| 亚洲激情网址| 久久久综合免费视频| 特一级黄色录像| 亚洲欧美综合久久久久久v动漫| 色综合天天综合狠狠| 欧美亚洲日本一区二区三区| 500福利第一精品导航| 国产精品久久久久天堂| 日韩中文字幕一区二区| 亚洲视频色图 | 久久这里只有| 国产精品999999| 中文在线字幕免费观| 高清久久精品| 中文字幕av日韩| 日韩综合在线观看| 国产精品高清一区二区| 国产亚洲人成a一在线v站| 免费在线观看你懂的| 免费在线视频一级不卡| 亚洲图片欧美视频| 性久久久久久久久久久久久久| 一二三四在线视频观看社区| 成人丝袜高跟foot| 桥本有菜av在线| 黄页免费在线| 亚洲不卡在线观看| 少妇精品无码一区二区三区| 成人va天堂| 欧美日本国产视频| jizz18女人高潮| rebdb初裸写真在线观看| 日韩一区二区电影在线| 99久久99久久精品国产| 日本一区福利在线| 国产成人精品视| 国产激情自拍视频| 欧美激情一区三区| 国产精品igao激情视频 | 免费久久99精品国产| 视频一区亚洲| 亚洲成人av在线影院| 欧美性xxxxx| 黄色一级片一级片| 亚欧洲精品视频在线观看| 国产精品美女无圣光视频| 国产黄色片网站| 日韩av电影一区| 日韩不卡一二区| 亚洲天堂自拍偷拍| 国产精品二区影院| 看欧美日韩国产| 色视频www在线播放| 在线视频亚洲一区| 中文字幕av免费在线观看| 日韩欧美网址| 国产欧美日韩伦理| 在线观看老湿视频福利| 在线观看亚洲精品视频| 国产精品九九九九九九| 久久精品国产大片免费观看| 成人看片在线| 特黄特色特刺激视频免费播放| 欧美日韩综合视频| 欧美日韩大片在线观看| 亚洲一区欧美| 一区二区三区欧美成人| 小次郎av收藏家| 亚洲一区在线视频| 91狠狠综合久久久久久| 青青草国产免费一区二区下载| www.成人av| 资源视频在线播放免费| 777色狠狠一区二区三区| 中文字幕第20页| 国产经典一区| 亚洲欧美精品在线| 91video| 欧美国产一级| 欧美不卡1区2区3区| 日漫免费在线观看网站| 精品久久久久久久中文字幕| 天天操天天操天天操天天操天天操| 国产成人福利夜色影视| 亚洲视频在线观看| 亚洲欧美一区二区三| 久久久久久综合| 成人网站免费观看| 欧美影院精品| 国产这里只有精品| 在线观看免费电影| 亚洲福利视频一区二区| 国产a级片视频| 久久草在线视频| 国产三级精品在线不卡| 免费在线看v| 一区二区欧美久久| 久久久9999久久精品小说| 亚洲精品乱码久久久久久日本蜜臀| 一级黄色片日本| 性高湖久久久久久久久| 成人性生生活性生交12| 日韩一区二区三区色| 痴汉一区二区三区| 99999色| 天天综合色天天| 日韩少妇裸体做爰视频| 女同性一区二区三区人了人一| 日本三日本三级少妇三级66| 绿色成人影院| 国产成人亚洲综合| 97影院在线观看| 亚洲精品资源在线| 欧美bbbbxxxx| 欧美午夜激情视频| 亚洲综合成人av| 波多野洁衣一区| 成人黄色a级片| 国内成人精品| dy888午夜| 嫩草伊人久久精品少妇av杨幂| 国产精品专区一| 老女人av在线| 欧美一区二区日韩| 亚洲影视第一页| 一区二区高清在线| 999久久久国产| 久久激情视频| 欧美xxxxxbbbbb| 香蕉国产精品| 日韩久久一级片| 欧美色资源站| 喜爱夜蒲2在线| 日韩伦理在线| 国产欧美日韩精品在线观看| 国产在线视频福利| 久久久久久久久久久国产| 91蝌蚪在线| 制服丝袜亚洲色图| 成人网6969conwww| 欧美视频二区36p| 不卡的日韩av| 亚洲综合免费观看高清在线观看| 无码一区二区三区| 国产午夜三级一区二区三| 亚洲激情视频小说| 国产精品99久久精品| 亚洲国产精品久久久久秋霞蜜臀| 九九久久久2| 日本高清视频一区二区| 亚洲午夜18毛片在线看| 成人毛片在线观看| 九九热国产在线| 91在线观看高清| 欧美深性狂猛ⅹxxx深喉 | 老司机久久99久久精品播放免费 |