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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4812|回復: 6
收起左側

俄羅斯方塊程序

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

  1. ;功能:俄羅斯方塊游戲
  2. ;P3口實現對LED點陣的動態片選功能
  3. ;===============================================================
  4. ;=======================開始初始化==============================
  5.         HANG1    EQU    40H    ;第一行數據地址
  6.   HANG2    EQU    41H    ;第二行數據地址
  7.   HANG3    EQU    42H    ;第三行數據地址
  8.   HANG4    EQU    43H    ;第四行數據地址
  9.   HANG5    EQU    44H    ;第五行數據地址
  10.   HANG6    EQU    45H    ;第六行數據地址
  11.   HANG7    EQU    46H    ;第七行數據地址
  12.   HANG8    EQU    47H    ;第八行數據地址
  13.   BEIJING1 EQU    48H    ;背景第一行數據地址
  14.   BEIJING2 EQU    49H    ;背景第二行數據地址
  15.   BEIJING3 EQU    4AH    ;背景第三行數據地址
  16.   BEIJING4 EQU    4BH    ;背景第四行數據地址
  17.   BEIJING5 EQU    4CH    ;背景第五行數據地址
  18.   BEIJING6 EQU    4DH    ;背景第六行數據地址
  19.   BEIJING7 EQU    4EH    ;背景第七行數據地址
  20.   BEIJING8 EQU    4FH    ;背景第八行數據地址
  21.   SHU1     EQU    50H    ;保存第一行顯示初值地址
  22.   SHU2     EQU    51H    ;保存第二行顯示初值地址
  23.   SHU3     EQU    52H    ;保存第三行顯示初值地址
  24.   XIASHU   EQU    53H    ;下移數據中轉地址
  25.   Y_Y      EQU    54H             ;異地旋轉下移Y軸數據地址
  26.   X_X   EQU    55H             ;異地旋轉左、右移X軸數據地址
  27.   CHENG1   EQU    56H    ;第一行顯示數據保存地址
  28.   CHENG2   EQU    57H    ;第二行顯示數據保存地址
  29.   CHENG3   EQU    58H    ;第三行顯示數據保存地址
  30.   CHENG4   EQU    59H    ;第四行顯示數據保存地址
  31.   CHENG5   EQU    5AH    ;第五行顯示數據保存地址
  32.   CHENG6   EQU    5BH    ;第六行顯示數據保存地址
  33.   CHENG7   EQU    5CH    ;第七行顯示數據保存地址
  34.   CHENG8   EQU    5DH    ;第八行顯示數據保存地址      
  35.   XUAN1    EQU    20H    ;第一行尋址旋轉
  36.   XUAN2    EQU    21H    ;第二行尋址旋轉
  37.   XUAN3    EQU    22H    ;第三行尋址旋轉
  38.   OXUAN    EQU    23H    ;用來存取旋轉溢出數據
  39.         SHUCHU   EQU    P2             ;定義P0口為輸出口
  40.   PIANXUAN EQU    P3    ;定義P2口為片選口
  41.   BT      BIT    24H.0   ;節拍法標志位
  42.   ANJIAN1  BIT    24H.1   ;異地旋轉按鍵標志位
  43.   ANJIAN2  BIT    24H.2   ;左移按鍵標志位
  44.   ANJIAN3  BIT    24H.3   ;右移按鍵標志位
  45.   CHONG    BIT    24H.4   ;背景沖突按鍵標志位
  46. ;=========================系統程序==============================        
  47.      ORG    00H      ;程序開始
  48.         LJMP START   ;跳到START
  49.      ORG    0BH       ;中斷定時器0入口地址
  50.      LJMP   T0_1   ;跳到定時器0服務程序
  51.                  ORG    30H          ;入口地址            
  52.            START:MOV    SP,#70H   ;移開指針
  53.            LCALL  INIT   ;開定時器、開定時器中斷
  54.         SETB   BT         ;中斷標志位置一
  55.      CLR    ANJIAN1   ;異地旋轉按鍵標志位清0
  56.      CLR    ANJIAN2   ;左移按鍵標志位清0
  57.      CLR    ANJIAN3   ;右移按鍵標志位清0
  58.      CLR    CHONG   ;沖突標志位清0
  59.      LCALL  CHUZHI   ;設置移動區初值
  60.      LCALL  CHUZHI1   ;設置背景區初值
  61.      CALL   SHUJU1   ;保存顯示數據
  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   ;移動區顯示
  70.      LCALL  DISPLAY1  ;背景區顯示   
  71.      CALL   PANANJIAN  ;按鍵判斷(異地旋轉、左移、右移、加速下移)
  72.      INC    R3    ;等待1S時間到來
  73.            CJNE   R3,#50,MAIN
  74.      MOV    R3,#0         
  75.      CALL  SHUJU5   ;保存下移前數據到CHENG1-CHENG8中。
  76.      LCALL  XIABIANJIE  ;判斷下移邊界,是否下移   
  77.      CALL   CHONGTU   ;判斷是否有沖突
  78.      JNB    CHONG,MAIN   ;沒有沖突返回,
  79.      CALL   SHUJU6   ;有沖突則取回下移前數據
  80.      CALL  HEBEIJING  ;調用背景合成(背景合成、消行判斷及消行、產生隨機數)
  81.      JMP   MAIN
  82. ;=====================按鍵判斷子程序============================
  83. ;輸入:P1.0、P1.1、P1.2、P1.3
  84. ;輸出:無
  85. ;實現的功能:判斷左移、右移、異地旋轉、加速下移按鍵是否按下,影響標志位ANJIAN1、ANJIAN2、ANJIAN3.
  86. ;===============================================================
  87.     PANANJIAN:JB     P1.0,TAIQI1  ;沒有按鍵按下繼續判斷,有按鍵按下則往下執行
  88.      JB     ANJIAN1,TAIQI1 ;ANJIAN1=1,繼續判斷,消抖作用
  89.      SETB   ANJIAN1   ;異地旋轉標志位置一
  90.    
  91.                  CALL   SHUJU5
  92.      CLR    C   
  93.      CALL   YIDIXUANZHUAN ;有鍵按下則旋轉。
  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   ;異地旋轉標志位1清0  
  102.      PANZUO:JB     P1.1,TAIQI2  
  103.      JB     ANJIAN2,TAIQI2
  104.                  SETB   ANJIAN2  
  105.      CALL   SHUJU5
  106.      CALL   PANZUOYI   ;調用判斷左移字程序(左移是否碰壁、是否到達邊界、是否與背景沖突)
  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    ;調用判斷右移字程序(右移是否碰壁、是否到達邊界、是否與背景沖突)
  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. ;實現的功能:實現圖形加速下移
  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. ;==================背景合成及隨機數子程序=======================
  133. ;輸入:無
  134. ;輸出:無
  135. ;實現的功能:實現背景合成、消行、產生隨機數
  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. ;實現的功能:判斷左移進位是否為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. ;實現的功能:判斷右移進位是否為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. ;實現的功能:判斷43H-47H內容是否為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. ;實現的功能:實現定圖形下移功能
  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. ;實現的功能:把合成后背景區中全亮的行消除掉。
  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    ;把上一行的數據放到下一行
  232.      DEC    R0
  233.      CJNE   R0,#48H,X_H   ;繼續下移
  234.      CJNE   R5,#07,XIAOHANG  ;看是否還有行沒有消除掉,有的話繼續判斷,達到全部消除。
  235.      RET
  236. ;=====================背景合成子程序============================
  237. ;輸入:無
  238. ;輸出:無                        
  239. ;實現的功能:把背景區和移動區合成背景區
  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. ;實現的功能:判斷背景區與移動區是否重疊,影響標志位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. ;實現的功能:實現定圖形左移功能
  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. ;實現的功能:實現圖形右移功能
  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. ;===================異地旋轉子程序==============================
  354. ;輸入:
  355. ;輸出:
  356. ;實現的功能:如果SHIJIAN=1就旋轉,等于0不旋轉。講HANG1-HANG8的內容,
  357. ;送到旋轉區進行旋轉,同時將HANG線的數據進行保存。
  358. ;===============================================================      
  359.    YIDIXUANZHUAN:CALL   QINGLING
  360.      CALL   SHUJU3
  361.      LCALL  JISUAN
  362.      CALL   SHUJU2
  363.      CALL   TIHUAN
  364.               RET
  365. ;=====================數據替換子程序============================
  366. ;輸入:
  367. ;輸出:
  368. ;實現的功能:把圖形當前數據替換成旋轉后的數據。
  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. ;實現的功能:實現數據進行旋轉,實現圖形旋轉功能。
  401. ;===============================================================
  402.     JISUAN:MOV C,XUAN3.0      ;將3存起來、外旋轉
  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存起來、內旋轉
  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. ;====================產生隨機數子程序===========================
  424. ;輸入:無
  425. ;輸出:無
  426. ;實現的功能:DPH中的數據轉化為積木圖形數據。
  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. ;實現的功能:顯示40H-48H的內容。
  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. ;實現的功能:顯示48H-4FHH的內容。
  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. ;================移動區圖形初值子程序===========================
  555. ;輸入:"40H,41H,42H,43H,44H,45H,46H,47H"
  556. ;輸出:無
  557. ;實現的功能:設置移動區數據初值
  558. ;===============================================================
  559.     CHUZHI:MOV   HANG1,#02H   ;開始顯示的圖形第一行發的數據
  560.            MOV   HANG2,#07H   ;開始顯示的圖形第二行發的數據
  561.      MOV   HANG3,#00H   ;開始顯示的圖形第三行發的數據
  562.      MOV   HANG4,#00H      
  563.      MOV   HANG5,#00H
  564.      MOV   HANG6,#00H
  565.      MOV   HANG7,#00H  
  566.      MOV   HANG8,#00H  
  567.            RET
  568. ;====================背景區初值子程序===========================
  569. ;輸入:"48H,49H,4AH,4BH,4CH,4DH,4EH,4FH,"
  570. ;輸出:無
  571. ;實現的功能:設置背景區數據初值
  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. ;實現的功能:把CHULI1-CHULI8的數據清零。
  586. ;===============================================================
  587.   QINGLING:MOV   HANG1,#00H   ;數據清零
  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. ;====================數據保存1子程序============================
  597. ;輸入:50H-52H
  598. ;輸出:
  599. ;實現的功能:把40H-42H的數據保存到50H-52H中。
  600. ;===============================================================      
  601.     SHUJU1:MOV    SHU1,HANG1      ;保存第一行數據
  602.            MOV    SHU2,HANG2   ;保存第一行數據
  603.            MOV    SHU3,HANG3   ;保存第一行數據  
  604.      RET
  605. ;====================數據保存2子程序============================
  606. ;輸入:50H-52
  607. ;輸出:
  608. ;實現的功能:把旋轉后的數據保存到50H-52H中。
  609. ;===============================================================
  610.     SHUJU2:MOV    SHU1,XUAN1   ;保存旋轉后第一行的數據
  611.            MOV    SHU2,XUAN2   ;保存旋轉后第二行的數據
  612.      MOV    SHU3,XUAN3   ;保存旋轉后第三行的數據
  613.      RET
  614. ;====================數據保存3子程序============================
  615. ;輸入:20H-22H
  616. ;輸出:
  617. ;實現的功能:把50H-52H中的數據放到20H-22H中,放到尋址區。
  618. ;===============================================================
  619.     SHUJU3:MOV    XUAN1,SHU1  ;把保存好的第一行數據轉移到尋址區  
  620.            MOV    XUAN2,SHU2  ;把保存好的第二行數據轉移到尋址區  
  621.      MOV    XUAN3,SHU3  ;把保存好的第三行數據轉移到尋址區  
  622.      RET
  623. ;====================數據保存4子程序============================
  624. ;輸入:40H-42H
  625. ;輸出:
  626. ;實現的功能:把旋轉后的數據保存到50H-52H中。
  627. ;===============================================================
  628.     SHUJU4:MOV    HANG1,XUAN1   ;把尋址區的第一行數據取回
  629.            MOV    HANG2,XUAN2   ;把尋址區的第二行數據取回
  630.      MOV    HANG3,XUAN3   ;把尋址區的第三行數據取回
  631.      RET
  632. ;====================數據保存5子程序============================
  633. ;輸入:56-5DH
  634. ;輸出:
  635. ;實現的功能:把40H-47H中的數據保存到56H-5DH中。
  636. ;===============================================================
  637.     SHUJU5:MOV    CHENG1,HANG1  ;把數據保存起來
  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. ;====================數據保存6子程序============================
  647. ;輸入:
  648. ;輸出:
  649. ;實現的功能:把56H-5DH的數據保存到40H-47H中。
  650. ;===============================================================
  651.           SHUJU6:MOV    HANG1,CHENG1  ;把原來保存的數據取回
  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服務子程序========================
  661. ;輸入:無
  662. ;輸出:無
  663. ;實現的功能:實現定時20MS,影響標中斷志位BIT
  664. ;===============================================================
  665.    T0_1:MOV    TL0,#0E0H        ;設置定時初值
  666.         MOV    TH0,#0B1H
  667.         SETB   BT            ;定時標志位清0
  668.      RETI
  669. ;========================中斷設置子程序=========================
  670. ;輸入:無
  671. ;輸出:無
  672. ;實現的功能:初始化設置定時器,設置初值
  673. ;===============================================================
  674.             INIT:MOV    TMOD,#01H      ;定時器0工作方式1
  675.          MOV    TL0,#0E0H    ;設置定時初值
  676.         MOV    TH0,#0B1H
  677.      MOV    IE,#82H       ;開定時器中斷0
  678.      SETB   TR0        ;開定時器0
  679.      RET
  680. ;==========================延時子程序===========================
  681. ;輸入;無
  682. ;輸出: 無
  683. ;實現的功能:延時一段時間
  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. ;=========================程序結束=============================
  692.      END
