久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6277|回復: 0
打印 上一主題 下一主題
收起左側

單片機俄羅斯方塊游戲機的設計與制作教程 還有用TC的俄羅斯方塊資料

[復制鏈接]
跳轉到指定樓層
樓主
ID:306134 發表于 2018-4-11 20:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目錄
摘要1
1  方案論證.
              1.1 開發意義
              1.2 功能介紹.
2              設計思路
3  硬件電路
2.1  74HC573驅動芯片電路.
2.2  8*8LED點陣的接口電路..
2.3單片機最小系統電路..
2.4整體電路圖.
4  系統調試..
              3.1硬件調試
              3.2軟件調試..
5   作品展示
6              元器件清單..
7  結束語..
  致謝
參考文獻.

游戲機的制作:俄羅斯方塊
摘要:
          近年來隨著計算機在社會領域的滲透, 單片機的應用正在不斷地走向深入,應用到各個領域。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。
        我做的題目是一個用51單片機制作的游戲機,大致分位軟件和硬件2大部分,硬件主要通過5按鍵、1個8*8LED點陣屏、一個單片機系統,實現積木的左、右、下、變化、復位五個模式,完全達到俄羅斯方塊所實現的功能。
次項目用專門的PROTUES仿真,而采用KEIL軟件程序進行程序調試              
               
1  方案論證
              1.1 開發意義
充分理解點陣顯示的原理,已經動態掃描的應用,對生活中的產品有了個全新的認識,不但懂得理論與實際的差距,也時對自己思維的一次強有力的挑戰,做出這個東西讓我收獲良多。
1.2              功能介紹
開始讓他顯示個積木,在按鍵沒實現控制的時候,每隔1S下移一次,有觸底處理功能,當碰到底的時候圖形不能下移,判斷能否消行,能消行則消行,不能再判斷是否到頂,到底則從新開始,沒到底產生下個隨即數,中間有5個按鍵控制,一個實現圖形左移,一個實現圖形右移,一個實現下移,一個實現旋轉,一個復位。
2  設計思路
              圖形的上下移動: 根據點陣理論可通過圖形數據的左右移動和地址變化來實現。
              圖形的變化: 可通過地址變化來得到。即把需要變化的數據送到一固定地址,通過地址變化再送回顯示的地址里面。
圖形的碰邊處理: 可通過各個邊上的數據判斷是否到邊來實現。
與原有圖形相遇: 可通過與原有圖形數據進行比較處理來實現。:
圖形的旋轉:   在固定地址里面實現旋轉比較容易,但是在行進中的圖形旋轉就比較費腦筋,我是用一個地址計數下移的次數,再用一個地址計數左移右移的次數。再根據這些次數確定圖形的地址,再把這些地址送到圖形變化的一個固定的地址中,變化后再送回到顯示的地址中去顯示。
圖形的碰邊處理:  如果不對圖形進行邊框處理,圖形就會一直移動,看不到我們想要的效果。我是用把邊框數據與圖形數據進行位運算。再判斷這些數據就可以得到圖形是否到邊。
3  硬件電路
              2.1  74HC573驅動芯片電路


此芯片時個鎖存器,也可以做驅動芯片驅動LED點陣屏幕,這里面的電源和地系統附加了 但是實際中的加上去,不然芯片不能工作。


2.2   8*8LED點陣的接口電路


上面的是仿真的圖 上端接數據 下端開片選  但是實際中引腳很不規則,所有的花時間去測
用一節干電池,或者用指針萬用表打到電阻10K檔。

2.3  單片機最小系統電路
2.4   整體電路圖以及仿真效果


但是里面的電源、地、晶振、復位、EA等 在仿真中系統自動加的 要是在實際生活中的加進去。


4  系統調試
              3.1 硬件調試
                            第一 檢查單片機的最小系統是否正常,包括檢查晶振、單片機2端電壓、復位電路已經EA
                            第二 看驅動芯片是否工作正常、接法是否正確,再檢查LED點陣是否接的正確,可以用一節干電池測,也可以用指針萬用表打到電阻10K檔位測。
              3.2 軟件調試
   流程圖


程序代碼

5  作品展示  
6  元器件清單
                                          AT89S52芯片一個  8元          5個按鍵     0.5元
                                          74HC573驅動芯片  2元          LED點陣屏幕  8元
                                          1個1K的上拉排阻  1元         一個10uf電容電解電容
                                          8個100的限流電阻                                                          2個30pf電容無極性
                                          一個LED指示燈                                                                     1個330的電阻
                                          一個10K電阻                                                                                   1個11.0592的晶振
                                                                                                                合計:24元
7  結束語
                                          我在前面的一些處理還是比較順利,比如說按鍵的處理、下移、左右移、旋轉、消行、碰邊等問題,2天的時間就弄好了。最浪費我時間的是與下面的圖形相遇的處理。開始判倒是能夠判斷,但只能在一個固定的區域里停止下移。后來經過老師指導要我把顯示圖形的三個地址作為一個整體判斷,也弄了好久,還是有些地方不能判斷出來,思考好久之后我才想到用這個方法判斷出來。還有旋轉,開始總想不到算法,最后老師指導我用位地址操作
先把圖形放旋轉區旋轉 在放到操作地址區,記下左右上下移動次數確實幫了我不少的忙
碰邊處理用異或處理。觸底時把每一行數據放個定義的地址區域,最后與#0FFH判斷做很妙。
              還有就是硬件處理的比較麻煩,開始不太清楚點陣的引腳排布,這里弄了好久,后來驅動那里也出現了好多問題,開始我用74HS373來驅動,沒注意引腳排列,最后用了74HC573
他們功能一樣,但是74HC573輸入輸出接在一邊便于排線。
              開始沒有規劃好地址的用途。到最后出現了地址不夠用的現象,所以良好的編程習慣很重要。  通過這個項目,真的時對自己思維的一次很大的挑戰,程序1200多行,AT89S51裝不下,改用AT89S52做。 通過這次項目我找到點成就感,也希望自己以后能經常有這種成就感,在電子領域站一席之地。
