趙巧妮
基于Proteus 的俄羅斯方塊電路的設(shè)計(jì)和仿真
趙巧妮
基于AT89S52單片機(jī)實(shí)現(xiàn)俄羅斯方塊游戲的設(shè)計(jì),使用keilC集成環(huán)境進(jìn)行軟件的編程和調(diào)試,通過Proteus繪制仿真電路圖,結(jié)合keil與Proteus來進(jìn)行聯(lián)合調(diào)試仿真,結(jié)果表明能實(shí)現(xiàn)游戲的正常運(yùn)行。
AT89S52;俄羅斯方塊;Proteus;仿真
俄羅斯方塊是一款風(fēng)靡全球的經(jīng)典掌上游戲,最初于1984年6月由俄羅斯人阿列克謝·帕基特諾夫發(fā)明。它看似簡單但卻變化無窮,令人上癮。本文擬用單片機(jī)結(jié)合Proteus仿真軟件來設(shè)計(jì)一款俄羅斯方塊游戲。
依據(jù)電路系統(tǒng)的鍵來控制方塊的變換與移動,控制方塊或下、或左、或右移動;達(dá)到消除一行或者多行的目的;消除一行并計(jì)分;消除多行額外獎勵(lì)記分,方塊堆滿時(shí)結(jié)束游戲。
依據(jù)游戲功能說明,繪制出系統(tǒng)的框圖,如圖1所示:
圖1 系統(tǒng)框圖
包括單片機(jī)系統(tǒng)、按鍵電路、顯示電路。
3.1 最小系統(tǒng)電路
單片機(jī)最小保證系統(tǒng)能正常工作的最小電路,包括復(fù)位電路和時(shí)鐘電路[1]。如圖2所示:
圖2 最小系統(tǒng)電路
復(fù)位電路由R1、C4和按鍵1構(gòu)成,按鍵1為手動復(fù)位,R1與C4構(gòu)成自動復(fù)位,復(fù)位信號為高電平有效。
3.2 液晶電路
液晶電路用于顯示方塊的運(yùn)動狀況,包括HD61202液晶顯示控制驅(qū)動器和JM12864J液晶顯示器,HD61202液晶顯示控制驅(qū)動器是一種帶有驅(qū)動輸出的圖形液晶顯示控制器[2,3]。如圖3所示:
圖3 液晶電路
液晶顯示器的數(shù)據(jù)、指令選擇信號RS端接單片機(jī)P3.2口;讀寫選擇信號R/W端接單片機(jī)P3.1口;DB0~DB7分別接單片機(jī)的P2.0~P2.7口;芯片1、芯片2的片選分別接單片機(jī)的P3.4、P3.3口;復(fù)位端RST、背光正電源LEDA接+5V;液晶驅(qū)動電壓VEE、背光負(fù)電源LEDK接地。
3.3 按鍵電路
采用了4個(gè)按鍵,分別與單片機(jī)的 P1.0、P3.5、P3.6、P3.7口相連,分別對應(yīng)旋轉(zhuǎn)、左移、下、右移,如圖4所示:
圖4 按鍵電路
旋轉(zhuǎn)按鍵用于控制形狀逆時(shí)針旋轉(zhuǎn);左移鍵用于控制方塊左移動一格;右移鍵用于控制方塊右移動一格;下降鍵用于控制方塊快速下降。
軟件采用KEIL C51集成環(huán)境來編寫程序程,程序的編寫流程圖包括繪圖工作流程圖、按鍵按下的流程圖、主流程圖等。繪圖流程圖如圖5所示:
圖5 繪圖工作流程圖
5.1 Proteus軟件介紹
Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件。電路仿真是交互互動的,針對微處理器的應(yīng)用,可以直接在基于原理圖的虛擬原型上編程,實(shí)現(xiàn)軟件源碼級的實(shí)時(shí)調(diào)試[4,5]。
5.2 Proteus與Keil聯(lián)調(diào)
1.用Proteus軟件,根據(jù)俄羅斯方塊電路原理圖,畫出仿真圖。
2.用Keil編寫程序并調(diào)試完畢無誤后,準(zhǔn)備將Proteus仿真電路圖與Keil聯(lián)調(diào)。
3.單擊Keil軟件的“Project菜單/Options for Target”選項(xiàng)或者點(diǎn)擊工具欄的“option for target”按鈕,彈出窗口,點(diǎn)擊“Debug”按鈕,頁面[6-7]如圖6所示:
圖6 Target窗口
在出現(xiàn)的對話框里在右欄上部的下拉菜單里選中“Proteus VSM Monitor一51 Driver”。并且還要點(diǎn)擊一下“Use”前面表明選中的小圓點(diǎn)。
再點(diǎn)擊“Setting”按鈕,設(shè)置通信接口,在“Host”后面添上“127.0.0.1”,在“Port”后面添加“8000”。設(shè)置好的情形如圖5(b)所示,點(diǎn)擊“OK”按鈕即可。最后將工程編譯,進(jìn)入調(diào)試狀態(tài),并運(yùn)行。
4.Proteus的設(shè)置
打開“嘗試”文件,鼠標(biāo)左鍵點(diǎn)擊菜單“Debug”,選中“use romotedebuger monitor”,如圖7所示:
圖7 Debug窗口
此后,便可實(shí)現(xiàn)KeilC與Proteus連接調(diào)試。
5.3 仿真結(jié)果
經(jīng)Proteus仿真結(jié)果如圖8所示:
圖8 仿真結(jié)果
可見液晶屏幕上可顯示方塊的下降速度、游戲得分情況以及下一次要出現(xiàn)的方塊形狀,可以表明此俄羅斯方塊游戲能正常運(yùn)行。
利用單片機(jī)AT89S52來設(shè)計(jì)俄羅斯方塊游戲,結(jié)合proteus仿真軟件,實(shí)現(xiàn)了俄羅斯方塊游戲系統(tǒng)的預(yù)期功能,有一定的趣味性和學(xué)習(xí)性。
[1] 王瑾.虛擬仿真技術(shù)在單片機(jī)課程教學(xué)中的應(yīng)用電子設(shè)計(jì)工程[J],2016.1:45-47.
[2] 吳文通. 基于Keil及Proteus的繼電控制系統(tǒng)功能仿真與檢測. 電力系統(tǒng)保護(hù)與控制[J]2015.3:150-154.
[3] 張玲. 基于Proteus的數(shù)字電壓表的設(shè)計(jì)與仿真, 自動化與儀器儀表[J]. 2016.2:221-222.
[4] 陳建林.基于Proteus的數(shù)字密碼鎖的仿真設(shè)計(jì)[J]. 2009.80:44-49.
[5] 鐘蔚. 點(diǎn)陣式LED滾動漢字顯示屏的Proteus仿真設(shè)計(jì)[J] .2008.24:106-107.
[6] 汪寧.Proteus軟件的單片機(jī)仿真方法[J], 山東輕工業(yè)學(xué)院學(xué)報(bào). 2007.3:24-25.
[7] 魏魯原. 基于Proteus的單片機(jī)虛擬實(shí)驗(yàn)室的構(gòu)建[J].電子世界,2016.2:187-189.
Design and Simulation of Tetris Circuit Based on Proteus
Zhao Qiaoni
(1.South West Jiaotong University, Chengdu 610031, China; 2.Hunan Railway Professional Technology College, Zhuzhou 412001, China)
The tetris is designed by AT89S52,which uses keil C integrated environment for software programming and debugging. Draw circuit simulation by Proteus. It combines keil with Proteus to simulate for joint commissioning. The results shows that the game can be realized.
AT89S52; Tetris; Proteus Simulation
TP319
A
1007-757X(2016)08-0059-02
2016.04.26)
趙巧妮(1982-),女,西南交通大學(xué)四川成都,湖南鐵道職業(yè)技術(shù)學(xué)院,講師,碩士,研究方向:電路設(shè)計(jì),株洲,412001