基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲,基于,單片機(jī),實(shí)現(xiàn),俄羅斯方塊,游戲
2019/11/28,View / Header and Footer,,2010屆畢業(yè)生畢業(yè)設(shè)計(jì)答辯,p. 2,View / Header and Footer,2019/11/28,基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲,,指導(dǎo)老師,,班級(jí),,姓名,p. 3,View / Header and Footer,2019/11/28,設(shè)計(jì)的意義,俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,作為最經(jīng)典的游戲之一其游戲性不言而喻。雖然用單片機(jī)來設(shè)計(jì)一個(gè)簡單的俄羅斯方塊游戲程序似乎有點(diǎn)大材小用了,但這僅僅是一個(gè)單片機(jī)在嵌入式游戲方面的簡單應(yīng)用,正因?yàn)樗那熬盁o可預(yù)計(jì),所以才有這個(gè)設(shè)計(jì),此次設(shè)計(jì)僅僅是為了舉一個(gè)單片機(jī)在游戲上應(yīng)用的一個(gè)簡單例子,他可以很好的說明單片機(jī)功能的強(qiáng)大,更高的可控性和高集成度的好處,因此它可以在電子游戲方面成為一個(gè)不可計(jì)量的明日之星。,p. 4,View / Header and Footer,2019/11/28,由系統(tǒng)隨機(jī)抽取方塊圖形庫中的方塊將其顯示在屏幕上,并逐漸下落,在方塊地步碰到邊框或其他方塊時(shí)停止向下移動(dòng)并消除一次滿行的方塊,然后記分,記分時(shí)若有多行方塊同時(shí)消失,則會(huì)有額外的分?jǐn)?shù)獎(jiǎng)勵(lì)。達(dá)到一定的分?jǐn)?shù),增加游戲難度。在下落過程中由按鍵控制方塊的旋轉(zhuǎn)、左右移動(dòng)以及下落的速度。,俄羅斯方塊運(yùn)行總體思路,p. 5,View / Header and Footer,2019/11/28,器件與軟件的選擇,本設(shè)計(jì)使用AT89s52來做主控芯片,其強(qiáng)大的功能足夠?qū)崿F(xiàn)我設(shè)計(jì)的所有功能。 使用JM12864J的液晶顯示器來進(jìn)行顯示。 使用C語言進(jìn)行編程。 通過Proteus來進(jìn)行仿真。,p. 6,View / Header and Footer,2019/11/28,,系統(tǒng)設(shè)計(jì)框圖,四個(gè)按鍵,AT89S52 單片機(jī),,LCD 顯示器,p. 7,View / Header and Footer,2019/11/28,電路和程序的調(diào)試,Proteus仿真的結(jié)果,p. 8,View / Header and Footer,2019/11/28,結(jié)論,本設(shè)計(jì)已經(jīng)達(dá)到了掌上娛樂的要求,可以實(shí)現(xiàn)俄羅斯方塊游戲的基本規(guī)則。但還留有進(jìn)一步改善的余地,如可以美化游戲界面、加入背景和動(dòng)作音樂、力回饋系統(tǒng)等。,p. 9,View / Header and Footer,2019/11/28,致謝,畢業(yè)設(shè)計(jì)的完成意味著我的大學(xué)學(xué)習(xí)生活即將結(jié)束,從此我將進(jìn)入一個(gè)新的人生旅途、開始一段嶄新的生活、工作。 在此,我衷心地感謝在我的畢業(yè)設(shè)計(jì)過程中給予我多方面幫助和指導(dǎo)的張根柱老師,以及所有在這大學(xué)五年期間 幫助和關(guān)心過我的老師同學(xué)們。使他們讓我的大學(xué)生活豐富多彩。,2019/11/28,View / Header and Footer,,2010屆畢業(yè)生畢業(yè)設(shè)計(jì)答辯,p. 2,View / Header and Footer,2019/11/28,基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲,,指導(dǎo)老師,,班級(jí),,姓名,p. 3,View / Header and Footer,2019/11/28,設(shè)計(jì)的意義,俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,作為最經(jīng)典的游戲之一其游戲性不言而喻。雖然用單片機(jī)來設(shè)計(jì)一個(gè)簡單的俄羅斯方塊游戲程序似乎有點(diǎn)大材小用了,但這僅僅是一個(gè)單片機(jī)在嵌入式游戲方面的簡單應(yīng)用,正因?yàn)樗那熬盁o可預(yù)計(jì),所以才有這個(gè)設(shè)計(jì),此次設(shè)計(jì)僅僅是為了舉一個(gè)單片機(jī)在游戲上應(yīng)用的一個(gè)簡單例子,他可以很好的說明單片機(jī)功能的強(qiáng)大,更高的可控性和高集成度的好處,因此它可以在電子游戲方面成為一個(gè)不可計(jì)量的明日之星。,p. 4,View / Header and Footer,2019/11/28,由系統(tǒng)隨機(jī)抽取方塊圖形庫中的方塊將其顯示在屏幕上,并逐漸下落,在方塊地步碰到邊框或其他方塊時(shí)停止向下移動(dòng)并消除一次滿行的方塊,然后記分,記分時(shí)若有多行方塊同時(shí)消失,則會(huì)有額外的分?jǐn)?shù)獎(jiǎng)勵(lì)。達(dá)到一定的分?jǐn)?shù),增加游戲難度。在下落過程中由按鍵控制方塊的旋轉(zhuǎn)、左右移動(dòng)以及下落的速度。,俄羅斯方塊運(yùn)行總體思路,p. 5,View / Header and Footer,2019/11/28,器件與軟件的選擇,本設(shè)計(jì)使用AT89s52來做主控芯片,其強(qiáng)大的功能足夠?qū)崿F(xiàn)我設(shè)計(jì)的所有功能。 使用JM12864J的液晶顯示器來進(jìn)行顯示。 使用C語言進(jìn)行編程。 通過Proteus來進(jìn)行仿真。,p. 6,View / Header and Footer,2019/11/28,,系統(tǒng)設(shè)計(jì)框圖,四個(gè)按鍵,AT89S52 單片機(jī),,LCD 顯示器,p. 7,View / Header and Footer,2019/11/28,電路和程序的調(diào)試,Proteus仿真的結(jié)果,p. 8,View / Header and Footer,2019/11/28,結(jié)論,本設(shè)計(jì)已經(jīng)達(dá)到了掌上娛樂的要求,可以實(shí)現(xiàn)俄羅斯方塊游戲的基本規(guī)則。但還留有進(jìn)一步改善的余地,如可以美化游戲界面、加入背景和動(dòng)作音樂、力回饋系統(tǒng)等。,p. 9,View / Header and Footer,2019/11/28,致謝,畢業(yè)設(shè)計(jì)的完成意味著我的大學(xué)學(xué)習(xí)生活即將結(jié)束,從此我將進(jìn)入一個(gè)新的人生旅途、開始一段嶄新的生活、工作。 在此,我衷心地感謝在我的畢業(yè)設(shè)計(jì)過程中給予我多方面幫助和指導(dǎo)的張根柱老師,以及所有在這大學(xué)五年期間 幫助和關(guān)心過我的老師同學(xué)們。使他們讓我的大學(xué)生活豐富多彩。,2005屆學(xué)生畢業(yè)設(shè)計(jì)(論文)中期報(bào)告
系別
班級(jí)
學(xué)生
姓名
指導(dǎo)
教師
課題名稱:基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
簡述開題以來所做的具體工作、取得的進(jìn)展及下一步主要工作:
(1)通過收集整理資料,認(rèn)真閱讀資料,弄明白電路的原理,然后設(shè)計(jì)方案,對(duì)所設(shè)計(jì)的方案進(jìn)行分析論證,記下各方案的優(yōu)缺點(diǎn),選擇比較可取的方案而且電路所用到的器件必須是性價(jià)比較高、在市場上比較容易買到的。
(2)分析整個(gè)系統(tǒng)的流程并用框圖表示出來,由整體到局部。分析每個(gè)模塊電路的具體作用以及可能出現(xiàn)的問題。
(3)查找個(gè)器件的管腳圖及其用法,列出原件清單,購買器件。
(4)焊接硬件電路,檢查電路并調(diào)試。
在以后的幾周里,主要完成的工作有:
1、 編寫程序,調(diào)試電路;
2、 撰寫畢業(yè)論文和翻譯,完成論文;
3、 按照學(xué)校論文格式要求修改論文格式。
學(xué)生簽字:
年 月 日
指導(dǎo)教師的建議與要求:
指導(dǎo)教師簽字:
年 月 日
注:本表格同畢業(yè)設(shè)計(jì)(論文)一同裝訂成冊(cè),由所在單位歸檔保存。
2005屆學(xué)生畢業(yè)設(shè)計(jì)(論文)中期報(bào)告
系別
班級(jí)
學(xué)生
姓名
指導(dǎo)
教師
課題名稱:基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
簡述開題以來所做的具體工作、取得的進(jìn)展及下一步主要工作:
(1)通過收集整理資料,認(rèn)真閱讀資料,弄明白電路的原理,然后設(shè)計(jì)方案,對(duì)所設(shè)計(jì)的方案進(jìn)行分析論證,記下各方案的優(yōu)缺點(diǎn),選擇比較可取的方案而且電路所用到的器件必須是性價(jià)比較高、在市場上比較容易買到的。
(2)分析整個(gè)系統(tǒng)的流程并用框圖表示出來,由整體到局部。分析每個(gè)模塊電路的具體作用以及可能出現(xiàn)的問題。
(3)查找個(gè)器件的管腳圖及其用法,列出原件清單,購買器件。
(4)焊接硬件電路,檢查電路并調(diào)試。
在以后的幾周里,主要完成的工作有:
1、 編寫程序,調(diào)試電路;
2、 撰寫畢業(yè)論文和翻譯,完成論文;
3、 按照學(xué)校論文格式要求修改論文格式。
學(xué)生簽字:
年 月 日
指導(dǎo)教師的建議與要求:
指導(dǎo)教師簽字:
年 月 日
注:本表格同畢業(yè)設(shè)計(jì)(論文)一同裝訂成冊(cè),由所在單位歸檔保存。
畢業(yè)設(shè)計(jì)(論文)任務(wù)書
2009年12月18日
題 目
(包括副標(biāo)題)
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
教師姓名
系 別
職 稱
學(xué)生姓名
班 級(jí)
學(xué) 號(hào)
課題成果形式
論文■ 設(shè)計(jì)說明書□ 實(shí)物■ 軟件□ 其它□
1.畢業(yè)設(shè)計(jì)(論文)課題任務(wù)的內(nèi)容和要求(如原始數(shù)據(jù)、技術(shù)要求、工作要求等):
一、 畢業(yè)設(shè)計(jì)主要內(nèi)容:
將單片機(jī)和C語言結(jié)合起來,設(shè)計(jì)一套便攜式俄羅斯方塊游戲系統(tǒng),主要涉及單片機(jī)的使用及C語言的設(shè)計(jì)。
為使操作者操作方便,在PC機(jī)上用Proteus、Keil、Protel DXP安裝程序,該軟件的安裝平臺(tái)是XP系統(tǒng)。
下位機(jī)的核心控制芯片采用AT89S52。
二、畢業(yè)設(shè)計(jì)的主要技術(shù)指標(biāo):
1.電源電壓+5V
2.串口線要求1.5M
3.電腦系統(tǒng)為XP系統(tǒng),最低256M內(nèi)存
三、工藝制作任務(wù)
a) 設(shè)計(jì)并焊接電路
b) 調(diào)試電路
c) 完成軟件硬件設(shè)計(jì)
d) 翻譯相關(guān)英文資料
四、收集的文獻(xiàn)資料:
[1] 張齊.杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——基于C語言編程[M].北京:電子工業(yè)出版社,2004.
[2] Apress. Introduction to Visual Basic Programming [M].Professional Computing and Web Design, 2006.
[3] 楊元強(qiáng)??岜缺@獎(jiǎng)作品選登《LEGO 俄羅斯》[J]。“酷比杯”游戲策劃大賽,2007.
[4] 周潤景著.Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].北京:電子工業(yè)出版社,2006.
[5] 游安弼, 李玉岐. 基于JavaBean組件模型的俄羅斯方塊[R]. 北京:全國第四屆Java
技術(shù)及應(yīng)用學(xué)術(shù)會(huì)議,2001.
[6] Jason Lam.J2ME&Gaming[M]. Addison Wesley,2004.
[7] 高凌琴,陳青華. 俄羅斯方塊游戲關(guān)鍵技術(shù)探討[J]. 信息技術(shù)與信息化.2008.
[8] 榮欽科技編著,《Java 2 游戲設(shè)計(jì)》[M].北京:清華大學(xué)出版社,2004.
[9] 陳立偉,張克非,黎秀紅著. 精通JAVA手機(jī)游戲與應(yīng)用程序設(shè)計(jì)[M].北京:中國青年出版社, 2005-5.
[10]譚浩強(qiáng). C程序設(shè)計(jì).[M] 北京:清華大學(xué)出版社,2003
畢業(yè)設(shè)計(jì)(論文)工作進(jìn)度計(jì)劃:
周 次
工作內(nèi)容
(08—09第一學(xué)期)
(08—09第二學(xué)期)
第1周
第2-4周
第5-8周
第9-10周
擬訂題目,完成開題,了解畢業(yè)設(shè)計(jì)涉及的問題
正式開始進(jìn)行畢業(yè)設(shè)計(jì),正式確定設(shè)計(jì)方案
制作畢業(yè)設(shè)計(jì)、實(shí)物調(diào)試硬件
軟件、測試畢業(yè)設(shè)計(jì)作品
完成畢業(yè)論文
教研室(學(xué)科組)主任簽字:
畢業(yè)設(shè)計(jì)(論文)任務(wù)書
2009年12月18日
題 目
(包括副標(biāo)題)
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
教師姓名
系 別
職 稱
學(xué)生姓名
班 級(jí)
學(xué) 號(hào)
課題成果形式
論文■ 設(shè)計(jì)說明書□ 實(shí)物■ 軟件□ 其它□
1.畢業(yè)設(shè)計(jì)(論文)課題任務(wù)的內(nèi)容和要求(如原始數(shù)據(jù)、技術(shù)要求、工作要求等):
一、 畢業(yè)設(shè)計(jì)主要內(nèi)容:
將單片機(jī)和C語言結(jié)合起來,設(shè)計(jì)一套便攜式俄羅斯方塊游戲系統(tǒng),主要涉及單片機(jī)的使用及C語言的設(shè)計(jì)。
為使操作者操作方便,在PC機(jī)上用Proteus、Keil、Protel DXP安裝程序,該軟件的安裝平臺(tái)是XP系統(tǒng)。
下位機(jī)的核心控制芯片采用AT89S52。
二、畢業(yè)設(shè)計(jì)的主要技術(shù)指標(biāo):
1.電源電壓+5V
2.串口線要求1.5M
3.電腦系統(tǒng)為XP系統(tǒng),最低256M內(nèi)存
三、工藝制作任務(wù)
a) 設(shè)計(jì)并焊接電路
b) 調(diào)試電路
c) 完成軟件硬件設(shè)計(jì)
d) 翻譯相關(guān)英文資料
四、收集的文獻(xiàn)資料:
[1] 張齊.杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——基于C語言編程[M].北京:電子工業(yè)出版社,2004.
[2] Apress. Introduction to Visual Basic Programming [M].Professional Computing and Web Design, 2006.
[3] 楊元強(qiáng)。酷比杯獲獎(jiǎng)作品選登《LEGO 俄羅斯》[J]?!翱岜缺庇螒虿邉澊筚?,2007.
[4] 周潤景著.Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].北京:電子工業(yè)出版社,2006.
[5] 游安弼, 李玉岐. 基于JavaBean組件模型的俄羅斯方塊[R]. 北京:全國第四屆Java
技術(shù)及應(yīng)用學(xué)術(shù)會(huì)議,2001.
[6] Jason Lam.J2ME&Gaming[M]. Addison Wesley,2004.
[7] 高凌琴,陳青華. 俄羅斯方塊游戲關(guān)鍵技術(shù)探討[J]. 信息技術(shù)與信息化.2008.
[8] 榮欽科技編著,《Java 2 游戲設(shè)計(jì)》[M].北京:清華大學(xué)出版社,2004.
[9] 陳立偉,張克非,黎秀紅著. 精通JAVA手機(jī)游戲與應(yīng)用程序設(shè)計(jì)[M].北京:中國青年出版社, 2005-5.
[10]譚浩強(qiáng). C程序設(shè)計(jì).[M] 北京:清華大學(xué)出版社,2003
畢業(yè)設(shè)計(jì)(論文)工作進(jìn)度計(jì)劃:
周 次
工作內(nèi)容
(08—09第一學(xué)期)
(08—09第二學(xué)期)
第1周
第2-4周
第5-8周
第9-10周
擬訂題目,完成開題,了解畢業(yè)設(shè)計(jì)涉及的問題
正式開始進(jìn)行畢業(yè)設(shè)計(jì),正式確定設(shè)計(jì)方案
制作畢業(yè)設(shè)計(jì)、實(shí)物調(diào)試硬件
軟件、測試畢業(yè)設(shè)計(jì)作品
完成畢業(yè)論文
教研室(學(xué)科組)主任簽字:
畢 業(yè) 設(shè) 計(jì) 開 題 報(bào) 告
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
系 別:
班 級(jí):
學(xué)生姓名:
指導(dǎo)教師:
2009年 12月 18日
開題報(bào)告填寫要求
1.開題報(bào)告作為畢業(yè)設(shè)計(jì)答辯委員會(huì)對(duì)學(xué)生答辯資格審查的依據(jù)材料之一,應(yīng)在指導(dǎo)教師指導(dǎo)下,由學(xué)生在畢業(yè)設(shè)計(jì)工作前期完成,經(jīng)指導(dǎo)教師簽署意見、專家組及系主任審查后生效;
2.開題報(bào)告必須用黑墨水筆工整書寫或按教務(wù)處統(tǒng)一設(shè)計(jì)的電子文檔標(biāo)準(zhǔn)格式(可從教務(wù)處網(wǎng)頁上下載)打印,禁止打印在其它紙上后剪貼;
3.畢業(yè)設(shè)計(jì)的開題報(bào)告應(yīng)包括以下內(nèi)容:
(1)主要技術(shù)指標(biāo);
(2)工作思路;
(3)課題的準(zhǔn)備情況及進(jìn)度計(jì)劃;
(4)參考文獻(xiàn)。
4.開題報(bào)告的撰寫應(yīng)符合科技文獻(xiàn)規(guī)范,且不少于2000字;參考文獻(xiàn)應(yīng)不少于15篇,包括中外文科技期刊、教科書、專著等。
5.開題報(bào)告正文字體采用宋體小四號(hào),1.5倍行距。附頁為A4紙型,左邊距3cm,右邊距2cm,上下邊距為2.5cm,字體采用宋體小四號(hào),1.5倍行距。
6.“課題性質(zhì)”一欄:
理工類:A.理論研究 B.應(yīng)用研究 C工程設(shè)計(jì) D.軟件開發(fā) E.其它
經(jīng)管文教類:A.理論研究 B.應(yīng)用研究 C.實(shí)證研究 D.藝術(shù)創(chuàng)作 E.其它
“課題來源”一欄:
A.科研立項(xiàng) B.社會(huì)生產(chǎn)實(shí)踐 C.教師自擬 D.學(xué)生自選
“成果形式”一欄:
A.論文 B.設(shè)計(jì)說明書 C.實(shí)物 D.軟件 E.作品
畢業(yè)設(shè)計(jì)開題報(bào)告
課題題目
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
課題性質(zhì)
A B C D E
□ ■ □ □ □
課題來源
A B C D
□ □ □ ■
成果形式
A B C D E
■ □ ■ □ □
同組同學(xué)
開題報(bào)告內(nèi)容(可另附頁)
見附頁
指導(dǎo)教師意見(課題難度是否適中、工作量是否飽滿、進(jìn)度安排是否合理、工作條件是否具備等)
指導(dǎo)教師簽名:
月 日
專家組及系里意見(選題是否適宜、各項(xiàng)內(nèi)容是否達(dá)到畢業(yè)設(shè)計(jì)(論文)大綱要求、整改意見等)
專家組成員簽字: 教學(xué)主任(簽章):
月 日
附頁:
開題報(bào)告
一、設(shè)計(jì)的目的與意義
俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,作為最經(jīng)典的游戲之一,它曾造成的轟動(dòng)與經(jīng)濟(jì)價(jià)值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人 Alex Pajitnov 制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。
雖然用單片機(jī)來設(shè)計(jì)一個(gè)簡單的俄羅斯方塊游戲程序似乎有點(diǎn)大材小用了,但這僅僅是一個(gè)單片機(jī)在嵌入式游戲方面的簡單應(yīng)用,正因?yàn)樗那熬盁o可預(yù)計(jì),所以才有這個(gè)設(shè)計(jì),此次設(shè)計(jì)僅僅是為了舉一個(gè)單片機(jī)在游戲上應(yīng)用的一個(gè)簡單例子,他可以很好的說明單片機(jī)功能的強(qiáng)大,更高的可控性和集成度高的好處,因此他可以在電子游戲方面成為一個(gè)不可計(jì)量的明日之星。
二、工作思路
1.實(shí)現(xiàn)的功能:
俄羅斯方塊游戲規(guī)則的實(shí)現(xiàn)
2.特點(diǎn):
采用單片機(jī)實(shí)現(xiàn)
具有便攜性與易用性
三、計(jì)劃進(jìn)度
序號(hào)
畢業(yè)設(shè)計(jì)階段性工作及成果
時(shí)間安排
1
收集資料確定設(shè)計(jì)方案
1~3周
2
程序設(shè)計(jì)設(shè)計(jì)
4~6周
3
電路系統(tǒng)設(shè)計(jì)
7~9周
4
焊接與調(diào)試
10周
5
總體校核完成畢業(yè)設(shè)計(jì)
11~13周
四、參考文獻(xiàn)
[1] 張齊.杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——基于C語言編程[M].北京:電子工業(yè)出版社,2004.
[2] Apress. Introduction to Visual Basic Programming [M].Professional Computing and Web Design, 2006.
[3] 楊元強(qiáng)??岜缺@獎(jiǎng)作品選登《LEGO 俄羅斯》[J]?!翱岜缺庇螒虿邉澊筚悾?007.
[4] 周潤景著.Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].北京:電子工業(yè)出版社,2006.
[5] 游安弼, 李玉岐. 基于JavaBean組件模型的俄羅斯方塊[R]. 北京:全國第四屆Java
技術(shù)及應(yīng)用學(xué)術(shù)會(huì)議,2001.
[6] Jason Lam.J2ME&Gaming[M]. Addison Wesley,2004.
[7] 高凌琴,陳青華. 俄羅斯方塊游戲關(guān)鍵技術(shù)探討[J]. 信息技術(shù)與信息化.2008.
[8] 榮欽科技編著,《Java 2 游戲設(shè)計(jì)》[M].北京:清華大學(xué)出版社,2004.
[9] 陳立偉,張克非,黎秀紅著. 精通JAVA手機(jī)游戲與應(yīng)用程序設(shè)計(jì)[M].北京:中國青年出版社, 2005-5.
[10]譚浩強(qiáng). C程序設(shè)計(jì).[M] 北京:清華大學(xué)出版社,2003.
畢 業(yè) 設(shè) 計(jì) 開 題 報(bào) 告
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
系 別:
班 級(jí):
學(xué)生姓名:
指導(dǎo)教師:
2009年 12月 18日
開題報(bào)告填寫要求
1.開題報(bào)告作為畢業(yè)設(shè)計(jì)答辯委員會(huì)對(duì)學(xué)生答辯資格審查的依據(jù)材料之一,應(yīng)在指導(dǎo)教師指導(dǎo)下,由學(xué)生在畢業(yè)設(shè)計(jì)工作前期完成,經(jīng)指導(dǎo)教師簽署意見、專家組及系主任審查后生效;
2.開題報(bào)告必須用黑墨水筆工整書寫或按教務(wù)處統(tǒng)一設(shè)計(jì)的電子文檔標(biāo)準(zhǔn)格式(可從教務(wù)處網(wǎng)頁上下載)打印,禁止打印在其它紙上后剪貼;
3.畢業(yè)設(shè)計(jì)的開題報(bào)告應(yīng)包括以下內(nèi)容:
(1)主要技術(shù)指標(biāo);
(2)工作思路;
(3)課題的準(zhǔn)備情況及進(jìn)度計(jì)劃;
(4)參考文獻(xiàn)。
4.開題報(bào)告的撰寫應(yīng)符合科技文獻(xiàn)規(guī)范,且不少于2000字;參考文獻(xiàn)應(yīng)不少于15篇,包括中外文科技期刊、教科書、專著等。
5.開題報(bào)告正文字體采用宋體小四號(hào),1.5倍行距。附頁為A4紙型,左邊距3cm,右邊距2cm,上下邊距為2.5cm,字體采用宋體小四號(hào),1.5倍行距。
6.“課題性質(zhì)”一欄:
理工類:A.理論研究 B.應(yīng)用研究 C工程設(shè)計(jì) D.軟件開發(fā) E.其它
經(jīng)管文教類:A.理論研究 B.應(yīng)用研究 C.實(shí)證研究 D.藝術(shù)創(chuàng)作 E.其它
“課題來源”一欄:
A.科研立項(xiàng) B.社會(huì)生產(chǎn)實(shí)踐 C.教師自擬 D.學(xué)生自選
“成果形式”一欄:
A.論文 B.設(shè)計(jì)說明書 C.實(shí)物 D.軟件 E.作品
畢業(yè)設(shè)計(jì)開題報(bào)告
課題題目
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
課題性質(zhì)
A B C D E
□ ■ □ □ □
課題來源
A B C D
□ □ □ ■
成果形式
A B C D E
■ □ ■ □ □
同組同學(xué)
開題報(bào)告內(nèi)容(可另附頁)
見附頁
指導(dǎo)教師意見(課題難度是否適中、工作量是否飽滿、進(jìn)度安排是否合理、工作條件是否具備等)
指導(dǎo)教師簽名:
月 日
專家組及系里意見(選題是否適宜、各項(xiàng)內(nèi)容是否達(dá)到畢業(yè)設(shè)計(jì)(論文)大綱要求、整改意見等)
專家組成員簽字: 教學(xué)主任(簽章):
月 日
附頁:
開題報(bào)告
一、設(shè)計(jì)的目的與意義
俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,作為最經(jīng)典的游戲之一,它曾造成的轟動(dòng)與經(jīng)濟(jì)價(jià)值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人 Alex Pajitnov 制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。
雖然用單片機(jī)來設(shè)計(jì)一個(gè)簡單的俄羅斯方塊游戲程序似乎有點(diǎn)大材小用了,但這僅僅是一個(gè)單片機(jī)在嵌入式游戲方面的簡單應(yīng)用,正因?yàn)樗那熬盁o可預(yù)計(jì),所以才有這個(gè)設(shè)計(jì),此次設(shè)計(jì)僅僅是為了舉一個(gè)單片機(jī)在游戲上應(yīng)用的一個(gè)簡單例子,他可以很好的說明單片機(jī)功能的強(qiáng)大,更高的可控性和集成度高的好處,因此他可以在電子游戲方面成為一個(gè)不可計(jì)量的明日之星。
二、工作思路
1.實(shí)現(xiàn)的功能:
俄羅斯方塊游戲規(guī)則的實(shí)現(xiàn)
2.特點(diǎn):
采用單片機(jī)實(shí)現(xiàn)
具有便攜性與易用性
三、計(jì)劃進(jìn)度
序號(hào)
畢業(yè)設(shè)計(jì)階段性工作及成果
時(shí)間安排
1
收集資料確定設(shè)計(jì)方案
1~3周
2
程序設(shè)計(jì)設(shè)計(jì)
4~6周
3
電路系統(tǒng)設(shè)計(jì)
7~9周
4
焊接與調(diào)試
10周
5
總體校核完成畢業(yè)設(shè)計(jì)
11~13周
四、參考文獻(xiàn)
[1] 張齊.杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——基于C語言編程[M].北京:電子工業(yè)出版社,2004.
[2] Apress. Introduction to Visual Basic Programming [M].Professional Computing and Web Design, 2006.
[3] 楊元強(qiáng)??岜缺@獎(jiǎng)作品選登《LEGO 俄羅斯》[J]?!翱岜缺庇螒虿邉澊筚?,2007.
[4] 周潤景著.Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].北京:電子工業(yè)出版社,2006.
[5] 游安弼, 李玉岐. 基于JavaBean組件模型的俄羅斯方塊[R]. 北京:全國第四屆Java
技術(shù)及應(yīng)用學(xué)術(shù)會(huì)議,2001.
[6] Jason Lam.J2ME&Gaming[M]. Addison Wesley,2004.
[7] 高凌琴,陳青華. 俄羅斯方塊游戲關(guān)鍵技術(shù)探討[J]. 信息技術(shù)與信息化.2008.
[8] 榮欽科技編著,《Java 2 游戲設(shè)計(jì)》[M].北京:清華大學(xué)出版社,2004.
[9] 陳立偉,張克非,黎秀紅著. 精通JAVA手機(jī)游戲與應(yīng)用程序設(shè)計(jì)[M].北京:中國青年出版社, 2005-5.
[10]譚浩強(qiáng). C程序設(shè)計(jì).[M] 北京:清華大學(xué)出版社,2003.
基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲
MCU based Russia block game
摘 要
本設(shè)計(jì)是通過AT89S52單片機(jī)來實(shí)現(xiàn)俄羅斯方塊游戲的設(shè)計(jì),使用C語言進(jìn)行編程,并通過Proteus來進(jìn)行仿真。
本設(shè)計(jì)要實(shí)現(xiàn)的基本功能是:應(yīng)用按鍵來控制方塊的變換與移動(dòng);消除一行并計(jì)分;消除多行額外獎(jiǎng)勵(lì)記分,方塊堆滿時(shí)結(jié)束游戲等俄羅斯方塊的基本功能。單片機(jī)在手持娛樂設(shè)備上的應(yīng)用具有非常大的潛力,它能將其帶入到一個(gè)新的階段。為了解決外部電路圖,必須充分了解所用液晶的顯示方法和單片機(jī)的外部接口功能,和所需要處理的邏輯關(guān)系;還要理解LCD液晶的控制原理,來通過數(shù)據(jù)端口和控制端口來實(shí)現(xiàn)畫面在液晶上面的顯示。
程序則要求對(duì)外部電路了解的情況下完成自己所需要的功能,并將所要完成的功能用編程語言的形式來實(shí)現(xiàn)。然后通過Protues仿真實(shí)現(xiàn)通過外部按鍵來控制各種不同圖形的方塊來玩游戲,并且實(shí)現(xiàn)記錄分?jǐn)?shù)和通過過關(guān)數(shù)來改變方塊下降的速度。最后將程序下載至AT89S52單片機(jī)并進(jìn)行實(shí)際運(yùn)行,實(shí)際運(yùn)行表明,本設(shè)計(jì)可以實(shí)現(xiàn)基本的游戲功能,達(dá)到預(yù)期的目的。
關(guān)鍵詞:AT89S52;C語言;Proteus仿真;LCD液晶
ABSTRACT
This design is achieved through the AT89S52 microcontroller Tetris game design, programming using C language, and carried out by proteus simulation.
The design to achieve the basic functions are: application buttons to control the box, change and movement; eliminate line and scoring; eliminate multi-line incentive points, the game ends when the box filled with basic functions such as Tetris. MCU in the application of handheld entertainment devices have great potential, it can be brought to a new stage. In order to solve the external circuit, we must fully understand the liquid crystal display method and external interface MCU features, and the need to address the logical relationship; also understand that the principle of LCD liquid crystal control to a data port and control port to achieve the above the LCD screen display.
Program requires knowledge of the external circuit where they need to complete the function and the function to be completed in the form of programming language used to achieve. Simulation then protues buttons to control an external box to play a variety of graphical games, and achieve record number of scores and the relationship had to change the speed of the module down. Finally, the program downloaded to AT89S52 MCU and the actual operation, the actual operation indicate that this design can achieve basic game functions, to achieve the desired purpose.
Key Words:AT89S52; C language; Proteus simulation; LCD liquid cryst
目 錄
1 緒 論 1
1.1 課題背景 1
1.2 電子游戲及其分類 1
1.3 電子游戲發(fā)展現(xiàn)狀 2
1.3.1 電子游戲國外發(fā)展現(xiàn)狀 2
1.3.2 電子游戲國內(nèi)發(fā)展現(xiàn)狀 3
2 整體設(shè)計(jì)方案 5
2.1 系統(tǒng)的核心部分單片機(jī) 5
2.1.1 單片機(jī)的選擇 5
2.1.2 AT89S52引腳功能描述 7
2.1.3 晶振特性 9
2.2 液晶顯示模塊 10
2.2.1 液晶顯示控制驅(qū)動(dòng)器HD61202的特點(diǎn) 10
2.2.2 液晶顯示控制驅(qū)動(dòng)器HD61202的引腳功能 10
2.2.3 液晶顯示控制驅(qū)動(dòng)器HD61202的指令系統(tǒng) 11
2.2.4 HD61202的軟件設(shè)計(jì) 12
2.2.5 JM12864J的電路結(jié)構(gòu)特點(diǎn) 15
2.2.6 JM12864J的應(yīng)用 16
2.2.7 鍵盤電路 17
3 系統(tǒng)程序的設(shè)計(jì) 18
3.1 俄羅斯方塊驅(qū)動(dòng)流程圖 18
3.2 俄羅斯方塊所有繪圖工作流程圖 19
3.3 俄羅斯方塊中按下鍵的流程圖 20
3.4 俄羅斯方塊所有繪圖工作流程圖 21
4 系統(tǒng)仿真 22
4.1 PROTUES軟件介紹 22
4.2 Keil軟件介紹 22
4.3 俄羅斯方塊系統(tǒng)PROTUES仿真 24
5 實(shí)物的制作與調(diào)試 26
5.1 電路的焊接 26
5.2 系統(tǒng)性能測試與功能說明 27
結(jié) 論 28
參考文獻(xiàn) 29
附錄1:C語言程序 30
附錄2:電路原理圖 59
附錄3:英文資料及中文翻譯 60
致 謝 76
II
1 緒 論
計(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)。單片機(jī)的最明顯的優(yōu)勢(shì),就是可以嵌入到各種儀器、設(shè)備中。這一點(diǎn)是巨型機(jī)和網(wǎng)絡(luò)不可能做到的。單片機(jī)在內(nèi)部已集成了越來越多的部件,這些部件包括一般常用的電路,例如:定時(shí)器,比較器,A/D轉(zhuǎn)換器,D /A轉(zhuǎn)換器,串行通信接口,Watchdog電路,LCD控制器等。
1.1 課題背景
俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,作為最經(jīng)典的游戲之一,它曾造成的轟動(dòng)與經(jīng)濟(jì)價(jià)值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人 Alex Pajitnov 制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。
雖然用單片機(jī)來設(shè)計(jì)一個(gè)簡單的俄羅斯方塊游戲程序似乎有點(diǎn)大材小用了,但這僅僅是一個(gè)單片機(jī)在嵌入式游戲方面的簡單應(yīng)用,正因?yàn)樗那熬盁o可預(yù)計(jì),所以才有這個(gè)設(shè)計(jì),此次設(shè)計(jì)僅僅是為了舉一個(gè)單片機(jī)在游戲上應(yīng)用的一個(gè)簡單例子,他可以很好的說明單片機(jī)功能的強(qiáng)大,更高的可控性和高集成度的好處,因此它可以在電子游戲方面成為一個(gè)不可計(jì)量的明日之星。
2005年,以計(jì)算機(jī)技術(shù)、通信技術(shù)和軟件技術(shù)為核心的信息技術(shù)取得了更加迅猛的發(fā)展,加上3C(計(jì)算機(jī)、通訊、消費(fèi)電子)產(chǎn)業(yè)的加速融合及3G移動(dòng)通信時(shí)代的逐步到來,嵌入式軟件在國民經(jīng)濟(jì)各領(lǐng)域和日常生活中發(fā)揮了更加重要的作用。嵌入式軟件的發(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ān)注,如今已成為信息產(chǎn)業(yè)中最為耀眼的“明星”之一。
1.2 電子游戲及其分類
電子游戲,也就是運(yùn)行在家用電腦、家用電子游戲機(jī)或是掌中寶游戲機(jī)及街機(jī)上的電子游戲程序。電子游戲是一種結(jié)合劇情故事、美術(shù)、音樂、動(dòng)畫、程序等技術(shù)于一身的互動(dòng)型娛樂軟件,涉及到多個(gè)行業(yè)。
從電子游戲的分類來看,有著多種分類方式。傳統(tǒng)的游戲分類是按照游戲類型,將其分為即時(shí)戰(zhàn)略游戲、第一人稱射擊游戲、角色扮演游戲、策略型游戲等類別。根據(jù)游戲運(yùn)行平臺(tái)的不同,可將電子游戲分為游戲機(jī)游戲、單機(jī)版PC 游戲、互動(dòng)電視游戲、在線游戲和手機(jī)游戲。此外,韓國政府將電子游戲業(yè)分為家用游戲機(jī)游戲、單機(jī)版PC 游戲、網(wǎng)絡(luò)游戲和街機(jī)游戲四大類??紤]到中韓游戲業(yè)比較接近,論文采用韓國的分類標(biāo)準(zhǔn)?!熬W(wǎng)絡(luò)游戲”也就是人們一般所指的“在線游戲”,是指通過互聯(lián)網(wǎng)進(jìn)行的電腦游戲,通過人與人之間的互動(dòng)達(dá)到交流、娛樂和休閑的目的。在互聯(lián)網(wǎng)(局域網(wǎng))技術(shù)出現(xiàn)之前,電子游戲都可以歸于單機(jī)版游戲,即“人機(jī)對(duì)戰(zhàn)”游戲,或最多是雙人對(duì)戰(zhàn)游戲。而隨著互聯(lián)網(wǎng)技術(shù)的出現(xiàn),通過連接游戲服務(wù)器,上百、上千、乃至上萬的游戲玩家同時(shí)連線娛樂成為了現(xiàn)實(shí),這就大大增加了游戲的互動(dòng)性、真實(shí)性,豐富了電子游戲的內(nèi)涵。從網(wǎng)絡(luò)游戲的分類來看,目前業(yè)界還沒有一個(gè)比較統(tǒng)一規(guī)范的分類。隨著計(jì)算機(jī)設(shè)備和網(wǎng)絡(luò)技術(shù)的發(fā)展,電子游戲在全球得到了迅猛的發(fā)展,取得了巨大的成功,已成為當(dāng)今世界上不可缺少的精神糧食。
1.3 電子游戲發(fā)展現(xiàn)狀
1.3.1 電子游戲國外發(fā)展現(xiàn)狀
電子游戲是最初產(chǎn)生于美國,1971年,一個(gè)還在MIT就讀的學(xué)生設(shè)計(jì)了世界上第一個(gè)業(yè)務(wù)用游戲機(jī),這個(gè)街機(jī)游戲的名字叫《電腦空間》??梢哉f時(shí)至今日,電子游戲仍然是外國的天下。
美國至今仍是世界第一大游戲市場,它遵循的是以發(fā)行商為主的產(chǎn)業(yè)開發(fā)鏈模式,根據(jù)美國市場調(diào)查公司NPD Group調(diào)查統(tǒng)計(jì),美國2004年游戲總銷售金額(包括家用、掌上型主機(jī)及軟件)為99億美元,占了全球游戲市場的45%。其中游戲軟件銷售的具體數(shù)字是:視頻游戲軟件的銷售額達(dá)52億美元(1.6億套),PC游戲軟件銷售額達(dá)11億美元(4500萬套),掌機(jī)游戲銷售額達(dá)10億美元(4230萬套)。2004年一共大約有2.48億套游戲售出。據(jù)估計(jì),美國每個(gè)家庭平均購買過2部游戲。
日本近20年來瘋狂賺電子游戲的錢。從上世紀(jì)60年代初的街機(jī),到六七十年代之間的家用游戲機(jī),再到八九十年代的掌上游戲機(jī),日本經(jīng)過30多年的耕耘,終于把電子游戲這棵“搖錢樹”,培育成第一時(shí)尚娛樂產(chǎn)業(yè),壟斷全球業(yè)界長達(dá)10余年。對(duì)于日本來說,電玩業(yè)已是國家經(jīng)濟(jì)的重要支柱之一,在GDP中占有1/5的舉足輕重地位。日本游戲業(yè)在最輝煌的1998年,曾經(jīng)占領(lǐng)全球電子游戲市場硬件90%以上,軟件50%以上。
韓國號(hào)稱世界上網(wǎng)絡(luò)游戲產(chǎn)業(yè)最發(fā)達(dá)國家之一。迄今為止,國內(nèi)網(wǎng)絡(luò)游戲市場有超過60%的產(chǎn)品來自韓國游戲軟件開發(fā)商,韓國網(wǎng)絡(luò)游戲使國內(nèi)很多游戲運(yùn)營公司在游戲營銷市場或股票資本市場上獲得了巨大的成功。 韓國游戲市場的發(fā)展不是偶然,韓國政府不僅給游戲產(chǎn)業(yè)以正確的定位和引導(dǎo),更是將其和本國經(jīng)濟(jì)發(fā)展緊密地聯(lián)系到一起,做了很多市場培育方面的工作。韓國政府認(rèn)識(shí)到,靠重型工業(yè)來支撐全國經(jīng)濟(jì)的做法是片面的,于是將IT、娛樂產(chǎn)業(yè)視為新的經(jīng)濟(jì)增長點(diǎn),開始大力扶持。從那時(shí)起,科技含量極高而能源消耗極低的游戲制作及相關(guān)產(chǎn)業(yè)擔(dān)負(fù)起了“富國興邦”的重?fù)?dān)。由文化觀光部出面組建韓國游戲支援中心,向韓國游戲產(chǎn)業(yè)提供從資金到技術(shù)上的多方面支援;成立游戲投資聯(lián)盟,政府每年向游戲產(chǎn)業(yè)投入的資金多達(dá)500億韓元,并為游戲企業(yè)提供長期的低息貸款;設(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è)的高科技人才免除兩年的兵役。在韓國,從制作到運(yùn)營,一個(gè)網(wǎng)絡(luò)游戲公司起步門檻較低,主要得益于政府實(shí)行的援助計(jì)劃。此外,在有利的政策形勢(shì)下,韓國出現(xiàn)了眾多的游戲院校,一些原本不涉足此領(lǐng)域的大學(xué)也開設(shè)了游戲相關(guān)專業(yè)課程,以大力培養(yǎng)游戲?qū)I(yè)人才,從而為游戲生產(chǎn)提供了基礎(chǔ)保障。
1.3.2 電子游戲國內(nèi)發(fā)展現(xiàn)狀
與電子游戲發(fā)達(dá)的國家相比,我國在電子游戲方面還存在比較大的差距。目前,我國游戲市場正處于發(fā)展階段,但市場上的游戲軟件主要來自日本、美國、韓國等地,但由本土游戲制作人開發(fā)創(chuàng)作的游戲正在高速增加,國產(chǎn)原創(chuàng)的游戲即將成為游戲的主流。
中國的游戲產(chǎn)業(yè)經(jīng)過80年代初期臺(tái)灣廠商的探索至90年代,開始了自己的研發(fā)、發(fā)行的歷程,直至網(wǎng)絡(luò)游戲的風(fēng)行,讓中國的網(wǎng)絡(luò)游戲開始有了飛速的發(fā)展。 1983年,智冠科技有限公司在中國臺(tái)灣成立,為全球第一家簽訂授權(quán)重制中文版產(chǎn)品代理銷售合約的公司,2000年智冠在臺(tái)灣股票上市, 2002年其控股的中華網(wǎng)龍?jiān)谂_(tái)灣上市。
1996年底,UBI SOFT上海分公司暨上海育碧電腦軟件有限公司成立。同年,全球游戲軟件領(lǐng)軍企業(yè)EA在中國上海成立辦事處。1997年,由尚洋公司制作的《血獅》正式上市。 1997年,北京新天地互動(dòng)多媒體技術(shù)有限公司成立,該公司引進(jìn)了《古墓麗影III》(TombRaider III)、《盟軍敢死隊(duì)》等著名歐美游戲,并在1999年在中國率先掀起“游戲軟件價(jià)格革命”,全面推行50元的價(jià)格體系,從此正版游戲價(jià)格開始貼近大眾消費(fèi)者。 1999年,業(yè)內(nèi)估算中國電腦游戲市場(正版)約1.5億元人民幣。 2000年,大陸華彩軟件代理發(fā)行第一款中文MMORPG《萬王之王》正式推出,該游戲于1999年在臺(tái)灣發(fā)行,由臺(tái)灣雷爵資訊(Lager)開發(fā)。也在2000年,繼《萬王之王》、《石器時(shí)代》、《網(wǎng)絡(luò)三國》在臺(tái)灣上市之后,游戲桔子推出了《天堂》,游戲桔子成立于1995年,1999年以《便利店》在臺(tái)灣奠定了地位?!短焯谩愤@款由韓國著名游戲公司Ncsoft研發(fā)的網(wǎng)絡(luò)游戲不但在本國大獲成功,也在臺(tái)灣再次奪冠。 2001年初,北京華義在中國大陸地區(qū)正式推出了《石器時(shí)代》,華義國際股份有限公司于1993年在臺(tái)北成立,2001年在臺(tái)灣股票上市?!妒鲿r(shí)代》成為大陸當(dāng)時(shí)最流行的網(wǎng)絡(luò)游戲。2001年,天人互動(dòng)軟件技術(shù)有限公司在北京成立。當(dāng)年與SEGA結(jié)成PC游戲業(yè)務(wù)的戰(zhàn)略合作關(guān)系,發(fā)行了《櫻花大戰(zhàn)Ⅱ》《文明Ⅲ》《無冬之夜》等經(jīng)典游戲。 2001年5月,“聯(lián)眾世界”經(jīng)過3年多的迅速成長,以同時(shí)在線17萬人、注冊(cè)用戶約1800萬的規(guī)模,成為當(dāng)時(shí)世界用戶數(shù)量第一的在線游戲網(wǎng)站。2001年11月,上海盛大代理的《傳奇》正式上市,這代表著中國網(wǎng)絡(luò)游戲的第一個(gè)巔峰,同時(shí)也引發(fā)了眾多的非議。2003年9月25日,《魔獸世界》被九城、新加坡電信、搜狐和英特爾聯(lián)手拿下,并憑借其優(yōu)秀的品質(zhì)贏得了廣大玩家的青睞。
59
天津職業(yè)技術(shù)師范大學(xué)2010屆本科生畢業(yè)設(shè)計(jì)
2 整體設(shè)計(jì)方案
2.1 系統(tǒng)的核心部分單片機(jī)
2.1.1 單片機(jī)的選擇
單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。
通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。
20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時(shí)間對(duì)人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。
目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。
單片機(jī)經(jīng)過3代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價(jià)格、大存儲(chǔ)容量、強(qiáng)I/O功能及較好的結(jié)構(gòu)兼容性方向發(fā)展。其發(fā)展趨勢(shì)不外乎以下幾個(gè)方面:
1. 多功能
單片機(jī)中盡可能地把所需要的存儲(chǔ)器和I/O口都集成在一塊芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比如A/D、PWM、PCA(可編程計(jì)數(shù)器陣列)、WDT(監(jiān)視定時(shí)器---看家狗)、高速I/O口及計(jì)數(shù)器的捕獲/比較邏輯等。
有的單片機(jī)針對(duì)某一個(gè)應(yīng)用領(lǐng)域,集成了相關(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ī)中。
2.高效率和高性能
為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開始使用RISC、流水線和DSP的設(shè)計(jì)技術(shù),使單片機(jī)的性能有了明顯的提高,表現(xiàn)為:單片機(jī)的時(shí)鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)ROM(FLASH)和RAM的容量都突破了以往的數(shù)量和限制。
由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開始使用高級(jí)語言(如C語言)來開發(fā)單片機(jī)的程序。使用高級(jí)語言可以降低開發(fā)難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)充功能。
3.低電壓和低功耗
單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于CMOS等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作(1.2V或0.9V),功耗已經(jīng)降低到uA級(jí)。這些特性使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長的時(shí)間。
4.低價(jià)格
單片機(jī)應(yīng)用面廣,使用數(shù)量大,帶來的直接好處就是成本的降低。目前世界各大公司為了提高競爭力,在提高單片機(jī)性能的同時(shí),十分注意降低其產(chǎn)品的價(jià)格。
在此,我們采用型號(hào)為AT89S52的單片機(jī)。因?yàn)椋?AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。
與MCS-51單片機(jī)產(chǎn)品兼容 、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、1000次擦寫周期、全靜態(tài)操作:0Hz~33MH、三級(jí)加密程序存儲(chǔ)器 、32個(gè)可編程I/O口線 、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源 、全雙工UART串行通道、低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符 。
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可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。
AT89S52單片機(jī)有PDIP、PLCC、TQFP三種封裝方式,在此我選用DPIP也就是雙列直插封裝的單片機(jī)此種封裝有如下特點(diǎn):
1. 適合PCB的穿孔安裝;
2. 易于對(duì)PCB布線;
3. 操作方便;
2.1.2 AT89S52引腳功能描述
AT89S52單片機(jī)的管腳說明如圖2-1所示:
圖2-1 DIP封裝 AT89S52單片機(jī)引腳結(jié)構(gòu)圖
1.VCC:電源。
2.GND:接地端 。
3.P0口(P0.0~P0.7):P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在Flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。
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í),被外部拉低的引腳由于內(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所示:
在 Flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。
表2-1 P1口第二功能
引腳號(hào)
第二功能
P1.0
T2(定時(shí)器/計(jì)數(shù)器 T2 的外部計(jì)數(shù)輸入),時(shí)鐘輸出
P1.1
T2EX(定時(shí)器/計(jì)數(shù)器 T2 的捕捉/重載觸發(fā)信號(hào)和方向控制)
P1.5
MOSI(在系統(tǒng)編程用)
P1.6
MISO(在系統(tǒng)編程用)
P1.7
SCK(在系統(tǒng)編程用)
5.P2口(P2.0~P2.7):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)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如 MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2 鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。
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口亦作為 AT89S52第二功能使用,如表2-2所示:
表2-2 P3口第二功能
引腳號(hào)
第二功能
P3.0
RXD(串行輸入)
P3.1
TXD(串行輸出)
P3.2
I(外部中斷 0)
P3.3
I(外部中斷 0)
P3.4
T0(定時(shí)器 0 外部輸入)
P3.5
T1(定時(shí)器 1 外部輸入)
P3.6
(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7
(外部數(shù)據(jù)存儲(chǔ)器寫選通)
在 flash 編程和校驗(yàn)時(shí),P3 口也接收一些控制信號(hào)。RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器 AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。
ALE/:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE 脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE 僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE將被微弱拉高。這個(gè)ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。
:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng) AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。
A/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,EA 必須接 GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。
XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
2.1.3 晶振特性
AT89S52單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1和XTAL2分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來一起構(gòu)成自激振蕩器。從外部時(shí)鐘源驅(qū)動(dòng)器件的話,XTAL2可以不接,而從XTAL1接入,如圖2-2所示。由于外部時(shí)鐘信號(hào)經(jīng)過二分頻觸發(fā)后作為外部時(shí)鐘電路輸入的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒有其它要求,最長低電平持續(xù)時(shí)間和最少高電平持續(xù)時(shí)間等還是要符合要求的。如圖 2-2 所示:
圖2-2內(nèi)部振蕩電路連接圖
2.2 液晶顯示模塊
顯示器部分是由HD61202液晶顯示控制驅(qū)動(dòng)器和JM12864J液晶顯示器組成的,下面我們對(duì)其分別進(jìn)行介紹。
2.2.1 液晶顯示控制驅(qū)動(dòng)器HD61202的特點(diǎn)
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)。
1.內(nèi)藏64×64=4096位顯示RAM,RAM中每位數(shù)據(jù)對(duì)應(yīng)LCD屏上一個(gè)點(diǎn)的亮、暗狀態(tài);
2.HD61202是列驅(qū)動(dòng)器,具有64路列驅(qū)動(dòng)輸出;
3.HD61202讀、寫操作時(shí)序與68系列微處理器相符,因此它可直接與68系列微處理器接口相連;
4.HD61202的占空比為1/32~1/64。
2.2.2 液晶顯示控制驅(qū)動(dòng)器HD61202的引腳功能
引腳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,使之不起作用。HD61202的引腳功能如下表2-3所示:
表2-3 HD61202的引腳功能
引腳符號(hào)
狀態(tài)
引腳名稱
功能
CS1,CS2,CS3
輸入
芯片片選端
CS1和CS2低電平選通,CS3高電平選通。
E
輸入
讀寫使能信號(hào)
在E下降沿,數(shù)據(jù)被鎖存(寫)入HD61202;在E高電平期間,數(shù)據(jù)被讀出
R/W
輸入
讀寫選擇信號(hào)
R/W=1為讀選通,R/W=0為寫選通
RS
輸入
數(shù)據(jù)、指令選擇信號(hào)
RS=1為數(shù)據(jù)操作
RS=0為寫指令或讀狀態(tài)
DB0-DB7
三態(tài)
數(shù)據(jù)總線
RST
輸入
復(fù)位信號(hào)
復(fù)位信號(hào)有效時(shí),關(guān)閉液晶顯示,使顯示起始行為0,RST可跟MCU相連,由MCU控制;也可直接接VDD,使之不起作用。
2.2.3 液晶顯示控制驅(qū)動(dòng)器HD61202的指令系統(tǒng)
HD61202的指令系統(tǒng)比較簡單,總共只有七種。現(xiàn)分別介紹如下:
1. 顯示開/關(guān)指令
R/W RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0 0 1 1 1 1 1 1/0
當(dāng)DBO=1時(shí),LCD顯示RAM中的內(nèi)容;DBO=0時(shí),關(guān)閉顯示。
2. 顯示起始行(ROW)設(shè)置指令
該指令設(shè)置了對(duì)應(yīng)液晶屏最上一行的顯示RAM的行號(hào),有規(guī)律的改變顯示起始行,可以使LCD實(shí)現(xiàn)顯示滾屏的效果。
R/W RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
1 1 顯示起始行(0-63)
3. 頁(PAGE)置指令
R/W RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
1
0
1
1
1
頁號(hào)(0-7)
顯示RAM共64行,分8頁,每頁8行。
4. 列地址(Y Address)設(shè)置指令
R/W RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0 1 顯示列地址(0-63)
設(shè)置了頁地址和列地址,就唯一確定了顯示RAM中的一個(gè)單元,這樣MCU就可以用讀、寫指令讀出該單元中的內(nèi)容或向該單元寫進(jìn)一個(gè)字節(jié)數(shù)據(jù)。
5. 讀狀態(tài)指令
R/W RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 0
BUSY 0 ON/OFF REST 0 0 0 0
該指令用來查詢HD61202的狀態(tài),各參量含義如下:
BUSY: 1-內(nèi)部在工作 0-正常狀態(tài)
ON/OFF:1-顯示關(guān)閉 0-顯示打開
REST: 1-復(fù)位狀態(tài) 0-正常狀態(tài)
在BUSY和REST狀態(tài)時(shí),除讀狀態(tài)指令外,其它指令均不對(duì)HD61202產(chǎn)生作用。在對(duì)HD61202操作之前要查詢BUSY狀態(tài),以確定是否可以對(duì)HD61202進(jìn)行操作。
6. 寫數(shù)據(jù)指令
R/W RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 1
寫 數(shù) 據(jù)
讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動(dòng)增一,必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著再讀才會(huì)讀出所要讀的單元中的數(shù)據(jù)。
7. 讀數(shù)據(jù)指令
R/W RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 1
讀 顯 示 數(shù) 據(jù)
2.2.4 HD61202的軟件設(shè)計(jì)
液晶控制器HD61202 一共有七條指令,從作用上可分為兩類,顯示狀態(tài)設(shè)置指令和數(shù)據(jù)讀/寫操作指令。詳見指令系統(tǒng)可查看圖形液晶顯示器產(chǎn)品有關(guān)手冊(cè)。顯示起始行設(shè)置中L5~L0 為顯示起始行的地址,取值在0-3FH(1-64 行)范圍內(nèi)。頁面地址設(shè)置中P2-P0 為選擇的頁面地址,取值范圍為0-7H,代表1-8 頁。列地址設(shè)置中C5-C0 為Y地址計(jì)數(shù)器的內(nèi)容,取值在0-3FH(1-64 行)范圍內(nèi)。
顯示器上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為第八行的點(diǎn)數(shù)據(jù)。該bit=1 時(shí)該點(diǎn)則顯示黑點(diǎn)出來,該bit=0 時(shí)該點(diǎn)則消失。另外LCD 指令中有-條display ON/OFF 指令,display ON 時(shí)顯示RAM 數(shù)據(jù)對(duì)應(yīng)顯示的畫面;display OFF 則畫面消失,RAM 中顯示數(shù)據(jù)仍存在。
點(diǎn)陣字模文件的建立:
由于MGLS12864 液晶顯示器沒有內(nèi)部字符發(fā)生器,所以在屏幕上顯示的任何字符、漢字等須自己建立點(diǎn)陣字模庫,然后均按圖形方式進(jìn)行顯示。由于HD61202 顯示存儲(chǔ)器的特性,不能將計(jì)算機(jī)內(nèi)的漢字庫和其它字模庫提出直接使用,需要將其旋轉(zhuǎn)90 度后再寫入。點(diǎn)陣字模庫建立包括以下幾個(gè)方面:
1.建立8×16 點(diǎn)陣常用字符、數(shù)字、符號(hào)字模庫。
可選用計(jì)算機(jī)BIOS 中ASCII 的8×16 字模庫,所有字符按照ASCII 值從小到大升序排列。
asm{MOV ax,1130h /*AH=11h—功能調(diào)用。裝入字庫至軟字庫 */
mov bh,6 /*AL=30h 取點(diǎn)陣信息 */
int 10h /*BH=6 取ROM8X16 點(diǎn)陣指針(VGA) */
mov ax,es /*出口:ES:BP 指向字庫指針 */
mov ascii_es,ax
mov ax,bp
mov ascii_bp,ax };
ascii_offset=ascii_bp+16*asciicode;
for(j=0;j<16;j++) buf[j]=peekb(ascii_es,ascii_offset+j); /*讀16 字節(jié)點(diǎn)陣數(shù)據(jù)*/
for(m=0;m<16;m++) /*點(diǎn)陣數(shù)據(jù)轉(zhuǎn)換成LCD 格式數(shù)據(jù)*/
{ if(m<8) { beginbyte= 7; shiftn="7";}
else { beginbyte="15"; shiftn="15";}
for(j=0;j<8;j++)
ascii8x16[m]=(ascii8x16[m]+ (buf[beginbyte-j]>>(shiftn-m))&0x01)<<1;
}
也可選用UCDOS 的ASC16 文件做字模庫。ASC16 文件的字符為8×16 點(diǎn)陣。所有字符按照ASCII值從小到大升序排列。計(jì)算字符首地址的公式:字符首地址=字符的ASCII 碼值×16加字模庫首地址。
2.建立所用到的16×16 點(diǎn)陣字模庫。漢字字符可選用UCDOS 的HZK16 文件做字模庫。HZK16 文件的字符為16×16 點(diǎn)陣。所有字符按照區(qū)位碼從小到大升序排列。計(jì)算漢字字符首地址的公式如下:漢字首地址=((區(qū)碼-1)×94+位碼-1)×32。作者用C 語言編寫的讀取UCDOS 點(diǎn)陣字庫字模程序,完成字模讀取。
數(shù)據(jù)重新排列,并按MCS-51 匯編程序的要求寫成相應(yīng)格式的文本文件。
p=((quma-1)*94+weima-1)*32;
cclibfile="fopen"("HZK16","rb");
fseek(cclibfile,(long)p,SEEK_SET);
fread(buf,sizeof(unsigned char),32,cclibfile); /*讀32 字節(jié)點(diǎn)陣數(shù)據(jù)*/
for(m=0;m<32;m++){ /*點(diǎn)陣數(shù)據(jù)轉(zhuǎn)換成LCD 格式數(shù)據(jù)*/
if(m<8) { beginbyte="14"; shiftn="7";}
else if( m>= 8 && m<16 ) { beginbyte="15"; shiftn="15";}
else if( m>=16 && m<24 ) { beginbyte="30"; shiftn="23";}
else { beginbyte="31"; shiftn="31";}
for(j=0;j<8;j++)
hzk16x16[m]=(hzk16x16[m]+ (buf[beginbyte-2*j] >>(shiftn-m))&0x01)<<1;
}
3.常用圖形(如產(chǎn)品商標(biāo)等)的點(diǎn)陣圖形的建立。對(duì)已有的圖形可采用掃描儀進(jìn)行掃描,然后用圖形處理軟件進(jìn)行處理,再將BMP 格式文件轉(zhuǎn)換成MCS-51的匯編文件的格式。
以上所有的字模數(shù)據(jù)都存放在單片機(jī)W78E58 的程序存儲(chǔ)器中,如用到的漢字、圖形較多,可選用較大容量的程序存儲(chǔ)器。
通用子程序:通用子程序分左半屏、右半屏寫指令代碼子程序和寫顯示數(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。
(COMM EQU 20H /*指令寄存器*/ DATA EQU 21H /*數(shù)據(jù)寄存器*/)
1.左半屏寫指令子程序
WR_CMD1: MOV DPTR,#CRADR1 ;/*讀狀態(tài)字口地址*/
WAIT1: MOVX A,@DPTR ;/* 讀狀態(tài)字 */
JB ACC.7,WAIT1 ;/*判忙標(biāo)志BF,如BF=1 忙,等待*/
MOV DPTR,#CWADR1 ;/*寫指令字口地址*/
MOV A,COMM ;/*取指令代碼*/
MOVX @DPTR,A ;/*寫指令代碼*/
RET
2.左半屏寫數(shù)據(jù)子程序
WR_DATA1:MOV DPTR,#CRADR1 ;/*讀狀態(tài)字口地址*/
WAIT11: MOVX A,@DPTR ;/* 讀狀態(tài)字 */
JB ACC.7,WAIT11 ;/*判忙標(biāo)志BF,如BF=1 忙,等待*/
MOV DPTR,#DWADR1 ;/*寫數(shù)據(jù)字口地址*/
MOV A,DATA ;/*取數(shù)據(jù)/
MOVX @DPTR,A ;/*寫數(shù)據(jù)*/
RET
3.右半屏寫指令子程序WR_CMD2 和右半屏寫數(shù)據(jù)子程序WR_DATA2 的編制同左半屏子程序相同,只是對(duì)應(yīng)口地址不同。
2.2.5 JM12864J的電路結(jié)構(gòu)特點(diǎn)
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),比較簡單,因此這里就不作介紹了。下面主要介紹一下JM12864J的邏輯電路圖。
JM12864J共有兩片HD61202及其兼容控制驅(qū)動(dòng)器和一片HD61203,如圖2-3所示:
圖2-3 JM12864J的邏輯電路圖
在JM12864J中,兩片HD61202的ADC均接高電平,RST也接高電平,這樣在使用JM12864J時(shí)就不必再考慮這兩個(gè)引腳的作用。跟HD61202(1)的相連;跟HD61202(2)的CS1相連,因此、選通組合信號(hào)為,=01選通(1),,=10選通(2)。對(duì)于JM12864J,只要供給VDD、VSS和V0即可,HD61202和HD61203所需的電源將由模塊內(nèi)部電路在VDD和V0、VSS的作用下產(chǎn)生。
2.2.6 JM12864J的應(yīng)用
以下內(nèi)容為以單片機(jī)89S52為例機(jī)的接口電路,控制電路為直接訪問方式的接口電路。電路原理圖如圖2-4所示:
圖2-4 AT89S52 與液晶的接口電路
根據(jù)以上電路原理圖中液晶的各引腳與單片機(jī)的接法,可得本設(shè)計(jì)的液晶模塊電路如圖2-5所示:
由圖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.0~P2.7口;芯片1、芯片2的片選分別接單片機(jī)的P3.4、P3.3口;復(fù)位端RST、背光正電源LEDA接+5V;液晶驅(qū)動(dòng)電壓VEE、背光負(fù)電源LEDK接地。
圖2-5液晶模塊電路
2.2.7 鍵盤電路
鍵盤電路本設(shè)計(jì)共采用按鍵3個(gè),分別與單片機(jī)的 P1.0、P3.5、P3.6、P3.7口相連,分別對(duì)應(yīng)旋轉(zhuǎn)、左移、下、右移。
3 系統(tǒng)程序的設(shè)計(jì)
3.1 俄羅斯方塊驅(qū)動(dòng)流程圖
開始
隨機(jī)生成一個(gè)圖形
交給當(dāng)前圖形變量
隨機(jī)生成一個(gè)圖形
交給提示圖形變量
行滿
表格滿
消除行并把上面的行數(shù)據(jù)下移并置清行為true、當(dāng)前圖改變?yōu)閒alse
清所有數(shù)據(jù)
繪圖(清屏)
N
Y
N
提示圖形變量給當(dāng)前圖形
隨機(jī)生成一個(gè)圖形交給提示圖形變量
游戲結(jié)束
繪圖
結(jié)束
Y
Y
繪圖一次
Y
根據(jù)變化繪圖(繪提示圖和當(dāng)前圖形)
N
圖形到底了嗎
圖形下降一行
3.2 俄羅斯方塊所有繪圖工作流程圖
開始
輸出分?jǐn)?shù)
清除剛才位置的圖形
當(dāng)前圖形改變
N
Y
繪當(dāng)前圖的現(xiàn)在位置
提示圖形改變真?
N
Y
繪提示圖
消行動(dòng)作為真?
N
Y
從消行的那一行的第一列開始
為空數(shù)據(jù)
N
Y
繪白色;相當(dāng)于清除色彩
表格中對(duì)應(yīng)的色彩
行+1到移動(dòng)數(shù)據(jù)最后一行
N
Y
結(jié)束
3.3 俄羅斯方塊中按下鍵的流程圖
按下鍵
直接把圖形下降到底
記下下降圖形時(shí)的位置()
N
Y
消除行并把上面的行數(shù)據(jù)下移并置清行為true、當(dāng)前圖改變?yōu)閒alse
Y
表格滿
行滿
N
繪圖(清屏)
清所有數(shù)據(jù)
游戲結(jié)束
提示圖形變量給當(dāng)前圖形
繪圖
隨機(jī)生成一個(gè)圖形交給提示圖形變量
結(jié)束
3.4 俄羅斯方塊所有繪圖工作流程圖
清除剛才位置的圖形,包括清除提示圖和當(dāng)前圖
當(dāng)前圖形改變
開始
輸出分?jǐn)?shù)
繪當(dāng)前圖的現(xiàn)在位置
N
Y
繪提示圖
N
重繪表格
Y
清除所有數(shù)據(jù)并清屏
N
提示圖形改變真?
消行動(dòng)作為真?
Y
游戲結(jié)束
N
Y
結(jié)束
天津職業(yè)技術(shù)師范大學(xué)2010屆本科生畢業(yè)設(shè)計(jì)
4 系統(tǒng)仿真
4.1 Proteus軟件介紹
Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件。 Proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動(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)境!
Proteus組合了高級(jí)原理布圖、混合模式SPICE仿真,PCB設(shè)計(jì)以及自動(dòng)布線來實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。此系統(tǒng)受益于15年來的持續(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è)模型來對(duì)設(shè)計(jì)進(jìn)行交互仿真。
其功能模塊:—個(gè)易用而又功能強(qiáng)大的ISIS原理布圖工具;Proteus混合模型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模型。
1.支持許多通用的微控制器,如PIC,AVR,HC11以及8051;
2.交互的裝置模型包括:LED和LCD顯示,RS232終端,通用鍵盤;
3.強(qiáng)大的調(diào)試工具,包括寄存器和存儲(chǔ)器,斷點(diǎn)和單步模式;
4.IAR C-SPY 和Keil uVision3等開發(fā)工具的源層調(diào)試;
5.應(yīng)用特殊模型的DLL界面-提供有關(guān)元件庫的全部文件。
4.2 Keil軟件介紹
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á)到了較高的水平,而且可以附加靈活的控制選項(xiàng),在開發(fā)大型項(xiàng)目時(shí)非常理想。Keil C51集成開發(fā)環(huán)境的主要功能有以下幾點(diǎn):
1.μVision2 for Windows:是一個(gè)集成開發(fā)環(huán)境,它將項(xiàng)目管理、源代碼編輯和程序調(diào)試等組合在一個(gè)功能強(qiáng)大的環(huán)境中;
2.C51國際際準(zhǔn)化C交叉編譯器:從C源代碼產(chǎn)生可重定位的目標(biāo)模塊;
3.A51宏匯編器:從80C51匯編源代碼產(chǎn)生可重定位的目標(biāo)模塊;
4.BL51鏈接器/定位器:組合由C51和A51產(chǎn)生的可重定位的目標(biāo)模塊,生成絕對(duì)目標(biāo)模塊;
5.LIB51庫管理器:從目標(biāo)模塊生成連接器可以使用的庫文件;
6.OH51目標(biāo)文件至HEX格式的轉(zhuǎn)換器,從絕對(duì)目標(biāo)模塊生成Intel Hex文件;
7.RTX-51實(shí)時(shí)操作系統(tǒng):簡化了復(fù)雜的實(shí)時(shí)應(yīng)用軟件項(xiàng)目的設(shè)計(jì)。
這個(gè)工具套件是為專業(yè)軟件開發(fā)人員設(shè)計(jì)的,但任何層次的編程人員都可以使用,并獲得80C51單片機(jī)的絕大部分應(yīng)用。Keil Software提供了一流的80C51系列開發(fā)工具軟件,下面描述每個(gè)套件及其內(nèi)容:
(1)PK51專業(yè)開發(fā)套件:PK51專業(yè)開發(fā)套件提供了所有工具,適合專業(yè)開發(fā)人員建立和調(diào)試80C51系列微控制器的復(fù)雜嵌入式應(yīng)用程序。專業(yè)開發(fā)套件可針對(duì)80C51及其所有派生系列進(jìn)行配置使用;
(2)DK51開發(fā)套件:DK51開發(fā)套件是PK51的精簡版,它不包括RTX51 Tiny實(shí)時(shí)操作系統(tǒng)。開發(fā)套件可針對(duì)80C51及其所以派生系列進(jìn)行配置使用;
(3)編譯器套件:如果開發(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)行配置使用;
表4-1 開發(fā)套件和工具對(duì)照表
Components
PK51
DK51
CA51
A51
FR51
uVision2 Project Management&Editor
√
√
√
√
A51 Assembler
√
√
√
√
C51 Compiler
√
√
√
BL51 Liker/locator
√
√
√
√
LIB51 Library Magaer
√
√
√
√
uVision2 Debugger/Simulator
√
√
RTX51 Tiny
√
RTX51 Full
√
(4)A51匯編器套件:A51匯編器套件包括一個(gè)匯編器和創(chuàng)建嵌入式應(yīng)用所需要的所有工具。它可針對(duì)80C51及其所有派生系列進(jìn)行配置使用;
(5)R
收藏