嵌入式課設(shè)實(shí)驗(yàn)報(bào)告——貪吃蛇_(dá)第1頁(yè)
嵌入式課設(shè)實(shí)驗(yàn)報(bào)告——貪吃蛇_(dá)第2頁(yè)
嵌入式課設(shè)實(shí)驗(yàn)報(bào)告——貪吃蛇_(dá)第3頁(yè)
嵌入式課設(shè)實(shí)驗(yàn)報(bào)告——貪吃蛇_(dá)第4頁(yè)
嵌入式課設(shè)實(shí)驗(yàn)報(bào)告——貪吃蛇_(dá)第5頁(yè)
已閱讀5頁(yè),還剩28頁(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、 課程設(shè)計(jì) 本 科 生 通 用 題目:貪吃蛇游戲設(shè)計(jì) 專(zhuān)業(yè): 電子信息工程 班級(jí): 姓名: 、 成績(jī): 導(dǎo)師簽字: 年 月 日 任務(wù)書(shū) 題目:貪吃蛇游戲設(shè)計(jì)參數(shù): 供電電源電壓3.3V 矩形墻壁的位置坐標(biāo)(20,20)(200,200) 蛇的初始位置坐標(biāo)(40,20)(30,20)(20,20) 蛇的每一節(jié)為邊長(zhǎng)為10的矩形要求: 利用嵌入式開(kāi)發(fā)系統(tǒng)設(shè)計(jì)一個(gè)貪吃蛇的小游戲。 開(kāi)始顯示為初始界面,然后開(kāi)始進(jìn)行游戲。游戲開(kāi)始出現(xiàn)3節(jié)的蛇,一個(gè)食物,右邊顯示得分。當(dāng)進(jìn)入游戲后,蛇自動(dòng)向右前行。通過(guò)按鍵上下左右來(lái)控制蛇前行的方向,當(dāng)蛇吃到食物后,得分加100分,蛇身體變長(zhǎng)一節(jié)。當(dāng)蛇在游行過(guò)程中撞到墻壁

2、或者自身則游戲結(jié)束。 日程安排: 6月30日:選擇課設(shè)題目、查閱資料 、完成第一步。7月1、2日:完成方案設(shè)計(jì) 。即提出設(shè)計(jì)思路與軟硬件的設(shè)計(jì)方案。7月3、4日:學(xué)習(xí)硬件原理7月7、8、9日:根據(jù)軟件設(shè)計(jì)方案做軟件。7月10日:測(cè)試7月11日:完成論文 目錄第一章 課題研究 1.1研究目的 1.2研究背景 1.3主要研究?jī)?nèi)容第2章 設(shè)計(jì)思路及方案設(shè)計(jì) 2.1設(shè)計(jì)思路 2.1.1實(shí)現(xiàn)功能 2.1.2各功能的實(shí)現(xiàn)方法 2.1.3硬件說(shuō)明 2.1.4軟件說(shuō)明 2.2硬件設(shè)計(jì) 2.3軟件設(shè)計(jì)第3章 硬件設(shè)計(jì) 3.1處理器最小系統(tǒng) 3.2硬件基本電路 3.2.1按鍵 3.2.2 LCD 3.2.3 US

3、B接口與電源第四章 軟件設(shè)計(jì)第五章 調(diào)試與測(cè)試5.1調(diào)試5.2測(cè)試第六章 結(jié)論參考文獻(xiàn) 第一章 課題研究 1.1研究目的 為了鞏固所學(xué)嵌入式系統(tǒng)的基礎(chǔ)知識(shí),加強(qiáng)實(shí)際應(yīng)用和動(dòng)手實(shí)踐能力,開(kāi)始為期2周的課程設(shè)計(jì)。通過(guò)本次課程設(shè)計(jì),可以培養(yǎng)獨(dú)立思考和團(tuán)隊(duì)協(xié)作能力,鞏固基礎(chǔ)知識(shí),增強(qiáng)實(shí)際應(yīng)用的靈活性和技巧性,掌握嵌入式軟件項(xiàng)目的設(shè)計(jì)流程,鍛煉學(xué)生應(yīng)用已學(xué)的知識(shí)去解決有針對(duì)性的課題的能力。能夠?qū)C/OS-II操作系統(tǒng)進(jìn)一步學(xué)習(xí)并且有更深的理解,掌握基本程序設(shè)計(jì)過(guò)程和技巧,掌握基本的分析問(wèn)題、解決問(wèn)題的能力,為以后的學(xué)習(xí)以及做其他課題打下一定的基礎(chǔ)。1.2研究背景 目前,以計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)為核心的現(xiàn)

