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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4745|回復: 6
收起左側(cè)

俄羅斯方塊程序

[復制鏈接]
ID:70976 發(fā)表于 2014-12-27 14:54 | 顯示全部樓層 |閱讀模式
        前天把 8*8俄羅斯方塊程序搞定,今天把俄羅斯方塊硬件電路部分搞定。從剛開始沒一點思路,到項目全部完成。這幾天花費了不少睡覺時間,學了不少東西,兩個字:值得。
        前天也不知道怎么的,調(diào)程序的效率真高,自己都不相信自己了,不到一個小時解決了左右沖突、背景合成、積木旋轉(zhuǎn)、加速下移這些問題。而且在背景合成、積木旋轉(zhuǎn)著兩個算法上有自己獨有的方法。都比較精簡。
         搞完了俄羅斯方塊,學的東西還真不少啊。
         接下來就要準備16*16的俄羅斯方塊了,還要制作一個小制作下個星期三要交,還要準備講課比賽,后天還要考單片機,星期六考英語四級。接下來的幾天還真忙啊,也不知道又要加班加到凌晨2點了,昨晚搞到3點現(xiàn)在還沒回過神來。累是累了點,不過充實的很啊。
       項目階段,又要抓緊了,做幾個得意的東西來,留著做紀念。

  1. ;功能:俄羅斯方塊游戲
  2. ;P3口實現(xiàn)對LED點陣的動態(tài)片選功能
  3. ;===============================================================
  4. ;=======================開始初始化==============================
  5.         HANG1    EQU    40H    ;第一行數(shù)據(jù)地址
  6.   HANG2    EQU    41H    ;第二行數(shù)據(jù)地址
  7.   HANG3    EQU    42H    ;第三行數(shù)據(jù)地址
  8.   HANG4    EQU    43H    ;第四行數(shù)據(jù)地址
  9.   HANG5    EQU    44H    ;第五行數(shù)據(jù)地址
  10.   HANG6    EQU    45H    ;第六行數(shù)據(jù)地址
  11.   HANG7    EQU    46H    ;第七行數(shù)據(jù)地址
  12.   HANG8    EQU    47H    ;第八行數(shù)據(jù)地址
  13.   BEIJING1 EQU    48H    ;背景第一行數(shù)據(jù)地址
  14.   BEIJING2 EQU    49H    ;背景第二行數(shù)據(jù)地址
  15.   BEIJING3 EQU    4AH    ;背景第三行數(shù)據(jù)地址
  16.   BEIJING4 EQU    4BH    ;背景第四行數(shù)據(jù)地址
  17.   BEIJING5 EQU    4CH    ;背景第五行數(shù)據(jù)地址
  18.   BEIJING6 EQU    4DH    ;背景第六行數(shù)據(jù)地址
  19.   BEIJING7 EQU    4EH    ;背景第七行數(shù)據(jù)地址
  20.   BEIJING8 EQU    4FH    ;背景第八行數(shù)據(jù)地址
  21.   SHU1     EQU    50H    ;保存第一行顯示初值地址
  22.   SHU2     EQU    51H    ;保存第二行顯示初值地址
  23.   SHU3     EQU    52H    ;保存第三行顯示初值地址
  24.   XIASHU   EQU    53H    ;下移數(shù)據(jù)中轉(zhuǎn)地址
  25.   Y_Y      EQU    54H             ;異地旋轉(zhuǎn)下移Y軸數(shù)據(jù)地址
  26.   X_X   EQU    55H             ;異地旋轉(zhuǎn)左、右移X軸數(shù)據(jù)地址
  27.   CHENG1   EQU    56H    ;第一行顯示數(shù)據(jù)保存地址
  28.   CHENG2   EQU    57H    ;第二行顯示數(shù)據(jù)保存地址
  29.   CHENG3   EQU    58H    ;第三行顯示數(shù)據(jù)保存地址
  30.   CHENG4   EQU    59H    ;第四行顯示數(shù)據(jù)保存地址
  31.   CHENG5   EQU    5AH    ;第五行顯示數(shù)據(jù)保存地址
  32.   CHENG6   EQU    5BH    ;第六行顯示數(shù)據(jù)保存地址
  33.   CHENG7   EQU    5CH    ;第七行顯示數(shù)據(jù)保存地址
  34.   CHENG8   EQU    5DH    ;第八行顯示數(shù)據(jù)保存地址      
  35.   XUAN1    EQU    20H    ;第一行尋址旋轉(zhuǎn)
  36.   XUAN2    EQU    21H    ;第二行尋址旋轉(zhuǎn)
  37.   XUAN3    EQU    22H    ;第三行尋址旋轉(zhuǎn)
  38.   OXUAN    EQU    23H    ;用來存取旋轉(zhuǎn)溢出數(shù)據(jù)
  39.         SHUCHU   EQU    P2             ;定義P0口為輸出口
  40.   PIANXUAN EQU    P3    ;定義P2口為片選口
  41.   BT      BIT    24H.0   ;節(jié)拍法標志位
  42.   ANJIAN1  BIT    24H.1   ;異地旋轉(zhuǎn)按鍵標志位
  43.   ANJIAN2  BIT    24H.2   ;左移按鍵標志位
  44.   ANJIAN3  BIT    24H.3   ;右移按鍵標志位
  45.   CHONG    BIT    24H.4   ;背景沖突按鍵標志位
  46. ;=========================系統(tǒng)程序==============================        
  47.      ORG    00H      ;程序開始
  48.         LJMP START   ;跳到START
  49.      ORG    0BH       ;中斷定時器0入口地址
  50.      LJMP   T0_1   ;跳到定時器0服務(wù)程序
  51.                  ORG    30H          ;入口地址            
  52.            START:MOV    SP,#70H   ;移開指針
  53.            LCALL  INIT   ;開定時器、開定時器中斷
  54.         SETB   BT         ;中斷標志位置一
  55.      CLR    ANJIAN1   ;異地旋轉(zhuǎn)按鍵標志位清0
  56.      CLR    ANJIAN2   ;左移按鍵標志位清0
  57.      CLR    ANJIAN3   ;右移按鍵標志位清0
  58.      CLR    CHONG   ;沖突標志位清0
  59.      LCALL  CHUZHI   ;設(shè)置移動區(qū)初值
  60.      LCALL  CHUZHI1   ;設(shè)置背景區(qū)初值
  61.      CALL   SHUJU1   ;保存顯示數(shù)據(jù)
  62.      MOV    Y_Y,#00   ;Y軸清0
  63.      MOV    X_X,#00   ;X軸清0
  64.              MOV    R2,#0
  65.      MOV    R3,#0
  66. ;========================主程序=================================        
  67.    MAIN:JNB    BT,[        DISCUZ_CODE_1        ]nbsp;  ;等待中斷
  68.                  CLR    BT    ;中斷標志位清0            
  69.      LCALL  DISPLAY   ;移動區(qū)顯示
  70.      LCALL  DISPLAY1  ;背景區(qū)顯示   
  71.      CALL   PANANJIAN  ;按鍵判斷(異地旋轉(zhuǎn)、左移、右移、加速下移)
  72.      INC    R3    ;等待1S時間到來
  73.            CJNE   R3,#50,MAIN
  74.      MOV    R3,#0         
  75.      CALL  SHUJU5   ;保存下移前數(shù)據(jù)到CHENG1-CHENG8中。
  76.      LCALL  XIABIANJIE  ;判斷下移邊界,是否下移   
  77.      CALL   CHONGTU   ;判斷是否有沖突
  78.      JNB    CHONG,MAIN   ;沒有沖突返回,
  79.      CALL   SHUJU6   ;有沖突則取回下移前數(shù)據(jù)
  80.      CALL  HEBEIJING  ;調(diào)用背景合成(背景合成、消行判斷及消行、產(chǎn)生隨機數(shù))
  81.      JMP   MAIN
  82. ;=====================按鍵判斷子程序============================
  83. ;輸入:P1.0、P1.1、P1.2、P1.3
  84. ;輸出:無
  85. ;實現(xiàn)的功能:判斷左移、右移、異地旋轉(zhuǎn)、加速下移按鍵是否按下,影響標志位ANJIAN1、ANJIAN2、ANJIAN3.
  86. ;===============================================================
  87.     PANANJIAN:JB     P1.0,TAIQI1  ;沒有按鍵按下繼續(xù)判斷,有按鍵按下則往下執(zhí)行
  88.      JB     ANJIAN1,TAIQI1 ;ANJIAN1=1,繼續(xù)判斷,消抖作用
  89.      SETB   ANJIAN1   ;異地旋轉(zhuǎn)標志位置一
  90.    
  91.                  CALL   SHUJU5
  92.      CLR    C   
  93.      CALL   YIDIXUANZHUAN ;有鍵按下則旋轉(zhuǎn)。
  94.      CALL   CHONGTU
  95.      JNB    CHONG,JIXU3
  96.      CALL   SHUJU6
  97.      JMP    TAIQI1
  98.      JIXU3:JNC    TAIQI1
  99.      CALL   SHUJU6
  100.     TAIQI1:JNB    P1.0,PANZUO  ;沒鍵按下判斷下一個按鍵是否按下
  101.      CLR    ANJIAN1   ;異地旋轉(zhuǎn)標志位1清0  
  102.      PANZUO:JB     P1.1,TAIQI2  
  103.      JB     ANJIAN2,TAIQI2
  104.                  SETB   ANJIAN2  
  105.      CALL   SHUJU5
  106.      CALL   PANZUOYI   ;調(diào)用判斷左移字程序(左移是否碰壁、是否到達邊界、是否與背景沖突)
  107.     TAIQI2:JNB    P1.1,PANYOU
  108.       OUT2:CLR    ANJIAN2
  109.     PANYOU:JB     P1.2,TAIQI3  
  110.      JB     ANJIAN3,TAIQI3
  111.      SETB   ANJIAN3
  112.      CALL   PANYOUYI    ;調(diào)用判斷右移字程序(右移是否碰壁、是否到達邊界、是否與背景沖突)
  113.     TAIQI3:JNB    P1.2,PANSU
  114.    OUT1:CLR    ANJIAN3
  115.      PANSU:JB     P1.3, OUT   ;判斷加速按鍵是否按下
  116.            CALL   JIASU    ;加速按鍵按下則圖形加速下移(下移是否觸底、是否與背景沖突)
  117.     OUT:RET
  118. ;=====================加速下移子程序============================
  119. ;輸入:無
  120. ;輸出:無
  121. ;實現(xiàn)的功能:實現(xiàn)圖形加速下移
  122. ;===============================================================
  123.       JIASU:CALL   SHUJU5
  124.            MOV    R6,#10
  125.      DJNZ   R6,$
  126.            CALL   XIABIANJIE
  127.      CALL   CHONGTU
  128.      JNB    CHONG,OUT
  129.      CALL   SHUJU6
  130.      CALL   HEBEIJING
  131.      RET
  132. ;==================背景合成及隨機數(shù)子程序=======================
  133. ;輸入:無
  134. ;輸出:無
  135. ;實現(xiàn)的功能:實現(xiàn)背景合成、消行、產(chǎn)生隨機數(shù)
  136. ;===============================================================
  137.     HEBEIJING:CALL   HECHENG
  138.      CALL   XIAOHANG
  139.      CALL   QINGLING
  140.      CALL   SUIJI
  141.      LCALL SHUJU4
  142.      LCALL SHUJU2
  143.      MOV   Y_Y,#00
  144.         MOV   X_X,#00
  145.         RET        
  146. ;==================左移邊界判斷子程序===========================
  147. ;輸入:無
  148. ;輸出:無
  149. ;實現(xiàn)的功能:判斷左移進位是否為1
  150. ;===============================================================
  151.   PANZUOYI:MOV   R0,#HANG1   ;判斷左移邊界
  152.      CC:MOV   A,@R0
  153.            RLC   A
  154.      JC    OUT2
  155.      INC   R0
  156.      CJNE  R0,#BEIJING1,CC
  157.      CALL  SHUJU5
  158.      CALL  ZUOYI
  159.      INC   X_X  
  160.      CALL  CHONGTU
  161.      JB    CHONG,TT
  162.      RET
  163.      TT:CALL  SHUJU6
  164.         RET  
  165. ;==================右移邊界判斷子程序===========================
  166. ;輸入:無
  167. ;輸出:無
  168. ;實現(xiàn)的功能:判斷右移進位是否為1
  169. ;===============================================================  
  170.   PANYOUYI:MOV   R0,#HANG1   ;判斷右移邊界
  171.     CCC:MOV   A,@R0
  172.      RRC   A
  173.      JC    OUT1
  174.      INC   R0
  175.      CJNE  R0,#BEIJING1,CCC
  176.      CALL  SHUJU5
  177.      CALL  YOUYI
  178.      DEC   X_X
  179.      CALL  CHONGTU
  180.      JB   CHONG,EE
  181.      RET
  182.      EE:CALL  SHUJU6
  183.      RET
  184. ;==================判斷下移邊界子程序===========================
  185. ;輸入:無
  186. ;輸出:無
  187. ;實現(xiàn)的功能:判斷43H-47H內(nèi)容是否為0
  188. ;===============================================================
  189.    XIABIANJIE:MOV   R0,#HANG8
  190.         CJNE  @R0,#00,HE
  191.      CALL  XIAYI
  192.      INC   Y_Y     ;下移Y軸加一
  193.         RET
  194.      HE:CALL  HEBEIJING  
  195.      JMP   MAIN
  196.      RET                  
  197. ;=======================下移子程序=============================
  198. ;輸入:無
  199. ;輸出:無
  200. ;實現(xiàn)的功能:實現(xiàn)定圖形下移功能
  201. ;===============================================================
  202.      XIAYI:MOV   XIASHU,HANG8
  203.      MOV   HANG8,HANG7
  204.      MOV   HANG7,HANG6
  205.      MOV   HANG6,HANG5
  206.      MOV   HANG5,HANG4
  207.      MOV   HANG4,HANG3
  208.      MOV   HANG3,HANG2
  209.      MOV   HANG2,HANG1
  210.      MOV   HANG1,XIASHU
  211.      RET
  212. ;======================消行子程序===============================
  213. ;輸入:無
  214. ;輸出:無
  215. ;實現(xiàn)的功能:把合成后背景區(qū)中全亮的行消除掉。
  216. ;===============================================================
  217.         XIAOHANG:MOV    R5,#00
  218.      MOV    R0,#BEIJING8
  219.       LAN6:MOV    A,@R0
  220.      CPL    A
  221.      JZ     XIAOCHU
  222.      DEC    R0
  223.      INC    R5
  224.      CJNE   R0,#47H,LAN6
  225.            RET
  226.    XIAOCHU:MOV    @R0,#00       ;消除該行
  227.        X_H:MOV    A,R0
  228.         MOV    R1,A
  229.      DEC    R1
  230.      MOV    A,@R1        
  231.      MOV    @R0,A    ;把上一行的數(shù)據(jù)放到下一行
  232.      DEC    R0
  233.      CJNE   R0,#48H,X_H   ;繼續(xù)下移
  234.      CJNE   R5,#07,XIAOHANG  ;看是否還有行沒有消除掉,有的話繼續(xù)判斷,達到全部消除。
  235.      RET
  236. ;=====================背景合成子程序============================
  237. ;輸入:無
  238. ;輸出:無                        
  239. ;實現(xiàn)的功能:把背景區(qū)和移動區(qū)合成背景區(qū)
  240. ;===============================================================
  241.          HECHENG:MOV    R0,#HANG8
  242.               MOV    R1,#BEIJING8
  243.    LAN4:CJNE   R0,#3FH,LAN5
  244.         JMP    YY
  245.    LAN5:MOV    A,@R1
  246.      ORL    A,@R0
  247.      MOV    @R1,A
  248.      DEC    R0
  249.      DEC    R1
  250.      JMP    LAN4
  251.            YY:RET
  252. ;======================判斷沖突子程序===========================
  253. ;輸入:無
  254. ;輸出:無
  255. ;實現(xiàn)的功能:判斷背景區(qū)與移動區(qū)是否重疊,影響標志位CHONG。
  256. ;===============================================================
  257.          CHONGTU:MOV    R0,#HANG1
  258.      MOV    R1,#BEIJING1
  259.     LAN:MOV    A,@R0
  260.         ANL    A,@R1
  261.      JZ     LAN1
  262.      SETB   CHONG
  263.      RET
  264.    LAN1:INC    R0
  265.         INC    R1
  266.      CJNE   R0,#BEIJING1,LAN
  267.      MOV    A, BEIJING1
  268.      ANL    A,HANG1
  269.      CJNE   A,#00,LAN
  270.      MOV    A, BEIJING2
  271.      ANL    A,HANG2
  272.      CJNE   A,#00,LAN
  273.      MOV    A, BEIJING3
  274.      ANL    A,HANG3
  275.      CJNE   A,#00,LAN
  276.      MOV    A, BEIJING4
  277.      ANL    A,HANG4
  278.      CJNE   A,#00,LAN
  279.      MOV    A, BEIJING5
  280.      ANL    A,HANG5
  281.      CJNE   A,#00,LAN
  282.      MOV    A, BEIJING6
  283.      ANL    A,HANG6
  284.      CJNE   A,#00,LAN
  285.      MOV    A, BEIJING7
  286.      ANL    A,HANG7
  287.      CJNE   A,#00,LAN
  288.      MOV    A, BEIJING8
  289.      ANL    A,HANG8
  290.      CJNE   A,#00,LAN
  291.      CLR    CHONG
  292.            RET
  293. ;=======================左移子程序==============================
  294. ;輸入:無
  295. ;輸出:無
  296. ;實現(xiàn)的功能:實現(xiàn)定圖形左移功能
  297. ;===============================================================
  298.      ZUOYI:MOV   A,HANG1
  299.            RL    A
  300.      MOV   HANG1,A
  301.      MOV   A,HANG2
  302.            RL    A
  303.      MOV   HANG2,A
  304.      MOV   A,HANG3
  305.            RL    A
  306.      MOV   HANG3,A        
  307.      MOV   A,HANG4
  308.            RL    A
  309.      MOV   HANG4,A
  310.      MOV   A,HANG5
  311.            RL    A
  312.      MOV   HANG5,A
  313.      MOV   A,HANG6
  314.            RL    A
  315.      MOV   HANG6,A
  316.      MOV   A,HANG7
  317.            RL    A
  318.      MOV   HANG7,A
  319.      MOV   A,HANG8
  320.            RL    A
  321.      MOV   HANG8,A
  322.      RET
  323. ;========================右移子程序=============================
  324. ;輸入:無
  325. ;輸出:無
  326. ;實現(xiàn)的功能:實現(xiàn)圖形右移功能
  327. ;===============================================================
  328.      YOUYI:MOV   A,HANG1
  329.            RR    A
  330.      MOV   HANG1,A
  331.      MOV   A,HANG2
  332.            RR    A
  333.      MOV   HANG2,A
  334.      MOV   A,HANG3
  335.            RR    A
  336.      MOV   HANG3,A
  337.      MOV   A,HANG4
  338.            RR    A
  339.      MOV   HANG4,A
  340.      MOV   A,HANG5
  341.            RR    A
  342.      MOV   HANG5,A
  343.      MOV   A,HANG6
  344.            RR    A
  345.      MOV   HANG6,A
  346.      MOV   A,HANG7
  347.            RR    A
  348.      MOV   HANG7,A
  349.      MOV   A,HANG8
  350.            RR    A
  351.      MOV   HANG8,A   
  352.      RET         
  353. ;===================異地旋轉(zhuǎn)子程序==============================
  354. ;輸入:
  355. ;輸出:
  356. ;實現(xiàn)的功能:如果SHIJIAN=1就旋轉(zhuǎn),等于0不旋轉(zhuǎn)。講HANG1-HANG8的內(nèi)容,
  357. ;送到旋轉(zhuǎn)區(qū)進行旋轉(zhuǎn),同時將HANG線的數(shù)據(jù)進行保存。
  358. ;===============================================================      
  359.    YIDIXUANZHUAN:CALL   QINGLING
  360.      CALL   SHUJU3
  361.      LCALL  JISUAN
  362.      CALL   SHUJU2
  363.      CALL   TIHUAN
  364.               RET
  365. ;=====================數(shù)據(jù)替換子程序============================
  366. ;輸入:
  367. ;輸出:
  368. ;實現(xiàn)的功能:把圖形當前數(shù)據(jù)替換成旋轉(zhuǎn)后的數(shù)據(jù)。
  369. ;===============================================================
  370.     TIHUAN:MOV   R1,X_X
  371.      JIXU1:CJNE  R1,#00,BIANHUA1
  372.      JMP   BIANHUA2  
  373.      BIANHUA1:MOV   A,XUAN1
  374.      RL    A
  375.      MOV   XUAN1,A
  376.      MOV   A,XUAN2
  377.      RL    A
  378.      MOV   XUAN2,A
  379.      MOV   A,XUAN3
  380.      RL    A
  381.      MOV   XUAN3,A
  382.      DEC   R1
  383.      JMP   JIXU1
  384.   BIANHUA2:MOV    A,#HANG1
  385.            ADD    A,Y_Y
  386.      MOV    R1,A
  387.      MOV    @R1,XUAN1
  388.      MOV    A,#HANG2
  389.            ADD    A,Y_Y
  390.      MOV    R1,A
  391.      MOV    @R1,XUAN2
  392.      MOV    A,#HANG3
  393.            ADD    A,Y_Y
  394.      MOV    R1,A
  395.      MOV    @R1,XUAN3  
  396.            RET
  397. ;========================計算子程序=============================
  398. ;輸入:
  399. ;輸出:
  400. ;實現(xiàn)的功能:實現(xiàn)數(shù)據(jù)進行旋轉(zhuǎn),實現(xiàn)圖形旋轉(zhuǎn)功能。
  401. ;===============================================================
  402.     JISUAN:MOV C,XUAN3.0      ;將3存起來、外旋轉(zhuǎn)
  403.            MOV    OXUAN.0,C         
  404.         MOV    C,XUAN1.0
  405.      MOV    XUAN3.0,C
  406.      MOV    C,XUAN1.2
  407.      MOV    XUAN1.0,C
  408.      MOV    C,XUAN3.2
  409.      MOV    XUAN1.2,C
  410.      MOV    C,OXUAN.0
  411.      MOV    XUAN3.2,C
  412.      MOV    C,XUAN2.0   ;將2存起來、內(nèi)旋轉(zhuǎn)
  413.      MOV    OXUAN.1,C
  414.      MOV    C,XUAN1.1
  415.      MOV    XUAN2.0,C
  416.      MOV    C,XUAN2.2
  417.      MOV    XUAN1.1,C
  418.      MOV    C,XUAN3.1
  419.      MOV    XUAN2.2,C
  420.      MOV    C,OXUAN.1
  421.      MOV    XUAN3.1,C               
  422.      RET
  423. ;====================產(chǎn)生隨機數(shù)子程序===========================
  424. ;輸入:無
  425. ;輸出:無
  426. ;實現(xiàn)的功能:DPH中的數(shù)據(jù)轉(zhuǎn)化為積木圖形數(shù)據(jù)。
  427. ;===============================================================
  428.      SUIJI:MOV    A,TH0
  429.            ANL    A,#07H
  430.      RL     A
  431.      MOV    DPTR,#TAB
  432.      JMP    @A+DPTR
  433.     TAB:AJMP   SUB0
  434.      AJMP   SUB1
  435.      AJMP   SUB2
  436.      AJMP   SUB3
  437.      AJMP   SUB4
  438.      AJMP   SUB5
  439.      AJMP   SUB6
  440.      AJMP   SUB7
  441.      AJMP   SUB8
  442.          SUB0:MOV    XUAN1,#07H
  443.      MOV    XUAN2,#01H
  444.      MOV    XUAN3,#00H
  445.      RET
  446.    SUB1:MOV    XUAN1,#02H
  447.      MOV    XUAN2,#03H
  448.      MOV    XUAN3,#01H
  449.      RET
  450.     SUB2:
  451.         MOV    XUAN1,#02H
  452.      MOV    XUAN2,#03H
  453.      MOV    XUAN3,#02H
  454.      RET
  455.    SUB3:MOV    XUAN1,#00H
  456.      MOV    XUAN2,#07H
  457.      MOV    XUAN3,#00H
  458.      RET
  459.    SUB4:MOV    XUAN1,#01H
  460.      MOV    XUAN2,#03H
  461.      MOV    XUAN3,#02H
  462.      RET
  463.    SUB5:MOV    XUAN1,#01H
  464.      MOV    XUAN2,#07H
  465.      MOV    XUAN3,#00H
  466.      RET
  467.    SUB6:MOV    XUAN1,#00H
  468.      MOV    XUAN2,#01H
  469.      MOV    XUAN3,#07H
  470.      RET
  471.    SUB7:MOV    XUAN1,#02H
  472.      MOV    XUAN2,#07H
  473.      MOV    XUAN3,#00H
  474.    SUB8:MOV    XUAN1,#03H
  475.      MOV    XUAN2,#03H
  476.      MOV    XUAN3,#00H   
  477.      RET
  478. ;=======================顯示子程序==============================
  479. ;輸入:"40H-47H"
  480. ;輸出:P2口
  481. ;實現(xiàn)的功能:顯示40H-48H的內(nèi)容。
  482. ;===============================================================            
  483.          DISPLAY:MOV    SHUCHU,HANG1
  484.            MOV    PIANXUAN,#0FEH
  485.      LCALL  DELAY
  486.                  MOV    PIANXUAN,#0FFH
  487.      MOV    SHUCHU,HANG2
  488.            MOV    PIANXUAN,#0FDH
  489.      LCALL  DELAY
  490.      MOV    PIANXUAN,#0FFH
  491.            MOV    SHUCHU,HANG3
  492.            MOV    PIANXUAN,#0FBH
  493.      LCALL  DELAY
  494.      MOV    PIANXUAN,#0FFH
  495.      MOV    SHUCHU,HANG4
  496.            MOV    PIANXUAN,#0F7H
  497.      LCALL  DELAY
  498.      MOV    PIANXUAN,#0FFH
  499.      MOV    SHUCHU,HANG5
  500.            MOV    PIANXUAN,#0EFH
  501.      LCALL  DELAY
  502.                  MOV    PIANXUAN,#0FFH
  503.      MOV    SHUCHU,HANG6
  504.            MOV    PIANXUAN,#0DFH
  505.      LCALL  DELAY
  506.      MOV    PIANXUAN,#0FFH
  507.            MOV    SHUCHU,HANG7
  508.            MOV    PIANXUAN,#0BFH
  509.      LCALL  DELAY
  510.      MOV    PIANXUAN,#0FFH
  511.      MOV    SHUCHU,HANG8
  512.            MOV    PIANXUAN,#7FH
  513.      LCALL  DELAY
  514.      MOV    PIANXUAN,#0FFH
  515.                  RET

  516. ;=======================顯示子程序==============================
  517. ;輸入:"48H-4FH"
  518. ;輸出:P2口
  519. ;實現(xiàn)的功能:顯示48H-4FHH的內(nèi)容。
  520. ;===============================================================            
  521.         DISPLAY1:MOV    SHUCHU,BEIJING1
  522.            MOV    PIANXUAN,#0FEH
  523.      LCALL  DELAY
  524.                  MOV    PIANXUAN,#0FFH
  525.      MOV    SHUCHU,BEIJING2
  526.            MOV    PIANXUAN,#0FDH
  527.      LCALL  DELAY
  528.      MOV    PIANXUAN,#0FFH
  529.            MOV    SHUCHU,BEIJING3
  530.            MOV    PIANXUAN,#0FBH
  531.      LCALL  DELAY
  532.      MOV    PIANXUAN,#0FFH
  533.      MOV    SHUCHU,BEIJING4
  534.            MOV    PIANXUAN,#0F7H
  535.      LCALL  DELAY
  536.      MOV    PIANXUAN,#0FFH
  537.      MOV    SHUCHU,BEIJING5
  538.            MOV    PIANXUAN,#0EFH
  539.      LCALL  DELAY
  540.                  MOV    PIANXUAN,#0FFH
  541.      MOV    SHUCHU,BEIJING6
  542.            MOV    PIANXUAN,#0DFH
  543.      LCALL  DELAY
  544.      MOV    PIANXUAN,#0FFH
  545.            MOV    SHUCHU,BEIJING7
  546.            MOV    PIANXUAN,#0BFH
  547.      LCALL  DELAY
  548.      MOV    PIANXUAN,#0FFH
  549.      MOV    SHUCHU,BEIJING8
  550.            MOV    PIANXUAN,#7FH
  551.      LCALL  DELAY
  552.      MOV    PIANXUAN,#0FFH
  553.                  RET
  554. ;================移動區(qū)圖形初值子程序===========================
  555. ;輸入:"40H,41H,42H,43H,44H,45H,46H,47H"
  556. ;輸出:無
  557. ;實現(xiàn)的功能:設(shè)置移動區(qū)數(shù)據(jù)初值
  558. ;===============================================================
  559.     CHUZHI:MOV   HANG1,#02H   ;開始顯示的圖形第一行發(fā)的數(shù)據(jù)
  560.            MOV   HANG2,#07H   ;開始顯示的圖形第二行發(fā)的數(shù)據(jù)
  561.      MOV   HANG3,#00H   ;開始顯示的圖形第三行發(fā)的數(shù)據(jù)
  562.      MOV   HANG4,#00H      
  563.      MOV   HANG5,#00H
  564.      MOV   HANG6,#00H
  565.      MOV   HANG7,#00H  
  566.      MOV   HANG8,#00H  
  567.            RET
  568. ;====================背景區(qū)初值子程序===========================
  569. ;輸入:"48H,49H,4AH,4BH,4CH,4DH,4EH,4FH,"
  570. ;輸出:無
  571. ;實現(xiàn)的功能:設(shè)置背景區(qū)數(shù)據(jù)初值
  572. ;===============================================================
  573.    CHUZHI1:MOV   BEIJING1,#00H
  574.            MOV   BEIJING2,#00H
  575.      MOV   BEIJING3,#00H
  576.      MOV   BEIJING4,#00H      
  577.      MOV   BEIJING5,#00H
  578.      MOV   BEIJING6,#00H
  579.      MOV   BEIJING7,#00H  
  580.      MOV   BEIJING8,#00H  
  581.            RET
  582. ;=======================復位子程序==============================
  583. ;輸入:40H-47H
  584. ;輸出:無
  585. ;實現(xiàn)的功能:把CHULI1-CHULI8的數(shù)據(jù)清零。
  586. ;===============================================================
  587.   QINGLING:MOV   HANG1,#00H   ;數(shù)據(jù)清零
  588.            MOV   HANG2,#00H
  589.      MOV   HANG3,#00H
  590.            MOV   HANG4,#00H
  591.      MOV   HANG5,#00H
  592.            MOV   HANG6,#00H
  593.      MOV   HANG7,#00H
  594.            MOV   HANG8,#00H
  595.            RET
  596. ;====================數(shù)據(jù)保存1子程序============================
  597. ;輸入:50H-52H
  598. ;輸出:
  599. ;實現(xiàn)的功能:把40H-42H的數(shù)據(jù)保存到50H-52H中。
  600. ;===============================================================      
  601.     SHUJU1:MOV    SHU1,HANG1      ;保存第一行數(shù)據(jù)
  602.            MOV    SHU2,HANG2   ;保存第一行數(shù)據(jù)
  603.            MOV    SHU3,HANG3   ;保存第一行數(shù)據(jù)  
  604.      RET
  605. ;====================數(shù)據(jù)保存2子程序============================
  606. ;輸入:50H-52
  607. ;輸出:
  608. ;實現(xiàn)的功能:把旋轉(zhuǎn)后的數(shù)據(jù)保存到50H-52H中。
  609. ;===============================================================
  610.     SHUJU2:MOV    SHU1,XUAN1   ;保存旋轉(zhuǎn)后第一行的數(shù)據(jù)
  611.            MOV    SHU2,XUAN2   ;保存旋轉(zhuǎn)后第二行的數(shù)據(jù)
  612.      MOV    SHU3,XUAN3   ;保存旋轉(zhuǎn)后第三行的數(shù)據(jù)
  613.      RET
  614. ;====================數(shù)據(jù)保存3子程序============================
  615. ;輸入:20H-22H
  616. ;輸出:
  617. ;實現(xiàn)的功能:把50H-52H中的數(shù)據(jù)放到20H-22H中,放到尋址區(qū)。
  618. ;===============================================================
  619.     SHUJU3:MOV    XUAN1,SHU1  ;把保存好的第一行數(shù)據(jù)轉(zhuǎn)移到尋址區(qū)  
  620.            MOV    XUAN2,SHU2  ;把保存好的第二行數(shù)據(jù)轉(zhuǎn)移到尋址區(qū)  
  621.      MOV    XUAN3,SHU3  ;把保存好的第三行數(shù)據(jù)轉(zhuǎn)移到尋址區(qū)  
  622.      RET
  623. ;====================數(shù)據(jù)保存4子程序============================
  624. ;輸入:40H-42H
  625. ;輸出:
  626. ;實現(xiàn)的功能:把旋轉(zhuǎn)后的數(shù)據(jù)保存到50H-52H中。
  627. ;===============================================================
  628.     SHUJU4:MOV    HANG1,XUAN1   ;把尋址區(qū)的第一行數(shù)據(jù)取回
  629.            MOV    HANG2,XUAN2   ;把尋址區(qū)的第二行數(shù)據(jù)取回
  630.      MOV    HANG3,XUAN3   ;把尋址區(qū)的第三行數(shù)據(jù)取回
  631.      RET
  632. ;====================數(shù)據(jù)保存5子程序============================
  633. ;輸入:56-5DH
  634. ;輸出:
  635. ;實現(xiàn)的功能:把40H-47H中的數(shù)據(jù)保存到56H-5DH中。
  636. ;===============================================================
  637.     SHUJU5:MOV    CHENG1,HANG1  ;把數(shù)據(jù)保存起來
  638.      MOV    CHENG2,HANG2
  639.      MOV    CHENG3,HANG3
  640.      MOV    CHENG4,HANG4
  641.      MOV    CHENG5,HANG5
  642.      MOV    CHENG6,HANG6
  643.      MOV    CHENG7,HANG7
  644.      MOV    CHENG8,HANG8   
  645.      RET
  646. ;====================數(shù)據(jù)保存6子程序============================
  647. ;輸入:
  648. ;輸出:
  649. ;實現(xiàn)的功能:把56H-5DH的數(shù)據(jù)保存到40H-47H中。
  650. ;===============================================================
  651.           SHUJU6:MOV    HANG1,CHENG1  ;把原來保存的數(shù)據(jù)取回
  652.            MOV    HANG2,CHENG2
  653.      MOV    HANG3,CHENG3
  654.            MOV    HANG4,CHENG4
  655.      MOV    HANG5,CHENG5
  656.            MOV    HANG6,CHENG6
  657.      MOV    HANG7,CHENG7
  658.            MOV    HANG8,CHENG8
  659.      RET                                                   
  660. ;====================定時中斷0服務(wù)子程序========================
  661. ;輸入:無
  662. ;輸出:無
  663. ;實現(xiàn)的功能:實現(xiàn)定時20MS,影響標中斷志位BIT
  664. ;===============================================================
  665.    T0_1:MOV    TL0,#0E0H        ;設(shè)置定時初值
  666.         MOV    TH0,#0B1H
  667.         SETB   BT            ;定時標志位清0
  668.      RETI
  669. ;========================中斷設(shè)置子程序=========================
  670. ;輸入:無
  671. ;輸出:無
  672. ;實現(xiàn)的功能:初始化設(shè)置定時器,設(shè)置初值
  673. ;===============================================================
  674.             INIT:MOV    TMOD,#01H      ;定時器0工作方式1
  675.          MOV    TL0,#0E0H    ;設(shè)置定時初值
  676.         MOV    TH0,#0B1H
  677.      MOV    IE,#82H       ;開定時器中斷0
  678.      SETB   TR0        ;開定時器0
  679.      RET
  680. ;==========================延時子程序===========================
  681. ;輸入;無
  682. ;輸出: 無
  683. ;實現(xiàn)的功能:延時一段時間
  684. ;===============================================================
  685.            DELAY:
  686.        L6:MOV  R6,#30
  687.               L7:MOV  R7,#20
  688.      L8:DJNZ R7,L8
  689.               DJNZ R6,L7
  690.       RET
  691. ;=========================程序結(jié)束=============================
  692.      END
