




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于51單片機(jī)的俄羅斯方塊游戲設(shè)計 基于單片機(jī)的俄羅斯方塊游戲設(shè)計摘 要 俄羅斯方塊是一款風(fēng)行全球的益智游戲。它規(guī)那么簡單,容易上手,且游戲過程變化無窮,使用戶在游戲中得到樂趣。 本文討論了一種基于增強(qiáng)型單片機(jī)硬件平臺和實時操作系統(tǒng)的智能俄羅斯方塊游戲的設(shè)計與實現(xiàn)。該設(shè)計選用的處理器型號為STC12C5A60S2的單片機(jī),實時操作系統(tǒng)采用適用于8051處理器的RTX51 Tiny多任務(wù)實時操作系統(tǒng)。重點從軟件工程角度論述了俄羅斯方塊模型構(gòu)造,圖形旋轉(zhuǎn),坐標(biāo)變換,雙人游戲中多任務(wù)實時操作的設(shè)計法方,以及背景音樂的處理等技術(shù)。同時,該設(shè)計的獨(dú)創(chuàng)性是在8051系列單片機(jī)中使用操作系統(tǒng)實現(xiàn)了雙人游戲和
2、音效的添加。關(guān)鍵詞:單片機(jī);RTX51;LCD;俄羅斯方塊 ABSTRACT Tetris is a section became popular in the world of puzzles.The rules are simple, easy to operate and the game process changes.Users in the game to get fun. This paper discussed a method based on enhanece microcontroller hardware platform and real-time operating
3、 system of intelligent Tetris game of design and implementa- tion.This design multi-back STC12C5A60S2 single-chip processor regult and real-time operating system adopt suitable for the 8051 processor RTX51 of multi-tasking real- time operating system.This paper mainly discusses the from software eng
4、ineering tetris model of structure,graphics rotation,coordinate transform,the double game multitasking real-time operating design,and the background music of the formation of technology.At the same time,the design originality in the 8051series micro- controller is used in the operating system realiz
5、ing double game and sound add.Key words: singlechip;RTX51;LCD;Tetris目 錄摘 要IABSTRACTII1 緒 論11.1 課題背景11.2 課題的主要研究內(nèi)容11.3 課題的研究現(xiàn)狀及意義12 系統(tǒng)硬件平臺設(shè)計22.1 STC12C5A60S2單片機(jī)概述22.2 STC12C5A60S2最小系統(tǒng)32.3 電源系統(tǒng)32.4 振蕩電路32.5 復(fù)位系統(tǒng)42.6 程序下載系統(tǒng)52.7 音樂播放系統(tǒng)62.8 LCD液晶顯示接口電路62.9 操作控制接口73 系統(tǒng)軟件平臺構(gòu)建83.1 Vision簡介83.2 LCD12864液晶屏顯示
6、原理83.2.1 LCD模塊總線選擇及時序83.2.2 LCD顯示RAM區(qū)映射概況93.2.3 LCD的驅(qū)動方法103.2.4 LCD驅(qū)動程序架構(gòu)103.3 俄羅斯方塊游戲設(shè)計113.3.1 俄羅斯方塊游戲功能簡介113.3.2 系統(tǒng)界面的設(shè)計123.3.3 游戲系統(tǒng)“枚舉算法概述143.3.4 俄羅斯方塊造型設(shè)計的方法153.3.5 隨機(jī)產(chǎn)生俄羅斯方塊的方法153.3.6 俄羅斯方塊平移的實現(xiàn)方法173.3.7 俄羅斯方塊旋轉(zhuǎn)的實現(xiàn)方法183.3.8 俄羅斯方塊下移的實現(xiàn)方法203.3.9 滿行檢測及消行功能的實現(xiàn)方法213.3.10 游戲積分的計算方法223.4 雙人俄羅斯方塊游戲設(shè)計24
7、3.4.1 RTX51 Tiny簡介243.4.2 RTX51 Tiny的內(nèi)核分析243.4.3 游戲開發(fā)環(huán)境的配置273.4.4 雙人單機(jī)對戰(zhàn)模式的實現(xiàn)流程283.5 系統(tǒng)背景音樂的設(shè)計283.5.1音樂的設(shè)計原理283.5.2 音樂播放的實現(xiàn)方法303.5.3 音效程序流程303.6 系統(tǒng)主程序流程圖314 產(chǎn)品功能說明與系統(tǒng)性能測試324.1 產(chǎn)品功能說明324.2 系統(tǒng)性能測試335 結(jié)束語33參考文獻(xiàn)35致 謝1 緒 論1.1 課題背景 如今,計算機(jī)系統(tǒng)的開展已明顯地朝三個方向開展,這三個方向就是:巨型化,單片化,網(wǎng)絡(luò)化。對于解決復(fù)雜計算和高速數(shù)據(jù)處理的問題仍然是巨型機(jī)在起作用,因而
8、,目前巨型機(jī)正在朝高速及高處理能力的方向開展。單片機(jī)在出現(xiàn)時Intel公司就給其單片機(jī)取名為嵌入式微控制器4。單片機(jī)的最明顯的優(yōu)勢,就是可以嵌入到各種儀器、設(shè)備中。這一點是巨型機(jī)和網(wǎng)絡(luò)不可能做到的。單片機(jī)在內(nèi)部已集成了?來?多的部件,這些部件包括一般常用的電路,例如:定時器,比擬器,EEPROM,D/A轉(zhuǎn)換器,串行通信接口,Watchdog電路等。 同時,俄羅斯方塊是一款風(fēng)行全球的電視游戲機(jī)和掌上游戲機(jī)游戲,目前在網(wǎng)絡(luò)單機(jī)游戲和kele8等上都有它的身影。而它曾經(jīng)造成的轟動與經(jīng)濟(jì)價值可以說是游戲史上一件大事。因此,對它的研究,無論從技術(shù)上,還是社會意義上看都是很有價值的。 單片機(jī)在游戲上的應(yīng)用
9、是具有非常大的潛力的,它能將游戲帶入到另一個階段。此次設(shè)計僅僅是為了舉一個單片機(jī)在游戲應(yīng)用方面的簡單例子,它可以很好的說明單片機(jī)功能的強(qiáng)大,表達(dá)其更高的可控性和高集成度的好處,因此它可以在電子游戲方面成為一個不可計量的明日之星。1.2 課題的主要研究內(nèi)容 本課題研究和實現(xiàn)了基于8051+RTX51到Tiny平臺下的智能俄羅斯方塊游戲系統(tǒng)。主要研究內(nèi)容是實現(xiàn)智能俄羅斯方塊游戲系統(tǒng)軟硬件平臺的搭建;本系統(tǒng)以8051微處理器為核心來運(yùn)行RTX51 Tiny多任務(wù)實時操作系統(tǒng),利用KEIL C51開發(fā)工具進(jìn)行軟件開發(fā),通過LCD12864液晶屏顯示游戲界面。該設(shè)計能實現(xiàn)單人單機(jī)游、雙人單機(jī)對戰(zhàn)游戲、游
10、戲背景音樂的播放和單人最高積分存儲等功能。 在俄羅斯方塊游戲系統(tǒng)開發(fā)過程中,本文作者首先進(jìn)行硬件平臺的搭建,包括單片機(jī)最小系統(tǒng)的搭建、電源系統(tǒng)的搭建、串口下載器的設(shè)計、游戲手柄的設(shè)計、音效播放模塊的設(shè)計以及LCD液晶顯示接口的設(shè)計。然后,作者才開展軟件平臺的構(gòu)建,這也是本設(shè)計的重要局部,主要包括對RTX51 Tiny操作系統(tǒng)的配置、俄羅斯方塊模型的設(shè)計、模型圖塊的旋轉(zhuǎn)及坐標(biāo)變換設(shè)計、雙人單機(jī)對戰(zhàn)游戲設(shè)計和音效系統(tǒng)設(shè)計等。最后,從硬件和軟件兩方面對完成的智能俄羅斯方塊游戲系統(tǒng)進(jìn)行調(diào)試及運(yùn)行試驗。1.3 課題的研究現(xiàn)狀及意義 現(xiàn)今國內(nèi)外的俄羅斯方塊游戲設(shè)計主要有基于PC機(jī)上Windows平臺的俄羅
11、斯方塊游戲、基于 平臺的智能俄羅斯方塊游戲以及基于單片機(jī)平臺的俄羅斯方塊游戲等。前兩種屬于高端游機(jī),性能優(yōu)越,但本錢高,而且計算機(jī)編程已不是新命題,VB、VC、Delphi版本的俄羅斯方塊游戲都有發(fā)布9。 從學(xué)術(shù)角度來看,針對俄羅斯方塊游戲的開發(fā),國內(nèi)外也有不少學(xué)者展開過研究,比方Niko將進(jìn)化算法引入到俄羅斯方塊中并驗證了其有效性,Hoogeboom探討了俄羅斯方塊游戲的構(gòu)造問題,王宇等針對存在于俄羅斯方塊中的兩個數(shù)學(xué)問題提出解決方案,高凌琴探討游戲功能要求、數(shù)據(jù)結(jié)構(gòu)、圖形旋轉(zhuǎn)、坐標(biāo)變換等關(guān)鍵技術(shù),胡代弟在SPCE061A單片機(jī)實現(xiàn)了俄羅斯方塊游戲10。 綜上,國內(nèi)外的研究多著重于游戲數(shù)學(xué)原
12、理的討論,也有局部文獻(xiàn)涉及游戲的具體實現(xiàn),但多是在Windows操作系統(tǒng)下實現(xiàn)的,在單片機(jī)平臺下的開發(fā)俄羅斯方塊游戲鮮少有文獻(xiàn)刊載。而單片機(jī)由于具有體積小、性能突出、價格低廉等特點,應(yīng)用領(lǐng)域不斷擴(kuò)大,除了工業(yè)控制、智能化儀表、家用電器外,在智能化高檔電子玩具產(chǎn)品也大量采用單片機(jī)芯片作為核心控制部件。曾經(jīng)80年代非常流行的掌上游戲機(jī)便是單片機(jī)在電子玩具中的應(yīng)用之一,其中的俄羅斯方塊游戲現(xiàn)已被我們所熟知。 本文探討基于8051單片機(jī)硬件平臺和RTX51 Tiny多任務(wù)實時操作系統(tǒng)的俄羅斯方塊游戲的設(shè)計與實現(xiàn),將理論與實踐相結(jié)合。其主要目標(biāo)是再現(xiàn)經(jīng)典的俄羅斯方塊游戲,并在此根底上實現(xiàn)雙人單機(jī)對戰(zhàn)游戲
13、模式,以豐富產(chǎn)品功能,增強(qiáng)游戲的趣味性。 2 系統(tǒng)硬件平臺設(shè)計2.1 STC12C5A60S2單片機(jī)概述 STC12C5A60S2系列單片機(jī)是宏晶科技生產(chǎn)的單時鐘/機(jī)器周期(1T)的單片機(jī),是高速、低功耗、超強(qiáng)抗干擾的新一代8051系列單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快812倍。用戶程序空間為60KB,片上集成1280字節(jié)RAM,具有EEPROM功能,能夠額外儲蓄1KB的數(shù)據(jù)。該單片機(jī)共有4個16位定時器,兩個與傳統(tǒng)8051兼容的定時器/計數(shù)器,即16位定時器T0和T1,沒有定時器2,但有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路PCA模塊可由T0的溢出在P3.4/T0輸
14、出時鐘,可由T1的溢出在P3.5/T1輸出時鐘,此兩路可編程計數(shù)器陣列(PCA)可用來再實現(xiàn)2個定時器。此外,STC12C5A60S2內(nèi)部還集成810專用復(fù)位電路,2路PWM,8路高速度10位A/D轉(zhuǎn)換(250K/S),針對電機(jī)控制,強(qiáng)干擾場地合。 綜上所述,STC12C5A605S2單片機(jī)具有許多強(qiáng)大的功能,能夠滿足大多數(shù)用戶對8位單片機(jī)的要求。2.2 STC12C5A60S2最小系統(tǒng) 單片機(jī)最小系統(tǒng)主要由電源、振蕩、復(fù)位電路以及擴(kuò)展電路等局部組成。在本設(shè)計中,擴(kuò)展了液晶顯示接口。因此,本設(shè)計的最小系統(tǒng)如圖2-1所示。圖 2-1 STC12C5A60S2最小系統(tǒng)Fig 2-1 STC12C5
15、A60S2 Minimum System2.3 電源系統(tǒng) 本設(shè)計的電源系統(tǒng)比擬簡單,直接由LM7805穩(wěn)壓芯片輸出的+5V電源供電。具體電路如圖2-2所示。 圖片2-2 電源系統(tǒng)Fig 2-2 Power System2.4 振蕩電路 單片機(jī)系統(tǒng)里都有振蕩電路,在單片機(jī)系統(tǒng)里晶振作用非常大,全稱叫晶體振蕩器,它結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時鐘頻率,單片機(jī)晶振提供的時鐘頻率?高,那么單片機(jī)運(yùn)行速度就?快,單片機(jī)的一切指令執(zhí)行都是依靠單片機(jī)晶振提供的時鐘頻率。4 晶振通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時鐘頻率。本設(shè)計中STC12C5A60S2使用12MHz的晶體振蕩器作為振蕩源,由于
16、單片機(jī)內(nèi)部帶有振蕩電路,所以外部只要連接一個晶振和兩個電容即可,電容容量一般在15pF至50pF之間。如圖2-3所示即為本設(shè)計的振蕩電路。圖 2-3 振蕩電路Fig 2-3 oscillatory circuit2.5 復(fù)位系統(tǒng) MCS51單片機(jī)通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。通常因為系統(tǒng)運(yùn)行等需要,常常需要人工復(fù)位,本設(shè)計采用按鈕復(fù)位的方式,即按下開關(guān)一定時間就能使RTS引腳端為高電平,從而使單片機(jī)復(fù)位。同時,簡單復(fù)位電路中,干擾信號易串入復(fù)位端,由此可能會引起內(nèi)部某些存放器錯誤復(fù)位,這時可在RST引腳上接去耦電容。在STC12C5A60S2單片機(jī)中有兩個復(fù)位端口,即RST/P4.7
17、、RST2/P4.6,當(dāng)晶振頻率小于或等于12MHz時,使用RST端口。由于本設(shè)計使用外接12MHz的晶振作為振蕩時鐘,所以采用如圖2-4所示的復(fù)位系統(tǒng)。圖 2-4 復(fù)位系統(tǒng)Fig 2-4 Rest System2.6 程序下載系統(tǒng) 單片機(jī)系統(tǒng)的傳統(tǒng)編程方式是先將單片機(jī)從電路板上取下,放入專用的編程器進(jìn)行編程,再放入電路板進(jìn)行調(diào)試。其缺點是頻繁拔插器件容易損壞器件的引腳;如果頻繁的調(diào)試程序,必須重復(fù)拔插,大降低了開發(fā)效率。ISP(在線系統(tǒng)編程)技術(shù)是一種無需將存儲芯片從嵌入式設(shè)備上取出就能對其進(jìn)行編程的過程。其優(yōu)點是,即使器件焊接在電路板上,仍可對其進(jìn)行編程。在線系統(tǒng)可編程是Flash存儲器的
18、固有特性(通常無需額外電路),Flash幾乎都采用這種方式編程。 ISP的實現(xiàn)相對要簡單一些,一般通用做法是內(nèi)部的存儲器可以由上位機(jī)的軟件通過串口來進(jìn)行改寫。對于8051系列單片機(jī)來講可通過SPI接口或其它的串行接口接收上位機(jī)傳來的數(shù)據(jù)并寫入存儲器中。而上位機(jī)PC機(jī)與下位機(jī)單片機(jī)通過RS-232串行接口總線進(jìn)行的串行通信。8051系列單片機(jī)帶有一個全雙工的串行接口,因此用RS-232串行接口總線非常方便。PC機(jī)配置RS-232標(biāo)準(zhǔn)接口,RS-232信號電平為負(fù)邏輯(邏輯“0為+12V ;邏輯“1為-12V),8051單片機(jī)輸入、輸出電平為TTL電平(邏輯“0為小于等于0.5V;邏輯“1為大于等
19、于2.4V)。所以8051單片機(jī)與PC機(jī)間點對點異步通信需加電平轉(zhuǎn)換電路,否那么將燒壞TTL電路。232是IM公司生產(chǎn)的電平轉(zhuǎn)換器件,只需在外部接入相應(yīng)的電解電容即可。因此,本設(shè)計采用直連串口線進(jìn)行串口通信,其中STC12C5A60S2的P30/RXD和P31/TXD分別和下載器的第10管腳/T和第9管腳/R相連,串口線的第5管腳接地,2、3管腳和下載器的7、8管腳相連。具體電路如圖2-5所示。圖 2-5 程序下載系統(tǒng)Fig 2-5 Program Download System2.7 音樂播放系統(tǒng) 在本設(shè)計中,音樂播放系統(tǒng)是通過三極管驅(qū)動有源蜂鳴器發(fā)聲,而具體的音符聲調(diào)那么由程序控制。因此,
20、音樂播放系統(tǒng)的硬件電路非常簡單。具體接法為有源蜂鳴器正極直接接+5V電源,負(fù)極與三極管8050的發(fā)射極相連,8050的集電極直接接地,其基極串一個1K的電阻連接到STC12C5A60S2單片機(jī)的P20端口。如圖2-6所示。 圖片2-6 音樂播放系統(tǒng)Fig 2-6 Music Player System2.8 LCD液晶顯示接口電路 液晶顯示屏是整個系統(tǒng)硬件的重要組成局部,擔(dān)當(dāng)著人機(jī)交互的重要角色。本設(shè)計采用銘正同創(chuàng)公司生產(chǎn)的MzL02D-12864液晶點陣屏作為顯示器件。它是一塊128*64點陣的LCD顯示模組,模組上的LCM采用COG技術(shù)將控制(包括顯存)、驅(qū)動器集成在LCM的玻璃上,接口簡
21、單、操作方便。其特點為單電源供電,比照度編程可調(diào),可采用并行接口為6800/8080時序或者串行SPI的MPU接口方式,整塊液晶屏由3.3V的白色LED背光,美觀大方。其外部接口分為電源端口、數(shù)據(jù)端口和命令端口三局部組成。本設(shè)計中LCD的數(shù)據(jù)端口連接到STC12C5A60S2單片機(jī)的P0端口,LCD的命令端口連接到單片機(jī)的P2端口。具體硬件電路如圖2-7所示。圖 2-7 LCD液晶顯示接口電路Fig 2-7 Liquid Display Interface Circuit2.9 操作控制接口 操作控制模塊是智能俄羅斯方塊游戲系統(tǒng)的輸入器件。它包括主控制器和輔助控制器。主控制器包括七個按鍵,分別
22、為:旋轉(zhuǎn)/確定、向左/返回上級菜、向右/下一個、快速下降、使用道具、暫停、退出。副控制器那么包括五個按鍵,分別為:旋轉(zhuǎn)/確定、向左/返回上級菜、向右/下一個、快速下降、使用道具。在硬件電路方面輔控制器比主控制器少兩個按鍵的連接。如圖2-8所示為主控制器的接線圖。與單片機(jī)的具體接口可根據(jù)實際設(shè)定。圖片2-8 控制模塊接口Fig 2-8 Control Interface 3 系統(tǒng)軟件平臺構(gòu)建3.1 Vision簡介 Vision是德國Keil公司開發(fā)的單片機(jī)IDE軟件,最初主要用于8051系列單片機(jī),目前也有支ARM系列單片機(jī)的專用版本MDK-ARM。本設(shè)計使用的是keil Vision3版本的
23、開發(fā)軟件進(jìn)行程序開發(fā)。3.2 LCD12864液晶屏顯示原理3.2.1 LCD模塊總線選擇及時序 MzL02D模塊提供了兩個LCM的引腳(C86和PS引腳)供用戶選擇模塊的接口類型,分別可以選擇6800并行總線、8080并行總線或者SPI串行接口。模塊默認(rèn)情況下PS為高電平、C86為高電平,此時為6800總線接口類型,本設(shè)計采用6800總線模式。在此種接口模式下,WR 線為讀寫控制信號線,當(dāng)WR 為高電平時為讀狀態(tài),WR為低電來時為寫入狀態(tài)。在6800總線接口模式下LCD的時序如圖3-1所示。圖 3-1 6800總線時序Fig 3-1 6800 Bus Timing3.2.2 LCD顯示RAM
24、區(qū)映射概況 驅(qū)動控制芯片的顯示RAM區(qū)中,每個byte的數(shù)據(jù)對應(yīng)屏上的點的排列方式為:縱向排列,低位在上高位在下;如圖3-2所示。MzL02D-12864液晶顯示模組的顯示器上的顯示點與驅(qū)動控制芯片中的顯示緩存RAM是一一對應(yīng)的;共有65(8Page * 8bit + 1)*132個位的顯示RAM區(qū)。而顯示器的顯示點陣大小為64*128點,所以實際上在液晶顯示模塊中有用的顯示RAM區(qū)為64*128個位;按byte為單位劃分,共分為8個Page,每個Page為8行,而每一行為128個位。(即128列)。圖 3-2 字節(jié)數(shù)據(jù)排列情況Fig 3-2 Byte data arrangement MzL
25、02D-12864液晶顯示模塊的顯示屏上的每一個點都對應(yīng)有控制器片內(nèi)的顯示緩存RAM中的一個bit,顯示屏上64*128個點分別對應(yīng)著顯示RAM的8個Page,每一個Page有128個byte的空間。因此可知顯示RAM區(qū)中的一個Page空間對應(yīng)8行的點,而該P(yáng)age中的一個byte數(shù)據(jù)那么對應(yīng)一列(8個點)。 用戶如要點亮LCD屏上的某一個點時,實際上就是對該點所對應(yīng)的顯示RAM區(qū)中的某一個位進(jìn)行置1操作,所以就要確定該點所處的行地址、列地址。MzL02-12864液晶顯示模組的行地址實際上就是Page的信息,每一個Page應(yīng)有8行;而列地址那么表示該點的橫坐標(biāo),在屏上為從左到右排列,Page
26、中的一個Byte對應(yīng)的是一列(8行,即8個點),達(dá)128列。可以根據(jù)這樣的關(guān)系在程序中控制LCD顯示屏的顯示。 LCD的驅(qū)動方法 在很多資料以及書籍當(dāng)中,通常介紹有兩種 LCD模塊的連接方法:直接控制和間接控制;直接控制實際指的是 LCD模塊的總線接口直接與MCU端口連接,然后 MCU 通過程序控制端口來模擬 LCD的總線時序來完成對其的控制操作;而間接控制指的是MCU本身就有外部總線拉出,與LCD的總線接口對應(yīng)的連接上,程序中直接操作總線以控制LCD。目前有很多MCU 都把總線密封起來了,都沒有引出外部總線;所以通常在用MCU控制LCD模塊時,時常會選擇直接控制的方式,即利用端口來模擬總線時
27、序;當(dāng)然了,如果本身就有總線而且也與LCD模塊的總線配得上的話,肯定會使用總線連接的間控方式。 本設(shè)計采用直接控制的方式,將MzL02D-12864 LCD模塊的總配置為6800總線,這與絕大局部引出外部總線的MCU的時序是不一樣的。本設(shè)計的LCD12864模塊中,用戶程序?qū)ζ溥M(jìn)行顯示控制時,無非就是通過對LCD模塊內(nèi)部的驅(qū)動控制器當(dāng)中的存放器進(jìn)行設(shè)置操作;最常用的如LCD的顯示開/關(guān)、操作顯存地址(行與列地址)的設(shè)置等。這些存放器一般都在LCD模塊的驅(qū)動控制器文檔中有詳細(xì)介紹。3.2.4 LCD驅(qū)動程序架構(gòu) LCD12864驅(qū)動程序主要由LCD底層驅(qū)動和LCD功能函數(shù)兩局部組成。用戶在應(yīng)用層
28、直接使用功能函數(shù)即可。具體框架如圖3-3所示。圖 3-3 LCD驅(qū)動程序架構(gòu)Fig 3-3 LCD Driver architectures3.3 俄羅斯方塊游戲設(shè)計3.3.1 俄羅斯方塊游戲功能簡介 俄羅斯方塊游戲的規(guī)那么很簡單,當(dāng)方塊從屏幕上方落下來時,玩家控制方塊的位置以及旋轉(zhuǎn)方塊,巧妙地安排布置到達(dá)充分利用屏幕空間的目的。每當(dāng)屏幕的一整行被方塊排滿時,作為獎賞,整行從屏幕上消失,剩余的方塊依次往下降一行。當(dāng)方塊堆積到達(dá)無法再落下方塊的時候,游戲結(jié)束。本設(shè)計中游戲主要的功能點包括:1 每4個小方塊可以組合成一組方塊群,游戲共有7種方塊群,每次隨機(jī)產(chǎn)生一種;玩家使用向左、向右、快速向下這些
29、按鍵控制方塊的位置,旋轉(zhuǎn)按鍵控制方塊順時針旋轉(zhuǎn)。在主控制手柄上還有退出、暫停按鈕,可以實現(xiàn)隨時切換到啟動時的狀態(tài)和暫停游戲的功能。2 在本設(shè)計中,系統(tǒng)為玩家提供了背景音樂,玩家可以根據(jù)個人喜好開啟或關(guān)閉音效。3 單人模式下,玩家使用主控制器進(jìn)行操作。每消去一行,系統(tǒng)就給玩家加1分。在單人模式下,如果積分超過系統(tǒng)記錄的最高積分,系統(tǒng)將更新最高積分。4 本設(shè)計的亮點是實現(xiàn)雙人對戰(zhàn)游戲,通過主控制器在菜單項選擇項中選擇雙人模式,第二玩家可以通過副控制器對第二游戲界面進(jìn)行操作。本游戲系統(tǒng)規(guī)定,雙人對戰(zhàn)游戲中積分可分為兩個階段。第一階段是普通積分階段,即雙方玩家每消去一行,其相應(yīng)積分表加1分;第二階段是
30、多積分階段,即每消去三行才獲得1個積分。雙方先到達(dá)第二階段末尾者,即可取勝。同時,該設(shè)計中還為雙方玩家增加了道具功能,即當(dāng)使用該功能時,可令對手當(dāng)前移動圖塊消失,隨機(jī)出下一個圖塊。當(dāng)玩家一次性消去三行,就能獲得一次道具功能,最多一次性累積2個道具。系統(tǒng)默認(rèn)為每個玩家提供1個道具。這樣不僅豐富了俄羅斯方塊游戲的功能,而且使其更具趣味性。3.3.2 系統(tǒng)界面的設(shè)計1 菜單項選擇項界面 當(dāng)玩家將本設(shè)計的作品上電啟動后,系統(tǒng)首先在LCD顯示器件上呈現(xiàn)一個動態(tài)的開機(jī)動畫。然后,系統(tǒng)提供三個功能選項,即最高積分、游戲設(shè)置、開始游戲。其中,“游戲設(shè)置選項包含了兩級子菜單。一級菜單包括“模式選擇和“音效選擇。
31、在這兩個選項后面給出單字提示,以說明當(dāng)前相應(yīng)設(shè)置選項的狀態(tài)?!澳J竭x擇菜單包含的二級子菜單有“單人模式和“雙人模式?!耙粜нx擇菜單包含的二級子菜單有“開音效和“關(guān)音效通過控制按鍵即可設(shè)置成相應(yīng)狀態(tài)?!白罡叻e分菜單項選擇項為玩家提供單人模式下系統(tǒng)記憶的最高積分。如果選擇了“開始游戲菜單項選擇項,那么系統(tǒng)根據(jù)“游戲設(shè)置選項中的設(shè)置啟動相應(yīng)的游戲界面。菜單項選擇項界面框架如圖3-4所示。 圖 3-4 菜單項選擇項界面框架 Fig 3-4 The menu option interface framework 2 游戲操作界面 首先,我們先來介紹單人模式下游戲界面的一些情況。在啟動單人模式后,LCD1
32、2864顯示屏分成兩屏,左半屏為俄羅斯方塊游戲地圖?map區(qū),右半屏為俄羅斯方塊圖形預(yù)覽區(qū)和實時積分顯示區(qū)。其結(jié)構(gòu)框架如圖3-5所示。 圖 3-5 單人模式界面結(jié)構(gòu)框架 Fig 3-5 The single-player game interface architecture 其次,如果玩家啟動的是雙人模式,LCD12864顯示屏也分為兩屏,左屏由主控器操作,稱為map1區(qū),右屏由副控制器操作,稱為map2區(qū)。在兩屏中間是雙方積分顯示區(qū)和各自的道具數(shù)量顯示區(qū)。其結(jié)構(gòu)框架如圖3-6所示。 圖 3-6 雙人模式界面結(jié)構(gòu)框架 Fig 3-6 Double mode interface archite
33、cture 系統(tǒng)界面整體程序流程圖如圖3-7所示。圖 3-7 開機(jī)界面功能框架Fig 3-7 Boot interface function frame3.3.3 游戲系統(tǒng)“枚舉算法概述 本文繞開了澀難懂、比擬復(fù)雜的“矩陣算法,提出了另一種“枚舉算法來實現(xiàn)這個經(jīng)典游戲?!懊杜e算法沒有復(fù)雜的數(shù)學(xué)理論、防止了在程序中大量使用矩陣運(yùn)算公式,設(shè)計思路清晰、明了,非常適合游戲設(shè)計的初學(xué)者理解和實現(xiàn)。 所謂枚舉算法,就是直接枚舉出游戲中各圖塊的根本形狀和它們的旋轉(zhuǎn)形狀,然后控制每一種不同形狀的方塊在游戲戲中的產(chǎn)生、移動、旋轉(zhuǎn)、落下、填滿和去除等游戲過程。3.3.4 俄羅斯方塊造型設(shè)計的方法 眾所周知,俄羅
34、斯方塊一般有七種根本形狀,每個根本形狀都由4個正方形的小方塊構(gòu)成。利用小方塊不同的擺放位置,可產(chǎn)生19種旋轉(zhuǎn)型圖塊。這七種圖形分別是“I型、“L型、“反L型、“Z型、“反Z型、“口型、“T型。如圖3-8所示。 圖 3-8 方塊模型 Fig 3-8 Square model 本系統(tǒng)在構(gòu)造19個方塊模型時的思路是:定義一個數(shù)組,用以存儲各個模型中4個小方塊的頂點坐標(biāo)。比方L型,其數(shù)據(jù)結(jié)構(gòu)為0,0,0,4,0,8,4,8。其中,每兩個數(shù)據(jù)為一個小正方形的列、行坐標(biāo),如圖 3-9所示。由圖可知,整個界面的坐標(biāo)原點在左上角,分別向右、向下作為橫軸的正方向和縱軸的正方向。圖中每一格代表了LCD12864中
35、的連續(xù)四行,第1格的坐標(biāo)是(0,0);第2格的坐標(biāo)是(0,4);第3格的坐標(biāo)是(0,8);第4格的坐標(biāo)是(4,8);其它圖塊也按此方法編輯數(shù)組內(nèi)容。 圖 3-9 L型 Fig 3-9 L Shape 3.3.5 隨機(jī)產(chǎn)生俄羅斯方塊的方法1 產(chǎn)生隨機(jī)數(shù)的理論依據(jù) 為了實現(xiàn)隨機(jī)落下各類方塊圖形,游戲過程序中必須抽取隨機(jī)數(shù)來確定方塊的類型。隨機(jī)數(shù)是一個既簡單又復(fù)雜的問題。 本設(shè)計采用眾所周知的線性疊加法,雖然沒有完美的方法產(chǎn)生隨機(jī)數(shù),不過線性疊加法是一個適宜的方法,它徹底解決了8位機(jī)隨機(jī)數(shù)的問題。如果從一個足夠長的數(shù)字序列中的某一個點取出一邊串的數(shù)字,那么這些數(shù)字就看似隨機(jī)。這個開始的點(數(shù)字)叫做
36、種子。如果從相同的點(種子)開始,將會得到相同的數(shù)字,這是因為我們是從固定的序列中取數(shù)字(所以叫偽隨機(jī))。但這卻是一個有用的特性,我們可以每次從不同的點取數(shù),即改變種子,從而可以實現(xiàn)真正的隨機(jī)。2 “線性疊加法的概況 “線性疊加法其實只涉及二個內(nèi)容即:乘法和加法。只需三個步驟即:第一,為了取得新的種子,舊的種子與一個常數(shù)A相乘;第二,所得的結(jié)果和第二個常數(shù)C相加;第三,新的種子就是第二步結(jié)果的低32位。保存低32位很重要,用來獲得下一個種子。計算公式為: 種子 A * 種子 + C (3-1)此公式在幾何圖中表示為一條直線,而且新種子由舊種子反復(fù)相加得來,所以叫線性疊加。隨機(jī)函數(shù)的關(guān)鍵在于選擇
37、優(yōu)秀的“常數(shù)A(也叫乘數(shù)A),其實也就是選擇了一個固定的數(shù)字序列?!俺?shù)C,不像乘數(shù)A那樣重要,但是一定是個奇數(shù)。事實上,C可選1。因為奇數(shù)(舊的種子)乘奇數(shù)(乘數(shù)A)是奇數(shù),再加奇數(shù)(常數(shù)C)將會是一個偶數(shù)學(xué)偶數(shù)(舊的種子)乘奇數(shù)(乘數(shù)A),加奇數(shù)(常數(shù)C)將會是一個奇數(shù)。如此種子會在奇數(shù)和偶數(shù)之間轉(zhuǎn)變。因為種了的變化足夠隨機(jī),所以種子的值可以作為8位或16位隨機(jī)數(shù)。3 Keil C51中“線性疊加法的實現(xiàn)方法 在Keil C51中生成偽隨機(jī)數(shù)需要用到兩個函數(shù),一個是srandunsigned int seed,一個是rand。首先給srandunsigned int seed提供一個種子,
38、該種子為unsigned int類型,其取值范圍從0到65536,srandunsigned int seed根據(jù)這個種子會由上述特定的公式生成一個隨機(jī)數(shù)序列;然后調(diào)用rand,它會依次從這個序列中返回一個數(shù),其值在0 到32767之間。因隨機(jī)數(shù)函數(shù)rand函數(shù)實際上是線性隨機(jī)的,如果在不指定srand(unsigned int seed)的種子的情況下,它每次都使用默認(rèn)的種子,因此生成的序列會是同一個,所以會取到相同的數(shù)字序列。這可能會導(dǎo)致每次重新運(yùn)行游戲時其隨機(jī)數(shù)結(jié)果都是一樣的。為了解決該問題,本設(shè)計在玩家進(jìn)入游戲時讀取按鍵按下瞬間定時器T0的計數(shù)值,作為srandunsigned int
39、 seed的種子。從而實現(xiàn)真正的隨機(jī)。4 隨機(jī)數(shù)程序流程圖如圖3-10為隨機(jī)數(shù)程序流程圖。圖 3-10 隨機(jī)數(shù)程序流程圖Fig 3-10 Ramdom process flow program diagram3.3.6 俄羅斯方塊平移的實現(xiàn)方法 方塊產(chǎn)生后,需要用全局變量來保存方塊在游戲map區(qū)中的行坐標(biāo)和列坐標(biāo)。方塊的平移包括左移和右移兩種情況,無論那種情況都要首先進(jìn)行合法性判斷。1 俄羅斯方塊平移特性 在本設(shè)計中規(guī)定當(dāng)按下一次左移或右移按鍵時,map區(qū)中的當(dāng)前圖塊就左移或右移一個正方形的寬度。而一個小正方形的寬度,那么對應(yīng)著LCD12864中的4列。2 平移合法性判斷 平移的合法性判斷經(jīng)較
40、簡單,只需判斷它旁邊相鄰位置是否被填充即可。3 平移算法的實現(xiàn) 在程序中,當(dāng)有任意一個平移按鍵被按下時,系統(tǒng)接收到信號,然后調(diào)用平移函數(shù)進(jìn)行判斷其合法性,得到該函數(shù)的返回值為1后,再進(jìn)行平移操作。其程序流程如圖3-11所示。圖 3-11 平移算法流程圖Fig 3-11 Translation algorithms flowchart3.3.7 俄羅斯方塊旋轉(zhuǎn)的實現(xiàn)方法1 俄羅斯方塊旋轉(zhuǎn)圖形概況 方塊旋轉(zhuǎn)是一個游戲?qū)崿F(xiàn)的關(guān)鍵問題,實現(xiàn)旋轉(zhuǎn)的數(shù)學(xué)方法有多種,如矩陣變換法、枚舉法、索引法等。本文前面已經(jīng)論述了此次設(shè)計采用枚舉的方法,對19種俄羅斯方塊造型進(jìn)行構(gòu)造。游戲過程中,每一種根本方塊都要做旋轉(zhuǎn)
41、控制,于是就產(chǎn)生了旋轉(zhuǎn)后的方塊形狀,本文將其稱為“旋轉(zhuǎn)型。 根本型中的“I型,只有一種旋轉(zhuǎn)型,即由豎直旋轉(zhuǎn)90度后成為水平。因此,根本型加上一種旋轉(zhuǎn)型,共有兩種形狀。 根本型中的“L型和“反L型有三種旋轉(zhuǎn)型,將它按順時針每旋轉(zhuǎn)一個90度就產(chǎn)生一種旋轉(zhuǎn)型,可以旋轉(zhuǎn)三次,得到三種不同的旋轉(zhuǎn)型,因此,它的三種旋轉(zhuǎn)型加上其根本型,“L型和“反L型方塊分別有四種形狀。 根本型中“Z型和“反Z型可以順時針旋轉(zhuǎn)一次90度,加上他們的基型分別有兩種形狀。 根本型中的“T型有三種旋轉(zhuǎn)型,將他按順時針旋轉(zhuǎn)一個90度就產(chǎn)生一種旋轉(zhuǎn)型,它可以旋轉(zhuǎn)三次,得到三種不同的旋轉(zhuǎn)型,因此,它的三種旋轉(zhuǎn)型加上其根本型,“T型方塊
42、共有四種形狀。 根本型中的“口型方塊沒有旋轉(zhuǎn)型,在游戲中只有一種形狀。 綜上所述,七種根本型方塊,因旋轉(zhuǎn)產(chǎn)生了不同的旋轉(zhuǎn)型,這些旋轉(zhuǎn)型加上他們的根本型,整個游戲中,共有19種不同的方塊形狀。 本設(shè)計實現(xiàn)旋轉(zhuǎn)操作的具體方法,可分為兩類,一類是I型的旋轉(zhuǎn)策略;另一類那么是其余17種根本型的旋轉(zhuǎn)策略。2 旋轉(zhuǎn)合法性判斷 方塊做順時針旋轉(zhuǎn),每次旋轉(zhuǎn)90度。本設(shè)計規(guī)定只要旋轉(zhuǎn)后到達(dá)的地方未被填允,方塊就可以進(jìn)行旋轉(zhuǎn)操作。3 I型的旋轉(zhuǎn)策略 為了在視覺上實現(xiàn)I型的順時針旋轉(zhuǎn),本設(shè)計采用位置錯落的方式來實現(xiàn)。其具體過程如圖3-12所示。圖 3-12 I型的旋轉(zhuǎn)方法Fig 3-12 The rotation
43、method of I shape 當(dāng)落下的圖塊是圖所示時,其旋轉(zhuǎn)周期為 ?。 當(dāng)落下的圖塊是圖所示時,其旋轉(zhuǎn)周期為 ?。 之所以把I型的旋轉(zhuǎn)變換單獨(dú)拿出來討論,是因為I型只有根本型和旋轉(zhuǎn)型共兩種圖塊。如果在當(dāng)前位置直接按這兩種圖塊的坐標(biāo)數(shù)組進(jìn)行圖形切換,那么無法實現(xiàn)順時針旋轉(zhuǎn)的視覺效果。所以,在旋轉(zhuǎn)處理程序中,當(dāng)要旋轉(zhuǎn)的當(dāng)前圖塊為I型及其旋轉(zhuǎn)型時,就要改變當(dāng)前列、行這兩個全局變量的值。4 其余17種根本型的旋轉(zhuǎn)策略 除了I型的旋轉(zhuǎn)比擬復(fù)雜外,其余17種類型的方塊只需按各自旋轉(zhuǎn)的順序在當(dāng)前位置用已經(jīng)編輯好的坐標(biāo)數(shù)組來實現(xiàn)旋轉(zhuǎn)即可。具體程序流程如圖3-13所示。 圖 3-13 旋轉(zhuǎn)程序流程圖 F
44、ig 3-13 Rotating program flowchart 3.3.8 俄羅斯方塊下移的實現(xiàn)方法 在整個游戲過程中,方塊是不斷向下運(yùn)行的,其下移特性為:方塊每次下移的格數(shù)對應(yīng)著LCD12864屏幕中的一行。具體程序?qū)崿F(xiàn)流程如圖3-14所示。圖 3-14 下移判斷程序流程圖Fig 3-14 Moves down judgment program flowchart3.3.9 滿行檢測及消行功能的實現(xiàn)方法 隨著方塊的不斷累積,方塊每次下落到不能再運(yùn)動時,系統(tǒng)就會檢測游戲map區(qū),當(dāng)檢測到map區(qū)中某一行堆積滿后,系統(tǒng)就消去此行,作為獎勵,其上方的方塊群那么依次下落一行。系統(tǒng)滿行檢測和消行
45、功能是通過“滿行檢測及消行函數(shù)實現(xiàn)的,即在每個圖塊落定和下一個圖塊未出來之前,按頁掃描游戲map區(qū),每半頁算一行。假設(shè)檢測到某行被填滿,那么消去此行,并將其上方的圖塊往下移動相應(yīng)的行數(shù)。具體程序?qū)崿F(xiàn)流程如圖3-15所示。圖 3-15 滿行檢測程序流程Fig 3-15 Full line detection processes3.3.10 游戲積分的計算方法 在游戲系統(tǒng)中,積分表達(dá)了玩家在此次游戲中的操作情況。本游戲系統(tǒng)分單人模式和雙人模式兩種積分計算方式。 單人模式下,玩家每消去一行,就能獲得1個積分,如果當(dāng)前游戲積分超過系統(tǒng)記錄的單人最高游戲積分,那么系統(tǒng)將更新記錄,以便其他玩家挑戰(zhàn)。 雙人
46、模式下,雙方的積分制度是一樣的,以進(jìn)度條的方式展示在積分與道具區(qū)。其中積分區(qū)分為兩個階段,第一階段每消去1行進(jìn)度條向上走一格,共8個進(jìn)度格;第二階段每累計消去3行進(jìn)度條才向上增加一格,共6個進(jìn)度格。雙方誰先到達(dá)進(jìn)度條的頂端就算勝利。 當(dāng)一次性同時消去3行時,那么能獲得一個道具功能的使用權(quán)。最多能累積兩個道具。具體程序?qū)崿F(xiàn)流程如圖3-16所示。 圖 3-16 積分系統(tǒng)程序流程圖Fig 3-16 Score system program flowchart 3.4 雙人俄羅斯方塊游戲設(shè)計3.4.1 RTX51 Tiny簡介 許多微處理器應(yīng)用程序要求同時執(zhí)行多個任務(wù)。對于這樣的應(yīng)用程序,一個實時操系
47、統(tǒng)RTOS允許靈活的分配系統(tǒng)資源(中央處理器、存儲器等)給各個任務(wù)。RTX51它可以運(yùn)行于所有的8051派生機(jī)型,是一個很好使用的強(qiáng)大的準(zhǔn)并行實時操作系統(tǒng)。 RTX51可以簡化那些復(fù)雜而且時間要嚴(yán)格的工程軟件設(shè)計工作。有兩個不同的RTX51版本可以利用:RTX51 Full和RTX51 Tiny。二者的主要區(qū)別是前者是可以強(qiáng)占(或者說可剝奪的)系統(tǒng)而后者是不可以強(qiáng)占的(不可剝奪的)。RTX51 Full版本是完整版,它使用四個任務(wù)優(yōu)先級來完成,同時存在時間片輪轉(zhuǎn)調(diào)度和搶先的任務(wù)切換。RTX51 Full工作在與中斷功能相似的狀態(tài)下,信號和信息可以通過郵箱系統(tǒng)在任務(wù)之間互相傳遞。程序員可以從一存
48、儲池中分配和釋放內(nèi)存,也可以強(qiáng)迫一個任務(wù)等待中斷、超時或者是從另一個任務(wù)或中斷發(fā)出的信號或信息。而本游戲系統(tǒng)采用的RTX51 Tiny是RTX51完整版的子集,它完全集成在Keil C51的集成開發(fā)環(huán)境中。自身僅占用900字節(jié)左右的程序存儲空間。RTX51 Tiny僅支持時間片輪轉(zhuǎn)任務(wù)切換和使用信號進(jìn)行任務(wù)切換。不支持搶先式的任務(wù)切換,不包括消息歷程,沒有存儲器池分配程序。 RTX51 Tiny雖然比擬簡陋,但它還是具備了一些實時操作系統(tǒng)的根本要素,又因為它完全集成在Keil C51的集成開發(fā)環(huán)境中,可以使用戶把更多的精力關(guān)注在應(yīng)用本身而無需考慮復(fù)雜的底層驅(qū)動,而且整個應(yīng)用軟件系統(tǒng)結(jié)構(gòu)清晰,維
49、護(hù)方便,可節(jié)省大量的時間和人力。當(dāng)程序比擬復(fù)雜時,它的優(yōu)點就表達(dá)得更明顯。RTX51 Tiny完全可以充當(dāng)我們進(jìn)入實時操作系統(tǒng)(RTOS)世界的領(lǐng)路者,更為重要的是,它是免費(fèi)的。無論如何,RTX51 Tiny仍然是在8位單片機(jī)中應(yīng)用操作系統(tǒng)的首選。3.4.2 RTX51 Tiny的內(nèi)核分析 該小節(jié)只介紹本設(shè)計中用到RTX51 Tiny系統(tǒng)的相關(guān)知識與配置方法。讀者假設(shè)想更全面了解RTX51 Tiny多任務(wù)實時操作系統(tǒng),請閱讀RTX51 Tiny的幫助文件或其它相關(guān)文件。1 RTX51 Tiny程序的編寫方法假設(shè)要使用RTX51 Tiny的內(nèi)核,只需包含文件RTX51TNY.H即可。所有的運(yùn)行時
50、庫常量都在這個頭文件中定義。可以采用以下方式包含它:#include 當(dāng)使用Rtx51 Tiny時,要為每個任務(wù)建立獨(dú)立的任務(wù)函數(shù)。同時,RTX51 Tiny任務(wù)必須是用_task_聲明的C函數(shù),返回值和參數(shù)都必須是void類型的, RTX51 Tiny程序不需要用戶自已定義main函數(shù),取而代之的是,RTX51 Tiny從任務(wù)0開始執(zhí)行。在典型的應(yīng)用中,任務(wù)0簡單的建立所有其他的任務(wù)。2 系統(tǒng)調(diào)用函數(shù)簡介 RTX51 Tiny內(nèi)核完全集成在KEIL C51編譯器中,以系統(tǒng)函數(shù)調(diào)用的方式運(yùn)行,因此可以很容易地使用KEIL C51語言編寫和編譯一個多任務(wù)程序,并嵌入到實際應(yīng)用系統(tǒng)中,內(nèi)核提供多組
51、函數(shù)供給用程序引用。3 RTX51 Tiny的任務(wù)狀態(tài)RTX51 Tiny 的用戶任務(wù)具有以下幾個狀態(tài):RUNNING: 任務(wù)處于運(yùn)行中,同一時間只有一個搶占任務(wù)可以處于“RUNNING狀態(tài)。READY :任務(wù)正在等待運(yùn)行,在當(dāng)前運(yùn)行的任務(wù)時間片完成之后,RTX51 Tiny運(yùn)行下一個處于“READY狀態(tài)的任務(wù)。WAITING: 任務(wù)由于時間片用完而處于“TIME OUT狀態(tài),并等待再次運(yùn)行。該狀態(tài)與“READY狀態(tài)相似,但由于是內(nèi)部操作過程使一個循環(huán)任務(wù)被切換而被冠以標(biāo)記。如圖3-17所示為任務(wù)狀態(tài)轉(zhuǎn)換圖8。圖 3-17 任務(wù)狀態(tài)轉(zhuǎn)換圖Fig 3-17 Task state transition diagram 4 RTX51 Tiny的同步機(jī)制 為了能保證任務(wù)在執(zhí)行次序上的協(xié)調(diào),必須采用同步機(jī)制。內(nèi)核用以下事件進(jìn)行任務(wù)間的通信和同步。SIGNAL:用于任務(wù)之間通信的位,可以用系統(tǒng)函數(shù)置位或去除。如果一個任務(wù)調(diào)用os_wait函數(shù)等待SIGNAL而SIGNAL未置位,那么該任務(wù)被掛起直到SIGNAL置位,才返回到READY狀態(tài),并可被再次執(zhí)行。TIMEOUT:由os_wait函數(shù)開始的時間延時,其持續(xù)時間可由定時節(jié)拍數(shù)確定。帶有TIMEOUT值調(diào)用os_wait函數(shù)的任務(wù)將被
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 齒輪銷售員崗位面試問題及答案
- 游樂設(shè)施檢驗員崗位面試問題及答案
- 安徽省阜陽市潁上縣第二中學(xué)2025屆化學(xué)高一下期末教學(xué)質(zhì)量檢測模擬試題含解析
- 江西省永豐中學(xué)2025年高一下化學(xué)期末達(dá)標(biāo)檢測試題含解析
- 河北省深州市中學(xué)2025屆高二化學(xué)第二學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 條形碼管理辦法規(guī)定為
- 農(nóng)家書屋維護(hù)管理辦法
- 材料外放加工管理辦法
- 晉安白蟻防治管理辦法
- 華為電子發(fā)票管理辦法
- 河北省2025年中考數(shù)學(xué)真題試卷(含答案)
- 福建福州金山中學(xué)2024~2025學(xué)年高一下冊期末考試數(shù)學(xué)試題含解析
- 2025年廣東省高考生物真題(解析版)
- 2024年哈爾濱市道里區(qū)執(zhí)法輔助人員招聘考試真題
- 學(xué)堂在線 研究生的壓力應(yīng)對與健康心理 期末考試答案
- 2025年7月自考13811績效管理試題及答案含解析
- 企業(yè)環(huán)境監(jiān)測管理制度
- 2025事業(yè)單位工勤技能考試考試題庫及答案
- 試藥員知情協(xié)議書
- 2025年嘉興市恒光電力建設(shè)有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 2025內(nèi)蒙古鄂爾多斯農(nóng)商行烏海各機(jī)構(gòu)員工社會招聘37人筆試歷年典型考題及考點剖析附帶答案詳解
評論
0/150
提交評論