4、代網(wǎng)絡(luò)技術(shù)已在現(xiàn)實(shí)生活和生產(chǎn)中得以廣泛的使用,休閑類(lèi)網(wǎng)絡(luò)游戲集趣味性,娛樂(lè)性,互動(dòng)性和益智性于一體,已經(jīng)成為多數(shù)人群的休閑方式。電腦游戲經(jīng)過(guò)短短30年的發(fā)展,已經(jīng)成為影響公眾生活,改變公眾娛樂(lè)方式的重要產(chǎn)業(yè)。過(guò)去,人們主要是借助電影、電視、音樂(lè)等方式來(lái)娛樂(lè)。而今天,以游戲?yàn)榇淼碾娮訆蕵?lè)正在成為主流娛樂(lè)方式。游戲也正在迅速成長(zhǎng)為一個(gè)龐大的產(chǎn)業(yè)?,F(xiàn)在存在著各種各樣的游戲版本,同樣有很多中設(shè)計(jì)的方法。其設(shè)計(jì)可以基于多種平臺(tái)(例如JAVA、Android等)。我們此次是基于Cortex-M3內(nèi)核進(jìn)行設(shè)計(jì)。ARM公司于2006年推出了CortexM3微處理器核。Cortex-M3是較高效率(1.25D

5、MIPS/MHz)低功耗(0.19mW/MHz)、短中斷延時(shí)(最少6周期)、低調(diào)試成本的32位標(biāo)準(zhǔn)處理器。Cortex-M3采用的V7M架構(gòu)和指令集,它的速度比ARM7快三分之一,功耗低四分之三。隨著嵌入式系統(tǒng)的發(fā)展,以及32位嵌入式處理器和圖形顯示設(shè)備的廣泛應(yīng)用,目標(biāo)產(chǎn)品對(duì)嵌入式技術(shù)的要求越來(lái)越高。尤其是對(duì)人機(jī)界面的要求日益劇增。因此提供友好的,易操作的人機(jī)界面是十分重要與必須的。而LCD液晶顯示屏恰恰是一種非常方便的人機(jī)界面,因此LCD液晶顯示屏在出事后達(dá)到了非常廣泛的應(yīng)用。 目前,嵌入式系統(tǒng)是近年來(lái)發(fā)展很快的計(jì)算機(jī)方面的學(xué)科方向,并迅速滲透到控制、自動(dòng)化、儀器儀表等學(xué)科。嵌入式方向包括了

6、軟硬件協(xié)同設(shè)計(jì)、嵌入式體系結(jié)構(gòu)、實(shí)時(shí)操作系統(tǒng)、嵌入式產(chǎn)品設(shè)計(jì)等方面的知識(shí),大于當(dāng)代大學(xué)生,更需要掌握嵌入式系統(tǒng)設(shè)計(jì)的典型開(kāi)發(fā)工具和開(kāi)發(fā)核心技術(shù)。 對(duì)于嵌入式市場(chǎng)的發(fā)展來(lái)說(shuō),中國(guó)市場(chǎng)的意義更加重大。中國(guó)市場(chǎng)對(duì)于嵌 入式互聯(lián)網(wǎng)這場(chǎng)革命來(lái)說(shuō)非常關(guān)鍵。勃勃的生機(jī),很好的產(chǎn)業(yè)互動(dòng),良好的協(xié)作精神,中國(guó)現(xiàn)在正在形成-個(gè)健康的嵌入式的發(fā)展模式和轉(zhuǎn)型模式。中國(guó)可能是-個(gè)引發(fā)點(diǎn),嵌入式市場(chǎng)先在中國(guó)蓬勃發(fā)展,然后輻射到全球其他地區(qū)。1.3研究意義基于ARM技術(shù)的發(fā)展對(duì)人機(jī)界面的要求越來(lái)越高,同時(shí)考慮到游戲開(kāi)發(fā)過(guò)程普遍存在時(shí)間長(zhǎng)了、成本高、效率低等特點(diǎn),采用最新的Cortex-M3處理器并結(jié)合LCD的種種優(yōu)勢(shì)可以使