復制代碼


回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

ID:69240 發表于 2015-5-17 09:58 來自觸屏版 | 顯示全部樓層
屌,匯編
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人亚洲在线 | 国产福利免费视频 | 久久久久精 | 一区二区三区欧美大片 | 久久麻豆精品 | 四虎永久在线精品免费一区二 | 狼人伊人影院 | 欧美日韩在线一区二区 | 久久中文高清 | 亚洲一区二区黄 | 精品国产一区二区在线 | 国产精品一区二区三区久久久 | 亚洲三级在线 | 精品国产乱码久久久久久图片 | 国产999精品久久久 精品三级在线观看 | 91免费观看视频 | 伊人伊成久久人综合网站 | 欧美激情精品久久久久久 | 成年人网站免费 | 一区二区三区在线观看免费视频 | 日本中文字幕一区 | 欧美日韩精品一区二区 | 国产一区二区在线免费 | 国产精品久久久久影院色老大 | 亚洲精品二区 | 欧美福利网站 | 国产精品91久久久久久 | 成人av片在线观看 | 孕妇一级毛片 | 亚洲精品二区 | 国产特一级黄色片 | 粉嫩一区二区三区国产精品 | 欧美视频网 | 91在线精品视频 | 国产精品国产三级国产aⅴ无密码 | 国产福利91精品一区二区三区 | av在线视 | 中文日韩在线 | 亚洲精品二三区 | 色片在线观看 | 草久在线视频 |