版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p><b> 俄羅斯方塊</b></p><p><b> 目錄</b></p><p><b> 摘要 </b></p><p><b> 引言 </b>&l
2、t;/p><p> 1.程序整體思路 </p><p> 2.8X8LED模塊顯示原理</p><p><b> 3.硬件電路仿真圖</b></p><p><b> 4.圖形顯示</b></p><p><b> 5.消層算法</b><
3、/p><p><b> 6.旋轉(zhuǎn)算法</b></p><p><b> 7.實(shí)物焊接</b></p><p><b> 8.心得體會(huì)</b></p><p><b> 附錄 程序代碼</b></p><p><b>
4、 摘 要</b></p><p> 記得在很小的時(shí)候,有一種掌上游戲機(jī),里面有一款游戲叫做俄羅斯方塊,那時(shí)的我們只是簡(jiǎn)單的按照游戲規(guī)則進(jìn)行“堆積木”,而其中的原理卻很少有人去思考,畢竟當(dāng)時(shí)的我們都還很年幼。</p><p> 基于單片機(jī)課程設(shè)計(jì)的機(jī)會(huì),我們這個(gè)小組將使用51單片機(jī)和8x8led的組合,來(lái)實(shí)現(xiàn)比較簡(jiǎn)單的俄羅斯方塊設(shè)計(jì)。</p><p&
5、gt; 此次設(shè)計(jì)初期是在keil和proteus聯(lián)合仿真中進(jìn)行,編程語(yǔ)言為51匯編,后期是進(jìn)行實(shí)物焊接。</p><p> 論文描述了俄羅斯方塊的主要功能函數(shù)的實(shí)現(xiàn),算法分析和實(shí)物焊接過(guò)程中遇到的問(wèn)題。</p><p> 關(guān)鍵詞:俄羅斯方塊;算法; 8X8led;</p><p><b> 引 言</b></p><
6、p> 游戲是人們活動(dòng)中一項(xiàng)非常重要的內(nèi)容,有人認(rèn)為如果哪一天人類(lèi)對(duì)所有的游戲都失去興趣,恐怕世界的末日就要到了。電腦對(duì)游戲的貢獻(xiàn)有目共睹,現(xiàn)在摸過(guò)電腦的人很少有沒(méi)玩過(guò)電腦游戲的,喜歡游戲的人也很少有不玩電腦的。</p><p> 俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,它曾經(jīng)造成的轟動(dòng)與造成的經(jīng)濟(jì)價(jià)值可以說(shuō)是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人Alex Pajitnov制作
7、的,它看似簡(jiǎn)單但卻變化無(wú)窮,令人上癮。相信大多數(shù)用戶(hù)都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。究其歷史,俄羅斯方塊最早還是出現(xiàn)在PC機(jī)上,而我國(guó)的用戶(hù)都是通過(guò)紅白機(jī)了解、喜歡上它的。現(xiàn)在聯(lián)眾又將重新掀起這股讓人沉迷的俄羅斯方塊風(fēng)潮。對(duì)一般用戶(hù)來(lái)說(shuō),它的規(guī)則簡(jiǎn)單,容易上手,且游戲過(guò)程變化無(wú)窮,而在"聯(lián)眾俄羅斯方塊"中,更有一些聯(lián)眾網(wǎng)絡(luò)游戲所獨(dú)有的魅力――有單機(jī)作戰(zhàn)與兩人在線(xiàn)對(duì)戰(zhàn)兩種模式,用戶(hù)可任選一種進(jìn)行游戲
8、。網(wǎng)絡(luò)模式還增加了積分制,使用戶(hù)既能感受到游戲中的樂(lè)趣,也給用戶(hù)提供了一個(gè)展現(xiàn)自己高超技藝的場(chǎng)所。</p><p> 俄羅斯方塊游戲可以說(shuō)是隨計(jì)算機(jī)的發(fā)展而發(fā)展,并不斷推陳出新演變出各種類(lèi)似游戲, 深受廣大玩家喜愛(ài)。這個(gè)游戲有的簡(jiǎn)單, 有的復(fù)雜, 但其根本原理是一樣的都是對(duì)運(yùn)動(dòng)的方塊進(jìn)行組合, 來(lái)訓(xùn)練玩家的反應(yīng)能力。本文利用單片機(jī)進(jìn)行俄羅斯方塊設(shè)計(jì),采用51匯編語(yǔ)言進(jìn)行編程,基于匯編語(yǔ)言的原因是在編寫(xiě)程序的過(guò)程
9、中,對(duì)于程序的執(zhí)行會(huì)有一個(gè)比較直觀的表現(xiàn)。</p><p><b> 程序整體思路</b></p><p> 單片機(jī)上的程序設(shè)計(jì)一般是一個(gè)大循環(huán)結(jié)構(gòu),對(duì)于俄羅斯方塊的程序設(shè)計(jì),首先產(chǎn)生一個(gè)偽隨機(jī)數(shù),其范圍是0-6,然后程序根據(jù)此數(shù)值所對(duì)應(yīng)的圖形模塊裝入ram的固定區(qū)域內(nèi),緊接著將此圖像寫(xiě)入led所對(duì)應(yīng)的顯示緩沖區(qū)中,顯示程序?qū)⒕彌_區(qū)內(nèi)的內(nèi)容顯示在led上,如果沒(méi)有
10、控制鍵按下,圖形將自動(dòng)向下移動(dòng)。如果有鍵按下,程序?qū)⒏鶕?jù)按下的鍵來(lái)改變圖形存儲(chǔ)區(qū)的值,同時(shí)程序?qū)⑴袛鄨D形是否已到達(dá)邊界,當(dāng)圖形最上層到達(dá)顯示區(qū)頂部,則游戲結(jié)束,此時(shí)將清楚顯示緩沖的內(nèi)容,游戲重新開(kāi)始。</p><p> 2.8x8led顯示原理</p><p> 8x8led顯示屏的原理圖如下</p><p> 由于人眼的視覺(jué)暫留現(xiàn)象,通過(guò)逐行掃描顯示的方式來(lái)
11、顯示要顯示的內(nèi)容,當(dāng)每一行掃描的時(shí)間很小時(shí)人眼觀察的將是一幅完整的圖像。</p><p> 3. 硬件電路仿真圖</p><p><b> .</b></p><p><b> 4.圖形顯示</b></p><p> 8x8led一共有64個(gè)led,可以從下至上一次對(duì)其編號(hào),對(duì)于顯示類(lèi)的基本
12、操作是任意點(diǎn)亮一個(gè)點(diǎn),熄滅一個(gè)點(diǎn),任意點(diǎn)亮n(0<n<=64)個(gè)點(diǎn),滅掉n個(gè)點(diǎn),如此一來(lái)游戲的第一個(gè)關(guān)鍵點(diǎn)就完成了。</p><p> 我們將ram中從21h單元到28h單元作為led的顯示緩沖區(qū),這里面的每一位對(duì)應(yīng)led的一個(gè)點(diǎn),led將實(shí)時(shí)顯示緩沖區(qū)的內(nèi)容,也就是當(dāng)此緩沖區(qū)內(nèi)容一改變,led上看到的也會(huì)做出相應(yīng)的改變。同時(shí)在俄羅斯方塊中那些方塊被存放在一個(gè)類(lèi)似于一維的數(shù)組之中,每一個(gè)方塊對(duì)應(yīng)四個(gè)
13、小方塊,根據(jù)偽隨機(jī)數(shù)將這四個(gè)小方塊對(duì)應(yīng)的值裝入ram固定的區(qū)域內(nèi)。</p><p> 如果要顯示方塊只需將這些方塊所對(duì)應(yīng)的點(diǎn)寫(xiě)入緩沖區(qū)。</p><p><b> 5.消層算法</b></p><p> 設(shè)置循環(huán)變量數(shù)R2=8,即總共至少要掃描8次,每一次循環(huán)過(guò)程中檢測(cè)此行是否已滿(mǎn),也就是檢測(cè)這一行所對(duì)應(yīng)的存儲(chǔ)單元是否全為一,如果全為一則
14、將消去此行,即將此行對(duì)應(yīng)的ram清零。同時(shí)將此行上面ram的內(nèi)容按每列依次下移,下移完之后重新將R2=0,又從第一行開(kāi)始檢測(cè)。此行不全為零時(shí)只需將R2=R2+1。直到R2=9消層過(guò)程結(jié)束。</p><p><b> 6.旋轉(zhuǎn)算法</b></p><p> 首先要確定一個(gè)旋轉(zhuǎn)中心,假如旋轉(zhuǎn)中心的編號(hào)是34,將34除以8,商是4存入R1余數(shù)是2存入R2,及時(shí)用商和余數(shù)
15、建立坐標(biāo)系。此時(shí)若以此為旋轉(zhuǎn)中心的圖形需要旋轉(zhuǎn),則將每一個(gè)小方塊對(duì)應(yīng)編號(hào)除以8,商減去R1,余數(shù)減去R2,而每一個(gè)方塊一次將旋轉(zhuǎn)90度,所以有公式x1,y1,x2,y2 x2= - y1,y2= x1</p><p> 其中x1,y1為旋轉(zhuǎn)之前的坐標(biāo),x2,y2為旋轉(zhuǎn)之后的坐標(biāo)。旋轉(zhuǎn)完之后將x2加上R1將y2加上R2,然后將x2乘以8再加上y2。執(zhí)行四次此過(guò)程旋轉(zhuǎn)結(jié)束。</p><
16、;p><b> 7.實(shí)物焊接</b></p><p> 器件:stc51單片機(jī)一塊,8x8led顯示模塊一塊,電阻10k10個(gè),開(kāi)關(guān)5個(gè),與門(mén),12m晶振一個(gè),電容3個(gè)。</p><p> 首先按照目的進(jìn)行進(jìn)行元器件布局,然后按照電路圖里的導(dǎo)線(xiàn)的連接次序?qū)⒃骷冈陔娐钒迳?,焊好之后進(jìn)行調(diào)試。</p><p><b>
17、8.心得體會(huì)</b></p><p> 寫(xiě)程序的過(guò)程中,首先應(yīng)該把程序思路理清,然后再寫(xiě)代碼,否則寫(xiě)到一半感覺(jué)行不通時(shí)是很令人心煩的。還有就是焊接是一個(gè)技術(shù)活,因?yàn)樵陔娮庸に噷?shí)習(xí)之后大家便沒(méi)有碰過(guò)電烙鐵,所以焊的過(guò)程還是很辛苦的。</p><p><b> 附錄:程序代碼</b></p><p> ORG
18、 0000H</p><p> AJMP START</p><p> ORG 0003H</p><p> AJMP INTERRUPT</p><p> AA EQU 10000000B </p><p>
19、 BB EQU 11111111B</p><p> HANG EQU 32H</p><p> LIE EQU 33H</p><p> COUNT EQU 34H</p><p> REMOVEROW EQU
20、 35H</p><p> STEPS EQU 36H</p><p> XUNHUAN EQU 37H</p><p> BIANLIANG EQU 38H</p><p> GRAPHRAM1 EQU 39H</p><p>
21、GRAPHRAM2 EQU 40H</p><p> GRAPHRAM3 EQU 41H</p><p> GRAPHRAM4 EQU 42H</p><p> XXX EQU 43H</p><p> YYY EQU 44H<
22、/p><p> KEY EQU 45H</p><p> LEDHEAD EQU 21H</p><p> TEST BIT 100</p><p> BITS BIT 99</p><p> RIGHT
23、 BIT 98</p><p> LEFT BIT 97</p><p> DOWN BIT 96</p><p> HARD BIT 95</p><p> TURN BIT 94</p><p>
24、 KEYDOWN BIT 93</p><p> TESTING BIT 92</p><p> BOTTOM BIT 91</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;;;;程序由此處開(kāi)始執(zhí)行</p
25、><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> START:</b></p><p> MOV TCON,#00000001B;;;;;;;;;;;;;設(shè)置外部中斷0響應(yīng)方式為下降沿觸發(fā)</p><p> SETB
26、 EX0</p><p> SETB EA</p><p> MOV SP,#60H;;;;;;;;;;;;;;;;;;;;;將堆棧指針SP設(shè)置在RAM的高地址處</p><p> MOV R7,#6;;;;;;;;;;;;;;;;;;;;;;R7作為存放0-6這7個(gè)隨機(jī)數(shù)的變量</p&
27、gt;<p> MOV P0,#11111111B;;;;;;;;;;;;;;;;;;;;;;將P0口最為輸入口</p><p> LCALL WRITEGRAPHTORAM</p><p> CLR TESTING</p><p><b> GAMELOOP:</b>
28、;</p><p> ;CLR EA</p><p> LCALL SHOWGRAPH</p><p> MOV R6,#30</p><p><b> TIMING:</b></p><p> LCALL SHO
29、WLEDRAM</p><p> LCALL DELAY</p><p> DJNZ R6,TIMING </p><p> LCALL DOWNTEST</p><p> JNB DOWN,NEXT1</p><p><
30、;b> ABCD:</b></p><p> MOV A,28H</p><p> CJNE A,#0,GAMEOVER</p><p> LCALL REMOVEBLOCK</p><p> LCALL WRITEGRAPHTORAM</
31、p><p> JMP GAMELOOP</p><p><b> NEXT1:</b></p><p> ;JB KEYDOWN,KEY1</p><p> JMP KEY4</p><p><b> KEY1:<
32、/b></p><p> CLR TESTING</p><p> CLR KEYDOWN</p><p> MOV A,KEY</p><p> CJNE A,#1,KEY2;1-LEFT</p><p> LCALL
33、 LEFTTEST</p><p> JB LEFT, KEY4</p><p> LCALL CLEANGRAPH</p><p> LCALL MOVELEFT</p><p> LCALL GAMELOOP</p><p&g
34、t;<b> KEY2:</b></p><p> CJNE A,#2,KEY3;2-RIGHT</p><p> LCALL RIGHTTEST</p><p> JB RIGHT, KEY4</p><p> LCALL CLEAN
35、GRAPH</p><p> LCALL MOVERIGHT</p><p> LCALL GAMELOOP</p><p><b> KEY3:</b></p><p> CJNE A,#4,KEY4;4-ROTATE</p><p>
36、 ;LCALL ROTATIONTEST</p><p> ;JNB TURN, KEY4</p><p> LCALL CLEANGRAPH</p><p> LCALL ROTATION</p><p> JMP GAMELOOP<
37、;/p><p><b> KEY4:</b></p><p> CJNE A,#8,KEY5</p><p><b> SWEAT:</b></p><p> LCALL DOWNTEST</p><p> JB
38、 DOWN,GAMELOOP</p><p> LCALL CLEANGRAPH</p><p> LCALL MOVEDOWN</p><p> JMP SWEAT</p><p><b> KEY5:</b></p><p> L
39、CALL CLEANGRAPH</p><p> LCALL MOVEDOWN</p><p> INC R7</p><p> CJNE R7,#7,NEXT5</p><p> MOV R7,#0</p><p>&l
40、t;b> NEXT5:</b></p><p> JMP GAMELOOP</p><p><b> GAMEOVER:</b></p><p> MOV R0,#8</p><p> MOV R1,#LEDHEAD</p>
41、;<p><b> CLEAR:</b></p><p> LCALL CLEANGRAPH</p><p> MOV @R1,#0</p><p> INC R1</p><p> DJNZ R0,CLEAR</p&
42、gt;<p> MOV R0,#4</p><p> MOV R1,#GRAPHRAM1</p><p><b> ASDF:</b></p><p> MOV A,@R1</p><p> ADD A,#16<
43、/p><p> MOV @R1,A</p><p> INC R1</p><p> DJNZ R0,ASDF</p><p> JMP GAMELOOP</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44、;;;;;;;;;;;;</p><p> ;測(cè)試圖形是否能向下移動(dòng)</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> DOWNTEST:</b></p><p> PUSH 0</p><p>
45、; PUSH 1</p><p> PUSH 2</p><p> PUSH 3</p><p> PUSH B</p><p> PUSH ACC</p><p> MOV R2,#4</p><p&
46、gt; MOV R0,#GRAPHRAM1</p><p><b> DOWN0:</b></p><p> MOV A,@R0</p><p> SUBB A,#8</p><p> MOV B,A</p><p> MO
47、V R3,#4</p><p> CLR C</p><p> MOV R1,#GRAPHRAM1</p><p><b> DOWN2:</b></p><p> CLR C</p><p> SUBB A,
48、@R1</p><p> JZ DOWN1</p><p> INC R1</p><p> MOV A,B</p><p> DJNZ R3,DOWN2</p><p> LCALL TESTBIT</p><p
49、> JB BITS,DOWN3</p><p><b> DOWN1:</b></p><p> INC R0</p><p> DJNZ R2,DOWN0</p><p> CLR DOWN</p><p> JM
50、P HOPE</p><p><b> DOWN3:</b></p><p> SETB DOWN;DOWN WEI YI BIAO SHI BU NENG WANG XIA YI DONG </p><p> CPL P3.4</p><p> JMP
51、 DOWN4</p><p><b> HOPE:</b></p><p> MOV R2,#4</p><p> MOV R0,#GRAPHRAM1</p><p> YOUQIANG2:</p><p> MOV R3,#1<
52、/p><p><b> CCC2:</b></p><p> MOV A,R3</p><p> MOV B,A</p><p> CLR C</p><p> SUBB A,@R0</p><p> J
53、NZ CCC1 </p><p> SETB DOWN</p><p> SETB BOTTOM</p><p> JMP DOWN4</p><p><b> CCC1:</b></p><p> MOV A,
54、B</p><p> INC R3</p><p> CJNE R3,#9,CCC2</p><p> INC R0</p><p> DJNZ R2,YOUQIANG2</p><p><b> DOWN4:</b></
55、p><p> POP ACC</p><p> POP B</p><p> POP 3</p><p> POP 2</p><p> POP 1</p><p> POP 0</p&
56、gt;<p><b> RET</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;外部中斷0中斷處理程序</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><
57、;p> INTERRUPT:</p><p> PUSH 0</p><p> PUSH 1</p><p> PUSH ACC</p><p> INC R7</p><p> CJNE R7,#7,INTT
58、</p><p> MOV R7,#0</p><p><b> INTT:</b></p><p> SETB TESTING</p><p> SETB KEYDOWN</p><p> MOV A,P0&l
59、t;/p><p> CPL A</p><p> MOV KEY,A</p><p> POP ACC</p><p> POP 1</p><p> POP 0</p><p><b
60、> RETI</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;測(cè)試能否旋轉(zhuǎn)</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p&g
61、t; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;向下移動(dòng)</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> MOVEDOWN:</b></p>
62、;<p> PUSH 0</p><p> PUSH 1</p><p> PUSH ACC</p><p> MOV R0,#GRAPHRAM1</p><p> MOV R1,#4</p><p>
63、<b> MOVE1:</b></p><p> MOV A,@R0</p><p> CLR C</p><p> SUBB A,#8</p><p> MOV @R0,A</p><p> INC
64、 R0</p><p> DJNZ R1,MOVE1</p><p> POP ACC</p><p> POP 1</p><p> POP 0</p><p><b> RET</b></
65、p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;向左移動(dòng)</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> MOVELEFT:</
66、b></p><p> PUSH 0</p><p> PUSH 1</p><p> PUSH ACC</p><p> MOV R0,#GRAPHRAM1</p><p> MOV R1,#4</p&
67、gt;<p><b> MOVE2:</b></p><p> MOV A,@R0</p><p> CLR C</p><p> SUBB A,#1</p><p> MOV @R0,A</p><
68、p> INC R0</p><p> DJNZ R1,MOVE2</p><p> POP ACC</p><p> POP 1</p><p> POP 0</p><p><b> RET&
69、lt;/b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;向右移動(dòng)</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> MOVERIGHT
70、:</p><p> PUSH 0</p><p> PUSH 1</p><p> PUSH ACC</p><p> MOV R0,#GRAPHRAM1</p><p> MOV R1,#4</p>
71、<p><b> MOVE3:</b></p><p> MOV A,@R0</p><p> CLR C</p><p> INC A </p><p> MOV @R0,A</p><p>
72、 INC R0</p><p> DJNZ R1,MOVE3</p><p> POP ACC</p><p> POP 1</p><p> POP 0</p><p><b> RET</b&
73、gt;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;將圖形寫(xiě)入RAM緩存中</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> WRITEGRAPHTORAM:</p>
74、<p> PUSH ACC</p><p> PUSH B</p><p> PUSH 0</p><p> PUSH 1</p><p> PUSH 2</p><p> PUSH 7</p><p&g
75、t; MOV R1,#4</p><p> MOV A,R7</p><p> MOV B,#4</p><p> MUL AB</p><p> MOV R2,A</p><p> MOV R0,#GRAPHRAM1<
76、;/p><p> MOV DPTR,#GRAPH</p><p> WRITEGRAPH:</p><p> MOV A,R2</p><p> MOVC A,@A+DPTR</p><p> ;SUBB A,#16</p><p>
77、MOV @R0,A</p><p> INC R2</p><p> INC R0</p><p> DJNZ R1,WRITEGRAPH</p><p> POP 7</p><p> POP 2</p><
78、;p> POP 1</p><p> POP 0</p><p> POP B</p><p> POP ACC</p><p> RET </p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79、;;;;;;;</p><p> ;測(cè)試某一個(gè)二進(jìn)制位是否為1</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> TESTBIT:</b></p><p> PUSH 0</p><p> PU
80、SH 1</p><p> PUSH B</p><p> PUSH ACC</p><p> MOV B,#8</p><p> DIV AB</p><p> MOV R0,A</p><p> MOV
81、 A,B</p><p> CJNE A,#0,TEST3</p><p> MOV A,R0</p><p> DEC A</p><p> JMP TEST4</p><p><b> TEST3:</b></
82、p><p> MOV A,R0</p><p><b> TEST4:</b></p><p> MOV DPTR,#TAB1</p><p> MOV R1,#LEDHEAD</p><p> ADD A,R1</p>
83、<p> MOV R1,A</p><p> MOV A,B</p><p> MOVC A,@A+DPTR</p><p> ANL A,@R1</p><p> CJNE A,#0,TEST1</p><p> CLR
84、 BITS</p><p> JMP TEST2</p><p><b> TEST1:</b></p><p> SETB BITS</p><p><b> TEST2:</b></p><p> POP ACC<
85、;/p><p> POP B</p><p> POP 1</p><p> POP 0</p><p><b> RET</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p&
86、gt;<p> ;測(cè)試圖形是否能向左移動(dòng)</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> LEFTTEST:</b></p><p> PUSH 0</p><p> PUSH 1<
87、;/p><p> PUSH 2</p><p> PUSH 3</p><p> PUSH B</p><p> PUSH ACC</p><p> MOV R2,#4</p><p> MOV R0
88、,#GRAPHRAM1</p><p><b> LEFT0:</b></p><p> MOV A,@R0</p><p> CLR C</p><p> SUBB A,#1</p><p> MOV B,A</p&g
89、t;<p> MOV R3,#4</p><p> ;CLR C</p><p> MOV R1,#GRAPHRAM1</p><p><b> LEFT2:</b></p><p> CLR C</p><p&g
90、t; SUBB A,@R1</p><p> JZ LEFT1</p><p> INC R1</p><p> MOV A,B</p><p> DJNZ R3,LEFT2</p><p> LCALL TESTBI
91、T</p><p> JB BITS,LEFT3</p><p><b> LEFT1:</b></p><p> INC R0</p><p> DJNZ R2,LEFT0</p><p> CLR LEFT</p&
92、gt;<p> JMP LEFT4</p><p><b> LEFT3:</b></p><p> SETB LEFT;DOWN WEI YI BIAO SHI BU NENG WANG XIA YI DONG </p><p> CPL P3.4</p>&
93、lt;p> JMP LEFT5</p><p><b> LEFT4:</b></p><p> MOV R2,#4</p><p> MOV R0,#GRAPHRAM1</p><p><b> YOUQIANG:</b></p
94、><p> MOV R3,#9</p><p> MOV A,#1</p><p><b> HHH2:</b></p><p> MOV B,A</p><p> CLR C</p><p> SUB
95、B A,@R0</p><p> JNZ HHH1 </p><p> SETB LEFT</p><p> JMP LEFT5</p><p><b> HHH1:</b></p><p> MOV A,B&l
96、t;/p><p> ADD A,#8</p><p> DJNZ R3,HHH2</p><p> INC R0</p><p> DJNZ R2,YOUQIANG</p><p><b> LEFT5:</b></p>
97、<p> POP ACC</p><p> POP B</p><p> POP 3</p><p> POP 2</p><p> POP 1</p><p> POP 0</p>
98、<p><b> RET</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;測(cè)試圖形是否能向右移動(dòng)</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>
99、; RIGHTTEST:</p><p> PUSH 0</p><p> PUSH 1</p><p> PUSH 2</p><p> PUSH 3</p><p> PUSH B</p><p> PUSH
100、 ACC</p><p> MOV R2,#4</p><p> MOV R0,#GRAPHRAM1</p><p><b> RIGHT0:</b></p><p> MOV A,@R0</p><p> ADD
101、 A,#1</p><p> MOV B,A</p><p> MOV R3,#4</p><p> ;CLR C</p><p> MOV R1,#GRAPHRAM1</p><p><b> RIGHT2:</b>&
102、lt;/p><p> SUBB A,@R1</p><p> JZ RIGHT1</p><p> INC R1</p><p> MOV A,B</p><p> DJNZ R3,RIGHT2</p><p>
103、 LCALL TESTBIT</p><p> JB BITS,RIGHT3</p><p><b> RIGHT1:</b></p><p> INC R0</p><p> DJNZ R2,RIGHT0</p><p>
104、CLR RIGHT</p><p> JMP RIGHT4</p><p><b> RIGHT3:</b></p><p> SETB RIGHT;DOWN WEI YI BIAO SHI BU NENG WANG XIA YI DONG </p><p> CP
105、L P3.4</p><p> JMP RIGHT5</p><p><b> RIGHT4:</b></p><p> MOV R2,#4</p><p> MOV R0,#GRAPHRAM1</p><p> YOUQI
106、ANG1:</p><p> MOV R3,#8</p><p> MOV A,#8</p><p><b> III2:</b></p><p> MOV B,A</p><p> CLR C</p><
107、;p> SUBB A,@R0</p><p> JNZ III1 </p><p> SETB RIGHT</p><p> JMP RIGHT5</p><p><b> III1:</b></p><p> MOV
108、 A,B</p><p> ADD A,#8</p><p> DJNZ R3,III2</p><p> INC R0</p><p> DJNZ R2,YOUQIANG1</p><p><b> RIGHT5:</
109、b></p><p> POP ACC</p><p> POP B</p><p> POP 3</p><p> POP 2</p><p> POP 1</p><p> POP
110、 0</p><p><b> RET</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;圖形旋轉(zhuǎn)</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111、;;;;;;;</p><p><b> ROTATION:</b></p><p><b> PUSH 0</b></p><p><b> PUSH 1</b></p><p><b> PUSH 2</b></p>
112、<p><b> PUSH 3</b></p><p><b> PUSH B</b></p><p> PUSH ACC</p><p> MOV A,GRAPHRAM1 ;A=50</p><p> MOV B,#8</p>
113、<p> DIV AB ;A=6 B= 2</p><p> MOV HANG,A ;HANG = 6</p><p> MOV LIE,B ;LIE = 2</p><p> MOV R3,#4</p><p> MOV
114、 R0,#GRAPHRAM1</p><p> ROTATESTART:</p><p> MOV A,@R0</p><p> MOV B,#8</p><p> DIV AB </p><p> CLR C</p>
115、<p> SUBB A,HANG </p><p> MOV R1,A </p><p> MOV A,B</p><p> CLR C</p><p> SUBB A,LIE</p><p> MOV R2
116、,A</p><p> ;;;;;;;;;;;;;;;;;;X2=-Y1 Y2=X1</p><p> MOV A,#0</p><p> CLR C</p><p> SUBB A,R2 ;-Y1</p><p> MOV B,R1 ;X1<
117、/p><p> MOV R1,A ;X2=-Y1</p><p> MOV R2,B ;Y2=X1</p><p> MOV A,R1</p><p> ADD A,HANG</p><p> MOV R1,A</p><
118、;p> MOV A,R2</p><p> ADD A,LIE</p><p> MOV R2,A</p><p> MOV A,R1</p><p> MOV B,#8</p><p> MUL AB</p&g
119、t;<p> ADD A,R2</p><p> MOV @R0,A </p><p> INC R0</p><p> DJNZ R3,ROTATESTART</p><p> POP ACC</p><
120、p> POP B</p><p> POP 3</p><p> POP 2</p><p> POP 1</p><p> POP 0</p><p><b> RET</b></p><
121、p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;顯示LEDRAM中的內(nèi)容</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> SHOWLEDRAM:</p><p> PUSH
122、0</p><p> PUSH 1</p><p> PUSH B</p><p> PUSH ACC</p><p> MOV R0,#LEDHEAD</p><p> MOV R1,#8</p><p> MOV
123、 A,#AA</p><p><b> SHOW1:</b></p><p> MOV P1,A</p><p> MOV P2,@R0</p><p> LCALL DELAY</p><p> INC R0</p&g
124、t;<p> RL A</p><p> DJNZ R1,SHOW1</p><p> POP ACC</p><p> POP B</p><p> POP 1</p><p> POP 0</p>
125、;<p><b> RET</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;軟件延時(shí)</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</
126、p><p><b> DELAY:</b></p><p> PUSH 1</p><p> PUSH 2</p><p> MOV R1,#5</p><p><b> FQFQ:</b></p><p>
127、 MOV R2,#200</p><p><b> FWFW:</b></p><p> DJNZ R2,FWFW</p><p> DJNZ R1,FQFQ</p><p> POP 2</p><p> POP 1&
128、lt;/p><p><b> RET</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;清楚圖形在LEDRAM中的內(nèi)容</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</
129、p><p> CLEANGRAPH:</p><p> PUSH ACC</p><p> PUSH 1</p><p> MOV A,#GRAPHRAM1</p><p> MOV XUNHUAN,#4</p><p> MOV
130、 R1,A</p><p><b> DADA1:</b></p><p> MOV A,@R1</p><p> ;SUBB A,#16</p><p> LCALL WRITEPOINT0</p><p> INC R1<
131、;/p><p> DJNZ XUNHUAN,DADA1</p><p> POP 1</p><p> POP ACC </p><p><b> RET</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
132、;;;;;;;;;;;;</p><p> ;顯示圖形在LEDRAM中的內(nèi)容</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> SHOWGRAPH:</p><p> PUSH ACC</p><p> PUSH
133、 1</p><p> MOV A,#GRAPHRAM1</p><p> MOV XUNHUAN,#4</p><p> MOV R1,A</p><p><b> DADA2:</b></p><p> MOV A,@R1<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)報(bào)告-俄羅斯方塊
- 基于51單片機(jī)的俄羅斯方塊游戲
- 俄羅斯方塊單片機(jī)課程設(shè)計(jì)作品說(shuō)明書(shū)
- 基于單片機(jī)的俄羅斯方塊游戲機(jī)課程設(shè)計(jì)
- 《c++俄羅斯方塊》課程設(shè)計(jì)--俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 課程設(shè)計(jì)---俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- c課程設(shè)計(jì)--俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)報(bào)告
- 俄羅斯方塊課程設(shè)計(jì)報(bào)告
- 簡(jiǎn)單俄羅斯方塊課程設(shè)計(jì)
- java俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)論文
- arm課程設(shè)計(jì)俄羅斯方塊
評(píng)論
0/150
提交評(píng)論