7、游戲開(kāi)發(fā)時(shí)間更短、效率高、成本低、同時(shí)也能充分利用新型資源設(shè)計(jì)出智能化,方便化,快捷化的游戲產(chǎn)品從而很快占領(lǐng)市場(chǎng)取得競(jìng)爭(zhēng)優(yōu)勢(shì)。 1.4主要研究?jī)?nèi)容在神舟三號(hào)開(kāi)發(fā)板上實(shí)現(xiàn)貪吃蛇的小游戲,利用uC/OS-II的任務(wù)管理系統(tǒng)對(duì)于所有的任務(wù)進(jìn)行管理調(diào)度。新建一個(gè)工程模板,添加相應(yīng)的驅(qū)動(dòng)文件。使用uC/OS-II操作系統(tǒng)進(jìn)行多任務(wù)設(shè)計(jì)。通過(guò)各個(gè)任務(wù)調(diào)度以實(shí)現(xiàn)貪吃蛇這款小游戲。 開(kāi)始顯示為初始界面,然后開(kāi)始進(jìn)行游戲。游戲開(kāi)始出現(xiàn)3節(jié)的蛇,一個(gè)食物,右邊顯示得分。當(dāng)進(jìn)入游戲后,蛇自動(dòng)向右前行。通過(guò)按鍵上下左右來(lái)控制蛇前行的方向,當(dāng)蛇吃到食物后,得分加100分,蛇身體變長(zhǎng)一節(jié)。當(dāng)蛇在游行過(guò)程中撞到墻壁或者自身

8、則游戲結(jié)束。 第二章 設(shè)計(jì)思路及方案設(shè)計(jì)2.1設(shè)計(jì)思路2.1.1實(shí)現(xiàn)功能基于 C /OS-II 操作系統(tǒng)、Cortex-M3內(nèi)核,使用多任務(wù)管理進(jìn)行設(shè)計(jì)貪吃蛇小游戲。所實(shí)現(xiàn)功能包括:1) 初始化2) 蛇移動(dòng)功能3) 產(chǎn)生食物4) 控制蛇移動(dòng)方向5) 分?jǐn)?shù)的累加計(jì)算2.1.2各功能的實(shí)現(xiàn)方法1、初始化 初始化包括了硬件初始化和軟件初始化。硬件初始化主要是GPIO和LCD的初始化;軟件初始化包括了系統(tǒng)初始化,游戲界面的初始化。 在main函數(shù)中調(diào)用OSInit()函數(shù),進(jìn)行操作系統(tǒng)的初始化,創(chuàng)建一個(gè)StartTask任務(wù),在StartTask任務(wù)中開(kāi)啟時(shí)鐘節(jié)拍,完成硬件的配置與初始化,并創(chuàng)建需求的

9、幾個(gè)任務(wù),其中一個(gè)任務(wù)完成初始界面的顯示。 2、蛇移動(dòng)功能 蛇的移動(dòng)功能是游戲的主體部分。要求蛇可以根據(jù)按鍵控制方向進(jìn)行轉(zhuǎn)彎和移動(dòng)。當(dāng)蛇頭撞到邊界或者自身時(shí),界面顯示游戲結(jié)束。當(dāng)蛇吃掉食物后,蛇的身體增長(zhǎng)一個(gè)矩形的長(zhǎng)度,同時(shí)顯示新的食物。 用邊長(zhǎng)為10的矩形代表蛇的每一節(jié),起始為3節(jié)。首先要判斷按鍵所控制的方向,進(jìn)而根據(jù)按鍵控制讓蛇在一定方向上游動(dòng),在顯示蛇游動(dòng)的過(guò)程中,要根據(jù)需求計(jì)算蛇頭的下一個(gè)位置,然后將蛇身中每一節(jié)的當(dāng)前坐標(biāo)給它的后一節(jié),即蛇身的每一塊移動(dòng)到其前一塊的位置,接著把新蛇顯示在液晶上。當(dāng)蛇頭撞墻或者撞自身時(shí),將蛇移動(dòng)任務(wù)掛起;執(zhí)行死亡任務(wù)時(shí)在液晶上顯示GAME OVER!;蛇

10、每次吃到食物后,蛇的長(zhǎng)度增加1,所得的分?jǐn)?shù)加100分,將蛇尾的坐標(biāo)保留,傳給新增的那一節(jié),顯示新的食物。 3、食物的產(chǎn)生 在進(jìn)入游戲界面后就會(huì)顯示食物跟一條運(yùn)動(dòng)的蛇,蛇每次吃到食物后,就會(huì)產(chǎn)生新的食物。 本次設(shè)計(jì)采用一個(gè)邊長(zhǎng)為10的綠色矩形當(dāng)做食物,通過(guò)判斷蛇頭的坐標(biāo)是否與食物的坐標(biāo)重合來(lái)控制新食物產(chǎn)生的時(shí)間,當(dāng)蛇頭的坐標(biāo)與食物的坐標(biāo)重合后,產(chǎn)生新的食物。食物的坐標(biāo)預(yù)先存在固定數(shù)組中,每次吃到食物后,在數(shù)組中取下一個(gè)數(shù)做為食物的坐標(biāo),將其在液晶中畫(huà)出來(lái)。 4、蛇運(yùn)動(dòng)方向的確定 蛇在左右方向運(yùn)動(dòng)時(shí),可按鍵控制蛇頭向上或向下轉(zhuǎn)彎;蛇在上下方向運(yùn)動(dòng)時(shí),可按鍵控制蛇頭向左或向右轉(zhuǎn)彎。 蛇運(yùn)動(dòng)方向由按鍵

