1緒 論
1.1本課題研究的背景及意義
隨著當今社會的發(fā)展,人們的生活節(jié)奏變得越來越快,人們開始逐漸的融入全球化的世界。人們已經(jīng)不再局限于一小塊天地,加班,出差已經(jīng)占據(jù)了現(xiàn)代人生活的絕大部分。這個時候,一款簡單易攜帶、隨時隨地都可以玩耍的小游戲似乎成了生活必需品,無論是上下班途中,還是閑暇的工作之余,像貪吃蛇這樣的小游戲都是不錯的放松選擇。貪吃蛇作為一款經(jīng)典的小游戲,相信絕大部分的人都玩過。因為這款游戲牢牢地抓住了大部分人的心理,雖然簡單,但趣味無窮,該游戲既能讓人們體會玩游戲的快感,也能滿足人們強烈的滿足感,對于現(xiàn)代高工作量,高壓力的白領一族是一種很好放松的一款游戲。
現(xiàn)代科技飛速發(fā)展,使得各大電子產(chǎn)品開始融入人們的生活,而微電子技術(shù)、計算機軟件與應用技術(shù)的發(fā)展,加快了電子產(chǎn)品的發(fā)展更新速度,使得人們的日常生活變得更加豐富多彩。而單片機作為電子產(chǎn)品的核心部件,以其獨特的構(gòu)造,優(yōu)良的穩(wěn)定性,便宜的價格在嵌入式領域廣泛運用。與以往手機上的貪吃蛇游戲不同的是:本次設計,采用單片機作為基礎,LCD12864液晶顯示屏作為顯示器,和揚聲器、按鍵一起搭建硬件平臺,再運用C語言編寫程序,實現(xiàn)整個貪吃蛇游戲。
1.2 國內(nèi)外研究現(xiàn)狀、水平
在國內(nèi),我國在1986年開始對單片機就行研究、發(fā)展。此后,單片機越來越吸引人們的關(guān)注,隨著1987年10月我國正式成立了國內(nèi)第一個全國性單片機學會,頻繁的全國性單片機學術(shù)交流會與展示會吸引了更多的人員加入單片機開發(fā)應用的行列。我國單片機的應用也開始真正的起步了。
隨著單片機在我國應用的深入,單片機的普及也得到了廣泛的開展,出版了各類單片機書刊。全國各地的單片機培訓基地如雨后的春筍一般地涌出,各地也逐漸成立了當?shù)氐膯纹瑱C分會。到了1995年,已有北京、上海、深圳、江蘇和天津等20多個省、市相繼建立了單片機研究分會,單片機的應用技術(shù)也日趨成熟,改變了以前應用單片機一味地追求總線外接存儲器與I/O的方式(這種方式雖然使用起來比較方便,但并沒有真正地發(fā)揮出單片機的“單片”特點),開始逐步接受了單片機應該姓“單”的思維模式。尤其從1991年在天津就單片機召開全國學術(shù)交流會之后,國內(nèi)也逐步適應潮流,開始推廣國際上流行的單片機(如摩托羅拉,NEC和飛利浦公司單片機)的應用,從而改變了Intel公司單片機一手遮天的局面。這也
表明了我國的單片機應用真正得走上了正規(guī)。
至今單片機在我國已經(jīng)走過了19個年頭,雖然時間不算長,但發(fā)展是很快的。從對單片機一無所知,到能獨立設計、自行生產(chǎn)和批量應用,這是一個巨大的飛躍。
而在國外,Motorola是世界上最大的單片機廠商,品種全,選擇余地大,新產(chǎn)品多,在8位機方面有68HC05和升級產(chǎn)品68HC08,68HC05有30多個系列200多個品種,產(chǎn)量超過20億片,8位增強型的單片機68HC11也有30多個類型,年產(chǎn)量在1億片以上,升級的單片機產(chǎn)品有68HC12,16位單片機68HC16也擁有十多個品種.32的位單片機683xx系列也有幾十個品種.近年來以PowerPC, Cod fire, M.CORE等作為 CPU,用 DSP 作為輔助模塊集成的單片機也紛紛推出,目前仍是單片機的首選品牌Motorola單片機特點之一是在同樣的速度下所用的時鐘較Intel 類單片機低的多因而使得高頻噪聲低,抗干擾能力強,更適合用于工控領域以及惡劣環(huán)境.Motorola 8 位單片機過去策略是掩膜為主,最近推出OTP計劃以適應單片機的發(fā)展,在32位機上,M.CORE在性能和功耗上都勝過 ARM7。
1.3 本課題的發(fā)展趨勢
雖然目前市面上擁有各式各樣的游戲,但是作為比較經(jīng)典的一塊游戲,貪吃蛇的市場價值還是相當大的。原因在于它雖然簡單,但是很具有誘惑力,能夠讓人愛不釋手。隨著的進行,游戲的速度也在不斷加快,能夠給人越來越刺激的感受。另外,這款游戲適合的人群范圍非常廣,大到70、80歲的老人,小到幾歲的小孩都可以玩。這款游戲的優(yōu)勢在于它簡單易攜帶,操作性強,無論是手機,還是小的游戲機,都能夠很順利的運行。而對于經(jīng)常在外忙碌的人來說,花費大量時間在游戲、娛樂上幾乎是不可能的,大型游戲?qū)λ麄兪切胁煌ǖ?那么像貪吃蛇這樣簡單易行的小游戲恰好符合他們的需求。
1.4本課題的研究內(nèi)容和達到的要求
本次設計主要研究的內(nèi)容是通過按鍵輸入信息到控制器單片機,再由單片機控制后面的電路,從而使顯示屏顯示我們需要顯示的游戲界面。需要達到的設計要求是:
①改變貪吃蛇運動方向的設計;
②貪吃蛇吃到食物后,自身的變化設計;
③食物隨機產(chǎn)生設計;
④游戲成績的記錄設計。
2? 方案分析與選擇
2.1 系統(tǒng)方案設計
根據(jù)系統(tǒng)設計的任務和要求,設計框圖如圖2.1所示,圖中控制器(AT89C52)位整個系統(tǒng)的核心部件,輸入模塊和顯示模塊用來實現(xiàn)人機交互的功能,其中,通過鍵盤輸入將需要設置的參數(shù)和狀態(tài)輸入到單片機中,并且通過控制器顯示到顯示器上。主要硬件包括STC89C52RC單片機、時鐘電路、復位電路、鍵盤、LCD12864液晶顯示屏、蜂鳴器。
圖2.1 系統(tǒng)設計框圖
2.2顯示器模塊設計方案
由于本次設計的是貪吃蛇小游戲,所以必須要將游戲界面呈現(xiàn)出來,那么,具體使用那種顯示器呢?以下給出了三種方案:
方案一:使用七段數(shù)碼管(LED)顯示。雖然數(shù)碼管具有亮度高、工作電壓低、易于集成、驅(qū)動簡單、耐沖擊且性能穩(wěn)定等特點,并且它可采用BCD編碼顯示數(shù)字,編程容易,硬件電路調(diào)試簡單,但是用于顯示,太消耗系統(tǒng)性能,而且不能顯示文字等更多的提示信息,所以不宜選用。
方案二:使用LCD1602:通過電壓對其顯示區(qū)域進行控制,通電就會顯示,比較方便,LCD1602具有顯示質(zhì)量高、數(shù)字式接口、體積小、重量輕、成本低、功耗低等優(yōu)點,但通常用于顯示字母和數(shù)字,不能顯示游戲界面,故不采納。
方案三:使用LCD12864:相比起LCD1602來說,LCD12864功能更加強大,帶有漢字庫,可以顯示漢字和圖形,而且屏幕分辨率較高,用于游戲界面顯示比較好。
綜上三種方案,在本次系統(tǒng)中,我們采用LCD12864液晶顯示屏。
2.3 按鍵輸入模塊設計方案
在系統(tǒng)中,我們需要通過按鍵來實現(xiàn)改變貪吃蛇的運動方向,以及菜單項的選擇。那么,鍵盤就是整個系統(tǒng)中不可缺少的一部分。具體有以下兩種方案以供選擇:
方案一:矩陣式鍵盤,這種鍵盤I/O口利用率高,但電路連接復雜,軟件編
程也比較復雜,適用于需要大量使用案件的系統(tǒng)。
方案二:獨立式鍵盤,這種鍵盤每個按鍵之間是相互獨立的,每個按鍵占用一條I/O線,當按鍵數(shù)量較多時,I/O口利用率不高,但程序編寫簡單,適用于所需按鍵較少的場合。
根據(jù)以上兩種方案的描述,再結(jié)合我們的系統(tǒng)設計,顯而易見,我們需要獨立式鍵盤,所以,這里我們選擇方案一。
2.4 本課題的技術(shù)指標
①電源電壓 ≥ 5.0V
②緩沖時間 ≤0.1s
2.5 本課題的創(chuàng)新
本次設計采用51單片機作為控制器,在傳統(tǒng)貪吃蛇游戲的基礎上,采用LCD12864作為游戲顯示界面,不僅能實現(xiàn)貪吃蛇游戲的接本操作,而且操作空間更大,可行性更高。
3? 系統(tǒng)硬件設計
3.1單片機的選擇與其性能分析
3.1.1 單片機概述
單片機是一種集成電路芯片,它是一種把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。單片機也稱為單片微型計算機(Single Chip Microcomputer)。為了方便使用,它把組成計算機的一些主要功能部件:中央處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM、EPROM、E2PROM或FLASH)、定時/計數(shù)器和各種輸入/輸出接口電路等都集成在一塊半導體芯片上,構(gòu)成了一個完整的計算機系統(tǒng)。與通用的計算機不同,單片機的指令功能是按照工業(yè)控制的要求設計,因此它又被稱為微控制器(Microcontroller)。
3.1.2 單片機STC89C52RC的介紹
STC89C52RC是由STC公司生產(chǎn)的新一代的高速度、抗干擾強、低功耗的單片機,它能夠完全兼容傳統(tǒng)的51單片機且其容量更大,價格更加低廉,所以在實際應用中常常使用。其工作頻率一般在0-40MHz之內(nèi),相當于一般51單片機的0-80MHz,但實際的工作頻率可達到48MHz左右,用戶的應用程序空間在8K字節(jié),片上集成512字節(jié)RAM,同時該單片機無需專用的編程器和仿真器,可通過串口直接下載用戶程序。STC89C52RC單片機的工作模式如下:
①正常工作模式:典型功耗為4mA-7mA;
②空閑模式:典型功耗為2mA。
STC89C52RC單片機各管腳分配圖如圖3.1所示。
圖3.1 STC89C52RC管腳圖
1.VCC:供電電壓;
2.GND:接地;
3.P0口:P0口為一個8位漏級開路雙向I/O口。作為輸出端口,每個管腳可驅(qū)動8個TTL負載,對P0口寫“1”時,可以作為高阻抗輸入。
4.P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口的輸出緩沖器能驅(qū)動(輸出或者吸收電流方式)4個TTL輸入。
5.P2口:P2口為一個內(nèi)部提供上拉電阻的8位雙向I/O口,P2口的輸出緩沖器可驅(qū)動(輸出或者吸收電流方式)4個TTL輸入,當P2口寫“1”時,其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入口。作為輸入口使用時,P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。
6.P3口:P3口是一個帶內(nèi)部上拉電阻的8為雙向I/O端口,其輸出緩沖器可驅(qū)動(輸出或者吸收電流方式)4個TTL輸入。
7.RST:復位輸入。當輸入兩個連續(xù)機器周期以上高電平時為有效,用來完成單片機的復位初始化操作。
8.ALE / PROG :當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存低8位地址的輸出脈沖。
9.PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期PSEN兩次有效。但在訪問內(nèi)部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不會出現(xiàn);
10.EA/VPP:當EA保持低電平時,訪問外部ROM;加密方式1時,EA將內(nèi)部鎖定為RESET;當EA端保持高電平時,訪問內(nèi)部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP);
11.XTAL1:內(nèi)部時鐘工作電路和反向振蕩放大器的輸入端;
12.XTAL2:反向振蕩器的輸入端。
3.1.3 單片機最小系統(tǒng)的介紹
單片機最小系統(tǒng),或者稱為單片機的最小應用系統(tǒng),是指用最少的元件組成的單片機可以工作的系統(tǒng)。對51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、晶振電路和復位電路。
復位電路:單片機中的復位電路就好像是電腦的重啟部分,當電腦在使用過程中出現(xiàn)死機時,按下電腦的重啟按鈕即可恢復。單片機在使用中也一樣,當單片機系統(tǒng)在運行過程中受到環(huán)境干擾出現(xiàn)程序出錯的時候,按下復位按鈕即可使內(nèi)部的程序自動從頭開始執(zhí)行。晶振電路:51單片機最小系統(tǒng)晶振的振蕩頻率直接影響單片機的處理速度,頻率越大處理速度越快。在51單片機中,晶振輸
出的脈沖周期為脈沖周期,12個脈沖周期為機器周期,單片機工作時間的最小值即為該單片機的機器周期。單片機的最小系統(tǒng)如圖3.2所示。
圖3.2 單片機最小系統(tǒng)的電路圖
3.2 LCD12864簡介
3.2.1 LCD12864概述
帶中文字庫的128*64是一種具有2線與3線串行以及4位/8位并行等多種接口方式,其內(nèi)部包含有國家標準一級和二級簡體的中文字庫的點陣的圖形液晶顯示模塊;其屏幕分辨率是128*64, 內(nèi)含16*16點漢字8192個,和16*8點ASCII碼字符集128個。
利用該模塊較為靈活的接口方式與簡單并且方便的操作指令,可以構(gòu)建全中文的人機交互圖形的界面。此界面可以顯示8*4行16*16點陣的漢字,也可以完成圖形的顯示,低電壓且低功耗是它的又一獨特的特點。由此模塊組成的液晶顯示器(LCD)的模塊方案,無論硬件電路結(jié)構(gòu)或顯示程序都要比同種類型的點陣圖形液晶顯示模塊簡潔得多,并且這個模塊的價格也均低于同種類型的點陣圖形液晶模塊。
3.2.2? LCD128*64的基本特性
(1)低電壓(VDD:+3.0——+5.5V)
(2)屏幕分辨率:128*64點
(3)內(nèi)置8192個16*16點陣漢字的字庫(繁簡體可任選)
(4)內(nèi)置16*8點陣字符128個
(5)2MHZ時鐘頻率
(6)顯示方式:半透、STN、正顯
(7)驅(qū)動方式:1/5BIAS ,1/32DUTY
(8)視角方向:6點
(9)背光方式:側(cè)部為高亮白色LED,功耗僅僅為普通LED的1/5—1/10
(10)通訊方式:并口、串行可任選
(11)內(nèi)置DC-DC轉(zhuǎn)換電路,不需要外加負壓
(12)不需要片選信號,簡化軟件的設計
(13)儲存溫度: -20℃ — +60℃, 工作溫度: 0℃ — +55℃