




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京工業(yè)大學(xué)工程碩士學(xué)位論文摘要PAGEPAGEI摘要PAGEI題目:[單片機(jī)俄羅斯方塊設(shè)計(jì)]摘 要隨著社會(huì)的不斷的發(fā)展和進(jìn)步,人們對(duì)娛樂產(chǎn)品的關(guān)注在不斷的增加,特別是電子游戲產(chǎn)品在我們的生活中占據(jù)了很重要的地位。俄羅斯方塊游戲是一款風(fēng)靡全球的經(jīng)典游戲。這款游戲之所以叫做俄羅斯方塊,是因?yàn)榘l(fā)明這款游戲的人是俄羅斯人。本次為了回顧經(jīng)典設(shè)計(jì)了一款基于單片機(jī)的俄羅斯方塊游戲機(jī)。本次設(shè)計(jì)了一款基于單片機(jī)的俄羅斯方塊游戲機(jī),該游戲機(jī)可以豐富我們的業(yè)余生活。在硬件設(shè)計(jì)上該游戲機(jī)以STC89C52單片機(jī)為基礎(chǔ)、使用LCD12864圖形液晶可以顯示游戲的界面、通過按鍵實(shí)現(xiàn)游戲機(jī)的按鈕的功能、并具有蜂鳴器可以實(shí)現(xiàn)聲音提示的功能。在軟件設(shè)計(jì)上,使用C語言進(jìn)行了俄羅斯方塊游戲的控制程序的編寫,并在keil軟件上進(jìn)行了調(diào)試。最后在Proteus仿真軟件上對(duì)俄羅斯方塊游戲的功能進(jìn)行了仿真,并焊接了實(shí)物電路板。關(guān)鍵詞:STC89C52單片機(jī);俄羅斯方塊;游戲機(jī);LCD12864液晶AbstractPAGEIIAbstractWiththecontinuousdevelopmentandprogressofsociety,peoplepaymoreandmoreattentiontoentertainmentproducts,especiallyvideogameproductsplayaveryimportantroleinourlife.TheTetrisgameisaclassicgamethatispopularallovertheworld.ThegameiscalledtheTetris,becausethepeoplewhoinventedthegamewereRussian.ThistimeinordertoreviewtheclassicdesignofasinglechipbasedTetrisblockgamemachine.ThedesignofasinglechipcomputerbasedTetrisgamemachine,whichcanenrichouramateurlife.Onthehardwaredesign,thegamemachineisbasedonSTC89C52microcontroller,anditcandisplaytheinterfaceofthegamebyusingLCD12864graphicLCD,realizethebuttonfunctionofthegamemachinebybutton,andhasthefunctionofvoicepromptbybuzzer.Inthesoftwaredesign,thecontrolprogramofTetrisgameiswritteninClanguageanddebuggedonthekeilsoftware.Finally,thefunctionoftheTetrisgameissimulatedontheProteussimulationsoftware,andthephysicalcircuitboardiswelded.Keywords:STC89C52singlechip;Tetrisblock;gamemachine;LCD12864liquidcrystal北京工業(yè)大學(xué)耿丹學(xué)院2018屆畢業(yè)設(shè)計(jì)(論文)--PAGE2-目錄Ⅲ目 錄摘 要 IAbstract II第1章緒論 11.1課題研究背景和意義 11.2俄羅斯方塊的發(fā)展?fàn)顩r及趨勢(shì) 11.3課題研究的主要內(nèi)容 11.4課題研究的主要內(nèi)容 2第2章系統(tǒng)整體方案設(shè)計(jì) 42.1系統(tǒng)的功能要求 42.2系統(tǒng)總體方案框圖設(shè)計(jì) 42.3單片機(jī)模塊的選擇 42.4液晶顯示模塊的選擇 62.5按鍵電路的選擇 7第3章系統(tǒng)整體硬件設(shè)計(jì) 93.1單片機(jī)電路設(shè)計(jì) 93.1.1STC89C52單片機(jī)介紹 93.1.2晶振電路設(shè)計(jì) 103.1.3復(fù)位電路設(shè)計(jì) 103.1.4單片機(jī)最小系統(tǒng)電路設(shè)計(jì) 113.2LCD12864液晶顯示電路 123.2.1點(diǎn)陣LCD的顯示原理 123.2.2LCD12864液晶的硬件連接 123.3按鍵控制電路 133.4聲音提示電路設(shè)計(jì) 133.5電源電路 14第4章系統(tǒng)軟件設(shè)計(jì) 154.1程語言的選擇 154.2軟件介紹和工程建立 154.3俄羅斯方塊流程圖設(shè)計(jì) 164.3.1主程序流程圖 164.3.2游戲外觀顯示流程圖 184.3.3俄羅斯方塊向左/右移動(dòng)工作流程圖 194.3.4俄羅斯方塊中按下鍵的流程圖 20第5章系統(tǒng)的調(diào)試與制作 215.1KEIL軟件介紹 215.2程序調(diào)試 215.3proteus仿真步驟 225.4實(shí)物綜合調(diào)試 23結(jié)論 26參考文獻(xiàn) 27附錄 28致謝 29-PAGE3-北京工業(yè)大學(xué)耿丹學(xué)院2018屆畢業(yè)設(shè)計(jì)(論文)-第1章緒論1.1課題研究背景和意義隨著人們生活的節(jié)奏加快,相應(yīng)的心理壓力與焦慮也越來越大,需要一種方式來釋放心理負(fù)擔(dān),并增添生活樂趣。而諸如俄羅斯方塊、貪吃蛇之類的經(jīng)典游戲,具備操作簡(jiǎn)單,娛樂性強(qiáng),便于攜帶的特點(diǎn),非常符合市場(chǎng)需求。雖然有其它更有趣、更高深的游戲,但這兩款游戲操作簡(jiǎn)單、老少皆宜,且不同于PC機(jī)上的網(wǎng)游,對(duì)操作平臺(tái)的要求不高,幾乎在所有型號(hào)的手機(jī)上都能玩,從而得到大眾的追捧。1.2俄羅斯方塊的發(fā)展?fàn)顩r及趨勢(shì)俄羅斯方塊最初只是一款教育軟件,被大家認(rèn)可后才開始嘗試授權(quán)給各大游戲公司,正式走向市場(chǎng)。據(jù)統(tǒng)計(jì),GameBoy版的俄羅斯方塊在日本賣出424萬套的好成績(jī),可見當(dāng)時(shí)該游戲的風(fēng)靡程度。而在海灣戰(zhàn)爭(zhēng)中,這款游戲成為了美軍用來打發(fā)枯燥的戰(zhàn)爭(zhēng)生活的娛樂方式。俄羅斯方塊曾經(jīng)的受歡迎程度與帶來的經(jīng)濟(jì)價(jià)值可以說是游戲史上的一大幸事。游戲規(guī)則看起來簡(jiǎn)單:由7中不同形狀的方塊群來堆疊,通過旋轉(zhuǎn)與3個(gè)方向控制鍵來選擇擺放,每消除一行或幾行就可以積分,當(dāng)積分滿就可通關(guān),若是方塊堆疊到頂部就失敗。很多玩家都被它的上手簡(jiǎn)單,但又有適當(dāng)?shù)碾y度所吸引。要贏得此游戲的關(guān)鍵時(shí)要掌握其中的擺放技巧,且關(guān)卡越高,難度越大。正是因?yàn)槎砹_斯方塊的動(dòng)態(tài)性和靈活性,也被各大高校用來作為游戲程序的練習(xí)模板。1.3課題研究的主要內(nèi)容本次根據(jù)任務(wù)的需求,設(shè)計(jì)了基于單片機(jī)的俄羅斯方塊設(shè)計(jì),該游戲系統(tǒng)可以豐富我們的業(yè)余生活,同時(shí)也可以讓我們重新回顧下這款經(jīng)典的游戲。該游戲機(jī)以STC89C52單片機(jī)為控制芯片,使用LCD12864圖形液晶作為顯示界面,通過按鍵實(shí)現(xiàn)游戲按鈕的功能。游戲的所有的控制功能都是通過C語言軟件來是現(xiàn)實(shí)。在本次設(shè)計(jì)中主要完成了如下的工作內(nèi)容:(1)根據(jù)設(shè)計(jì)需求,查閱相關(guān)的俄羅斯方塊游戲相關(guān)的文獻(xiàn)資料,整理文獻(xiàn)資料,確定了本次設(shè)計(jì)的俄羅斯方塊游戲機(jī)的整體的設(shè)計(jì)方案和要實(shí)現(xiàn)的功能。(2)根據(jù)俄羅斯方塊游戲的功能,選擇合理的器件,設(shè)計(jì)先關(guān)的電路原理圖,電路原理圖主要包括單片機(jī)系統(tǒng)的電路原理圖、LCD12864液晶顯示電路、按鍵控制電路、蜂鳴器發(fā)生電路等。最后將這些原理圖結(jié)合到一塊組成了系統(tǒng)的整體原理圖。(3)俄羅斯方塊游戲的控制軟件的編寫,根據(jù)俄羅斯方塊游戲的功能和結(jié)合硬件電路的設(shè)計(jì)接口,使用單片機(jī)C語言進(jìn)行了軟件程序的編寫和調(diào)試,最后完成了這個(gè)控制軟件的設(shè)計(jì)。(4)進(jìn)行俄羅斯方塊游戲的整體的調(diào)試和仿真制作,將硬件和軟件結(jié)合到一塊進(jìn)行功能的調(diào)試,完成模型實(shí)物電路板的設(shè)計(jì)。1.4課題研究的主要內(nèi)容本次設(shè)計(jì)的課題題目是《基于單片機(jī)的俄羅斯方塊設(shè)計(jì)》,基于詳細(xì)明了的闡述本次課題的相關(guān)設(shè)計(jì)工作流程的這一目的,本文的文章結(jié)構(gòu)詳見下文:第一章,先闡述了相關(guān)游戲的研究背景以及背后的意義,之后對(duì)設(shè)計(jì)俄羅斯方塊游戲設(shè)計(jì)系統(tǒng)的內(nèi)容目的進(jìn)行了闡述,最后說明了完成俄羅斯方塊游戲設(shè)計(jì)所要完成的主要的工作內(nèi)容。第二章,在這一章中是對(duì)俄羅斯方塊游戲設(shè)計(jì)系統(tǒng)的整體的方案框圖的設(shè)計(jì),其中包括各種芯片的對(duì)比和選擇,整體方案框圖的設(shè)計(jì)等內(nèi)容以及整個(gè)原理框圖的詳細(xì)說明。第三章,在這一章是對(duì)俄羅斯方塊游戲設(shè)計(jì)系統(tǒng)的所有的硬件原理圖的設(shè)計(jì),在設(shè)計(jì)中采用模塊化的設(shè)計(jì)思想將整體原理圖分成各個(gè)模塊電路進(jìn)行介紹和繪制原理圖。第四章,在這一章主要是對(duì)俄羅斯方塊游戲設(shè)計(jì)系統(tǒng)圖的控制軟件進(jìn)行了設(shè)計(jì)和調(diào)試,設(shè)計(jì)了各個(gè)程序模塊的程序流程圖,并使用C語言根據(jù)程序流程圖編寫了控制程序。第五章,在這一章主要對(duì)俄羅斯方塊游戲系統(tǒng)進(jìn)行了系統(tǒng)的調(diào)試和實(shí)物制作,焊接看實(shí)物電路板,并對(duì)電路板進(jìn)行了測(cè)試和調(diào)試。第六章,在這一章中主要總結(jié)在設(shè)計(jì)過程中的相關(guān)工作,歸納了在本次設(shè)計(jì)過程中筆者面對(duì)的困惑以及設(shè)計(jì)中存在的不足的地方。北京工業(yè)大學(xué)耿丹學(xué)院2018屆畢業(yè)設(shè)計(jì)(論文)-第2章系統(tǒng)整體方案設(shè)計(jì)2.1系統(tǒng)的功能要求本次設(shè)計(jì)了一款基于單片機(jī)的俄羅斯方塊設(shè)計(jì),該游戲系統(tǒng)可以豐富我們的業(yè)余生活,同時(shí)也可以讓我們重新回顧下這款經(jīng)典的游戲。改游戲每部分的主要要求如下:(1)STC89C52單片機(jī):?jiǎn)纹瑱C(jī)實(shí)現(xiàn)對(duì)整個(gè)俄羅斯方塊游戲機(jī)的所有的功能的控制,游戲機(jī)的控制程序都是下載到單片機(jī)中。實(shí)現(xiàn)游戲機(jī)的功能。(2)LCD12864液晶:俄羅斯方塊游戲機(jī)需要具有現(xiàn)實(shí)電路,現(xiàn)實(shí)俄羅斯方塊的圖形信息,LCD12864是一款圖形液晶,通過圖形液晶顯示俄羅斯方塊的圖形。(3)按鍵:設(shè)計(jì)4個(gè)按鍵,一個(gè)向左按鍵、一個(gè)向右按鍵、一個(gè)向下按鍵還有一個(gè)翻轉(zhuǎn)按鍵。同過按鍵對(duì)游中進(jìn)行控制。(4)蜂鳴器:設(shè)計(jì)聲音提示電路,當(dāng)?shù)梅值臅r(shí)候進(jìn)行聲音的提示。2.2系統(tǒng)總體方案框圖設(shè)計(jì)通過對(duì)設(shè)計(jì)任務(wù)的仔細(xì)研究和查閱相關(guān)的文獻(xiàn)等資料,首先開展總體硬件框架設(shè)計(jì)工作。系統(tǒng)的硬件框圖如下圖2-1所示,在系統(tǒng)中可以看到系統(tǒng)主要由單片機(jī)模塊、按鍵模塊、LCD12864液晶顯示模塊、蜂鳴器模塊組成,其中復(fù)位電路和晶振電路時(shí)單片機(jī)工作不可缺少的電路。圖2-1系統(tǒng)組成框圖2.3單片機(jī)模塊的選擇作為一個(gè)單片機(jī)控制系統(tǒng)來說,單片機(jī)在系統(tǒng)中的地位是至關(guān)重要的地位,單片機(jī)會(huì)通過控制程序把硬件和軟件更好的結(jié)合在一塊。所有的輸入輸出信號(hào)、顯示信號(hào)、報(bào)警信號(hào)等都是通過單片機(jī)進(jìn)行控制的,因此單片機(jī)的性能的好壞直接影響系統(tǒng)的穩(wěn)定性和可靠性。本次在控制器的方案選擇選擇上設(shè)計(jì)了兩種方案。方案一:STC89C52單片機(jī)STC89C52是一款國(guó)產(chǎn)的單片機(jī),該單片機(jī)的類型為51單片機(jī)的一種,屬于8為單片機(jī),其使用范圍相當(dāng)多。該單片機(jī)具有結(jié)構(gòu)規(guī)范、總線完備,并且其專用寄存器具有集中管理的優(yōu)勢(shì),此外還有多種多樣的指令系統(tǒng),在使用過程中操作相當(dāng)便捷,具有較高的可靠度。另外,該單片機(jī)使用的芯片性能上有優(yōu)越于傳統(tǒng)的51單片機(jī),單片機(jī)在運(yùn)行速度上是51單片機(jī)的8-12被。而且自帶很多功能的接口。方案二:STM32F103RCT6單片機(jī)STM32F103RCT6是ST公司的單片機(jī),單片機(jī)的性能好,接口多,內(nèi)核是Cortex-M3。這款單片機(jī)在性能上要比51單片機(jī)性能好,接口也豐富的多。芯片內(nèi)部集成了定時(shí)器、計(jì)數(shù)器、串口、USB、SPI等接口。但是芯片在價(jià)格上要要與51單片機(jī),而且這款芯片的封裝為L(zhǎng)QFP貼片封裝,作為單片機(jī)的初學(xué)者來說焊接起來會(huì)受到影響。本次通過對(duì)比兩種方案的性能特點(diǎn),選擇了方案一,選擇STC89C52單片機(jī)最為本次的控制器。STC89C52單片機(jī)實(shí)物圖如下圖2-2所示。圖2-2單片機(jī)實(shí)物圖2.4液晶顯示模塊的選擇俄羅斯方塊游戲機(jī)需要具有現(xiàn)實(shí)界面,可以顯示各種方塊的圖形的信息和得分信息等,目前,電路設(shè)計(jì)中常用作顯示電路模塊的有數(shù)碼管顯示和LCD12864模塊,現(xiàn)對(duì)兩種方案模塊介紹如下:方案一:LED數(shù)碼管顯示LED數(shù)碼管(LEDSegmentDisplays)是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,由7個(gè)LED發(fā)光二極管經(jīng)過排列可以組合成一個(gè)8字,最后將這些器件一塊封裝起來就形成了LED數(shù)碼管,數(shù)碼管可以顯示0-F等16個(gè)字符。使用LED數(shù)碼管優(yōu)點(diǎn)是使用方便,亮度高,缺點(diǎn)是占用的I/O資源多,電路比較復(fù)雜。方案二:LCD12864液晶顯示LCD12864液晶是一款字符形式的液晶顯示器,LCD12864液晶具有20個(gè)引腳,在使用的時(shí)候可以根據(jù)器件手冊(cè)進(jìn)行電路連接,采用LCD12864液晶的好處是除了顯示字母還可以顯示字符和圖形等各種信息。結(jié)合本次設(shè)計(jì)要顯示的內(nèi)容比較多,使用數(shù)碼管顯示會(huì)用到很多的數(shù)碼管,這樣會(huì)使電路非常的復(fù)雜,而且數(shù)碼管也不能顯示一些單位符號(hào),因此選擇方案二,LCD12864液晶顯示。本次結(jié)合俄羅斯斯方塊的特點(diǎn)和功能,選擇了方案二LCD12864液晶進(jìn)行游戲界面的顯示。12864LCD顯示屏的顯示信息量大,采用背光顯示使其在視覺上更清晰,也更穩(wěn)定。LCD12864液晶的實(shí)物圖如下圖2-3所示。圖2-3LCD12864液晶2.5按鍵電路的選擇按鍵的主要功能是為游戲機(jī)提供一個(gè)人機(jī)交互接口,使用者可以通過控制按鍵實(shí)現(xiàn)對(duì)俄羅斯方塊游戲的控制,從而得到良好的游戲感受。本次設(shè)計(jì)中在按鍵的選擇上主要分為兩種方案:方案一:使用獨(dú)立按鍵實(shí)現(xiàn)本次設(shè)計(jì)采用的單片機(jī)中的獨(dú)立按鍵其本質(zhì)意義就是一種復(fù)位開關(guān)。用手按下按鍵后,按鍵開關(guān)會(huì)閉合,當(dāng)手松開后按鍵會(huì)自動(dòng)斷開。因此根據(jù)這種原理,就可以將按鍵和單片機(jī)的I/O端口連接,這樣單片機(jī)通過掃描I/O端口的輸入狀態(tài)就能夠識(shí)別出按鍵是否按下,從而執(zhí)行相關(guān)的動(dòng)作。獨(dú)立按鍵最主要的特點(diǎn)就是設(shè)計(jì)電路簡(jiǎn)單,不需要很多的器件就能實(shí)現(xiàn)按鍵檢測(cè)功能。但是獨(dú)立按鍵也有一個(gè)缺點(diǎn)就是每個(gè)獨(dú)立按鍵都會(huì)占用一個(gè)單片機(jī)I/O端口,如果按鍵多會(huì)影響單片機(jī)的I/O資源。方案二:使用矩陣按鍵實(shí)現(xiàn)矩陣按鍵也是單片機(jī)控制中經(jīng)常使用到的一個(gè)器件,矩陣鍵盤的排布就和矩陣鍵盤組一樣,矩陣鍵盤由M行,N列組成。使用的最多的就是4X4矩陣鍵盤。在設(shè)計(jì)中,當(dāng)需要使用的按鍵較多,而且單片機(jī)的I/O資源有限的時(shí)候通常采用矩陣按鍵的方式。對(duì)于矩陣按鍵而言,其水平方向和垂直方向的交叉點(diǎn)并沒有直接連接,采用按鍵的結(jié)構(gòu)實(shí)現(xiàn)連通。因此對(duì)于一個(gè)4X4的矩陣鍵盤而言,它能夠具有16個(gè)不同的狀態(tài),二使用4個(gè)行I/O引腳和4個(gè)列I/O引腳就可以實(shí)現(xiàn)控制。因此在設(shè)計(jì)中如果需要的按鍵比較多通常都會(huì)使用矩陣按鍵。本次設(shè)計(jì)的俄羅斯方塊游戲不需要實(shí)用太多的按鍵,只需要4個(gè)按鍵就可以完成對(duì)游戲的操作,因此在設(shè)計(jì)上選擇方案一獨(dú)立按鍵的方案進(jìn)行設(shè)計(jì)。第3章系統(tǒng)整體硬件設(shè)計(jì)3.1單片機(jī)電路設(shè)計(jì)STC89C52單片機(jī)介紹進(jìn)入21世紀(jì)后,科技水平逐漸日益提升,尤其是電子行業(yè)的發(fā)展格外迅速,控制器的種類越來越多,控制器的功能也越來越全面,控制器的體積也越做越小。在控制器的選擇過程中首先要考慮的問題是,是否能夠?qū)崿F(xiàn)所需功能。如果在都能實(shí)現(xiàn)功能的前提下,主要考慮的是可操作性和性價(jià)比是否足夠高。以以上兩點(diǎn)為標(biāo)準(zhǔn),控制器的選擇就會(huì)簡(jiǎn)單很多。就本設(shè)計(jì)而言,STC公司的STC89C52、TI的MSP430和ST公司的STM32單片機(jī)都能完成所需功能,但是后兩者存在編寫程序復(fù)雜程度高、價(jià)格昂貴和初學(xué)者不容易上手等問題,因此本設(shè)計(jì)選用的STC公司生產(chǎn)的STC89C52單片機(jī)作為主控芯片。STC89C52單片機(jī)是由STC公司研發(fā)生產(chǎn)的,它與之間的89C51單片機(jī)相比擁有了更強(qiáng)大的功能,功耗進(jìn)一步降低,功能進(jìn)一步強(qiáng)大,最主要的變化時(shí)有原來4K的Flash存儲(chǔ)器變?yōu)榱?K的Flash存儲(chǔ)器,除此之外該單片機(jī)還是延續(xù)使用STC公司經(jīng)典的MCS-51內(nèi)核構(gòu)成的COMS8位微處理器,擁有512字節(jié)的隨機(jī)存取存儲(chǔ)器(RAM)以及32個(gè)輸入輸出口線,其中P1、P2、P3三個(gè)輸入輸出口可以不用加上拉電阻直接使用,P0口作為總線擴(kuò)展時(shí)不需要,作為I/O時(shí)需要增加上拉電阻才能使用。還有該處理器擁有三個(gè)定時(shí)器、四個(gè)中斷、掉電保護(hù)功能以及省電模式,其中當(dāng)單片機(jī)在正常運(yùn)行時(shí),突然斷電,單片機(jī)會(huì)進(jìn)入掉電保護(hù)模式,在該模式下RAM中記錄的內(nèi)容會(huì)自動(dòng)記錄,防止數(shù)據(jù)丟失,導(dǎo)致程序反復(fù)錄入,浪費(fèi)時(shí)間;而在省電模式下,CPU停止工作,想要喚醒單片機(jī)可以使用低電平對(duì)外部中斷進(jìn)行觸發(fā)或者復(fù)位。鑒于該單片機(jī)有以上特點(diǎn),越來越多的嵌入式項(xiàng)目使用該單片機(jī)進(jìn)行開發(fā),不僅成本低,而且效率高,保護(hù)性強(qiáng)。STC89C52單片機(jī)的相關(guān)構(gòu)造詳見下圖。圖晶振電路設(shè)計(jì)對(duì)于晶振電路系統(tǒng)而言,包括兩個(gè)濾波電容和一個(gè)振蕩器,STC89C52單片機(jī)最小系統(tǒng)設(shè)計(jì)時(shí)需要外接晶振提供時(shí)鐘頻率,為保證最小系統(tǒng)的正常運(yùn)行一次在晶振引腳兩端增加兩個(gè)20pf的陶瓷電容,一是將外部雜波過濾掉,二是將自身產(chǎn)生的雜波過濾掉,這樣可以保證最小系統(tǒng)的平穩(wěn)運(yùn)行。如圖3-2所示為時(shí)鐘電路。圖3-2晶振電路復(fù)位電路設(shè)計(jì)復(fù)位電路主要包括三部分,一是限流電阻R2、按鍵S1以及充電電容C1,在正常情況下,電源給電容充電,復(fù)位引腳一直保持高電平狀態(tài),單片機(jī)正常運(yùn)行;當(dāng)單片機(jī)突然斷電或者上電以及出現(xiàn)特殊狀況時(shí),按下按鍵,對(duì)電容進(jìn)行放電,此時(shí)復(fù)位引腳呈現(xiàn)低電平狀態(tài)。相關(guān)的復(fù)位電路示意圖詳見下圖。圖3單片機(jī)最小系統(tǒng)電路設(shè)計(jì)下面的圖3-3是STC89C52中最小系統(tǒng),最小系統(tǒng)是單片機(jī)運(yùn)行的前提,其中單片機(jī)最小系統(tǒng)主要是由復(fù)位電路、晶振電路和單片機(jī)芯片這三者構(gòu)成。最小系統(tǒng)的意義在于能夠確保單片機(jī)能夠正常的下載程序和調(diào)試。如果要增加功能可以在最小系統(tǒng)的基礎(chǔ)上擴(kuò)展電路。圖3-4單片機(jī)最小系統(tǒng)電路3.2LCD12864液晶顯示電路點(diǎn)陣LCD的顯示原理LCD12864液晶是一款字符形式的液晶顯示器,LCD12864液晶具有20個(gè)引腳,在使用的時(shí)候可以根據(jù)器件手冊(cè)進(jìn)行電路連接,采用LCD12864液晶的好處是除了顯示字母還可以顯示字符和圖形等各種信息。結(jié)合本次設(shè)計(jì)要顯示的內(nèi)容比較多,使用數(shù)碼管顯示會(huì)用到很多的數(shù)碼管,這樣會(huì)使電路非常的復(fù)雜,而且數(shù)碼管也不能顯示一些單位符號(hào)。LCD12864是指可以顯示128*64液晶顯示器,其顯示寬度為兩行,每行可以顯示16個(gè)字符。該顯示器的儲(chǔ)存字庫包括一百多種不同的字符分類,例如阿拉伯?dāng)?shù)字、英文的二十六個(gè)字母(包括大小寫)、數(shù)學(xué)符號(hào)等。其中每個(gè)字符對(duì)應(yīng)一個(gè)獨(dú)一的代碼。經(jīng)過程序?qū)⒋a轉(zhuǎn)化為對(duì)應(yīng)的字符,這樣在顯示屏上便能夠顯示出相應(yīng)的字符了。LCD12864液晶的硬件連接LCD12864有20來個(gè)管腳,電路連接起來也不復(fù)雜。不同于一般元器件的是,LCD的電源有2組,一組是用來顯示背光,另一組用來驅(qū)動(dòng)LCD。通常用到的接法為,將兩組電源連接或忽略背光電源不接。在LCD的VO與VOUT端口接一個(gè)可調(diào)電阻,電阻兩端可連接到VDD與VEE。通過對(duì)單片機(jī)內(nèi)部寄存器進(jìn)行調(diào)節(jié)就可調(diào)節(jié)對(duì)比度。對(duì)比度過高或過低,都會(huì)使屏幕無法正常顯示,這是剛接觸LCD時(shí)需要特別注意的地方。其余的端口對(duì)應(yīng)接到單片機(jī)引腳。LCD的管腳連接如圖3-5所示。圖3-5LCD12864管腳圖3.3按鍵控制電路使用獨(dú)立按鍵實(shí)現(xiàn),獨(dú)立按鍵就是我們常用的復(fù)位開關(guān),用手按下按鍵后,按鍵開關(guān)會(huì)閉合,當(dāng)手松開后按鍵會(huì)自動(dòng)斷開。因此根據(jù)這種原理,就可以將按鍵和單片機(jī)的I/O端口連接。通過這種方式,單片機(jī)在檢測(cè)端口的處于何種狀態(tài)便可以判別按鍵是否閉合,從而執(zhí)行相關(guān)的動(dòng)作。獨(dú)立按鍵最主要的特點(diǎn)就是設(shè)計(jì)電路簡(jiǎn)單,不需要很多的器件就能實(shí)現(xiàn)按鍵檢測(cè)功能。但是獨(dú)立按鍵也有一個(gè)缺點(diǎn)就是每個(gè)獨(dú)立按鍵都會(huì)占用一個(gè)單片機(jī)I/O端口,如果按鍵多會(huì)影響單片機(jī)的I/O資源。本次設(shè)計(jì)了3個(gè)按鍵,S2、S3、S4、分別和單片機(jī)的P35、P36、P37I/O引腳鏈接,分別設(shè)計(jì)設(shè)置按鍵、增加按鍵、減小按鍵用于設(shè)定水位的控制值。如下圖3-6所示。圖3-6按鍵電路3.4聲音提示電路設(shè)計(jì)本次設(shè)計(jì)的俄羅斯方塊電路具有聲音提示的功能,每當(dāng)有得分的時(shí)候會(huì)進(jìn)行聲音的提示。經(jīng)過對(duì)比,本次選擇單片機(jī)驅(qū)動(dòng)蜂鳴器來實(shí)現(xiàn)聲音提示的功能,具體的硬件連接電路如下圖3-7所示。在圖中通過三極管9012實(shí)現(xiàn)對(duì)蜂鳴器的控制,當(dāng)單片機(jī)的P37引腳為低電平的時(shí)候三極管Q1導(dǎo)通,蜂鳴器發(fā)聲,進(jìn)行聲音提示。圖33.5電源電路對(duì)于電源電路而言,它是具有確保系統(tǒng)處于正常工作的狀態(tài)。本次設(shè)計(jì)所采用的單片機(jī)、顯示器等元件的額定電壓均為5V,故考慮采用USB電源,詳細(xì)的構(gòu)造詳見下圖。圖3第4章系統(tǒng)軟件設(shè)計(jì)4.1程語言的選擇軟件程序是系統(tǒng)的核心,系統(tǒng)的所有的控制功能都需要程序控制來執(zhí)行,本次設(shè)計(jì)中的程序是下載到單片機(jī)中運(yùn)行,單片機(jī)中的編程語言有很多中,匯編語言、C語言、C++語言等都是使用的非常多的語言。C語言是近些年來逐漸發(fā)展起來的一種語言,可以說C語言的產(chǎn)生,對(duì)于當(dāng)今的軟件行業(yè)起到了至關(guān)重要的作用,對(duì)于很多的單片機(jī)開發(fā)者老說C語言的產(chǎn)生更是簡(jiǎn)化了單片機(jī)的開發(fā)過程,對(duì)于單片機(jī)程序的開發(fā)具有重要的意義。我們都知道C語言的設(shè)計(jì)思路是按照模塊化的設(shè)計(jì)思想而設(shè)計(jì)的,C語言的最小單位是按照函數(shù)的形式實(shí)現(xiàn)的,程序開發(fā)人員可以根據(jù)程序的功能把整個(gè)程序分解成各個(gè)功能的子程序,通過與語言分別編寫每個(gè)子程序的函數(shù),最后在把這些的子程序整合到一塊,構(gòu)成了系統(tǒng)的整體的程序。通過這種方式編寫的程序可以清晰的看到每個(gè)函數(shù)的功能,程序的可讀性非常的好,而且程序和程序之間也可以相互的調(diào)用。對(duì)于很多的單片機(jī)初學(xué)者選擇C語言作為單片機(jī)的程序開發(fā)語言已經(jīng)是一個(gè)潮流。匯編語言是早期單片機(jī)使用的非常廣泛的一種語言,匯編語言也是一種非常古老的語言,這種語言也是盼隨著單片機(jī)產(chǎn)生了發(fā)展起來的,匯編語言是按照一條一條指令運(yùn)行的,因此匯編語言的控制精度也非常的靈活,程序的運(yùn)行速度非常的快,也不會(huì)占用很多的單片機(jī)內(nèi)存,因此在很多的精密控制場(chǎng)合,現(xiàn)在還依然在使用匯編語言,比如鐵路、航空、精密儀器等場(chǎng)合。對(duì)于很多的初學(xué)者來說,匯編語言最大的障礙就是會(huì)變語言的程序可讀性差,程序員如果想要徹底的搞明白程序的功能,需要花費(fèi)大量的時(shí)間和精力。而且在進(jìn)行程序移植和二次開發(fā)的時(shí)候也會(huì)有很多的障礙,因此現(xiàn)在很多的研發(fā)人員很少使用匯編語言。C語言在當(dāng)今的編程語言中使用的最為廣泛,本次設(shè)計(jì)中使用了C語言進(jìn)行了系統(tǒng)的餓程序的編寫和調(diào)試。4.2軟件介紹和工程建立基于單片機(jī)的俄羅斯方塊設(shè)計(jì)的主控采用STC89C52,本設(shè)計(jì)的主要的核心的相關(guān)的控制設(shè)備是采用STC89C52,這一款單片機(jī)的開發(fā)是非常的簡(jiǎn)單的,我們使用的是C語音進(jìn)行的程序的設(shè)計(jì)和開發(fā)的,在編譯器的選擇方面,我們選用的是專門的單片機(jī)的開發(fā)軟件Keil來實(shí)現(xiàn)的。Keil是ARM公司進(jìn)行設(shè)計(jì)和研發(fā)的一款單片機(jī)的開發(fā)軟件,他支持多種單片機(jī)平臺(tái)的設(shè)計(jì),所以,本設(shè)計(jì)選用的51單片機(jī),他也可以進(jìn)行相關(guān)的支持,所以開發(fā)的效率會(huì)大大提高,同時(shí)也借助Keil內(nèi)部的數(shù)據(jù)的存儲(chǔ)庫也是非常的高效的,我們可以直接調(diào)用,而不需要進(jìn)行直接的底層程序的開發(fā)和設(shè)計(jì),所以是非常非常的方便和高效的。圖4-1就是Keil的開發(fā)界面,其界面非常的簡(jiǎn)潔,非常有利于程序的設(shè)計(jì)和開發(fā),然后其可以直接的生成一個(gè)Hex文件,然后進(jìn)行下載到單片機(jī),進(jìn)行程序的設(shè)計(jì)和實(shí)物的調(diào)試。圖4-1Keil軟件開發(fā)界面4.3俄羅斯方塊流程圖設(shè)計(jì)主程序流程圖通過圖4-2能夠知道主程序流程圖。當(dāng)單片機(jī)進(jìn)行了上電操作以后,游戲就啟動(dòng)了。首先,會(huì)形成一個(gè)圖形,并且是隨機(jī)生成的,然后會(huì)轉(zhuǎn)交給目前的圖形變量,然后會(huì)形成1個(gè)圖形然后轉(zhuǎn)交到提示圖形變量,這也是隨機(jī)操作的,隨后按照具體的變化來進(jìn)行圖形的繪制,即把提示以及當(dāng)前圖形都進(jìn)行繪制,通過下、右、左變形的按鍵。明確圖形是否完成了到底操作,假若還未能完成,就把圖形進(jìn)行下降,距離為一行,重新進(jìn)行繪圖,隨后開展按鍵處理;如果圖形完成了到底操作,就要對(duì)行滿狀態(tài)進(jìn)行明確,假如行未能滿,就要將當(dāng)前位置圖形進(jìn)行科學(xué)的繪制,并且對(duì)當(dāng)前圖進(jìn)行有效的提示,然后將提示圖進(jìn)行隨機(jī)的生成,并且對(duì)當(dāng)前圖進(jìn)行描繪,隨后開展按鍵處理;假如行滿了,就對(duì)表格是否完全滿了進(jìn)行明確,假如表格還未滿,就要對(duì)行進(jìn)行消除操作,然后將上面的行數(shù)進(jìn)行大幅度的往下移動(dòng),然后對(duì)其進(jìn)行清行為true、當(dāng)前圖改變?yōu)閒alse。假如表格已經(jīng)滿了,就要對(duì)全部數(shù)據(jù)是否完成了清操作進(jìn)行明確,假如不進(jìn)行清除,就會(huì)將圖形變量進(jìn)行轉(zhuǎn)換到當(dāng)前圖形,然后通過隨機(jī)的模式形成1個(gè)變量,然后把其提示給圖形變量,然后進(jìn)行繪圖;如果要使用清除,就選擇清屏,不管采用何種模式進(jìn)行選擇,最終的結(jié)果為游戲結(jié)束。這樣的話,就完成了一盤游戲。圖4-2主程序流程圖游戲外觀顯示流程圖當(dāng)處于靜態(tài)模式的時(shí)候,顯示屏上會(huì)很大程度上將文字信息進(jìn)行清晰的顯示,通過圖4-3能夠知道游戲外觀顯示的流程圖。當(dāng)將開始鍵進(jìn)行點(diǎn)擊的時(shí)候,單片機(jī)的首要操作就是將內(nèi)部RAM進(jìn)行清零操作,接下來緩沖區(qū)上會(huì)顯示字模數(shù)據(jù),從而可以在LCD上體現(xiàn)對(duì)應(yīng)的字樣,即俄羅斯方塊。圖4-3游戲外觀顯示流程圖俄羅斯方塊向左/右移動(dòng)工作流程圖通過圖4-4能夠知道俄羅斯方塊向左/右移動(dòng)工作流程圖,向左,向右移動(dòng)主要是控制俄羅斯方塊的位置改變,按下左/右控制鍵,目前的圖像位置會(huì)得到調(diào)整,然后通過古錢來回到對(duì)應(yīng)的子程序。圖4-4俄羅斯方塊向左/右移動(dòng)工作流程圖俄羅斯方塊中按下鍵的流程圖通過圖4-5能夠知道俄羅斯方塊按下鍵的流程圖。在進(jìn)行向下移動(dòng)等操作的時(shí)候,可以操作下鍵,按下鍵,圖形下移,然后返回到子程序。圖4-5俄羅斯方塊按下鍵的流程圖第5章系統(tǒng)的調(diào)試與制作5.1KEIL軟件介紹keil軟件是當(dāng)今單片機(jī)開發(fā)最流行的編譯軟件之一,keil軟件是美國(guó)keil公司生產(chǎn)和研發(fā)的員編譯軟件。keil軟件最初使用在51單片機(jī)的開發(fā)上,隨著單片機(jī)種類的增加功能的增加,keil軟件也支持的單片機(jī)的種類也在不斷的增加,現(xiàn)在keil軟件支持ATMEL、STC、STM32等等很多系列的單片機(jī)。keil編譯器支持整型、浮點(diǎn)型等多中操作類型。編譯器支持匯編語言、C語言等編程語言,可以對(duì)編寫的程序進(jìn)行語法錯(cuò)誤、格式錯(cuò)誤檢查,編寫成功代碼軟件會(huì)自動(dòng)在目錄下生成.hex、.bin等文件目前keil軟件已經(jīng)有很多的版本,kei3、keil4、keil5等。其中keil3和keil4的界面風(fēng)格差不多,功能上也差不多。keil5版本的界面風(fēng)格和keil3和keil4有所區(qū)別,功能也增加了不少。使用者可以根據(jù)需求選擇版本。通過使用keil軟件可以快速的實(shí)現(xiàn)對(duì)程序代碼的編寫、調(diào)試、編譯、仿真等工作。對(duì)于開發(fā)者來說可以提高不少的工作效率。如圖5-1為uVision4的界面。圖5-1uVision2的界面5.2程序調(diào)試在keil軟件中新建工程,在工程中編寫本次設(shè)計(jì)的程序代碼,編譯好代碼后可以通過軟件對(duì)代碼進(jìn)行差錯(cuò),錯(cuò)誤窗口會(huì)彈出軟件的錯(cuò)誤和警告的個(gè)數(shù),警告一般不影響程序的使用,有錯(cuò)誤說明程序不正確,不能生成單片機(jī)識(shí)別的.hex文件。如下圖所示可以看到當(dāng)前錯(cuò)誤數(shù)為0,警告數(shù)為0。圖5-2keil編譯程序成功下圖5-3中所示的是keil的工程設(shè)置界面,在界面中主要是配置keil是否自動(dòng)生成hex文件。當(dāng)把圖中的E生成HEX文件便提前點(diǎn)上√后,在對(duì)keil進(jìn)行編譯的時(shí)候,hex文件能夠自動(dòng)生成,這是通過程序輔助實(shí)現(xiàn)的。圖5-3keil生成hex文件5.3proteus仿真步驟Proteus軟件是單片機(jī)專用的仿真軟件,使用proteus軟件可以實(shí)現(xiàn)對(duì)單片機(jī)的整體的功能的仿真,proteus仿真軟件的研發(fā)能夠給單片機(jī)開發(fā)人員帶來很多的借鑒以及參考,能夠很大程度上增加開發(fā)者的工作有效性,在proteus軟件上進(jìn)行仿真就相當(dāng)于焊接電路板一樣。Proteus軟件可以和keil軟件進(jìn)行聯(lián)調(diào),在proteus軟件中可以將keil中的程序加載到軟件中的芯片中[15]。如下圖所示,電機(jī)繪制好的密碼鎖的單片機(jī)會(huì)彈出加載hex文件的界面。找到hex文件所在的位置后點(diǎn)擊確定句完成程序的加載,這就相當(dāng)于實(shí)物中給單片機(jī)下載程序一樣。圖5-4proteus調(diào)用keil的hex文件進(jìn)行仿真加載完單片機(jī)程序后,電機(jī)proteus仿真軟件的“運(yùn)行”按鈕后,仿真電路開始工作。如下5-6圖中可以看到LCD12864液晶上會(huì)顯示俄羅斯方塊的操作界面。圖5-6俄羅斯方塊仿真圖5.4實(shí)物綜合調(diào)試綜合調(diào)試的含義為,在將硬件電路以及軟件程序進(jìn)行順利的調(diào)試后,將軟件程序下載到實(shí)物電路板的單片機(jī)中記性一個(gè)整體功能的調(diào)試,看看電路板所實(shí)現(xiàn)的功能是否和最初設(shè)計(jì)的功能相同,能否滿足設(shè)計(jì)要求。通過綜合調(diào)試可以對(duì)軟件總存在的BUG,硬件的設(shè)計(jì)缺陷都檢測(cè)出來,這樣也方便我們隊(duì)軟件和硬件進(jìn)行及時(shí)的改正。在進(jìn)行整體綜合調(diào)試之前要準(zhǔn)備好相關(guān)的設(shè)備,PC機(jī)、keil軟件、程序下載線、焊接好的實(shí)物電路板、5V電源、導(dǎo)線若干。綜合調(diào)試按照如下的步驟進(jìn)行:(1)在電腦上安裝keil軟件,用keil軟件打開調(diào)試好的程序,并進(jìn)行編譯生成下載所需要的.hex文件。(2)將程序下載線一端連接到PC機(jī)的USB接口,有單連接到單片機(jī)的程序下載接口,給實(shí)物電路板接通電源。(3)在程序下載軟件上選擇實(shí)物電路板上對(duì)應(yīng)型號(hào)的單片機(jī),將.hex程序文件下載到單片機(jī)中,運(yùn)行觀察單片機(jī)傳感器的狀態(tài)、顯示器的狀態(tài)是否正確。(4)通過對(duì)按鍵操作和傳感器操作,測(cè)量系統(tǒng)的功能是否正確,是否能夠達(dá)到任務(wù)的設(shè)計(jì)他要求,有不合適的地方及時(shí)修改程序或者修改硬件電路。當(dāng)對(duì)軟件以及硬件都進(jìn)行調(diào)試完成后,如果都不存在任何
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全生產(chǎn)管理培訓(xùn)課件
- 性傳播感染預(yù)防課件
- 小學(xué)數(shù)學(xué)教學(xué)課件:認(rèn)識(shí)日歷
- 2025年專項(xiàng)成套裝置合作協(xié)議書
- 醫(yī)療技術(shù)準(zhǔn)入管理體系構(gòu)建
- 建筑工程施工現(xiàn)場(chǎng)施工安全技術(shù)管理課件
- 強(qiáng)化團(tuán)隊(duì)成員協(xié)作與忠誠(chéng)度:培訓(xùn)課件
- 黔南州2024-2025學(xué)年度第一學(xué)期期末質(zhì)量監(jiān)測(cè) 數(shù)學(xué)
- 遼寧省丹東市2025屆高三上學(xué)期1月期末教學(xué)質(zhì)量調(diào)研測(cè)試物理
- 2024年甘肅省定西市三上數(shù)學(xué)期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 2024年山東濟(jì)寧初中學(xué)業(yè)水平考試地理試卷真題(含答案詳解)
- 2024年計(jì)算機(jī)考試-ISTQB認(rèn)證考試近5年真題附答案
- 設(shè)備、材料供應(yīng)方案
- 環(huán)保督察課件教學(xué)課件
- 2024年五年級(jí)英語下冊(cè) Module 8 Unit 2 I made a kite教案 外研版(三起)
- DL∕T 1396-2014 水電建設(shè)項(xiàng)目文件收集與檔案整 理規(guī)范
- DL∕T 1250-2013 氣體絕緣金屬封閉開關(guān)設(shè)備帶電超聲局部放電檢測(cè)應(yīng)用導(dǎo)則
- T-CSAE 176-2021 電動(dòng)汽車電驅(qū)動(dòng)總成噪聲品質(zhì)測(cè)試評(píng)價(jià)規(guī)范
- 《新能源汽車地下停放場(chǎng)所消防安全管理規(guī)范》編制說明
- SL+336-2006水土保持工程質(zhì)量評(píng)定規(guī)程
- 信息化戰(zhàn)爭(zhēng)的論文3000字(合集三篇)
評(píng)論
0/150
提交評(píng)論