11、控制。 首先需有一個(gè)按鍵查詢(xún)的任務(wù),在此任務(wù)中先判斷蛇運(yùn)動(dòng)的方向,然后判斷是否有可以執(zhí)行的控制方向的按鍵被按下。如果按下了,則蛇按著此鍵所控制的方向轉(zhuǎn)彎并繼續(xù)游動(dòng)。 5、計(jì)分?jǐn)?shù) 用一個(gè)計(jì)分的任務(wù)來(lái)實(shí)現(xiàn)。蛇每次吃到食物后,分?jǐn)?shù)增加100。2.1.3硬件說(shuō)明神州III號(hào)STM32開(kāi)發(fā)板簡(jiǎn)介神州III號(hào)是一款基于STM32F103ZET6處理器的STM32開(kāi)發(fā)板,面向廣大的企業(yè)客戶和STM32愛(ài)好者。開(kāi)發(fā)板功能強(qiáng)大,外圍資源齊全。此外,還預(yù)留了豐富的擴(kuò)展接口,可以靈活的擴(kuò)展各種功能。而整版尺寸僅僅110mm*150mm,非常小巧,方便攜帶。神舟三號(hào)STM32開(kāi)發(fā)板的產(chǎn)品外觀及對(duì)應(yīng)各功能模塊說(shuō)明如圖表

12、1所示 STM32F103系列最高端配置芯片STM32F103ZET6。Cortex-M3內(nèi)核32位處理器,72M主頻,LQFP144封裝,片內(nèi)Flash容量:512K,片內(nèi)SRAM容量:64K 標(biāo)配1G比特容量的Nand Flash 標(biāo)配16M比特容量的Nor Flash,最大支持128M比特容量Nor Flash 標(biāo)配4M比特容量的SRAM 標(biāo)配2K比特容量的I2C接口的EEPROM芯片 標(biāo)配16M比特容量的SPI Flash芯片 采用主流收音機(jī)模塊,提供收音機(jī)功能 采用專(zhuān)用音頻解碼芯片,提供音頻播放功能 1個(gè)USB SLAVE接口,支持USB過(guò)流保護(hù)與USB接口靜電防護(hù),符合ESD防護(hù)標(biāo)

13、注IEC61000-4-2(ESD 15kV air, 8kV Contact) 1個(gè)10M以太網(wǎng)接口,用于以太網(wǎng)通信 1個(gè)標(biāo)準(zhǔn)的2.8/3.2寸LCD接口,支持觸摸屏,分辨率320X240, 26萬(wàn)色 1個(gè)復(fù)位按鈕,控制整板硬件復(fù)位 1個(gè)5V外部電源輸入接口(內(nèi)正外負(fù)) 1個(gè)電源開(kāi)關(guān),控制整個(gè)板的電源開(kāi)關(guān) 1個(gè)標(biāo)準(zhǔn)的JTAG/SWD調(diào)試下載口,支持JLINK供電2.1.4軟件說(shuō)明1) 開(kāi)發(fā)平臺(tái)說(shuō)明 Keil uVision4介紹 發(fā)展歷程:2009年2月發(fā)布Keil uVision4,Keil uVision4引入靈活的窗口管理系統(tǒng),使開(kāi)發(fā)人員能夠使用多臺(tái)監(jiān)視器,并提供了視覺(jué)上的表面對(duì)窗口位

14、置的完全控制的任何地方。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個(gè)窗口,提供一個(gè)整潔,高效的環(huán)境來(lái)開(kāi)發(fā)應(yīng)用程序。新版本支持更多最新的ARM芯片,還添加了一些其他新功能。2011年3月ARM公司發(fā)布最新集成開(kāi)發(fā)環(huán)境RealView MDK開(kāi)發(fā)工具中集成了最新版本的Keil uVision4,其編譯器、調(diào)試工具實(shí)現(xiàn)與ARM器件的最完美匹配。目前使用Keil uVision4的產(chǎn)品有Keil MDK-ARM,Keil C51,Keil C166和Keil C251。 特征功能最新的Keil uVision4 IDE,旨在提高開(kāi)發(fā)人員的生產(chǎn)力,實(shí)現(xiàn)更快,更有效的程序開(kāi)發(fā)。uVision4引入

