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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于stc12c5a60s2單片機(jī)的俄羅斯方塊游戲設(shè)計(jì)(編輯修改稿)

2025-02-09 01:02 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 S1S W P BS2S W P BS3S W P BS4S W P BS5S W P BS6S W P BS7S W P B12J1di a ny ua n12J3di a ny ua n1 2 3 4 5 6 7J2C O N 7V C CR11kR21kR31kR41kR51kR61kR71k 圖片 28 控制模塊接口 Fig 28 Control Interface 3 系統(tǒng)軟件平臺(tái)構(gòu)建 μ Vision 簡(jiǎn)介 μVision 是德國(guó) Keil公司開發(fā)的單片機(jī) IDE軟件,最初主要用于 8051系列單片機(jī),目前也有支 ARM系列單片機(jī)的專用版本 MDKARM。本設(shè)計(jì)使用的是 keil μVision 3版本的 開發(fā)軟件 進(jìn)行程序開發(fā) 。 LCD12864 液晶屏 顯示 原理 LCD 模塊總線選擇及時(shí)序 MzL02D 模塊提供了兩個(gè) LCM 的引腳( C86 和 PS 引腳)供用戶選擇模塊的接口類型,分別可以選擇 6800 并行總線、 8080并行總線或者 SPI串行接口。模 塊 默認(rèn)情況下 PS為高電平、 C86為高電平,此時(shí) 為 6800 總線接口類型 , 本設(shè)計(jì)采用 6800總線模式。 在此種接口模式下, WR 線為讀寫控制信號(hào)線,當(dāng) WR 為高電平時(shí)為讀狀態(tài), WR為低電來(lái)時(shí)為寫入狀態(tài)。在 6800總線接口模式下 LCD的時(shí)序如圖 31 所示。 黃忠南 基于單片機(jī)的俄羅斯方塊游戲設(shè)計(jì) 14 圖 31 6800總線時(shí)序 Fig 31 6800 Bus Timing LCD 顯示 RAM 區(qū)映射 概 況 驅(qū)動(dòng)控制芯片的顯示 RAM 區(qū)中,每個(gè) byte 的數(shù)據(jù)對(duì) 應(yīng)屏上的點(diǎn)的排列方式為:縱向排列,低位 在上高位在 下;如圖 32所 示。 MzL02D12864液晶顯示模組的顯示器上的顯示點(diǎn)與驅(qū)動(dòng)控制芯片中的顯示緩存 RAM 是一一對(duì)應(yīng)的;共有 65( 8Page * 8bit + 1) *132個(gè)位的顯示 RAM區(qū)。而顯示器的顯示點(diǎn)陣大小為 64*128點(diǎn),所以實(shí)際上在液晶顯示模塊中有 用的顯示 RAM區(qū)為 64*128個(gè)位;按 byte為單位劃分,共分為 8個(gè)Page,每個(gè) Page為 8行,而每一行為 128個(gè)位。(即 128列)。 圖 32 字節(jié)數(shù)據(jù)排列情況 Fig 32 Byte data arrangement 賀州學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 15 MzL02D12864 液晶 顯示模塊的顯示屏上的每一個(gè)點(diǎn)都對(duì)應(yīng)有控制器片內(nèi)的顯示緩存 RAM 中的一個(gè) bit,顯示屏上 64*128 個(gè)點(diǎn)分別對(duì)應(yīng)著顯示 RAM 的 8 個(gè) Page,每一個(gè) Page 有 128 個(gè) byte 的空間 。因此可知顯示 RAM 區(qū)中的一個(gè) Page 空間對(duì)應(yīng) 8 行的點(diǎn),而該 Page中的一個(gè) byte數(shù)據(jù)則對(duì)應(yīng)一列( 8個(gè)點(diǎn))。 用戶如要點(diǎn)亮 LCD 屏上的某一個(gè)點(diǎn)時(shí),實(shí)際上就是對(duì)該點(diǎn)所對(duì)應(yīng)的顯示 RAM區(qū)中的某一個(gè)位進(jìn)行置 1 操作,所以就要確定該點(diǎn)所處的行地址、列地址。 MzL0212864液晶顯示模組的行地址實(shí)際上就是 Page的信 息,每一個(gè) Page應(yīng)有 8行;而列地址則表示該點(diǎn)的橫坐標(biāo),在屏上為從左到右排列, Page 中的一個(gè) Byte 對(duì)應(yīng)的是一列( 8行,即 8個(gè)點(diǎn)),達(dá) 128 列??梢愿鶕?jù)這樣的關(guān)系在程序中控制 LCD顯示屏的顯示。 LCD 的驅(qū)動(dòng)方法 在很多資料以及書籍當(dāng)中,通常介紹有兩種 LCD模塊的連接方法:直接控制和間接控 制 ;直接控制實(shí)際指的是 LCD模塊的總線接口直接與 MCU端口連接,然后 MCU 通過(guò)程序控制端口來(lái)模擬 LCD 的總線時(shí)序來(lái)完成對(duì)其的控制操作;而間接控制指的是MCU本身就有外部總線拉出,與 LCD的總線接口對(duì) 應(yīng)的連接上,程序中直接操作總線以控制 LCD。目前有很多 MCU 都把總線 密 封起來(lái) 了,都沒(méi)有引出外部總線;所以通常在用 MCU控制 LCD模塊時(shí),時(shí)常會(huì)選擇直接控制的方式,即利用端口來(lái)模擬總線時(shí)序;當(dāng)然了,如果本身就有總線而且也與 LCD模塊的總線配得上的話,肯定會(huì)使用總線連接的間控方式。 本設(shè)計(jì)采用直接控制的方式,將 MzL02D12864 LCD模塊的總配置為 6800總線,這與絕大部分引出外部總線的 MCU 的時(shí)序是不一樣的 。 本設(shè)計(jì)的 LCD12864 模塊中,用戶程序?qū)ζ溥M(jìn)行顯示控制時(shí),無(wú)非就是通過(guò)對(duì) LCD模塊內(nèi)部的驅(qū) 動(dòng)控制器當(dāng)中的寄存器進(jìn)行設(shè)置操作;最常用的如 LCD 的顯示開 /關(guān)、操作顯存地址(行與列地址)的設(shè)置等。這些寄存器一般都在 LCD模塊的驅(qū)動(dòng)控制器文檔中有詳細(xì)介紹。 LCD 驅(qū)動(dòng)程序架構(gòu) LCD12864驅(qū)動(dòng)程序 主要 由 LCD底層驅(qū)動(dòng)和 LCD功能函數(shù)兩 部分 組成。用戶在應(yīng)用層直接使用功能函數(shù)即可。具體框架如圖 33 所示。 黃忠南 基于單片機(jī)的俄羅斯方塊游戲設(shè)計(jì) 16 圖 33 LCD驅(qū)動(dòng)程序架構(gòu) Fig 33 LCD Driver architectures 俄羅斯方塊游戲 設(shè)計(jì) 俄羅斯方塊游戲功能簡(jiǎn)介 俄羅斯方塊游戲的規(guī)則很簡(jiǎn)單,當(dāng)方塊從屏幕上方落下來(lái)時(shí),玩家控制方塊的位置以及旋轉(zhuǎn)方塊,巧妙地安排布置達(dá)到充分利用屏幕空間的目的。每當(dāng)屏幕的一整行被方塊排滿時(shí),作為獎(jiǎng)賞,整行從屏幕上 消 失,剩余的 方塊 依次往下降一行。當(dāng) 方塊堆積達(dá)到無(wú)法再落下方 塊的時(shí)候,游戲結(jié)束。本設(shè)計(jì)中游戲主要的功能點(diǎn)包括: (1) 每 4個(gè)小方塊可以組合成一組方塊群,游戲共有 7種方塊群,每次隨機(jī)產(chǎn)生一種 。玩家使用向左、向右、快速向下這些按鍵控制方塊的位置,旋轉(zhuǎn)按鍵控制方塊順時(shí)針旋轉(zhuǎn)。在主控制手柄上還有退出、暫停 按鈕,可以實(shí)現(xiàn)隨 時(shí)切換到 啟 動(dòng)時(shí)的 狀態(tài)和暫停游戲的功能。 (2) 在本設(shè)計(jì)中,系統(tǒng)為玩家提供了背景音樂(lè),玩家可以根據(jù)個(gè)人喜好開啟或關(guān)閉音效。 (3) 單人模式下,玩家使用主控制器進(jìn)行操作。每消去一行,系統(tǒng)就給玩家加 1分。在單人模式下,如果積分超過(guò)系統(tǒng)記錄的最高積分,系統(tǒng)將更新最高積分。 (4) 本設(shè)計(jì)的亮點(diǎn)是實(shí)現(xiàn)雙人對(duì)戰(zhàn)游戲,通過(guò)主控制器在菜單選項(xiàng)中選擇雙人模式,第二玩家可以通過(guò)副控制器對(duì)第二游戲界面進(jìn)行操作。本游戲系統(tǒng)規(guī)定,雙人對(duì)戰(zhàn)游戲中積分可分為兩個(gè)階段。第一階段是普通積分階段,即雙方玩家每消去一行,其相功能函數(shù)層 字庫(kù) 驅(qū)動(dòng)層函數(shù)聲明 功能函 數(shù) LCD 配置 驅(qū)動(dòng)層 傳輸模式及 IO 端口配置 數(shù)據(jù)傳輸驅(qū)動(dòng) 應(yīng)用層 用戶應(yīng)用程序 功能函數(shù)聲明 賀州學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 17 應(yīng)積分表加 1分;第二階段是多積分階段,即每消去三行才獲得 1個(gè)積分。雙方先達(dá)到第二階段末尾者,即可取勝。同時(shí),該設(shè)計(jì)中還為雙方玩家增加了道具功能,即當(dāng)使用該功能時(shí),可令對(duì)手當(dāng)前 移動(dòng) 圖塊消失,隨機(jī)出下一個(gè)圖塊。當(dāng)玩家一次性消去三行,就能獲得一次道具功能,最多一次性累積 2個(gè)道具。系統(tǒng)默認(rèn)為每個(gè)玩家提供1個(gè)道具。這樣不僅豐富了俄羅斯方塊游戲的功能,而且使其更具趣味性。 系統(tǒng) 界面 的 設(shè)計(jì) (1) 菜單 選項(xiàng) 界面 當(dāng)玩家將本設(shè)計(jì)的作品上電啟動(dòng)后,系統(tǒng)首先在 LCD顯示器件上呈現(xiàn)一個(gè)動(dòng)態(tài)的開機(jī)動(dòng)畫。然后,系統(tǒng)提供三 個(gè) 功能選項(xiàng),即最高積分、游戲設(shè)置、開始游戲。其中,“ 游戲設(shè)置 ” 選項(xiàng)包含了兩級(jí)子菜單。 一級(jí)菜單包括“模式選擇”和“音效選擇”。在這兩個(gè)選項(xiàng)后面給出單字提示,以說(shuō)明當(dāng)前相應(yīng)設(shè)置選項(xiàng)的狀態(tài)。“模式選擇” 菜單 包含的二級(jí)子菜單有“單人模式”和“雙人模式”?!耙粜нx擇” 菜單 包含的二級(jí)子菜單有“開音效”和“關(guān)音效”通過(guò)控制按鍵即可設(shè)置成相應(yīng)狀態(tài)。 “最高積分” 菜單 選項(xiàng)為玩家提供單人模式下系統(tǒng)記憶的最高積分。如果選擇了“開始游戲” 菜單 選項(xiàng), 則系統(tǒng)根據(jù) “游戲設(shè)置” 選項(xiàng) 中的設(shè)置啟動(dòng)相應(yīng)的游戲界面。 菜單選項(xiàng)界面框架如圖 34所示。 圖 34 菜單選項(xiàng)界面 框架 Fig 34 The menu option interface framework (2) 游戲 操作 界面 首先,我們先來(lái) 介紹 單人模式下游戲界面的一些情況。 在啟動(dòng)單人模式后,菜單功能界面框架 最高積分 游戲設(shè)置 開始游戲 模式選擇 音效選擇 單人模式 雙人模式 開音效 關(guān)音效 黃忠南 基于單片機(jī)的俄羅斯方塊游戲設(shè)計(jì) 18 LCD12864顯示屏分成兩屏,左半屏為俄羅斯方塊游戲地圖 —— map區(qū),右半屏為俄羅斯方塊圖形預(yù)覽區(qū)和實(shí)時(shí)積分顯示區(qū)。 其 結(jié)構(gòu) 框架如圖 35所示。 圖 35 單人模式界面結(jié)構(gòu)框架 Fig 35 The singleplayer game interface architecture 其次,如果玩家啟動(dòng)的是雙人模式, LCD12864 顯示屏也分為兩屏,左屏由主控器操作,稱為 map1區(qū),右屏由副控制器操作,稱為 map2區(qū)。在兩屏中間是雙方 積分顯示區(qū) 和 各自的道具數(shù)量顯示區(qū)。其 結(jié)構(gòu) 框架如圖 36所示。 圖 36 雙人模式界面結(jié)構(gòu)框架 Fig 36 Double mode interface architecture 系統(tǒng)界面整體 程 序流程圖如圖 37所示。 啟動(dòng)單人模式 左半屏 圖形預(yù)覽 游戲 map 區(qū) 右半屏 積分顯示 雙人模式 雙方積分進(jìn)度條 雙方道具使用情況 積分和道具區(qū) Map2 區(qū) map1 區(qū) 賀州學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 19 圖 37 開機(jī)界面功能框架 Fig 37 Boot interface function frame 游戲系統(tǒng)“枚舉算法”概述 本文繞開了澀難懂、比較復(fù)雜的“矩陣算法”,提出了另一種“枚舉算法”來(lái)實(shí)現(xiàn)這個(gè)經(jīng)典游戲?!懊杜e算法”沒(méi)有復(fù)雜的數(shù)學(xué)理論、避免了在程序中大量使用矩陣運(yùn)算公式,設(shè)計(jì)思路清晰、明了,非常適合游戲設(shè)計(jì)的初學(xué)者理解和實(shí)現(xiàn)。 所謂枚舉算法,就是直接枚舉出游戲中 各圖 塊的基本形狀和它們的旋轉(zhuǎn)形狀,然后控制每一種不同形狀的方塊在游戲戲中的產(chǎn)生、移動(dòng)、旋轉(zhuǎn)、落下、填滿和清除等N Y Y N N Y Y N Y 單人模式 音效選擇 模式選擇 游戲設(shè)置 雙 人模式 音效關(guān) 音效開 清模式標(biāo)志 置模式標(biāo)志 返回上一級(jí) 清音效標(biāo)志 置音效標(biāo)志 返回上一級(jí) 開機(jī) 啟動(dòng)動(dòng)畫 進(jìn)入主菜單 顯示單人最高積分 返回按鍵 最高積分 開始游戲 進(jìn)入游戲 游戲設(shè)置 模式選擇 音效選擇 ?? ?? 黃忠南 基于單片機(jī)的俄羅斯方塊游戲設(shè)計(jì) 20 游戲過(guò)程。 俄羅斯方塊造型設(shè)計(jì)的方法 眾所周知,俄羅斯方塊一般有七種基本形狀,每個(gè)基本形狀都由 4 個(gè)正方形的小方塊構(gòu)成。利用小方塊不同的擺放位置,可產(chǎn)生 19 種旋轉(zhuǎn)型圖塊。這七種圖形分別是“ I型”、“ L型”、“反 L型”、“ Z型”、“反 Z 型”、“口型”、“ T型”。如圖 38所示。 圖 38 方塊模型 Fig 38 Square model 本系統(tǒng)在構(gòu)造 19 個(gè)方塊模型 時(shí)的思路是:定義一個(gè)數(shù)組,用以存儲(chǔ)各個(gè)模型中 4個(gè)小方塊的頂點(diǎn)坐標(biāo)。比如 L型,其數(shù)據(jù)結(jié)構(gòu)為{ 0,0,0,4,0,8,4,8}。其中,每?jī)蓚€(gè)數(shù)據(jù)為一個(gè)小正方形的列、行坐標(biāo) ,如圖 39 所示。由圖可知,整個(gè)界面的坐標(biāo)原點(diǎn)在左上角,分別向右、向下作為橫軸的正方向和縱軸的正方向。圖中每一格代表了LCD12864中的連續(xù)四行,第 1格的坐標(biāo)是( 0,0);第 2格的坐標(biāo)是( 0,4);第 3格的坐標(biāo)是( 0,8);第 4格的坐標(biāo)是( 4,8);其它圖塊也按此方法編輯數(shù)組內(nèi)容。 圖 39 L型 Fig 39 L Shape 隨機(jī)產(chǎn)生俄羅斯方塊的方法 (1) 產(chǎn)生隨機(jī)數(shù)的理論依據(jù) 為了實(shí)現(xiàn)隨機(jī)落下各類方塊圖形,游戲過(guò)程序中必須抽取隨機(jī)數(shù)來(lái)確定方塊的類I 型 L 型 反 L 型 T 型 Z 型 反 Z型 口型 2 3 4 1 賀州學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 21 型。隨機(jī)數(shù)是一個(gè)既簡(jiǎn)單又復(fù)雜的問(wèn)題。 本設(shè)計(jì)采用眾所周知的線性疊加法,雖然沒(méi)有完美的方法產(chǎn)生隨機(jī)數(shù),不過(guò)線性疊加法是一個(gè)合適的方法,它徹底解決了 8位機(jī)隨機(jī)數(shù)的問(wèn)題。如果 從 一個(gè)足夠長(zhǎng)的數(shù)字序列中 的 某 一個(gè) 點(diǎn) 取出 一邊串的 數(shù)字,那么 這些 數(shù)字就看似隨機(jī)。 這個(gè)開始的點(diǎn)(數(shù)字)叫做種子。如果從相同的點(diǎn)(種子)開始,將會(huì)得到相同的數(shù)字, 這是因?yàn)槲覀兪菑墓潭ǖ男蛄兄腥?shù)字(所以叫偽隨機(jī))。但這卻是一個(gè)有用的特性,我們可以每次從不同的點(diǎn)取數(shù),即改變種子,從而 可以 實(shí)現(xiàn)真正的隨機(jī)。 (2) “線性疊加法” 的 概況 “線性疊加法”其實(shí)只涉及二個(gè)內(nèi)容 即:乘法和加法。只需三個(gè)步驟即:第一,為了取得新的種子,舊的種子 與 一個(gè)常數(shù) A相乘;第二,所得的結(jié)果 和第二個(gè)常數(shù) C相加;第三,新的種子 就 是 第二步
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1