致      謝
在此論文撰寫過程中,要特別感謝我的導師的指導與督促,同時感謝她的諒解與包容。沒有何老師的幫助也就沒有今天的這篇論文。求學歷程是艱苦的,但又是快樂的。感謝我的班主任XXX老師,謝謝他在這三年中為我們全班所做的一切,他不求回報,無私奉獻的精神很讓我感動,再次向他表示由衷的感謝。在這三年的學期中結識的各位生活和學習上的摯友讓我得到了人生最大的一筆財富。在此,也對他們表示衷心感謝。
    謝謝我的父母,沒有他們辛勤的付出也就沒有我的今天,在這一刻,將最崇高的敬意獻給你們!
本文參考了大量的文獻資料,在此,向各學術界的前輩們致敬!

單片機源程序如下:
  1. ;俄羅斯方塊,采用移片選的方法.
  2. ;編譯時間:              09年1月15            
  3. ;編譯者:   譚華
  4. ;實現功能:  俄羅斯方塊的旋轉,左移,右移
  5. ;  消行 碰邊  觸底 產生隨即數等 基本實現右移的基本功能
  6. ;==============初始化自定義========================================
  7. pianxuan               equ  p2
  8. shuchu               equ  p1
  9. bt0                equ                20h.0
  10. bt1                equ                20h.1
  11. bt2                equ                20h.2
  12. bt3                equ                20h.3
  13. bt4                equ                20h.4
  14. bt5                equ                20h.5
  15. bt6              equ              20h.6
  16. bt8              equ              21h.0
  17. bt9              equ              21h.1
  18. bt10              equ              21h.2
  19. bt11              equ              21h.3
  20. ;============================================
  21.               org               0000h
  22.               ajmp               start
  23.               org               0bh
  24.               ljmp               intt0
  25.               org               30h
  26. ;=============主程序初始化================================
  27. start:               mov               sp, #60h
  28.               mov               tmod, #21h
  29.               mov               th0, #0b1h
  30.               mov               tl0, #0e0h
  31.               mov              th1,              #25
  32.               mov              tl1,              #25
  33.               mov              r1,              #00
  34.               call              chushihua
  35.               call              chuzhi
  36.               setb               ea
  37.               setb               et0
  38.               setb               tr0
  39.               setb              tr1
  40.               clr               bt0
  41.               clr              bt1
  42.               clr              bt2
  43.               clr              bt3            
  44.               clr              bt4
  45.               clr              bt5
  46.               clr              bt8
  47.               clr              bt9
  48.               clr              bt10
  49.               clr              bt11
  50.               setb              bt6
  51.               mov              35h,              #0feh
  52.               mov              r2,              #00
  53.               mov              r4,              #00
  54. ;=====================================================
  55. ;              主程序
  56. ;======================================================
  57. main:            
  58.               jnb               bt0, main
  59.               clr               bt0
  60.               call              saomiao                            ;掃描按鍵
  61.               call              xianshi0              ;調用下移顯示畫面子程序
  62.               call              xianshi                            ;調用觸邊后靜態圖形顯示的子程序
  63.               jb              bt10,              loop              ;判斷是否觸頂,=1,游戲結束,跳到滿屏顯示
  64.               call              chudi                            ;調用觸底子程序
  65.               call              xiaohang              ;調用消行判斷子程序
  66.               call              yanshi_40ms              ;調用延時40ms消抖子程序,40ms到,BT5置1
  67.               jnb              bt5,              xia0            
  68.               clr              bt5                                         
  69.               call              panduan                            ;調用按鍵判斷處理子程序
  70. xia0:              jnb              bt9,              xia              ;圖形快速下落標志位,=1快速下落
  71.               clr              bt9
  72.               call              xialuo                            ;調用圖形下落子程序                           
  73.               ajmp              main
  74. xia:              call              yanshi_1s              ;延時1s子程序.1s到,BT1=1
  75.               jnb               bt1, main
  76.               clr              bt1
  77.               call              xialuo
  78.               ajmp              main            
  79. loop:              call              yanshi_500ms              ;調用延時500ms子程序,500ms到bt11=1
  80.               jnb               bt11, main
  81.               clr              bt11
  82.               call              manping                            ;調用滿屏全亮子程序
  83.               ajmp              main            
  84.                            

  85. ;=====================================================
  86. ;              按鍵掃描
  87. ;=====================================================
  88. saomiao:
  89.               jb              p3.2,              qq0
  90.               setb              bt2
  91.               ajmp              qq
  92. qq0:              jb              p3.1,              qq1
  93.               setb              bt3
  94.               ajmp              qq
  95. qq1:              jb              p3.0,              qq2
  96.               setb              bt4
  97.               ajmp              qq
  98. qq2:              jb              p3.3,              qq4
  99.               setb              bt8            
  100.               ajmp              qq
  101. qq4:              setb              bt6
  102.               clr              bt2
  103.               clr              bt3
  104.               clr              bt4
  105.               clr              bt8
  106. qq:              ret
  107. ;=====================================================
  108. ;              圖形下移子程序
  109. ;=====================================================
  110. xialuo:            
  111.               mov              a,              35h
  112.               rl              a
  113.               mov              35h,              a
  114.               ret

  115. ;============================================
  116. ;              判斷子程序
  117. ;=====================================================            
  118. panduan:
  119.               jnb              bt2,              ww0
  120.               clr              bt2
  121.               jnb              bt6,              ww0
  122.               clr              bt6
  123.               call              youyi
  124.               ajmp              ww
  125. ww0:              jnb              bt3,              ww1
  126.               clr              bt3
  127.               jnb              bt6,              ww1
  128.               clr              bt6
  129.               call              zuoyi
  130.               ajmp              ww
  131. ww1:              jnb              bt4,              ww2
  132.               clr              bt4
  133.               jnb              bt6,              ww2
  134.               clr              bt6
  135.               call              zhuan
  136.               ajmp              ww
  137. ww2:              jnb              bt8,              ww
  138.               clr              bt8
  139.               jnb              bt6,              ww
  140.               clr              bt6
  141.               call              kuaixia
  142. ww:              ret


  143. ;============================================================
  144. ;              快速下落子程序
  145. ;=============================================================
  146. kuaixia:              setb              bt9                           
  147.                             ret
  148. ;============================================================
  149. ;              滿屏子程序
  150. ;============================================================
  151. manping:              mov              41h,              #0ffh            
  152.                             mov              42h,              #0ffh
  153.                             mov              43h,              #0ffh
  154.                             mov              44h,              #0ffh
  155.                             mov              45h,              #0ffh            
  156.                             mov              46h,              #0ffh
  157.                             mov              47h,              #0ffh
  158.                             mov              48h,              #0ffh
  159.                             ret
  160. ;============================================================
  161. ;              清屏子程序
  162. ;============================================================
  163. qingping:              mov              41h,              #00h            
  164.                             mov              42h,              #00h
  165.                             mov              43h,              #00h
  166.                             mov              44h,              #00h
  167.                             mov              45h,              #00h            
  168.                             mov              46h,              #00h
  169.                             mov              47h,              #00h
  170.                             mov              48h,              #00h
  171.                             ret
  172. ;============================================
  173. ;              下移顯示
  174. ;=====================================================
  175. xianshi0:              mov              a,              35h
  176.                             mov              p1,              31h
  177.                             mov              p2,              a
  178.                             call              delay
  179.                             rl              a
  180.                             mov              p1,              #00
  181.                             mov              p1,              32h
  182.                             mov              p2,              a
  183.                             call              delay
  184.                             rl              a
  185.                             mov              p1,              #00
  186.                             mov              p1,              33h
  187.                             mov              p2,              a
  188.                             call              delay
  189.                             mov              p1,              #00
  190.                             ret
  191. ;=====================================================
  192. ;                            圖形右移子程序
  193. ;=====================================================                           
  194. zuoyi:              
  195.               mov               a, 31h
  196.               jnb               acc.0, dd1
  197.               ajmp               dd
  198. dd1:               mov               a, 32h
  199.               jnb               acc.0, dd2
  200.               ajmp               dd
  201. dd2:               mov               a, 33h
  202.               jnb               acc.0, dd3
  203.               ajmp               dd
  204. dd3:               mov              a,              35h
  205.               cjne              a,#0feh,sa0
  206.               call              sad0
  207.               ajmp              dd
  208. sa0:              mov              a,              35h
  209.               cjne              a,#0fdh,sa1
  210.               call              sad1
  211.               ajmp              dd
  212. sa1:              mov              a,              35h
  213.               cjne              a,#0fbh,sa2
  214.               call              sad2
  215.               ajmp              dd
  216. sa2:              mov              a,              35h
  217.               cjne              a,#0f7h,sa3
  218.               call              sad3
  219.               ajmp              dd
  220. sa3:              mov              a,              35h
  221.               cjne              a,#0efh,sa4
  222.               call              sad4
  223.               ajmp              dd
  224. sa4:              mov              a,              35h
  225.               cjne              a,#0bfh,dd
  226.               call              sad5
  227.               ajmp              dd
  228. dd:              ret

  229. sad0:              mov               a, 33h
  230.               rr               a
  231.               mov              39h,#00
  232.               mov              39h,              a
  233.               anl              a,43h
  234.               cjne              a,#00,dd4
  235.               mov               33h, 39h
  236.               mov               a, 32h
  237.               rr               a
  238.               mov              39h,#00
  239.               mov              39h,              a
  240.               anl              a,42h
  241.               cjne              a,#00,dd4
  242.               mov               32h, 39h
  243.               mov               a, 31h
  244.               rr               a
  245.               mov              39h,#00
  246.               mov              39h,              a
  247.               anl              a,41h
  248.               cjne              a,#00,dd4
  249.               mov               31h, 39h
  250.               dec              51h
  251. dd4:               ret
  252. sad1:              mov               a, 33h
  253.               rr              a
  254.               mov              39h,#00
  255.               mov              39h,              a
  256.               anl              a,44h
  257.               cjne              a,#00,dd5
  258.               mov               33h, 39h
  259.               mov               a, 32h
  260.               rr               a
  261.               mov              39h,#00
  262.               mov              39h,              a
  263.               anl              a,43h
  264.               cjne              a,#00,dd5
  265.               mov               32h, 39h
  266.               mov               a, 31h
  267.               rr               a
  268.               mov              39h,#00
  269.               mov              39h,              a
  270.               anl              a,42h
  271.               cjne              a,#00,dd5
  272.               mov               31h, 39h
  273.               dec              51h
  274. dd5:               ret
  275. sad2:              mov               a, 33h
  276.               rr               a
  277.               mov              39h,#00
  278.               mov              39h,              a
  279.               anl              a,45h
  280.               cjne              a,#00,dd6
  281.               mov               33h, 39h
  282.               mov               a, 32h
  283.               rr               a
  284.               mov              39h,#00
  285.               mov              39h,              a
  286.               anl              a,44h
  287.               cjne              a,#00,dd6
  288.               mov               32h, 39h
  289.               mov               a, 31h
  290.               rr               a
  291.               mov              39h,#00
  292.               mov              39h,              a
  293.               anl              a,43h
  294.               cjne              a,#00,dd6
  295.               mov               31h, 39h
  296.               dec              51h
  297. dd6:               ret
  298. sad3:              mov               a, 33h
  299.               rr               a
  300.               mov              39h,#00
  301.               mov              39h,              a
  302.               anl              a,46h
  303.               cjne              a,#00,dd7
  304.               mov               33h, 39h
  305.               mov               a, 32h
  306.               rr               a
  307.               mov              39h,#00
  308.               mov              39h,              a
  309.               anl              a,45h
  310.               cjne              a,#00,dd7
  311.               mov               32h, 39h
  312.               mov               a, 31h
  313.               rr               a
  314.               mov              39h,#00
  315.               mov              39h,              a
  316.               anl              a,44h
  317.               cjne              a,#00,dd7
  318.               mov               31h, 39h
  319.               dec              51h
  320. dd7:               ret
  321. sad4:              mov               a, 33h
  322.               rr               a
  323.               mov              39h,#00
  324.               mov              39h,              a
  325.               anl              a,47h
  326.               cjne              a,#00,dd8
  327.               mov               33h, 39h
  328.               mov               a, 32h
  329.               rr               a
  330.               mov              39h,#00
  331.               mov              39h,              a
  332.               anl              a,46h
  333.               cjne              a,#00,dd8
  334.               mov               32h, 39h
  335.               mov               a, 31h
  336.               rr               a
  337.               mov              39h,#00
  338.               mov              39h,              a
  339.               anl              a,45h
  340.               cjne              a,#00,dd8
  341.               mov               31h, 39h
  342.               dec              51h
  343. dd8:               ret
  344. sad5:              mov               a, 33h
  345.               rr               a
  346.               mov              39h,#00
  347.               mov              39h,              a
  348.               anl              a,48h
  349.               cjne              a,#00,dd9
  350.               mov               33h, 39h
  351.               mov               a, 32h
  352.               rr               a
  353.               mov              39h,#00
  354.               mov              39h,              a
  355.               anl              a,47h
  356.               cjne              a,#00,dd9
  357.               mov               32h, 39h
  358.               mov               a, 31h
  359.               rr               a
  360.               mov              39h,#00
  361.               mov              39h,              a
  362.               anl              a,46h
  363.               cjne              a,#00,dd9
  364.               mov               31h, 39h
  365.               dec              51h
  366. dd9:               ret

  367. ;===============圖形左移子程序======================================
  368. ;通過圖形移動一位,與靜止圖形相與,為零則移動,否則原地不動                           
  369. ;
  370. ;=====================================================
  371. youyi:               mov               a, 31h
  372.               jnb              acc.7, cc0
  373.               ajmp               cc20
  374. cc0:               mov               a, 32h
  375.               jnb               acc.7, cc1
  376.               ajmp              cc20
  377. cc1:               mov               a, 33h
  378.               jnb               acc.7, cc
  379.               ajmp               cc20
  380. cc:               mov              a,              35h
  381.               cjne              a,#0feh,zz0
  382.               call              scd0
  383.               ajmp              cc20
  384. zz0:              mov              a,              35h
  385.               cjne              a,#0fdh,zz1
  386.               call              scd1
  387.               ajmp              cc20
  388. zz1:              mov              a,              35h
  389.               cjne              a,#0fbh,zz2
  390.               call              scd2
  391.               ajmp              cc20
  392. zz2:              mov              a,              35h
  393.               cjne              a,#0f7h,zz3
  394.               call              scd3
  395.               ajmp              cc20
  396. zz3:              mov              a,              35h
  397.               cjne              a,#0efh,zz4
  398.               call              scd4
  399.               ajmp              cc20
  400. zz4:              mov              a,              35h
  401.               cjne              a,#0bfh,cc20
  402.               call              scd5
  403.               ajmp              cc20
  404. cc20:              ret

  405. scd0:              mov               a, 33h
  406.               rl               a
  407.               mov              39h,#00
  408.               mov              39h,              a
  409.               anl              a,43h
  410.               cjne              a,#00,cc2
  411.               mov               33h, 39h
  412.               mov               a, 32h
  413.               rl               a
  414.               mov              39h,#00
  415.               mov              39h,              a
  416.               anl              a,42h
  417.               cjne              a,#00,cc2
  418.               mov               32h, 39h
  419.               mov               a, 31h
  420.               rl               a
  421.               mov              39h,#00
  422.               mov              39h,              a
  423.               anl              a,41h
  424.               cjne              a,#00,cc2
  425.               mov               31h, 39h
  426.               inc              51h
  427. cc2:               ret
  428. scd1:              mov               a, 33h
  429.               rl               a
  430.               mov              39h,#00
  431.               mov              39h,              a
  432.               anl              a,44h
  433.               cjne              a,#00,cc3
  434.               mov               33h, 39h
  435.               mov               a, 32h
  436.               rl               a
  437.               mov              39h,#00
  438.               mov              39h,              a
  439.               anl              a,43h
  440.               cjne              a,#00,cc3
  441.               mov               32h, 39h
  442.               mov               a, 31h
  443.               rl               a
  444.               mov              39h,#00
  445.               mov              39h,              a
  446.               anl              a,42h
  447.               cjne              a,#00,cc3
  448.               mov               31h, 39h
  449.               inc              51h
  450. cc3:               ret
  451. scd2:              mov               a, 33h
  452.               rl               a
  453.               mov              39h,#00
  454.               mov              39h,              a
  455.               anl              a,45h
  456.               cjne              a,#00,cc4
  457.               mov               33h, 39h
  458.               mov               a, 32h
  459.               rl               a
  460.               mov              39h,#00
  461.               mov              39h,              a
  462.               anl              a,44h
  463.               cjne              a,#00,cc4
  464.               mov               32h, 39h
  465.               mov               a, 31h
  466.               rl               a
  467.               mov              39h,#00
  468.               mov              39h,              a
  469.               anl              a,43h
  470.               cjne              a,#00,cc4
  471.               mov               31h, 39h
  472.               inc              51h
  473. cc4:               ret
  474. scd3:              mov               a, 33h
  475.               rl               a
  476.               mov              39h,#00
  477.               mov              39h,              a
  478.               anl              a,46h
  479.               cjne              a,#00,cc5
  480.               mov               33h, 39h
  481.               mov               a, 32h
  482.               rl               a
  483.               mov              39h,#00
  484.               mov              39h,              a
  485.               anl              a,45h
  486.               cjne              a,#00,cc5
  487.               mov               32h, 39h
  488.               mov               a, 31h
  489.               rl               a
  490.               mov              39h,#00
  491.               mov              39h,              a
  492.               anl              a,44h
  493.               cjne              a,#00,cc5
  494.               mov               31h, 39h
  495.               inc              51h
  496. cc5:               ret
  497. scd4:              mov               a, 33h
  498.               rl               a
  499.               mov              39h,#00
  500.               mov              39h,              a
  501.               anl              a,47h
  502.               cjne              a,#00,cc6
  503.               mov               33h, 39h
  504.               mov               a, 32h
  505.               rl               a
  506.               mov              39h,#00
  507.               mov              39h,              a
  508.               anl              a,46h
  509.               cjne              a,#00,cc6
  510.               mov               32h, 39h
  511.               mov               a, 31h
  512.               rl               a
  513.               mov              39h,#00
  514.               mov              39h,              a
  515.               anl              a,45h
  516.               cjne              a,#00,cc6
  517.               mov               31h, 39h
  518.               inc              51h
  519. cc6:               ret
  520. scd5:              mov               a, 33h
  521.               rl               a
  522.               mov              39h,#00
  523.               mov              39h,              a
  524.               anl              a,48h
  525.               cjne              a,#00,cc7
  526.               mov               33h, 39h
  527.               mov               a, 32h
  528.               rl               a
  529.               mov              39h,#00
  530.               mov              39h,              a
  531.               anl              a,47h
  532.               cjne              a,#00,cc7
  533.               mov               32h, 39h
  534.               mov               a, 31h
  535.               rl               a
  536.               mov              39h,#00
  537.               mov              39h,              a
  538.               anl              a,46h
  539.               cjne              a,#00,cc7
  540.               mov               31h, 39h
  541.               inc              51h
  542. cc7:               ret
  543. ;======================================================
  544. ;              圖形旋轉子程序
  545. ;======================================================
  546. zhuan:              cjne              r1,#0,              bu0
  547.               call              zhuan0
  548.               ajmp              bu
  549. bu0:              cjne              r1,#1,              bu1
  550.               call              zhuan1
  551.               ajmp              bu
  552. bu1:              cjne              r1,#2,              bu2
  553.               call              zhuan2
  554.               ajmp              bu
  555. bu2:              cjne              r1,#3,              bu3
  556.               call              zhuan3
  557.               ajmp              bu
  558. bu3:              cjne              r1,#4,              bu
  559.               call              zhuan4
  560. bu:              ret            
  561. zhuan0:              inc              r2
  562.               cjne              r2,#1,              gg0
  563.               mov              31h,              #10h
  564.               mov              32h,              #18h
  565.               mov              33h,              #10h
  566.               call              yizhou
  567.               ajmp              gg
  568. gg0:              cjne              r2,#2,              gg1
  569.               mov              31h,              #38h
  570.               mov              32h,              #10h
  571.               mov              33h,              #00h
  572.               call              yizhou
  573.               ajmp              gg
  574. gg1:              cjne              r2,#3,              gg2
  575.               mov              31h,              #10h
  576.               mov              32h,              #30h
  577.               mov              33h,              #10h
  578.               call              yizhou
  579.               ajmp              gg            
  580. gg2:              cjne              r2,#4,              gg
  581.               mov              r2,              #00
  582.               mov              31h,              #10h
  583.               mov              32h,              #38h
  584.               mov              33h,              #00h
  585.               call              yizhou
  586. gg:              ret
  587. zhuan1:              inc              r2
  588.               cjne              r2,#1,              ggg0
  589.               mov              31h,              #08h
  590.               mov              32h,              #18h
  591.               mov              33h,              #10h
  592.               call              yizhou
  593.               ajmp              ggg
  594. ggg0:              cjne              r2,#2,              ggg
  595.               mov              31h,              #30h
  596.               mov              32h,              #18h
  597.               mov              33h,              #00h
  598.               mov              r2,              #00
  599.               call              yizhou
  600. ggg:              ret

  601. zhuan2:              inc              r2
  602.               cjne              r2,#1,              hh0
  603.               mov              31h,              #18h
  604.               mov              32h,              #30h
  605.               mov              33h,              #00h
  606.               call              yizhou
  607.               ajmp              hh
  608. hh0:              cjne              r2,#2,              hh
  609.               mov              31h,              #10h
  610.               mov              32h,              #18h
  611.               mov              33h,              #08h
  612.               mov              r2,              #00
  613.               call              yizhou
  614. hh:              ret
  615. zhuan3:              inc              r2
  616.               cjne              r2,#1,              hh1
  617.               mov              31h,              #20h
  618.               mov              32h,              #38h
  619.               mov              33h,              #00h
  620.               call              yizhou
  621.               ajmp              hh4
  622. hh1:              cjne              r2,#2,              hh2
  623.               mov              31h,              #18h
  624.               mov              32h,              #10h
  625.               mov              33h,              #10h
  626.               call              yizhou
  627.               ajmp              hh4
  628. hh2:              cjne              r2,#3,              hh3
  629.               mov              31h,              #38h
  630.               mov              32h,              #08h
  631.               mov              33h,              #00h
  632.               call              yizhou
  633.               ajmp              hh4            
  634. hh3:              cjne              r2,#4,              hh4
  635.               mov              r2,              #00
  636.               mov              31h,              #10h
  637.               mov              32h,              #10h
  638.               mov              33h,              #30h
  639.               call              yizhou
  640. hh4:              ret
  641. zhuan4:              inc              r2
  642.               cjne              r2,#1,              hh5
  643.               mov              31h,              #10h
  644.               mov              32h,              #10h
  645.               mov              33h,              #18h
  646.               call              yizhou
  647.               ajmp              hh8
  648. hh5:              cjne              r2,#2,              hh6
  649.               mov              31h,              #38h
  650.               mov              32h,              #20h
  651.               mov              33h,              #00h
  652.               call              yizhou
  653.               ajmp              hh8
  654. hh6:              cjne              r2,#3,              hh7
  655.               mov              31h,              #18h
  656.               mov              32h,              #08h
  657.               mov              33h,              #08h
  658.               call              yizhou
  659.               ajmp              hh8            
  660. hh7:              cjne              r2,#4,              hh8
  661.               mov              r2,              #00
  662.               mov              31h,              #08h
  663.               mov              32h,              #38h
  664.               mov              33h,              #00h
  665.               call              yizhou
  666. hh8:              ret
  667. ;====================================================
  668. yizhou:
  669.               mov              a,              51h
  670.               cjne              a,#5,              tt7
  671.               jmp              tt
  672. tt7:              cjne              a,#6,              tt0
  673.               call              yyizhou
  674.               jmp              tt
  675. tt0:              cjne              a,#7,              tt1
  676.               call              yyizhou
  677.               call              yyizhou
  678.               call              zhuanpan0
  679.               jmp              tt
  680. tt1:              cjne              a,#8,              tt2
  681.               call              yyizhou
  682.               call              yyizhou
  683.               call              yyizhou
  684.               call              zhuanpan0
  685.               jmp              tt
  686. tt2:              cjne              a,#9,              tt3
  687.               call              yyizhou
  688.               call              yyizhou
  689.               call              yyizhou
  690.               call              yyizhou
  691.               call              zhuanpan0
  692.               jmp              tt
  693. tt3:              cjne              a,#4,              tt4
  694.               call              zyizhou
  695.               jmp              tt
  696. tt4:              cjne              a,#3,              tt5
  697.               call              zyizhou
  698.               call              zyizhou
  699.               jmp              tt
  700. tt5:              cjne              a,#2,              tt6
  701.               call              zyizhou
  702.               call              zyizhou
  703.               call              zyizhou
  704.               call              zhuanpan1            
  705.               jmp              tt
  706. tt6:              cjne              a,#1,              tt
  707.               call              zyizhou
  708.               call              zyizhou
  709.               call              zyizhou
  710.               call              zyizhou
  711.               call              zhuanpan1            
  712. tt:              ret
  713. ;=========觸邊旋轉判斷====================
  714. zhuanpan0:
  715.               mov              a,              31h
  716.               jnb              acc.0,              hui0            
  717.               call              zyizhou
  718.               ajmp              hui
  719. hui0:              mov              a,              32h
  720.               jnb              acc.0,              hui1
  721.               call              zyizhou
  722.               ajmp              hui
  723. hui1:              mov              a,              33h
  724.               jnb              acc.0,              hui
  725.               call              zyizhou
  726. hui:              ret
  727. ;========觸邊旋轉判斷====================
  728. zhuanpan1:
  729.               mov              a,              31h
  730.               jnb              acc.7,              hui3            
  731.               call              yyizhou
  732.               ajmp              hui2
  733. hui3:              mov              a,              32h
  734.               jnb              acc.7,              hui4
  735.               call              yyizhou
  736.               ajmp              hui2
  737. hui4:              mov              a,              33h
  738.               jnb              acc.7,              hui2
  739.               call              yyizhou
  740. hui2:              ret
  741. ;===========X軸右移一位=================
  742. yyizhou:
  743.               mov              a,              31h
  744.               rl              a
  745.               mov              31h,              a
  746.               mov              a,              32h
  747.               rl              a
  748.               mov              32h,              a
  749.               mov              a,              33h
  750.               rl              a
  751.               mov              33h,              a
  752.               ret
  753. ;=========X軸左移一位=================
  754. zyizhou:
  755.               mov              a,              31h
  756.               rr              a
  757.               mov              31h,              a
  758.               mov              a,              32h
  759.               rr              a
  760.               mov              32h,              a
  761.               mov              a,              33h
  762.               rr              a
  763.               mov              33h,              a
  764.               ret
  765. ;==============顯示子程序==========================
  766. xianshi:              mov              p1,              41h
  767.                             mov              p2,              #0feh
  768.                             call              delay
  769.                             mov              p1,              #00
  770.                             mov              p1,              42h
  771.                             mov              p2,              #0fdh
  772.                             call              delay
  773.                             mov              p1,              #00
  774.                             mov              p1,              43h
  775.                             mov              p2,              #0fbh
  776.                             call              delay
  777.                             mov              p1,              #00
  778.                             mov              p1,              44h
  779.                             mov              p2,              #0f7h
  780.                             call              delay
  781.                             mov              p1,              #00
  782.                             mov              p1,              45h
  783.                             mov              p2,              #0efh
  784.                             call              delay
  785.                             mov              p1,              #00
  786.                             mov              p1,              46h
  787.                             mov              p2,              #0dfh
  788.                             call              delay
  789.                             mov              p1,              #00
  790.                             mov              p1,              47h
  791.                             mov              p2,              #0bfh
  792.                             call              delay
  793.                             mov              p1,              #00
  794.                             mov              p1,              48h
  795.                             mov              p2,              #7fh
  796.                             call              delay
  797.                             mov              p1,              #00
  798.                             ret
  799. ;===========消行顯示子程序==================
  800. xiaohang:              mov              a,              48h
  801.                             cjne              a,#0ffh,zh0
  802.                             call              tiaozhen0
  803. zh0:                            mov              a,              47h
  804.                             cjne              a,#0ffh,zh1
  805.                             call              tiaozhen1            
  806. zh1:                            mov              a,              46h
  807.                             cjne              a,#0ffh,zh2
  808.                             call              tiaozhen2
  809. zh2:                            mov              a,              45h
  810.                             cjne              a,#0ffh,zh3
  811.                             call              tiaozhen3
  812. zh3:                            mov              a,              44h
  813.                             cjne              a,#0ffh,zh4
  814.                             call              tiaozhen4                           
  815. zh4:                            mov              a,              43h
  816.                             cjne              a,#0ffh,zh5
  817.                             call              tiaozhen5
  818. zh5:                            mov              a,              42h
  819.                             cjne              a,#0ffh,zh6
  820.                             call              tiaozhen6
  821. zh6:                            ret
  822. tiaozhen0:              mov              48h,              #00
  823.                             mov              49h,              48h
  824.                             mov              48h,              47h
  825.                             mov              47h,              46h
  826.                             mov              46h,              45h
  827.                             mov              45h,              44h
  828.                             mov              44h,              43h
  829.                             mov              43h,              42h
  830.                             mov              42h,              41h
  831.                             mov              41h,              49h                           
  832.                             ret
  833. tiaozhen1:              mov              47h,              #00
  834.                             mov              49h,              47h
  835.                             mov              47h,              46h
  836.                             mov              46h,              45h
  837.                             mov              45h,              44h
  838.                             mov              44h,              43h
  839.                             mov              43h,              42h
  840.                             mov              42h,              41h
  841.                             mov              41h,              49h                           
  842.                             ret
  843. tiaozhen2:              mov              46h,              #00
  844.                             mov              49h,              46h
  845.                             mov              46h,              45h
  846.                             mov              45h,              44h
  847.                             mov              44h,              43h
  848.                             mov              43h,              42h
  849.                             mov              42h,              41h
  850.                             mov              41h,              49h                           
  851.                             ret
  852. tiaozhen3:              mov              45h,              #00
  853.                             mov              49h,              45h
  854.                             mov              45h,              44h
  855.                             mov              44h,              43h
  856.                             mov              43h,              42h
  857.                             mov              42h,              41h
  858.                             mov              41h,              49h                           
  859.                             ret
  860. tiaozhen4:              mov              44h,              #00
  861.                             mov              49h,              44h
  862.                             mov              44h,              43h
  863.                             mov              43h,              42h
  864.                             mov              42h,              41h
  865.                             mov              41h,              49h                           
  866.                             ret
  867. tiaozhen5:              mov              43h,              #00
  868.                             mov              49h,              43h
  869.                             mov              43h,              42h
  870.                             mov              42h,              41h
  871.                             mov              41h,              49h                           
  872.                             ret
  873. tiaozhen6:              mov              42h,              #00
  874.                             mov              49h,              42h
  875.                             mov              42h,              41h
  876.                             mov              41h,              49h                           
  877.                             ret
  878. ;=================================================
  879. ;                            延時1秒子程序
  880. ;==================================================
  881. yanshi_1s:              
  882.                             inc               r3
  883.                             mov              a,              r3
  884.                             cjne               a,4dh, xx
  885.                             mov               r3,#00
  886.                             setb               bt1
  887. xx:                             ret
  888. yanshi_500ms:              
  889.                             inc               r3
  890.                             mov              a,              r3
  891.                             cjne               a,#25, xx11
  892.                             mov               r3,#00
  893.                             setb               bt11
  894. xx11:                             ret
  895. ;=================================================
  896. ;                            延時40m秒子程序
  897. ;==================================================
  898. yanshi_40ms:
  899.                             inc               r4
  900.                             cjne               r4,#3, ee
  901.                             mov               r4, #00
  902.                             setb               bt5
  903. ee:                             ret
  904. suiji:                            mov              a,              tl1
  905.                             mov              b,              #5
  906.                             div              ab
  907.                             mov              r1,              b
  908.                             ret
  909. ;====================================================
  910. ;              觸底子程序
  911. ;======================================================
  912. chudi:                            mov              a,              33h
  913.                             cjne              a,#00,              bbb0
  914.                             mov              a,              32h
  915.                             cjne              a,#00h,              bbb1
  916.                             ljmp              bbb
  917. bbb0:                            ljmp              bbb3
  918. bbb1:                            mov              a,              35h
  919.                             cjne              a,#0bfh,nn7
  920.                             ljmp              nn6
  921. nn7:                            mov              a,              35h
  922.                             cjne              a,#0feh,nn8
  923.                             ljmp              kk0
  924. nn8:                            mov              a,              35h
  925.                             cjne              a,#0fdh,nn9
  926.                             ljmp              kk1
  927. nn9:                            mov              a,              35h
  928.                             cjne              a,#0fbh,nn10
  929.                             ljmp              kk2
  930. nn10:                            mov              a,              35h
  931.                             cjne              a,#0f7h,nn11
  932.                             ljmp              kk3
  933. nn11:                            mov              a,              35h
  934.                             cjne              a,#0efh,nn12
  935.                             ljmp              kk4
  936. nn12:                            mov              a,              35h
  937.                             cjne              a,#0dfh,kk5
  938.                             ljmp              kk5            
  939. kk0:                            mov              a,              32h
  940.                             anl              a,              43h
  941.                             cjne              a,#00h,              nn0
  942.                             ljmp              bbb
  943. kk1:                            mov              a,              32h
  944.                             anl              a,              44h
  945.                             cjne              a,#00h,              nn1
  946.                             ljmp              bbb
  947. kk2:                            mov              a,              32h
  948.                             anl              a,              45h
  949.                             cjne              a,#00h,              nn2
  950.                             ljmp              bbb
  951. kk3:                            mov              a,              32h
  952.                             anl              a,              46h
  953.                             cjne              a,#00h,              nn3
  954.                             ljmp              bbb
  955. kk4:                            mov              a,              32h
  956.                             anl              a,              47h
  957.                             cjne              a,#00h,              nn4
  958.                             ljmp              bbb
  959. kk5:                            mov              a,              32h
  960.                             anl              a,              48h
  961.                             cjne              a,#00h,              nn5
  962.                             ljmp              bbb

  963. nn0:                            mov              35h,              #0feh
  964.                             mov              a,              32h
  965.                             orl              a,              42h
  966.                             mov              42h,              a
  967.                             mov              a,              31h
  968.                             orl              a,              41h
  969.                             mov              41h,              a
  970.                             setb              bt10
  971.                             call              suiji
  972.                             call              chuzhi
  973.                             ljmp              bbb
  974. nn1:                            mov              35h,              #0feh
  975.                             mov              a,              32h
  976.                             orl              a,              43h
  977.                             mov              43h,              a
  978.                             mov              a,              31h
  979.                             orl              a,              42h
  980.                             mov              42h,              a
  981.                             call              suiji
  982.                             call              chuzhi
  983.                             ljmp              bbb
  984. nn2:                            mov              35h,              #0feh
  985.                             mov              a,              32h
  986.                             orl              a,              44h
  987.                             mov              44h,              a
  988.                             mov              a,              31h
  989.                             orl              a,              43h
  990.                             mov              43h,              a
  991.                             call              suiji
  992.                             call              chuzhi
  993.                             ljmp              bbb
  994. nn3:                            mov              35h,              #0feh
  995.                             mov              a,              32h
  996.                             orl              a,              45h
  997.                             mov              45h,              a
  998.                             mov              a,              31h
  999.                             orl              a,              44h
  1000.                             mov              44h,              a
  1001.                             call              suiji
  1002.                             call              chuzhi
  1003.                             ljmp              bbb
  1004. nn4:                            mov              35h,              #0feh
  1005.                             mov              a,              32h
  1006.                             orl              a,              46h
  1007.                             mov              46h,              a
  1008.                             mov              a,              31h
  1009.                             orl              a,              45h
  1010.                             mov              45h,              a
  1011.                             call              suiji
  1012.                             call              chuzhi
  1013.                             ljmp              bbb
  1014. nn5:                            mov              35h,              #0feh
  1015.                             mov              a,              32h
  1016.                             orl              a,              47h
  1017.                             mov              47h,              a
  1018.                             mov              a,              31h
  1019.                             orl              a,              46h
  1020.                             mov              46h,              a
  1021.                             call              suiji
  1022.                             call              chuzhi
  1023.                             ljmp              bbb
  1024. nn6:                            mov              35h,              #0feh
  1025.                             mov              a,              32h
  1026.                             orl              a,              48h
  1027.                             mov              48h,              a
  1028.                             mov              a,              31h
  1029.                             orl              a,              47h
  1030.                             mov              47h,              a
  1031.                             call              suiji
  1032.                             call              chuzhi
  1033.                             ljmp              bbb

  1034. bbb3:                            mov              a,              35h
  1035.                             cjne              a,#0dfh,bb6
  1036.                             ljmp              bb5
  1037. bb6:                            mov              a,              35h
  1038.                             cjne              a,#0feh,bb7
  1039.                             ljmp              jj0
  1040. bb7:                            mov              a,              35h
  1041.                             cjne              a,#0fdh,bb8
  1042.                             ljmp              jj1
  1043. bb8:                            mov              a,              35h
  1044.                             cjne              a,#0fbh,bb9
  1045.                             ljmp              jj2
  1046. bb9:                            mov              a,              35h
  1047.                             cjne              a,#0f7h,bb10
  1048.                             ljmp              jj3
  1049. bb10:                            mov              a,              35h
  1050.                             cjne              a,#0efh,bbb9
  1051.                             ljmp              jj4
  1052. bbb9:                            ljmp              bbb                                         
  1053. jj0:                            mov              a,              33h
  1054.                             anl              a,              44h
  1055.                             cjne              a,#00h,              bb0
  1056.                             mov              a,              32h
  1057.                             anl              a,              43h
  1058.                             cjne              a,#00h,              bb0
  1059.                             ljmp              bbb
  1060. jj1:                            mov              a,              33h
  1061.                             anl              a,              45h
  1062.                             cjne              a,#00h,              bb1
  1063.                             mov              a,              32h
  1064.                             anl              a,              44h
  1065.                             cjne              a,#00h,              bb1
  1066.                             ljmp              bbb
  1067. jj2:                            mov              a,              33h
  1068.                             anl              a,              46h
  1069.                             cjne              a,#00h,              bb2
  1070.                             mov              a,              32h
  1071.                             anl              a,              45h
  1072.                             cjne              a,#00h,              bb2
  1073.                             ljmp              bbb            
  1074. jj3:                            mov              a,              33h
  1075.                             anl              a,              47h
  1076.                             cjne              a,#00h,              bb3
  1077.                             mov              a,              32h
  1078.                             anl              a,              46h
  1079.                             cjne              a,#00h,              bb3
  1080.                             ljmp              bbb
  1081. jj4:                            mov              a,              33h
  1082.                             anl              a,              48h
  1083.                             cjne              a,#00h,              bb11
  1084.                             mov              a,              32h
  1085.                             anl              a,              47h
  1086.                             cjne              a,#00h,              bb4
  1087.                             ljmp              bbb
  1088. bb11:                            ljmp              bb4
  1089. bb0:                            mov              35h,              #0feh
  1090.                             mov              a,              33h
  1091.                             orl              a,              43h
  1092.                             mov              43h,              a
  1093.                             mov              a,              32h
  1094.                             orl              a,              42h
  1095.                             mov              42h,              a
  1096.                             mov              a,              31h
  1097.                             orl              a,              41h
  1098.                             mov              41h,              a
  1099.                             setb              bt10
  1100.                             call              suiji
  1101.                             call              chuzhi
  1102.                             ljmp              bbb            
  1103. bb1:                            mov              35h,              #0feh
  1104.                             mov              a,              33h
  1105.                             orl              a,              44h
  1106.                             mov              44h,              a
  1107.                             mov              a,              32h
  1108.                             orl              a,              43h
  1109.                             mov              43h,              a
  1110.                             mov              a,              31h
  1111.                             orl              a,              42h
  1112.                             mov              42h,              a
  1113.                             call              suiji
  1114.                             call              chuzhi
  1115.                             ljmp              bbb            
  1116. bb2:                            mov              35h,              #0feh
  1117.                             mov              a,              33h
  1118.                             orl              a,              45h
  1119.                             mov              45h,              a
  1120.                             mov              a,              32h
  1121.                             orl              a,              44h
  1122.                             mov              44h,              a
  1123.                             mov              a,              31h
  1124.                             orl              a,              43h
  1125.                             mov              43h,              a
  1126.                             call              suiji
  1127.                             call              chuzhi
  1128.                             ljmp              bbb
  1129. bb3:                            mov              35h,              #0feh
  1130.                             mov              a,              33h
  1131.                             orl              a,              46h
  1132. ……………………

  1133. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