15、了靈活的窗口管理系統(tǒng),能夠拖放到視圖內(nèi)的任何地方,包括支持多顯示器窗口。uVision4在Vision3 IDE的基礎(chǔ)上,增加了更多大眾化的功能。 多顯示器和靈活的窗口管理系統(tǒng) 系統(tǒng)瀏覽器窗口的顯示設(shè)備外設(shè)寄存器信息 調(diào)試還原視圖創(chuàng)建并保存多個(gè)調(diào)試窗口布局 多項(xiàng)目工作區(qū)簡(jiǎn)化與眾多的項(xiàng)目 技術(shù)支持KeiluVision4由國(guó)內(nèi)米爾科技提供銷(xiāo)售和技術(shù)支持服務(wù),他們是ARM合作伙伴,也是國(guó)內(nèi)領(lǐng)先的工控板以及嵌入式解決方案提供商。2)開(kāi)發(fā)語(yǔ)言說(shuō)明 C語(yǔ)言是由Dennis Richie于1972年在AT & Bell實(shí)驗(yàn)室研究成功并投入使用的系統(tǒng)編程語(yǔ)言,其設(shè)計(jì)目標(biāo)是使C既具有匯編語(yǔ)言的效率,又具有高級(jí)

16、語(yǔ)言的易編程性,其最具代表性的應(yīng)用是UNIX操作系統(tǒng)。從20世紀(jì)80年代中期C語(yǔ)言涉足實(shí)時(shí)系統(tǒng)后,受到了普遍歡迎。目前是使用最廣泛的嵌入式系統(tǒng)編程語(yǔ)言。3)操作系統(tǒng)說(shuō)明 C/OS-II是一種可移植的,可植入ROM的,可裁剪的,搶占式的,實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核。它被廣泛應(yīng)用于微處理器、微控制器和數(shù)字信號(hào)處理器。C/OS-II 的前身是C/OS,最早出自于1992 年美國(guó)嵌入式系統(tǒng)專(zhuān)家Jean J.Labrosse 在嵌入式系統(tǒng)編程雜志的5 月和6 月刊上刊登的文章連載,并把C/OS 的源碼發(fā)布在該雜志的B B S 上。C/OS 和C/OS-II 是專(zhuān)門(mén)為計(jì)算機(jī)的嵌入式應(yīng)用設(shè)計(jì)的, 絕大部分代碼是

17、用C語(yǔ)言編寫(xiě)的。CPU 硬件相關(guān)部分是用匯編語(yǔ)言編寫(xiě)的、總量約200行的匯編語(yǔ)言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。用戶只要有標(biāo)準(zhǔn)的ANSI 的C交叉編譯器,有匯編器、連接器等軟件工具,就可以將C/OS-II嵌入到開(kāi)發(fā)的產(chǎn)品中。C/OS-II 具有執(zhí)行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn), 最小內(nèi)核可編譯至 2KB 。C/OS-II 已經(jīng)移植到了幾乎所有知名的CPU 上。嚴(yán)格地說(shuō)uC/OS-II只是一個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核,它僅僅包含了任務(wù)調(diào)度,任務(wù)管理,時(shí)間管理,內(nèi)存管理和任務(wù)間的通信和同步等基本功能。沒(méi)有提供輸入輸出管理,文件系統(tǒng),網(wǎng)絡(luò)等額外的服務(wù)。但

18、由于uC/OS-II良好的可擴(kuò)展性和源碼開(kāi)放,這些非必須的功能完全可以由用戶自己根據(jù)需要分別實(shí)現(xiàn)。uC/OS-II目標(biāo)是實(shí)現(xiàn)一個(gè)基于優(yōu)先級(jí)調(diào)度的搶占式的實(shí)時(shí)內(nèi)核,并在這個(gè)內(nèi)核之上提供最基本的系統(tǒng)服務(wù),如信號(hào)量,郵箱,消息隊(duì)列,內(nèi)存管理,中斷管理等。uC/OS-II以源代碼的形式發(fā)布,是開(kāi)源軟件, 但并不意味著它是免費(fèi)軟件。你可以將其用于教學(xué)和私下研究(peaceful research);但是如果你將其用于商業(yè)用途,那么你必須通過(guò)Micrium獲得商用許可。2.2硬件設(shè)計(jì)方案STM32處理器 按鍵 LCD 2.3軟件設(shè)計(jì)方案 整個(gè)程序由啟動(dòng)任務(wù)、初始游戲界面任務(wù)(MyTask1)、按鍵查詢(xún)?nèi)蝿?wù)

