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

📄 ok.asm

📁 51输出26个不同的音阶
💻 ASM
字号:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP FA
ORG 0100H            
MAIN:
   SETB P3.7
   setb P3.6

   MOV R1,#00H
   MOV R2,#00H
   MOV R3,#0H
   MOV R4,#0H
   MOV R5,#0H
   MOV R6,#0H
   MOV R7,#0H
   MOV 10H,#2
   MOV P1,#11111101B
   MOV TMOD,#01H
   MOV TH0,R1
   MOV TL0,R2
   SETB EA
   SETB ET0
   SETB TR0

   START:
   SETB EA
   LCALL DELAY
   CLR EA
   LCALL KEY
   LCALL DISPLAY
   LCALL FUZI
   LJMP START

   KEY:
    L3:MOV A,#0F7H
    MOV R3,#0H
   MOV R4,#0H

   L2:RL A

    MOV R6,A
    MOV P0,A
    MOV A,P0
    MOV 0F0H,R6
    CJNE A,0F0H,L1
    INC R4
    CJNE R4,#4H,L2
     MOV R4,#0H
    JMP L3

  L1:MOV R5,#0H
     MOV R6,A
  L5: ANL A,#01H
     CJNE A,#1H,L4
     MOV A,R6
     RR A
     MOV R6,A
     INC R5
     JMP L5
  L4:MOV A,#4H
     MOV B,R4
     MUL AB
     ADD A,R5
     MOV R4,A
     RET

    FUZI:
    
    CJNE R4,#4,NEXT03
    MOV 10H,#3
    NEXT03:CJNE R4,#8,NEXT02
    MOV 10H,#2
    NEXT02:CJNE R4,#14,NEXT01
    MOV 10H,#1
    NEXT01:
    MOV A,10H
    CJNE A,#1,NEXT1
    MOV DPTR,#TAB1
    NEXT1:CJNE A,#2,NEXT2
    MOV DPTR,#TAB2
    NEXT2:CJNE A,#3,NEXT3
    MOV DPTR,#TAB3
    NEXT3:
    
    MOV A,R4
    MOV R3,A
    RL A
    MOVC A,@A+DPTR
    MOV R1,A
    MOV A,R4
    RL A
    INC A
    MOVC A,@A+DPTR
    MOV R2,A
   RET

     FA:
    MOV TH0,R1
    MOV TL0,R2
    CPL P3.7
    CPL P3.6
    RETI


     DELAY:
      MOV R6,#187
      LP1:MOV R5,#248
       DJNZ R5,$
      DJNZ R6,LP1
      RET

      DISPLAY:
    MOV A,R4
    MOV DPTR,#TABLE2
    MOVC A,@A+DPTR
    MOV P1,A
    RET


     TABLE2:
     DB 0DH,25H,9FH,1FH          ;.3,.2,.1,7
     DB 0DH,41H,49H,99H          ;.3,6,5,4
     DB 1FH,0DH,25H,9FH          ;7.,3,2,1
     DB 1FH,41H,49H,49H          ;7.,6.,5.,5.

      TAB1:              ;低音
   DW 64777,64684,64580,64524     ;3,2,1,7。
   DW 65536,64400,64260,64103     ;3.,6.,5.,4.
   DW 65536,64021,63853,63628     ;7,3.,2.,1.
   DW 63511,63263,65536,62984     ;7,6.,5.,5.


    TAB2:
   DW 65157,65110,65058,65030     ;.3,.2,.1,7
   DW 65536,64968,64898,64820     ;.3,6,5,4
   DW 65536,64777,64684,64580     ;7.,3,2,1
   DW 64524,64400,65536,64260     ;7.,6.,5.,5.

TAB3:                      ;高音
   DW 65157,65110,65058,65283     ;.3,.2,.1,7
   DW 65536,65252,65217,65178     ;.3,6,5,4
   DW 65536,65157,65110,65058     ;7.,3,2,1
   DW 65030,64968,65536,64898     ;7.,6.,5.,5.


⌨️ 快捷键说明

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