單片機俄羅斯方塊游戲設計大全(設計思路大全_程序大全).doc (629.5 KB, 下載次數: 22)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲九九 | 亚洲一av | 中文字幕人成乱码在线观看 | 国产欧美日韩精品一区 | 国产精品视频网址 | 久久精品免费 | 国产精品视频中文字幕 | 国产精品欧美日韩 | 综合久久av | 中文字幕在线观看www | 91最新在线视频 | 国产二区在线播放 | 日韩有码在线播放 | 日韩精品一区二区三区在线播放 | 日韩精品免费 | 日本韩国电影免费观看 | 精品一区二区三区中文字幕 | 亚av在线 | 日日干夜夜操 | 国产精品久久久久永久免费观看 | 中文字幕一区二区三区精彩视频 | 人人干人人草 | 日本一卡精品视频免费 | 久久国产精品一区二区三区 | 亚州激情| 成人av高清 | 成人欧美一区二区三区色青冈 | 久久一区二区三区四区 | 福利在线观看 | 99久久夜色精品国产亚洲96 | 欧美日韩一区在线播放 | www.日本在线观看 | xxxxx免费视频| 国产午夜精品一区二区三区嫩草 | 青娱乐自拍 | 91嫩草精品| 99精品一级欧美片免费播放 | 日本天堂视频在线观看 | 狠狠ri| 成人影院网站ww555久久精品 | 91九色网站 |