⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plal.asm

📁 乒乓球游戏机设计
💻 ASM
字号:
proc plal
plal:
        call voice1k
        setb c  ;在进位位设置乒乓球
        mov r0,#01h     ;  设置球的位置范围
        mov r1,#02h     ;设置控制键
        clr a
        mov r6,#04h  ;设置移位次数


pk0:     jnb 01h, tj ;pc4发球转移
  pp1:   rrc a
         jmp pk
  tj:    rlc a

pk:     movx @r0,a   ;输出乒乓球的位状态
        mov r5,50h
        djnz r6,pk1  ;判断四位移完否,不完转到pk1
        jmp pk2       ;移动后四位

pk1:    call d20ms
        push a       ;保存a的状态
        movx  a,@r1

        jnb acc.1,t0      ;方向键按下否?     1:按下
        jmp t1
      t0:setb 03h

    t1: jnb acc.2,pk3
        jnb acc.3,pk3   ;如果左拍提前击球则失误转移

        pop a
        djnz r5,pk1   ;秒延时没到,继续循环
        jmp pk0       ;秒到,乒乓球继续移位

pk2:
       mov r5,50h
 tdly: djnz r5,t
       jmp  ttt
 t:    call d20ms
       jmp  tdly
 ttt:  mov a,#0h
       mov a,#0h
       movx @r0,a       ;熄灭右方发光二极管
       mov r6,#04h
       mov r0,#00h
       mov r5,50h
       jnb 03h, tt0       ;没按方向键,走pc2
       mov  a, #00001000b               ;走pc3

   a0: rl  a
       movx @r0,a           ;输出乒乓球状态
       mov r5,50h
       djnz r6,a1  ;判断四位移完否,不完转到a1
       jmp pk4

   a1: call d20ms
       push a       ;保存a的状态
       movx  a,@r1
       jnb acc.2,pk3
       jnb acc.3,pk3   ;如果左拍提前击球则失误转移

       pop a
       djnz r5,  a1  ;秒延时没到,继续循环
       jmp a0

tt0:
       mov  a, #00010000b               ;走pc2

   b0: rr  a
       movx @r0,a           ;输出乒乓球状态
       mov r5,50h
       djnz r6,b1  ;判断四位移完否,不完转到a1
       jmp pk4

   b1: call d20ms
       push a       ;保存a的状态
       movx  a,@r1
       jnb acc.2,pk3
       jnb acc.3,pk3   ;如果左拍提前击球则失误转移

       pop a
       djnz r5,  b1  ;秒延时没到,继续循环
       jmp b0


pk4:    mov r5,50h
   c1:  call d20ms
        movx a,@r1

        jnb   03h,c2    ;没有按下方向键,检测pc2
        jnb   acc.3,c3   ; 有按下方向键,检测pc3
   cc:  djnz r5,  c1
        jmp pk3
   c2:  jnb acc.2,jplr
        jmp cc
   c3:  setb 00h         ;设置左方接球人的标记
 jplr:
        clr 01h
        clr 03h
        call plar

pk3:   call voice2k
       call voice2k
       call voice2k
       inc r4
       mov a,r4
       da  a
       mov 41h,a
       call disp
       call disp
call d20ms
call d20ms
call d20ms
call d20ms

       mov a,r4
       cjne a,52h,ddisp    ;十一分制

       setb p1.7
inc 49h
mov 41h,49h
mov 40h,48h
call disp
       call voice15k
       clr p1.7

       jmp main1

  ddisp: clr 01h  ;清除先前的发球标志
         clr 03h
  ll0:   mov r0,#02h    ;等待右方发球
         movx a,@r0
         jnb acc.4,jpll
         jnb acc.5,lj
         jmp  ll0
  lj:    setb  01h          ;建立发球人的标记
  jpll:

         jmp plal


 ret


 end




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -