版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 俄羅斯方塊游戲</b></p><p><b> 摘 要</b></p><p> 本設(shè)計(jì)是通過(guò)AT89S52單片機(jī)來(lái)實(shí)現(xiàn)俄羅斯方塊游戲的設(shè)計(jì),使用C語(yǔ)言進(jìn)行編程,并通過(guò)Proteus來(lái)進(jìn)行仿真。</p><p> 本設(shè)計(jì)要實(shí)現(xiàn)的基本功能是:應(yīng)用按鍵來(lái)控制方塊的變換與移動(dòng);消除一行并計(jì)
2、分;消除多行額外獎(jiǎng)勵(lì)記分,方塊堆滿時(shí)結(jié)束游戲等俄羅斯方塊的基本功能。單片機(jī)在手持娛樂(lè)設(shè)備上的應(yīng)用具有非常大的潛力,它能將其帶入到一個(gè)新的階段。為了解決外部電路圖,必須充分了解所用液晶的顯示方法和單片機(jī)的外部接口功能,和所需要處理的邏輯關(guān)系;還要理解LCD液晶的控制原理,來(lái)通過(guò)數(shù)據(jù)端口和控制端口來(lái)實(shí)現(xiàn)畫面在液晶上面的顯示。</p><p> 程序則要求對(duì)外部電路了解的情況下完成自己所需要的功能,并將所要完成的功能
3、用編程語(yǔ)言的形式來(lái)實(shí)現(xiàn)。然后通過(guò)Protues仿真實(shí)現(xiàn)通過(guò)外部按鍵來(lái)控制各種不同圖形的方塊來(lái)玩游戲,并且實(shí)現(xiàn)記錄分?jǐn)?shù)和通過(guò)過(guò)關(guān)數(shù)來(lái)改變方塊下降的速度。最后將程序下載至AT89S52單片機(jī)并進(jìn)行實(shí)際運(yùn)行,實(shí)際運(yùn)行表明,本設(shè)計(jì)可以實(shí)現(xiàn)基本的游戲功能,達(dá)到預(yù)期的目的。</p><p> 關(guān)鍵詞:AT89S52;C語(yǔ)言; </p><p><b> 目 錄</b>&
4、lt;/p><p><b> 1緒 論1</b></p><p> 1.1課題背景1</p><p> 1.2電子游戲及其分類1</p><p> 1.3電子游戲發(fā)展現(xiàn)狀2</p><p> 1.3.1電子游戲國(guó)外發(fā)展現(xiàn)狀2</p><p>
5、1.3.2電子游戲國(guó)內(nèi)發(fā)展現(xiàn)狀3</p><p> 2整體設(shè)計(jì)方案5</p><p> 2.1系統(tǒng)的核心部分單片機(jī)5</p><p> 2.1.1單片機(jī)的選擇5</p><p> 2.1.2AT89S52引腳功能描述7</p><p> 2.1.3晶振特性9</p>&l
6、t;p> 2.2液晶顯示模塊10</p><p> 2.2.1液晶顯示控制驅(qū)動(dòng)器HD61202的特點(diǎn)10</p><p> 2.2.2液晶顯示控制驅(qū)動(dòng)器HD61202的引腳功能10</p><p> 2.2.3液晶顯示控制驅(qū)動(dòng)器HD61202的指令系統(tǒng)11</p><p> 2.2.4HD61202的軟件設(shè)計(jì)
7、12</p><p> 2.2.5JM12864J的電路結(jié)構(gòu)特點(diǎn)15</p><p> 2.2.6JM12864J的應(yīng)用16</p><p> 2.2.7鍵盤電路17</p><p> 3系統(tǒng)程序的設(shè)計(jì)18</p><p> 3.1俄羅斯方塊驅(qū)動(dòng)流程圖18</p><
8、p> 3.2俄羅斯方塊所有繪圖工作流程圖19</p><p> 3.3俄羅斯方塊中按下鍵的流程圖20</p><p> 3.4俄羅斯方塊所有繪圖工作流程圖21</p><p><b> 4系統(tǒng)仿真22</b></p><p> 4.1PROTUES軟件介紹22</p>&
9、lt;p> 4.2Keil軟件介紹22</p><p> 4.3俄羅斯方塊系統(tǒng)PROTUES仿真24</p><p> 5實(shí)物的制作與調(diào)試26</p><p> 5.1電路的焊接26</p><p> 5.2系統(tǒng)性能測(cè)試與功能說(shuō)明27</p><p><b> 結(jié) 論
10、28</b></p><p><b> 參考文獻(xiàn)29</b></p><p> 附錄1:C語(yǔ)言程序30</p><p> 附錄2:電路原理圖59</p><p> 附錄3:英文資料及中文翻譯60</p><p><b> 致 謝76</b>&
11、lt;/p><p><b> 緒 論</b></p><p> 計(jì)算機(jī)系統(tǒng)的發(fā)展已明顯地朝三個(gè)方向發(fā)展;這三個(gè)方向就是:巨型化,單片化,網(wǎng)絡(luò)化。以解決復(fù)雜系統(tǒng)計(jì)算和高速數(shù)據(jù)處理的仍然是巨型機(jī)在起作用,故而,巨型機(jī)在目前在朝高速及處理能力的方向努力。單片機(jī)在出現(xiàn)時(shí),Intel公司就給其單片機(jī)取名為嵌入式微控制器(embedded microcontroller)。單片
12、機(jī)的最明顯的優(yōu)勢(shì),就是可以嵌入到各種儀器、設(shè)備中。這一點(diǎn)是巨型機(jī)和網(wǎng)絡(luò)不可能做到的。單片機(jī)在內(nèi)部已集成了越來(lái)越多的部件,這些部件包括一般常用的電路,例如:定時(shí)器,比較器,A/D轉(zhuǎn)換器,D /A轉(zhuǎn)換器,串行通信接口,Watchdog電路,LCD控制器等。</p><p><b> 課題背景</b></p><p> 俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游
13、戲,作為最經(jīng)典的游戲之一,它曾造成的轟動(dòng)與經(jīng)濟(jì)價(jià)值可以說(shuō)是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人 Alex Pajitnov 制作的,它看似簡(jiǎn)單但卻變化無(wú)窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。</p><p> 雖然用單片機(jī)來(lái)設(shè)計(jì)一個(gè)簡(jiǎn)單的俄羅斯方塊游戲程序似乎有點(diǎn)大材小用了,但這僅僅是一個(gè)單片機(jī)在嵌入式游戲方面的簡(jiǎn)單應(yīng)用,正因?yàn)樗那熬盁o(wú)可預(yù)計(jì),所以才有
14、這個(gè)設(shè)計(jì),此次設(shè)計(jì)僅僅是為了舉一個(gè)單片機(jī)在游戲上應(yīng)用的一個(gè)簡(jiǎn)單例子,他可以很好的說(shuō)明單片機(jī)功能的強(qiáng)大,更高的可控性和高集成度的好處,因此它可以在電子游戲方面成為一個(gè)不可計(jì)量的明日之星。</p><p> 2005年,以計(jì)算機(jī)技術(shù)、通信技術(shù)和軟件技術(shù)為核心的信息技術(shù)取得了更加迅猛的發(fā)展,加上3C(計(jì)算機(jī)、通訊、消費(fèi)電子)產(chǎn)業(yè)的加速融合及3G移動(dòng)通信時(shí)代的逐步到來(lái),嵌入式軟件在國(guó)民經(jīng)濟(jì)各領(lǐng)域和日常生活中發(fā)揮了更加重
15、要的作用。嵌入式軟件的發(fā)展為幾乎所有的電子設(shè)備注入了新的活力,各種裝備與設(shè)備上嵌入式系統(tǒng)軟件的廣泛應(yīng)用也大大地推動(dòng)了其行業(yè)滲透性應(yīng)用。嵌入式軟件不僅提高了傳統(tǒng)產(chǎn)品的技術(shù)含量,更成為產(chǎn)品增值的關(guān)鍵因素,在整個(gè)軟件產(chǎn)業(yè)中占據(jù)了重要地位,并受到世界各國(guó)的廣泛關(guān)注,如今已成為信息產(chǎn)業(yè)中最為耀眼的“明星”之一。</p><p><b> 電子游戲及其分類</b></p><p&g
16、t; 電子游戲,也就是運(yùn)行在家用電腦、家用電子游戲機(jī)或是掌中寶游戲機(jī)及街機(jī)上的電子游戲程序。電子游戲是一種結(jié)合劇情故事、美術(shù)、音樂(lè)、動(dòng)畫、程序等技術(shù)于一身的互動(dòng)型娛樂(lè)軟件,涉及到多個(gè)行業(yè)。 </p><p> 從電子游戲的分類來(lái)看,有著多種分類方式。傳統(tǒng)的游戲分類是按照游戲類型,將其分為即時(shí)戰(zhàn)略游戲、第一人稱射擊游戲、角色扮演游戲、策略型游戲等類別。根據(jù)游戲運(yùn)行平臺(tái)的不同,可將電子游戲分為游戲機(jī)游戲、單機(jī)版P
17、C 游戲、互動(dòng)電視游戲、在線游戲和手機(jī)游戲。此外,韓國(guó)政府將電子游戲業(yè)分為家用游戲機(jī)游戲、單機(jī)版PC 游戲、網(wǎng)絡(luò)游戲和街機(jī)游戲四大類??紤]到中韓游戲業(yè)比較接近,論文采用韓國(guó)的分類標(biāo)準(zhǔn)?!熬W(wǎng)絡(luò)游戲”也就是人們一般所指的“在線游戲”,是指通過(guò)互聯(lián)網(wǎng)進(jìn)行的電腦游戲,通過(guò)人與人之間的互動(dòng)達(dá)到交流、娛樂(lè)和休閑的目的。在互聯(lián)網(wǎng)(局域網(wǎng))技術(shù)出現(xiàn)之前,電子游戲都可以歸于單機(jī)版游戲,即“人機(jī)對(duì)戰(zhàn)”游戲,或最多是雙人對(duì)戰(zhàn)游戲。而隨著互聯(lián)網(wǎng)技術(shù)的出現(xiàn),通過(guò)
18、連接游戲服務(wù)器,上百、上千、乃至上萬(wàn)的游戲玩家同時(shí)連線娛樂(lè)成為了現(xiàn)實(shí),這就大大增加了游戲的互動(dòng)性、真實(shí)性,豐富了電子游戲的內(nèi)涵。從網(wǎng)絡(luò)游戲的分類來(lái)看,目前業(yè)界還沒(méi)有一個(gè)比較統(tǒng)一規(guī)范的分類。隨著計(jì)算機(jī)設(shè)備和網(wǎng)絡(luò)技術(shù)的發(fā)展,電子游戲在全球得到了迅猛的發(fā)展,取得了巨大的成功,已成為當(dāng)今世界上不可缺少的精神糧食。</p><p><b> 電子游戲發(fā)展現(xiàn)狀</b></p><p
19、> 電子游戲國(guó)外發(fā)展現(xiàn)狀</p><p> 電子游戲是最初產(chǎn)生于美國(guó),1971年,一個(gè)還在MIT就讀的學(xué)生設(shè)計(jì)了世界上第一個(gè)業(yè)務(wù)用游戲機(jī),這個(gè)街機(jī)游戲的名字叫《電腦空間》??梢哉f(shuō)時(shí)至今日,電子游戲仍然是外國(guó)的天下。</p><p> 美國(guó)至今仍是世界第一大游戲市場(chǎng),它遵循的是以發(fā)行商為主的產(chǎn)業(yè)開發(fā)鏈模式,根據(jù)美國(guó)市場(chǎng)調(diào)查公司NPD Group調(diào)查統(tǒng)計(jì),美國(guó)2004年游戲總銷售金
20、額(包括家用、掌上型主機(jī)及軟件)為99億美元,占了全球游戲市場(chǎng)的45%。其中游戲軟件銷售的具體數(shù)字是:視頻游戲軟件的銷售額達(dá)52億美元(1.6億套),PC游戲軟件銷售額達(dá)11億美元(4500萬(wàn)套),掌機(jī)游戲銷售額達(dá)10億美元(4230萬(wàn)套)。2004年一共大約有2.48億套游戲售出。據(jù)估計(jì),美國(guó)每個(gè)家庭平均購(gòu)買過(guò)2部游戲。</p><p> 日本近20年來(lái)瘋狂賺電子游戲的錢。從上世紀(jì)60年代初的街機(jī),到六七十年
21、代之間的家用游戲機(jī),再到八九十年代的掌上游戲機(jī),日本經(jīng)過(guò)30多年的耕耘,終于把電子游戲這棵“搖錢樹”,培育成第一時(shí)尚娛樂(lè)產(chǎn)業(yè),壟斷全球業(yè)界長(zhǎng)達(dá)10余年。對(duì)于日本來(lái)說(shuō),電玩業(yè)已是國(guó)家經(jīng)濟(jì)的重要支柱之一,在GDP中占有1/5的舉足輕重地位。日本游戲業(yè)在最輝煌的1998年,曾經(jīng)占領(lǐng)全球電子游戲市場(chǎng)硬件90%以上,軟件50%以上。</p><p> 韓國(guó)號(hào)稱世界上網(wǎng)絡(luò)游戲產(chǎn)業(yè)最發(fā)達(dá)國(guó)家之一。迄今為止,國(guó)內(nèi)網(wǎng)絡(luò)游戲市場(chǎng)有
22、超過(guò)60%的產(chǎn)品來(lái)自韓國(guó)游戲軟件開發(fā)商,韓國(guó)網(wǎng)絡(luò)游戲使國(guó)內(nèi)很多游戲運(yùn)營(yíng)公司在游戲營(yíng)銷市場(chǎng)或股票資本市場(chǎng)上獲得了巨大的成功。 韓國(guó)游戲市場(chǎng)的發(fā)展不是偶然,韓國(guó)政府不僅給游戲產(chǎn)業(yè)以正確的定位和引導(dǎo),更是將其和本國(guó)經(jīng)濟(jì)發(fā)展緊密地聯(lián)系到一起,做了很多市場(chǎng)培育方面的工作。韓國(guó)政府認(rèn)識(shí)到,靠重型工業(yè)來(lái)支撐全國(guó)經(jīng)濟(jì)的做法是片面的,于是將IT、娛樂(lè)產(chǎn)業(yè)視為新的經(jīng)濟(jì)增長(zhǎng)點(diǎn),開始大力扶持。從那時(shí)起,科技含量極高而能源消耗極低的游戲制作及相關(guān)產(chǎn)業(yè)擔(dān)負(fù)起了“富
23、國(guó)興邦”的重?fù)?dān)。由文化觀光部出面組建韓國(guó)游戲支援中心,向韓國(guó)游戲產(chǎn)業(yè)提供從資金到技術(shù)上的多方面支援;成立游戲投資聯(lián)盟,政府每年向游戲產(chǎn)業(yè)投入的資金多達(dá)500億韓元,并為游戲企業(yè)提供長(zhǎng)期的低息貸款;設(shè)立信息化基金和文化產(chǎn)業(yè)基金,為游戲產(chǎn)業(yè)服務(wù);對(duì)指定的風(fēng)險(xiǎn)企業(yè)實(shí)行各種稅制優(yōu)惠政策,減少甚至免除游戲企業(yè)的稅務(wù)負(fù)擔(dān);建設(shè)游戲產(chǎn)業(yè)基地以扶持中小游戲企業(yè)的發(fā)展;對(duì)從事游戲產(chǎn)業(yè)的高科技人才免除兩年的兵役。在韓國(guó),從制作到運(yùn)營(yíng),一個(gè)網(wǎng)絡(luò)游戲公司起步門
24、檻較低,主要得益于政府實(shí)行的援助計(jì)劃。此外,在有利</p><p> 電子游戲國(guó)內(nèi)發(fā)展現(xiàn)狀</p><p> 與電子游戲發(fā)達(dá)的國(guó)家相比,我國(guó)在電子游戲方面還存在比較大的差距。目前,我國(guó)游戲市場(chǎng)正處于發(fā)展階段,但市場(chǎng)上的游戲軟件主要來(lái)自日本、美國(guó)、韓國(guó)等地,但由本土游戲制作人開發(fā)創(chuàng)作的游戲正在高速增加,國(guó)產(chǎn)原創(chuàng)的游戲即將成為游戲的主流。</p><p> 中國(guó)的
25、游戲產(chǎn)業(yè)經(jīng)過(guò)80年代初期臺(tái)灣廠商的探索至90年代,開始了自己的研發(fā)、發(fā)行的歷程,直至網(wǎng)絡(luò)游戲的風(fēng)行,讓中國(guó)的網(wǎng)絡(luò)游戲開始有了飛速的發(fā)展。 1983年,智冠科技有限公司在中國(guó)臺(tái)灣成立,為全球第一家簽訂授權(quán)重制中文版產(chǎn)品代理銷售合約的公司,2000年智冠在臺(tái)灣股票上市, 2002年其控股的中華網(wǎng)龍?jiān)谂_(tái)灣上市。</p><p> 1996年底,UBI SOFT上海分公司暨上海育碧電腦軟件有限公司成立。同年,全球游戲軟
26、件領(lǐng)軍企業(yè)EA在中國(guó)上海成立辦事處。1997年,由尚洋公司制作的《血獅》正式上市。 1997年,北京新天地互動(dòng)多媒體技術(shù)有限公司成立,該公司引進(jìn)了《古墓麗影III》(TombRaider III)、《盟軍敢死隊(duì)》等著名歐美游戲,并在1999年在中國(guó)率先掀起“游戲軟件價(jià)格革命”,全面推行50元的價(jià)格體系,從此正版游戲價(jià)格開始貼近大眾消費(fèi)者。 1999年,業(yè)內(nèi)估算中國(guó)電腦游戲市場(chǎng)(正版)約1.5億元人民幣。 2000年,大陸華彩軟件代理發(fā)行
27、第一款中文MMORPG《萬(wàn)王之王》正式推出,該游戲于1999年在臺(tái)灣發(fā)行,由臺(tái)灣雷爵資訊(Lager)開發(fā)。也在2000年,繼《萬(wàn)王之王》、《石器時(shí)代》、《網(wǎng)絡(luò)三國(guó)》在臺(tái)灣上市之后,游戲桔子推出了《天堂》,游戲桔子成立于1995年,1999年以《便利店》在臺(tái)灣奠定了地位?!短焯谩愤@款由韓國(guó)著名游戲公司Ncsoft研發(fā)的網(wǎng)絡(luò)游戲不但在本國(guó)大獲成功,也在臺(tái)灣再次奪冠。 2001年初,北京華義在中國(guó)大陸地區(qū)正式推出了《石器時(shí)代》,華義國(guó)際股份
28、有限公司于1993年在臺(tái)北成立,</p><p><b> 整體設(shè)計(jì)方案</b></p><p> 系統(tǒng)的核心部分單片機(jī)</p><p><b> 單片機(jī)的選擇</b></p><p> 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于
29、控制領(lǐng)域,故又稱為微控制器。</p><p> 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。</p><p> 20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高
30、,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。 時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。</p><p> 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單
31、片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p> 單片機(jī)經(jīng)過(guò)3代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價(jià)格、大存儲(chǔ)容量、強(qiáng)I/O功能及較好的結(jié)構(gòu)兼容性方向發(fā)展。其發(fā)展趨勢(shì)不外乎以下幾
32、個(gè)方面:</p><p><b> 多功能 </b></p><p> 單片機(jī)中盡可能地把所需要的存儲(chǔ)器和I/O口都集成在一塊芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比如A/D、PWM、PCA(可編程計(jì)數(shù)器陣列)、WDT(監(jiān)視定時(shí)器---看家狗)、高速I/O口及計(jì)數(shù)器的捕獲/比較邏輯等。</p><p> 有的單片機(jī)針對(duì)某一個(gè)應(yīng)用領(lǐng)
33、域,集成了相關(guān)的控制設(shè)備,以減少應(yīng)用系統(tǒng)的芯片數(shù)量。例如,有的芯片以51內(nèi)核為核心,集成了USB控制器、SMART CARD接口、MP3解碼器、CAN或者I*I*C總線控制器等,LED、LCD或VFD顯示驅(qū)動(dòng)器也開始集成在8位單片機(jī)中。</p><p><b> 2.高效率和高性能</b></p><p> 為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開始使用RISC、流水
34、線和DSP的設(shè)計(jì)技術(shù),使單片機(jī)的性能有了明顯的提高,表現(xiàn)為:?jiǎn)纹瑱C(jī)的時(shí)鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)ROM(FLASH)和RAM的容量都突破了以往的數(shù)量和限制。</p><p> 由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開始使用高級(jí)語(yǔ)言(如C語(yǔ)言)來(lái)開發(fā)單片機(jī)的程序。使用高級(jí)語(yǔ)言可以降低開發(fā)難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)
35、充功能。</p><p><b> 3.低電壓和低功耗</b></p><p> 單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于CMOS等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作(1.2V或0.9V),功耗已經(jīng)降低到uA級(jí)。這些特性使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長(zhǎng)的時(shí)間。</p><p><b>
36、 4.低價(jià)格</b></p><p> 單片機(jī)應(yīng)用面廣,使用數(shù)量大,帶來(lái)的直接好處就是成本的降低。目前世界各大公司為了提高競(jìng)爭(zhēng)力,在提高單片機(jī)性能的同時(shí),十分注意降低其產(chǎn)品的價(jià)格。</p><p> 在此,我們采用型號(hào)為AT89S52的單片機(jī)。因?yàn)椋?AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失
37、性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。</p><p> 與MCS-51單片機(jī)產(chǎn)品兼容 、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、1000次擦寫周期、全靜態(tài)操作:0Hz~33MH、三級(jí)加密程序存儲(chǔ)器 、32
38、個(gè)可編程I/O口線 、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源 、全雙工UART串行通道、低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符 。</p><p> AT89S52具有以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可
39、降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p> AT89S52單片機(jī)有PDIP、PLCC、TQFP三種封裝方式,在此我選用DPIP也就是雙列直插封裝的單片機(jī)此種封裝有如下特點(diǎn):</p><p&g
40、t; 1. 適合PCB的穿孔安裝;</p><p> 2. 易于對(duì)PCB布線;</p><p><b> 3. 操作方便;</b></p><p> AT89S52引腳功能描述</p><p> AT89S52單片機(jī)的管腳說(shuō)明如圖2-1所示:</p><p> 圖2-1 DIP封裝 A
41、T89S52單片機(jī)引腳結(jié)構(gòu)圖</p><p><b> 1.VCC:電源。</b></p><p> 2.GND:接地端 。</p><p> 3.P0口(P0.0~P0.7):P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也
42、被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在Flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p> 4.P1口(P1.0~P1.7):P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由
43、于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和 P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如表2-1所示:</p><p> 在 Flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。</p><p> 表2-1 P1口第二功能</p><p> 5.P2口(P2.0~P2.7):
44、P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如 MOVX @RI)訪問(wèn)外部數(shù)據(jù)存
45、儲(chǔ)器時(shí),P2口輸出P2 鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p> 6.P3口(P3.0~P3.7):P3 口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為 AT8
46、9S52第二功能使用,如表2-2所示:</p><p> 表2-2 P3口第二功能</p><p> 在 flash 編程和校驗(yàn)時(shí),P3 口也接收一些控制信號(hào)。RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器 AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位
47、高電平有效。</p><p> ALE/:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE 脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置“1”,ALE操作將無(wú)效。這一位置“1”
48、,ALE 僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE將被微弱拉高。這個(gè)ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。</p><p> :外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng) AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。</p><p&
49、gt; A/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,EA 必須接 GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。</p><p> XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p> XTAL2:振蕩器反相放大器的輸出端。</p><p&
50、gt;<b> 晶振特性</b></p><p> AT89S52單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1和XTAL2分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來(lái)一起構(gòu)成自激振蕩器。從外部時(shí)鐘源驅(qū)動(dòng)器件的話,XTAL2可以不接,而從XTAL1接入,如圖2-2所示。由于外部時(shí)鐘信號(hào)經(jīng)過(guò)二分頻觸發(fā)后作為外部時(shí)鐘電路輸入的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有其它要求,最
51、長(zhǎng)低電平持續(xù)時(shí)間和最少高電平持續(xù)時(shí)間等還是要符合要求的。如圖 2-2 所示:</p><p> 圖2-2內(nèi)部振蕩電路連接圖</p><p><b> 液晶顯示模塊</b></p><p> 顯示器部分是由HD61202液晶顯示控制驅(qū)動(dòng)器和JM12864J液晶顯示器組成的,下面我們對(duì)其分別進(jìn)行介紹。</p><p>
52、 液晶顯示控制驅(qū)動(dòng)器HD61202的特點(diǎn)</p><p> HD61202液晶顯示控制驅(qū)動(dòng)器是一種帶有驅(qū)動(dòng)輸出的圖形液晶顯示控制器,它可直接與8位微處理器相連,它可與HD61203配合對(duì)液晶屏進(jìn)行行、列驅(qū)動(dòng)。HD61202是一種帶有列驅(qū)動(dòng)輸出的液晶顯示控制器,它可與行驅(qū)動(dòng)器HD61203配合使用,組成液晶顯示驅(qū)動(dòng)控制系統(tǒng)。</p><p> 1.內(nèi)藏64×64=4096位顯
53、示RAM,RAM中每位數(shù)據(jù)對(duì)應(yīng)LCD屏上一個(gè)點(diǎn)的亮、暗狀態(tài);</p><p> 2.HD61202是列驅(qū)動(dòng)器,具有64路列驅(qū)動(dòng)輸出;</p><p> 3.HD61202讀、寫操作時(shí)序與68系列微處理器相符,因此它可直接與68系列微處理器接口相連;</p><p> 4.HD61202的占空比為1/32~1/64。</p><p>
54、液晶顯示控制驅(qū)動(dòng)器HD61202的引腳功能</p><p> 引腳CS1,CS2,CS3 為芯片的片選端;引腳 E 為讀寫使能信號(hào),它是在下降沿時(shí)數(shù)據(jù)被鎖存入HD61202的;在E 高電平期間,數(shù)據(jù)被讀出;R/W 為讀寫選擇信號(hào),當(dāng)它為一時(shí)為讀選通,為零時(shí)為寫選通;DB0-DB7為數(shù)據(jù)總線RST 為復(fù)位信號(hào)復(fù)位信號(hào)有效時(shí),關(guān)閉液晶顯示,使顯示起始行為0,RST可跟MCU相連,由MCU控制;也可直接接VDD,使之
55、不起作用。HD61202的引腳功能如下表2-3所示:</p><p> 表2-3 HD61202的引腳功能</p><p> 液晶顯示控制驅(qū)動(dòng)器HD61202的指令系統(tǒng)</p><p> HD61202的指令系統(tǒng)比較簡(jiǎn)單,總共只有七種?,F(xiàn)分別介紹如下:</p><p> 1. 顯示開/關(guān)指令</p><p>
56、 當(dāng)DBO=1時(shí),LCD顯示RAM中的內(nèi)容;DBO=0時(shí),關(guān)閉顯示。</p><p> 2. 顯示起始行(ROW)設(shè)置指令</p><p> 該指令設(shè)置了對(duì)應(yīng)液晶屏最上一行的顯示RAM的行號(hào),有規(guī)律的改變顯示起始行,可以使LCD實(shí)現(xiàn)顯示滾屏的效果。</p><p> 3. 頁(yè)(PAGE)置指令</p><p> 顯示RAM共64行,分
57、8頁(yè),每頁(yè)8行。</p><p> 4. 列地址(Y Address)設(shè)置指令</p><p> 設(shè)置了頁(yè)地址和列地址,就唯一確定了顯示RAM中的一個(gè)單元,這樣MCU就可以用讀、寫指令讀出該單元中的內(nèi)容或向該單元寫進(jìn)一個(gè)字節(jié)數(shù)據(jù)。</p><p><b> 5. 讀狀態(tài)指令</b></p><p> 該指令用來(lái)查
58、詢HD61202的狀態(tài),各參量含義如下:</p><p> BUSY: 1-內(nèi)部在工作 0-正常狀態(tài)</p><p> ON/OFF:1-顯示關(guān)閉 0-顯示打開</p><p> REST: 1-復(fù)位狀態(tài) 0-正常狀態(tài)</p><p> 在BUSY和REST狀態(tài)時(shí),除讀狀態(tài)指令外,其它指令均不對(duì)HD61202產(chǎn)生
59、作用。在對(duì)HD61202操作之前要查詢BUSY狀態(tài),以確定是否可以對(duì)HD61202進(jìn)行操作。</p><p><b> 6. 寫數(shù)據(jù)指令</b></p><p> 讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動(dòng)增一,必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著再讀才會(huì)讀出所要讀的單元中的數(shù)據(jù)。</p><p><b&g
60、t; 7. 讀數(shù)據(jù)指令</b></p><p> HD61202的軟件設(shè)計(jì)</p><p> 液晶控制器HD61202 一共有七條指令,從作用上可分為兩類,顯示狀態(tài)設(shè)置指令和數(shù)據(jù)讀/寫操作指令。詳見指令系統(tǒng)可查看圖形液晶顯示器產(chǎn)品有關(guān)手冊(cè)。顯示起始行設(shè)置中L5~L0 為顯示起始行的地址,取值在0-3FH(1-64 行)范圍內(nèi)。頁(yè)面地址設(shè)置中P2-P0 為選擇的頁(yè)面地址,取
61、值范圍為0-7H,代表1-8 頁(yè)。列地址設(shè)置中C5-C0 為Y地址計(jì)數(shù)器的內(nèi)容,取值在0-3FH(1-64 行)范圍內(nèi)。</p><p> 顯示器上128 點(diǎn)×64 點(diǎn),每8點(diǎn)為一字節(jié)數(shù)據(jù),都對(duì)應(yīng)著顯示數(shù)據(jù)RAM(在HD61202 芯片內(nèi)),一點(diǎn)對(duì)應(yīng)一個(gè)bit,計(jì)算機(jī)寫入或讀出顯示存儲(chǔ)器的數(shù)據(jù)代表顯示屏上某一點(diǎn)列上的垂直8 點(diǎn)行的數(shù)據(jù)。D0 代表最上一行的點(diǎn)數(shù)據(jù),D1為第二行的點(diǎn)數(shù)據(jù),……D7為第八行
62、的點(diǎn)數(shù)據(jù)。該bit=1 時(shí)該點(diǎn)則顯示黑點(diǎn)出來(lái),該bit=0 時(shí)該點(diǎn)則消失。另外LCD 指令中有-條display ON/OFF 指令,display ON 時(shí)顯示RAM 數(shù)據(jù)對(duì)應(yīng)顯示的畫面;display OFF 則畫面消失,RAM 中顯示數(shù)據(jù)仍存在。</p><p> 點(diǎn)陣字模文件的建立:</p><p> 由于MGLS12864 液晶顯示器沒(méi)有內(nèi)部字符發(fā)生器,所以在屏幕上顯示的任何
63、字符、漢字等須自己建立點(diǎn)陣字模庫(kù),然后均按圖形方式進(jìn)行顯示。由于HD61202 顯示存儲(chǔ)器的特性,不能將計(jì)算機(jī)內(nèi)的漢字庫(kù)和其它字模庫(kù)提出直接使用,需要將其旋轉(zhuǎn)90 度后再寫入。點(diǎn)陣字模庫(kù)建立包括以下幾個(gè)方面:</p><p> 1.建立8×16 點(diǎn)陣常用字符、數(shù)字、符號(hào)字模庫(kù)。</p><p> 可選用計(jì)算機(jī)BIOS 中ASCII 的8×16 字模庫(kù),所有字符按照A
64、SCII 值從小到大升序排列。</p><p> asm{MOV ax,1130h /*AH=11h—功能調(diào)用。裝入字庫(kù)至軟字庫(kù) */</p><p> mov bh,6 /*AL=30h 取點(diǎn)陣信息 */</p><p> int 10h /*BH=6 取ROM8X16 點(diǎn)陣指針(VGA) */</p><p> mov ax,es
65、 /*出口:ES:BP 指向字庫(kù)指針 */</p><p> mov ascii_es,ax</p><p><b> mov ax,bp</b></p><p> mov ascii_bp,ax };</p><p> ascii_offset=ascii_bp+16*asciicode;</p>
66、<p> for(j=0;j<16;j++) buf[j]=peekb(ascii_es,ascii_offset+j); /*讀16 字節(jié)點(diǎn)陣數(shù)據(jù)*/</p><p> for(m=0;m<16;m++) /*點(diǎn)陣數(shù)據(jù)轉(zhuǎn)換成LCD 格式數(shù)據(jù)*/</p><p> { if(m<8) { beginbyte= 7; shiftn="7"
67、;;}</p><p> else { beginbyte="15"; shiftn="15";}</p><p> for(j=0;j<8;j++)</p><p> ascii8x16[m]=(ascii8x16[m]+ (buf[beginbyte-j]>>(shiftn-m))&0x01
68、)<<1;</p><p><b> } </b></p><p> 也可選用UCDOS 的ASC16 文件做字模庫(kù)。ASC16 文件的字符為8×16 點(diǎn)陣。所有字符按照ASCII值從小到大升序排列。計(jì)算字符首地址的公式:字符首地址=字符的ASCII 碼值×16加字模庫(kù)首地址。</p><p> 2.建立所
69、用到的16×16 點(diǎn)陣字模庫(kù)。漢字字符可選用UCDOS 的HZK16 文件做字模庫(kù)。HZK16 文件的字符為16×16 點(diǎn)陣。所有字符按照區(qū)位碼從小到大升序排列。計(jì)算漢字字符首地址的公式如下:漢字首地址=((區(qū)碼-1)×94+位碼-1)×32。作者用C 語(yǔ)言編寫的讀取UCDOS 點(diǎn)陣字庫(kù)字模程序,完成字模讀取。</p><p> 數(shù)據(jù)重新排列,并按MCS-51 匯編程序的
70、要求寫成相應(yīng)格式的文本文件。</p><p> p=((quma-1)*94+weima-1)*32;</p><p> cclibfile="fopen"("HZK16","rb");</p><p> fseek(cclibfile,(long)p,SEEK_SET);</p>&l
71、t;p> fread(buf,sizeof(unsigned char),32,cclibfile); /*讀32 字節(jié)點(diǎn)陣數(shù)據(jù)*/</p><p> for(m=0;m<32;m++){ /*點(diǎn)陣數(shù)據(jù)轉(zhuǎn)換成LCD 格式數(shù)據(jù)*/</p><p> if(m<8) { beginbyte="14"; shiftn="7";}&l
72、t;/p><p> else if( m>= 8 && m<16 ) { beginbyte="15"; shiftn="15";}</p><p> else if( m>=16 && m<24 ) { beginbyte="30"; shiftn="23&quo
73、t;;}</p><p> else { beginbyte="31"; shiftn="31";}</p><p> for(j=0;j<8;j++)</p><p> hzk16x16[m]=(hzk16x16[m]+ (buf[beginbyte-2*j] >>(shiftn-m))&0x
74、01)<<1;</p><p><b> }</b></p><p> 3.常用圖形(如產(chǎn)品商標(biāo)等)的點(diǎn)陣圖形的建立。對(duì)已有的圖形可采用掃描儀進(jìn)行掃描,然后用圖形處理軟件進(jìn)行處理,再將BMP 格式文件轉(zhuǎn)換成MCS-51的匯編文件的格式。</p><p> 以上所有的字模數(shù)據(jù)都存放在單片機(jī)W78E58 的程序存儲(chǔ)器中,如用到的漢
75、字、圖形較多,可選用較大容量的程序存儲(chǔ)器。</p><p> 通用子程序:通用子程序分左半屏、右半屏寫指令代碼子程序和寫顯示數(shù)據(jù)子程序。液晶顯示驅(qū)動(dòng)器HD16202 內(nèi)部有個(gè)忙標(biāo)志寄存器,當(dāng)BF=1 時(shí),表示內(nèi)部操作正在運(yùn)行,不能接受外部數(shù)據(jù)或指令。下面子程序中設(shè)指令代碼寄存器為COMM,數(shù)據(jù)寄存器為DATA。</p><p> (COMM EQU 20H /*指令寄存器*/ DATA
76、 EQU 21H /*數(shù)據(jù)寄存器*/)</p><p> 1.左半屏寫指令子程序</p><p> WR_CMD1: MOV DPTR,#CRADR1 ;/*讀狀態(tài)字口地址*/</p><p> WAIT1: MOVX A,@DPTR ;/* 讀狀態(tài)字 */</p><p> JB ACC.7,WAIT1 ;/*判忙標(biāo)志BF,如BF=
77、1 忙,等待*/</p><p> MOV DPTR,#CWADR1 ;/*寫指令字口地址*/</p><p> MOV A,COMM ;/*取指令代碼*/</p><p> MOVX @DPTR,A ;/*寫指令代碼*/</p><p><b> RET</b></p><p> 2.
78、左半屏寫數(shù)據(jù)子程序</p><p> WR_DATA1:MOV DPTR,#CRADR1 ;/*讀狀態(tài)字口地址*/</p><p> WAIT11: MOVX A,@DPTR ;/* 讀狀態(tài)字 */</p><p> JB ACC.7,WAIT11 ;/*判忙標(biāo)志BF,如BF=1 忙,等待*/</p><p> MOV DPTR,#D
79、WADR1 ;/*寫數(shù)據(jù)字口地址*/</p><p> MOV A,DATA ;/*取數(shù)據(jù)/</p><p> MOVX @DPTR,A ;/*寫數(shù)據(jù)*/</p><p><b> RET</b></p><p> 3.右半屏寫指令子程序WR_CMD2 和右半屏寫數(shù)據(jù)子程序WR_DATA2 的編制同左半屏子程序相
80、同,只是對(duì)應(yīng)口地址不同。</p><p> JM12864J的電路結(jié)構(gòu)特點(diǎn)</p><p> JM12864J是使用HD61202及其兼容控制驅(qū)動(dòng)器作為列驅(qū)動(dòng)器,同時(shí)使用HD61203作為行驅(qū)動(dòng)器的液晶模塊。由于HD6120不與MPU發(fā)生聯(lián)系,只要提供電源就能產(chǎn)生行驅(qū)動(dòng)信號(hào)和各種同步信號(hào),比較簡(jiǎn)單,因此這里就不作介紹了。下面主要介紹一下JM12864J的邏輯電路圖。</p>
81、<p> JM12864J共有兩片HD61202及其兼容控制驅(qū)動(dòng)器和一片HD61203,如圖2-3所示:</p><p> 圖2-3 JM12864J的邏輯電路圖</p><p> 在JM12864J中,兩片HD61202的ADC均接高電平,RST也接高電平,這樣在使用JM12864J時(shí)就不必再考慮這兩個(gè)引腳的作用。跟HD61202(1)的相連;跟HD61202(2)
82、的CS1相連,因此、選通組合信號(hào)為,=01選通(1),,=10選通(2)。對(duì)于JM12864J,只要供給VDD、VSS和V0即可,HD61202和HD61203所需的電源將由模塊內(nèi)部電路在VDD和V0、VSS的作用下產(chǎn)生。</p><p> JM12864J的應(yīng)用</p><p> 以下內(nèi)容為以單片機(jī)89S52為例機(jī)的接口電路,控制電路為直接訪問(wèn)方式的接口電路。電路原理圖如圖2-4所示
83、:</p><p> 圖2-4 AT89S52 與液晶的接口電路</p><p> 根據(jù)以上電路原理圖中液晶的各引腳與單片機(jī)的接法,可得本設(shè)計(jì)的液晶模塊電路如圖2-5所示:</p><p> 由圖2-5可以看出:VSS接地;數(shù)字電源VDD接+5V;數(shù)據(jù)、指令選擇信號(hào)RS接單片機(jī)P3.2口;讀寫選擇信號(hào)R/W接單片機(jī)P3.1口;DB0~DB7分別接單片機(jī)的P2
84、.0~P2.7口;芯片1、芯片2的片選分別接單片機(jī)的P3.4、P3.3口;復(fù)位端RST、背光正電源LEDA接+5V;液晶驅(qū)動(dòng)電壓VEE、背光負(fù)電源LEDK接地。</p><p> 圖2-5液晶模塊電路</p><p><b> 鍵盤電路</b></p><p> 鍵盤電路本設(shè)計(jì)共采用按鍵3個(gè),分別與單片機(jī)的 P1.0、P3.5、P3.6、
85、P3.7口相連,分別對(duì)應(yīng)旋轉(zhuǎn)、左移、下、右移。</p><p><b> 系統(tǒng)程序的設(shè)計(jì)</b></p><p> 俄羅斯方塊驅(qū)動(dòng)流程圖</p><p> 俄羅斯方塊所有繪圖工作流程圖</p><p> 俄羅斯方塊中按下鍵的流程圖</p><p> 俄羅斯方塊所有繪圖工作流程圖</
86、p><p><b> 系統(tǒng)仿真</b></p><p> Proteus軟件介紹</p><p> Proteus軟件是來(lái)自英國(guó)Labcenter electronics公司的EDA工具軟件。 Proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,
87、他的電路仿真是互動(dòng)的,針對(duì)微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級(jí)的實(shí)時(shí)調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,不需要?jiǎng)e的,Proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境! </p><p> Proteus組合了高級(jí)原理布圖、混合模式SPICE仿真,PCB設(shè)計(jì)以及自動(dòng)布線來(lái)實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。此系統(tǒng)受益于15年來(lái)的持
88、續(xù)開發(fā),被《電子世界》在其對(duì)PCB設(shè)計(jì)系統(tǒng)的比較文章中評(píng)為最好產(chǎn)品—“The Route to PCB CAD”。Proteus 產(chǎn)品系列也包含了革命性的VSM技術(shù),用戶可以對(duì)基于微控制器的設(shè)計(jì)連同所有的周圍電子器件一起仿真。用戶甚至可以實(shí)時(shí)采用諸如LED/LCD、鍵盤、RS232終端等動(dòng)態(tài)外設(shè)模型來(lái)對(duì)設(shè)計(jì)進(jìn)行交互仿真。 </p><p> 其功能模塊:—個(gè)易用而又功能強(qiáng)大的ISIS原理布圖工具;Proteus
89、混合模型SPICE仿真; ARES PCB設(shè)計(jì)。Proteus 仿真器的一個(gè)擴(kuò)展Proteus VSM:便于包括所有相關(guān)的器件的基于微處理器設(shè)計(jì)的協(xié)同仿真。此外,還可以結(jié)合微控制器軟件使用動(dòng)態(tài)的鍵盤,開關(guān),按鈕,LEDs甚至LCD顯示CPU模型。</p><p> 1.支持許多通用的微控制器,如PIC,AVR,HC11以及8051; </p><p> 2.交互的裝置模型包括:LED和
90、LCD顯示,RS232終端,通用鍵盤; </p><p> 3.強(qiáng)大的調(diào)試工具,包括寄存器和存儲(chǔ)器,斷點(diǎn)和單步模式; </p><p> 4.IAR C-SPY 和Keil uVision3等開發(fā)工具的源層調(diào)試; </p><p> 5.應(yīng)用特殊模型的DLL界面-提供有關(guān)元件庫(kù)的全部文件。</p><p><b> Keil
91、軟件介紹</b></p><p> Keil C51 µVision2集成開發(fā)環(huán)境是Keil Software,Inc/Keil Elektronik GmbH開發(fā)的基于80C51內(nèi)核的微處理器軟件開發(fā)平臺(tái),內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立到管理、編譯、鏈接、目標(biāo)代碼的生成、軟件仿真、硬件仿真等完整的開發(fā)流程尤其是C編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高的水平
92、,而且可以附加靈活的控制選項(xiàng),在開發(fā)大型項(xiàng)目時(shí)非常理想。Keil C51集成開發(fā)環(huán)境的主要功能有以下幾點(diǎn):</p><p> 1.µVision2 for Windows:是一個(gè)集成開發(fā)環(huán)境,它將項(xiàng)目管理、源代碼編輯和程序調(diào)試等組合在一個(gè)功能強(qiáng)大的環(huán)境中;</p><p> 2.C51國(guó)際際準(zhǔn)化C交叉編譯器:從C源代碼產(chǎn)生可重定位的目標(biāo)模塊;</p><p
93、> 3.A51宏匯編器:從80C51匯編源代碼產(chǎn)生可重定位的目標(biāo)模塊;</p><p> 4.BL51鏈接器/定位器:組合由C51和A51產(chǎn)生的可重定位的目標(biāo)模塊,生成絕對(duì)目標(biāo)模塊;</p><p> 5.LIB51庫(kù)管理器:從目標(biāo)模塊生成連接器可以使用的庫(kù)文件;</p><p> 6.OH51目標(biāo)文件至HEX格式的轉(zhuǎn)換器,從絕對(duì)目標(biāo)模塊生成Intel
94、 Hex文件;</p><p> 7.RTX-51實(shí)時(shí)操作系統(tǒng):簡(jiǎn)化了復(fù)雜的實(shí)時(shí)應(yīng)用軟件項(xiàng)目的設(shè)計(jì)。</p><p> 這個(gè)工具套件是為專業(yè)軟件開發(fā)人員設(shè)計(jì)的,但任何層次的編程人員都可以使用,并獲得80C51單片機(jī)的絕大部分應(yīng)用。Keil Software提供了一流的80C51系列開發(fā)工具軟件,下面描述每個(gè)套件及其內(nèi)容:</p><p> (1)PK51專業(yè)開
95、發(fā)套件:PK51專業(yè)開發(fā)套件提供了所有工具,適合專業(yè)開發(fā)人員建立和調(diào)試80C51系列微控制器的復(fù)雜嵌入式應(yīng)用程序。專業(yè)開發(fā)套件可針對(duì)80C51及其所有派生系列進(jìn)行配置使用;</p><p> ?。?)DK51開發(fā)套件:DK51開發(fā)套件是PK51的精簡(jiǎn)版,它不包括RTX51 Tiny實(shí)時(shí)操作系統(tǒng)。開發(fā)套件可針對(duì)80C51及其所以派生系列進(jìn)行配置使用;</p><p> ?。?)編譯器套件:如
96、果開發(fā)者只需要一個(gè)C編譯器而不需要調(diào)試系統(tǒng),則CA51編譯器套件就是最好的選擇。CA51編譯器套件只包含µVision2 IDE集成開發(fā)環(huán)境,CA51不提供µVision2調(diào)試器的功能。這個(gè)套件包括了要建立嵌入式應(yīng)用的所有工具軟件,可針對(duì)80C51及其所有派生系列進(jìn)行配置使用;</p><p> 表4-1 開發(fā)套件和工具對(duì)照表</p><p> (4)A51匯編器套
97、件:A51匯編器套件包括一個(gè)匯編器和創(chuàng)建嵌入式應(yīng)用所需要的所有工具。它可針對(duì)80C51及其所有派生系列進(jìn)行配置使用;</p><p> (5)RTX51實(shí)時(shí)操作系統(tǒng)(FR51):RTX51實(shí)時(shí)操作系統(tǒng)是80C51系列微控制器的一個(gè)實(shí)時(shí)內(nèi)核。RTX51 Full提供RTX51 Tiny的所以功能和一些擴(kuò)展功能,并且包括CAN通信協(xié)議接口子程序;</p><p> ?。?)比較表:表4-1列
98、出了每個(gè)套件的功能,表的頂上一欄為工具套件名稱,表的左邊一列為軟件組成部分,使用這個(gè)對(duì)照表可以選擇符合需要的套件。</p><p> 俄羅斯方塊系統(tǒng)PROTUES仿真</p><p> 用Proteus軟件,根據(jù)俄羅斯方塊電路原理圖,畫出仿真圖。</p><p> 電路圖畫完后使用Proteus與Keil聯(lián)調(diào),這里使用的軟件是Keil µVision
99、3.8與Proteus7.4。</p><p> 1.打開PROTEUS的安裝目錄,進(jìn)入help目錄,打開ARM.HLP幫助文檔,點(diǎn)擊聯(lián)接:Remote Debugger Drivers/Download and Install remote debugger driver for Keil uVision3, 下載VDMAGDI.EXE, 運(yùn)行安裝到KEIL安裝目錄VDM51.dll文檔會(huì)自動(dòng)安裝到KEIL\
100、C51\BIN目錄。</p><p> 圖4-1 Protues仿真</p><p> 2.打開KEIL中打開要聯(lián)調(diào)的項(xiàng)目,在project workspace的“target1”上點(diǎn)右鍵/options for target'target1'。</p><p> 在打開的對(duì)話框中點(diǎn)擊到Debug選項(xiàng)卡,在右上角上先中USE選項(xiàng), 并在下拉菜單
101、中選中proteus VSM Simulator,在旁邊的Settings點(diǎn)一下,如果是proteus在同一臺(tái)電腦,host:127.0.0.1, port:8000, 點(diǎn)確定/OK保存。</p><p> 3.打開proteus并打開要仿真的圖紙,點(diǎn)擊Debug菜單/選中Use Remote Debug Monitor。</p><p> 4.完成,如果程序和電路圖沒(méi)問(wèn)題,在KEIL
102、中build all并且仿真運(yùn)行后,可以在proteus看到實(shí)時(shí)效果了如圖4-1所示:</p><p> 經(jīng)Proteus仿真,證明此俄羅斯方塊游戲能正常運(yùn)行,可以進(jìn)入實(shí)物焊接階段。</p><p><b> 實(shí)物的制作與調(diào)試</b></p><p><b> 電路的焊接</b></p><p&g
103、t;<b> 1.焊前準(zhǔn)備</b></p><p> 首先要熟悉所焊印制電路板的裝配圖,并按圖紙配料,檢查元器件型號(hào)、規(guī)格及數(shù)量是否符合圖紙要求,并做好裝配前元器件引線成型等準(zhǔn)備工作,由于制作的是便攜式的俄羅斯方塊游戲機(jī),所以在這里我選用了電池來(lái)做電源。</p><p><b> 2.焊接順序</b></p><p>
104、; 元器件裝焊順序依次為:電阻器、電容器、二極管、三極管、集成電路、大功率管,其它元器件為先小后大。</p><p> 3.對(duì)元器件焊接要求</p><p><b> (1) 電阻器焊接</b></p><p> 按圖將電阻器準(zhǔn)確裝人規(guī)定位置。要求標(biāo)記向上,字向一致。裝完同一種規(guī)格后再裝另一種規(guī)格,盡量使電阻器的高低一致。焊完后將露在印
105、制電路板表面多余引腳齊根剪去。</p><p><b> (2) 電容器焊接</b></p><p> 將電容器按圖裝人規(guī)定位置,并注意有極性電容器其 “+” 與 “-” 極不能接錯(cuò),電容器上的標(biāo)記方向要易看可見。先裝玻璃釉電容器、有機(jī)介質(zhì)電容器、瓷介電容器,最后裝電解電容器。</p><p> (3) 二極管的焊接</p>
106、<p> 二極管焊接要注意以下幾點(diǎn):第一,注意陽(yáng)極陰極的極性,不能裝錯(cuò);第二,型號(hào)標(biāo)記要易看可見;第三,焊接立式二極管時(shí),對(duì)最短引線焊接時(shí)間不能超過(guò) 2S 。</p><p><b> (4) 三極管焊接</b></p><p> 注意 e 、b 、c 三引線位置插接正確;焊接時(shí)間盡可能短,焊接時(shí)用鑷子夾住引線腳,以利散熱。焊接大功率三極管時(shí),若需加
107、裝散熱片,應(yīng)將接觸面平整、打磨光滑后再緊固,若要求加墊絕緣薄膜時(shí),切勿忘記加薄膜。管腳與電路板上需連接時(shí),要用塑料導(dǎo)線。</p><p> (5) 集成電路焊接</p><p> 首先按圖紙要求,檢查型號(hào)、引腳位置是否符合要求。焊接時(shí)先焊邊沿的二只引腳,以使其定位,然后再?gòu)淖蟮接易陨隙轮饌€(gè)焊接。</p><p> 對(duì)于電容器、二極管、三極管露在印制電路板面上
108、多余引腳均需齊根剪去。</p><p> 系統(tǒng)性能測(cè)試與功能說(shuō)明</p><p> 焊接完成后,將電源接通,游戲畫面出現(xiàn)后,分別按下左、右、下、旋轉(zhuǎn)等按鈕,均能正常在屏幕上做出反應(yīng)。當(dāng)方塊堆滿一行時(shí),方塊正確消除,并將分?jǐn)?shù)累計(jì)在屏幕右側(cè),同時(shí)消除多行方塊時(shí),分?jǐn)?shù)有額外獎(jiǎng)勵(lì)。達(dá)到一定分?jǐn)?shù)時(shí),方塊下落速度加快,難度提高。當(dāng)屏幕中方塊有觸及頂端的時(shí)候,游戲結(jié)束。</p><
109、;p><b> 結(jié) 論</b></p><p> 通過(guò)半個(gè)學(xué)期地全心投入和辛苦努力,終于完成了基于單片機(jī)的俄羅斯方塊游戲的設(shè)計(jì),設(shè)計(jì)的過(guò)程就是綜合運(yùn)用所學(xué)知識(shí)和學(xué)習(xí)新知識(shí)的過(guò)程。由于經(jīng)驗(yàn)不足,難免出現(xiàn)一些小的失誤,但無(wú)論怎樣,本次畢業(yè)設(shè)計(jì)對(duì)于我來(lái)說(shuō)都是一次難得的鍛煉機(jī)會(huì),使我積累了許多寶貴的經(jīng)驗(yàn)。</p><p> 本文對(duì)單片機(jī)制作的俄羅斯方塊游戲的運(yùn)行
110、原理進(jìn)行了分析,全面、詳細(xì)地闡述了俄羅斯方塊游戲的設(shè)計(jì)過(guò)程。本游戲機(jī)已經(jīng)達(dá)到了掌上娛樂(lè)的要求,但在設(shè)計(jì)上還留有進(jìn)一步改善的余地,如可以美化游戲界面、加入背景和動(dòng)作音樂(lè)、力回饋系統(tǒng)等。</p><p> 畢業(yè)設(shè)計(jì)的整個(gè)開發(fā)過(guò)程是曲折的,首先在硬件設(shè)計(jì)上,由于開始對(duì)LCD液晶屏不熟悉,加之其程序量較多,所以,在設(shè)計(jì)的過(guò)程中,不免有些困難,通過(guò)我多方面的查找資料,并不斷的向老師和同學(xué)請(qǐng)教,結(jié)合網(wǎng)絡(luò)資源,最終找出比較完
111、善的方案,在理論上能夠?qū)崿F(xiàn)功能要求。經(jīng)過(guò)幾個(gè)月的前期學(xué)習(xí),我積累了很多的關(guān)于液晶顯示方面和C語(yǔ)言設(shè)計(jì)方面的資料,并對(duì)電路的整合有了一個(gè)基本的概念,最后設(shè)計(jì)出總的電路圖,經(jīng)過(guò)不斷的測(cè)試與修改,最終完善了硬件電路的設(shè)計(jì)。</p><p> 對(duì)于軟件設(shè)計(jì),因?yàn)橐郧暗木幊探?jīng)驗(yàn)不夠,再加上對(duì)AT89S52這一芯片的了解不是很徹底,因此,在這方面花費(fèi)了很多的精力和時(shí)間。當(dāng)然這個(gè)過(guò)程不乏有同學(xué)的幫助,我要非常感謝實(shí)驗(yàn)室同學(xué)的
112、幫助在我的軟件調(diào)試過(guò)程中給了我至關(guān)重要的幫助,并給了我很多非常好的建議。</p><p> 當(dāng)然由于我在理論和實(shí)踐方面存在一定的不足,所以在設(shè)計(jì)思路和實(shí)現(xiàn)功能上難免有不足和沒(méi)有想到的地方,還請(qǐng)各位老師給予指正。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 張齊.杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——基于C語(yǔ)言編程[M
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于at89s52的紅外解碼搖控俄羅斯方塊畢業(yè)論文
- 俄羅斯方塊畢業(yè)論文
- java俄羅斯方塊畢業(yè)論文
- 畢業(yè)論文----java俄羅斯方塊
- 畢業(yè)論文-java俄羅斯方塊
- 俄羅斯方塊游戲畢業(yè)論文
- 俄羅斯方塊游戲java畢業(yè)論文
- 俄羅斯方塊游戲開發(fā)畢業(yè)論文
- 畢業(yè)論文(java游戲俄羅斯方塊)
- 畢業(yè)論文俄羅斯方塊的實(shí)現(xiàn)系統(tǒng)
- 俄羅斯方塊論文
- 基于fpga的俄羅斯方塊游戲設(shè)計(jì)畢業(yè)論文
- 基于fpga的俄羅斯方塊游戲設(shè)計(jì)畢業(yè)論文
- 基于安卓android環(huán)境的俄羅斯方塊畢業(yè)論文
- 基于at89s52測(cè)溫系統(tǒng)畢業(yè)論文
- 俄羅斯方塊
- 俄羅斯方塊分組對(duì)抗游戲的實(shí)現(xiàn)畢業(yè)論文
- 基于at89s52的往返小車畢業(yè)論文
- 俄羅斯方塊單人游戲的實(shí)現(xiàn)畢業(yè)論文
- 俄羅斯方塊分組對(duì)抗游戲的實(shí)現(xiàn)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論