19、(MyTask2)、蛇移動(dòng)任務(wù)(MoveTask)、死亡任務(wù)(DeadTask)、計(jì)分任務(wù)(ScoreTask)組成。 軟件主體流程設(shè)計(jì)如下: 初始游戲界面任務(wù): MyTask1 液晶顯示初始界面PD3按下? N Y進(jìn)入游戲界面掛起自身任務(wù) 延時(shí)等待 按鍵查詢(xún)?nèi)蝿?wù):MyTask2 判斷蛇當(dāng)前游動(dòng)方向 判斷有效的按鍵是否按下根據(jù)按鍵控制蛇下一步的游行方向延時(shí)等待MoveTask蛇游行任務(wù): 判斷蛇下一步的游行方向根據(jù)確定的游行方向來(lái)計(jì)算蛇的下一個(gè)位置坐標(biāo)清屏、畫(huà)出游戲的矩形墻壁、食物吃到食物? N Y蛇身長(zhǎng)度加一節(jié)分?jǐn)?shù)加100分延時(shí)游戲結(jié)束執(zhí)行DeadTask本身任務(wù)掛起蛇撞墻或者自身?按著新蛇

20、的坐標(biāo)畫(huà)蛇 N Y 第三章 硬件設(shè)計(jì)3.1處理器最小系統(tǒng) 復(fù)位電路電源電路處理器其他功能電路晶振電路電源電路存儲(chǔ)器 嵌入式實(shí)驗(yàn)板處理器選擇的是STM32F103ZET6, 最小系統(tǒng)、RTC及調(diào)試接口電路如圖所示。引腳資源分配如表所示。3.2硬件基本電路 3.2.1 按鍵 神州III號(hào)STM32開(kāi)發(fā)板板載4個(gè)功能按鍵,分別是WAKEUP按鍵和TAMPER按鍵及兩個(gè)用于自動(dòng)以功能按鍵,在不使用第二功能的情況下,這四個(gè)按鍵都可以作為通用的按鍵,由用戶自定義其功能。案件分別是PA0,PC13,PA8,PD3,四個(gè)GPIO管腳連接,當(dāng)按鍵按下時(shí),對(duì)應(yīng)的GPIO管腳為低電平,反之,當(dāng)沒(méi)有按鍵按下時(shí),對(duì)應(yīng)的

21、GPIO管腳為高電平。 3.2.2 LCD 神州III號(hào)通過(guò)FSMC總線對(duì)屏進(jìn)行訪問(wèn)操作實(shí)現(xiàn)圖形界面的顯示。神舟系列的2.8/3.2寸LCD觸摸屏支持觸摸功能,LCD模塊上有觸摸芯片,將電阻式觸摸屏的模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),處理器通過(guò)SPI接口讀取芯片轉(zhuǎn)換后的數(shù)字,支持查詢(xún)方式和中斷方式。 此外,2.8/3.2寸LCD屏模塊上還集成了SPI Flash和SPI接口的SD卡座?;贗LI9320驅(qū)動(dòng)芯片的TFT液晶顯示模塊顯示驅(qū)動(dòng)原理: 320*240顯示屏單點(diǎn)26萬(wàn)色(RGB565)接口: I80(并行)系統(tǒng)接口 SPI接口 垂直掃描VSYNC接口 RGB接口通過(guò)寫(xiě)入控制命令到寄存器對(duì)液晶進(jìn)行

22、控制通過(guò)寫(xiě)入顯示數(shù)據(jù)到內(nèi)部GRAM實(shí)現(xiàn)顯示功能硬件連接如下圖: 液晶顯示模塊原理圖 3.2.3 USB接口與電源嵌入式實(shí)驗(yàn)板支持的供電方式主要有三種,如圖1-6所示。分別是:USB 接口供電,最大 500mA。外部直流 5V 供電。JLINK V8 供電,包括 5V 和 3.3V 兩種方式。當(dāng)CON1電源開(kāi)關(guān)撥到1-2位置時(shí),由外部接口供電。板上的電源轉(zhuǎn)換芯片將USB接口輸入的5V電源轉(zhuǎn)換成3.3V的電源,作為處理器和相關(guān)外圍電路的工作電源。當(dāng)CON1電源開(kāi)關(guān)撥到2-3位置時(shí),由USB接口供電。板上的電源轉(zhuǎn)換芯片將USB接口輸入的5V電源轉(zhuǎn)換成3.3V的電源,作為處理器和相關(guān)外圍電路的工作電源