復制代碼


回復

使用道具 舉報

ID:72213 發(fā)表于 2015-1-14 14:42 | 顯示全部樓層
回復

使用道具 舉報

ID:79481 發(fā)表于 2015-5-10 23:47 | 顯示全部樓層
匯編!吊!看不懂!厲害!
回復

使用道具 舉報

ID:69240 發(fā)表于 2015-5-17 09:58 來自手機 | 顯示全部樓層
屌,匯編
回復

使用道具 舉報

ID:97007 發(fā)表于 2016-5-14 11:51 | 顯示全部樓層
不會匯編怎么破
回復

使用道具 舉報

ID:141219 發(fā)表于 2016-10-3 18:11 | 顯示全部樓層
看不懂匯編,是C語言就好了
回復

使用道具 舉報

ID:102963 發(fā)表于 2020-2-14 23:28 | 顯示全部樓層
請問
電路圖呢?
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 9久9久9久女女女九九九一九 | 日韩福利视频 | 西西裸体做爰视频 | 亚洲视频一区在线观看 | 免费视频99 | 久久88| 日日做夜夜爽毛片麻豆 | 伊人精品 | 精品九九九 | 亚洲激情在线观看 | 久久网站黄 | 欧美888| 成人在线观看免费视频 | 国产成人福利在线观看 | 91精品无人区卡一卡二卡三 | 涩在线 | 色呦呦在线 | 午夜精| 亚洲精品不卡 | 羞羞在线观看视频 | 成人在线精品视频 | 毛片区 | 亚洲欧美一区二区在线观看 | 久久亚洲欧美日韩精品专区 | 成人一区二区电影 | 亚洲电影第1页 | 久久久久久久久国产 | 国产精品久久久久久福利一牛影视 | 久久在线精品 | 午夜精品一区二区三区免费视频 | 成人在线视频网 | 91精品国产乱码久久久久久久久 | 欧美一级特黄aaa大片在线观看 | 国产精品一区二区久久久久 | 日韩在线播放视频 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 一区二区三区日韩 | 一区二区三区av | 99re视频这里只有精品 | 欧美美女爱爱视频 | 精品国产一区二区在线 |