23、。U11為USB接口的ESD防護(hù)電路,滿足ESD防護(hù)標(biāo)準(zhǔn)IEC61000-4-2(ESD 15kV air, 8kV Contact) 。 USB和供電電路原理圖 第四章 軟件設(shè)計(jì) 4.1軟件多任務(wù)結(jié)構(gòu) 1、主函數(shù):創(chuàng)建啟動(dòng)任務(wù)(StartTask) 2、啟動(dòng)任務(wù):實(shí)現(xiàn)硬件的初始化,開(kāi)啟時(shí)鐘節(jié)拍,創(chuàng)建5個(gè)任務(wù)MyTask1、MyTask2、MoveTask、DeadTask、ScoreTask,掛起MoveTask、DeadTask、ScoreTask這3個(gè)任務(wù),最后刪除任務(wù)自身。 3、MyTask1:液晶顯示游戲的初始界面,判斷向右方向鍵是否按下,若按鍵按下則進(jìn)入游戲界面。 4、MyTask

24、2:根據(jù)蛇游動(dòng)的方向確定哪個(gè)按鍵按下有效,根據(jù)按鍵來(lái)控制蛇下一步游動(dòng)的方向。 5、MoveTask:畫(huà)出食物與蛇,根據(jù)下一步方向確定蛇的新位置,若蛇頭撞墻壁或者自身則游戲結(jié)束,若蛇吃掉食物則蛇身長(zhǎng)度長(zhǎng)一節(jié),出現(xiàn)新的食物。 6、DeadTask:在液晶屏上輸出“GAME OVER!”。 7、ScoreTask:在液晶屏上輸出“SCORE”和所得的分?jǐn)?shù)。 4.2 任務(wù)詳細(xì)說(shuō)明 開(kāi)始 1、主函數(shù):進(jìn)行操作系統(tǒng)的初始化,創(chuàng)建啟動(dòng)任務(wù)(StartTask)開(kāi)啟多任務(wù)調(diào)度聲明定義任務(wù)的優(yōu)先級(jí)、??臻g、函數(shù)名稱(chēng),定義數(shù)組、變量操作系統(tǒng)初始化創(chuàng)建啟動(dòng)任務(wù) 開(kāi)啟多任務(wù)調(diào)度 2、啟動(dòng)任務(wù):GPIO的配置與初始化,

25、LCD初始化,開(kāi)啟時(shí)鐘節(jié)拍,創(chuàng)建5個(gè)任務(wù)MyTask1、MyTask2、MoveTask、DeadTask、ScoreTask,掛起MoveTask、DeadTask、ScoreTask這3個(gè)任務(wù),最后刪除任務(wù)自身。 StartTask配置PA0/PA8/PC13/PD3并初始化 初始化LCD 開(kāi)啟時(shí)鐘節(jié)拍 創(chuàng)建5個(gè)任務(wù),分別是MyTask1/MyTask2/MoveTask/ DeadTask/ScoreTask,掛起任務(wù) MoveTask/ DeadTask/ ScoreTask, 刪除任務(wù)自身 3、MyTask1:液晶顯示游戲的初始界面,判斷向右方向鍵是否按下,若按鍵按下則進(jìn)入游戲界面,

26、即恢復(fù)任務(wù)MoveTask與ScoreTask,之后掛起自身,否則保持此游戲初始界面。 MyTask1 定義變量11 液晶顯示”START ” 液晶顯示矩形墻壁 PD3引腳為低電平? N Y 延時(shí)去抖PD3引腳為低電平? N Y n=4,即方向(右)恢復(fù)任務(wù)MoveTask, ScoreTask, 掛起自身任務(wù)延時(shí)進(jìn)入等待態(tài) 4、MyTask2:先判斷當(dāng)前蛇游動(dòng)的方向,若為上、下方向游動(dòng),則判斷控制左、右方向的按鍵是否按下;若向左、右游動(dòng),則判斷控制上、下方向的按鍵是否按下,若對(duì)應(yīng)的按鍵按下則蛇頭轉(zhuǎn)彎然后繼續(xù)游動(dòng)。 MyTask2當(dāng)前蛇游動(dòng)方向?yàn)樯匣蛳???dāng)前蛇游動(dòng)方向?yàn)樽蠡蛴遥?N Y Y P

27、A8引腳為低電平?PD3引腳為低電平?PC13引腳為低電平?PA0引腳為低電平? N N N N Y Y Y Y延時(shí)去抖延時(shí)去抖延時(shí)去抖延時(shí)去抖 PA8引腳為低電平?PD3引腳為低電平?PA0引腳為低電平?PC13引腳為低電平? N N N N 蛇下一個(gè)方向?yàn)橄蜃螅╪=3)蛇下一個(gè)方向?yàn)橄蛴遥╪=4)蛇下一個(gè)方向?yàn)橄蛏希╪=1)Y Y Y Y 蛇下一個(gè)方向?yàn)橄蛳拢╪=2) 延時(shí)進(jìn)入等待態(tài) 5、MoveTask:給蛇身長(zhǎng)度、蛇的位置坐標(biāo)賦初值,判斷蛇下一次要運(yùn)行的方向,然后計(jì)算下一步蛇的每一節(jié)的位置坐標(biāo),清屏、先畫(huà)出食物的位置和墻壁,再根據(jù)計(jì)算的坐標(biāo)值畫(huà)出新蛇,判斷蛇頭是否與食物坐標(biāo)重合,如果重

28、合則分?jǐn)?shù)加100分并且蛇身長(zhǎng)度加一節(jié)(每節(jié)是邊長(zhǎng)為10的矩形),之后判斷蛇是否撞上墻壁和自身,如果撞上了則恢復(fù)死亡任務(wù)、掛起自身任務(wù),否則蛇繼續(xù)前行。 MoveTask 定義蛇的長(zhǎng)度和蛇的初始位置蛇下一個(gè)方向?yàn)橄蛴襫=4?蛇下一個(gè)方向?yàn)橄蜃髇=3?蛇下一個(gè)方向?yàn)橄蛳耼=2?蛇下一個(gè)方向?yàn)橄蛏蟦=1?N N N N Y Y Y Y i=length-1 i=length-1 i=length-1 i=length-1 i 0 ? i 0 ? i 0 ? i 0 ?N Xi=Xi-1Yi=Yi-1Xi=Xi-1Yi=Yi-1Xi=Xi-1Yi=Yi-1 Y N Y N Y N YXi=Xi-1Yi

29、=Yi-1 i - i - i - i - Xlength=Xlength-1; Ylength=Ylength-1; Xlength=Xlength-1; Ylength=Ylength-1; Xlength=Xlength-1; Ylength=Ylength-1; Xlength=Xlength-1; Ylength=Ylength-1; i=length-1 Xlength=Xlength-1; Ylength=Ylength-1; i -Xi=Xi-1Yi=Yi-1 i 0 ? 調(diào)用Draw函數(shù)2121 蛇頭撞上墻壁? Y恢復(fù)DeadTask N掛起自身任務(wù)蛇頭撞上自身? Y恢復(fù)De

30、adTask N延時(shí)進(jìn)入等待態(tài)掛起自身任務(wù)Draw函數(shù)部分畫(huà)出矩形墻壁 清屏顯示白色 i =0 畫(huà)出食物i length N蛇頭坐標(biāo)與食物坐標(biāo)重合? 畫(huà)出矩形(蛇的一節(jié)) i + Y蛇身長(zhǎng)度加1節(jié)得分加100 結(jié)束 6、DeadTask:在液晶屏上輸出“GAME OVER!”。 DeadTask 定義變量并賦值液晶顯示“GAME OVER!”延時(shí)進(jìn)入等待態(tài) 7、ScoreTask:在液晶屏上輸出“SCORE”和所得的分?jǐn)?shù)。 ScoreTask定義變量并賦值液晶顯示“SCORE”液晶顯示當(dāng)前分?jǐn)?shù)延時(shí)進(jìn)入等待態(tài) 第五章 調(diào)試與測(cè)試 5.1調(diào)試首先是實(shí)現(xiàn)蛇的動(dòng)作,考慮到畫(huà)線很難實(shí)現(xiàn)蛇的轉(zhuǎn)向問(wèn)題,就改用矩形框來(lái)畫(huà)蛇,要實(shí)現(xiàn)蛇的動(dòng)作需對(duì)蛇的每一個(gè)矩形框進(jìn)行控制,通過(guò)坐標(biāo)的傳遞可以實(shí)現(xiàn),在老師的幫助下決定用數(shù)組記錄蛇每一節(jié)的位置,這樣就可以清除尾端,實(shí)現(xiàn)蛇的行動(dòng)。墻壁在游戲過(guò)程中是始終存在的,開(kāi)始把畫(huà)矩形墻壁的語(yǔ)句放在MoveTask里結(jié)果顯示閃

溫馨提示

  • 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)論