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

📄 电子琴.asm

📁 基于Proteus的51系列单片机设计与仿真
💻 ASM
字号:
        J0  EQU  50H        ;定义内存块作计数之用
        ORG 0000H
        AJMP MAIN
        ORG 0100H
 MAIN: MOV J0,#0FH;     ;给计数器赋初值
 DIAN:JNB P2.7,K6_0 ;1  按键1发出哆
      JNB P2.6,K6_1 ;2
      JNB P2.5,K6_2 ;3 
      JNB P2.4,K6_3 ;4 
      JNB P2.3,K6_4 ;5
      JNB P2.2,K6_5 ;6
      JNB P1.0,K5   ;7
      JNB P1.1,K4   ;1
      JNB P1.2,K4_2 ;2
      AJMP DIAN
 ;------------------------------------- 
  ;用占空比来输出不同的频率
  K6_0: CLR P0.0    ;1     
       ACALL YSH0FS
       SETB P0.0       
       ACALL YSH02S
       AJMP DIAN
       RET   
 K6_1: CLR P0.0    ;2 
      ACALL YSH0ES
      SETB P0.0       
      ACALL YSH02S
      AJMP DIAN
      RET   
 K6_2: CLR P0.0      
      ACALL YSH0DS
      SETB P0.0       
      ACALL YSH02S
      AJMP DIAN
      RET   
   K6_3: CLR P0.0    
      ACALL YSH0CS
      SETB P0.0       
      ACALL YSH02S
      AJMP DIAN
      RET     
K6_4: CLR P0.0       
      ACALL YSH0BS
      SETB P0.0       
      ACALL YSH02S
      AJMP DIAN
      RET     
  K6_5: CLR  P0.0 
       ACALL YSH0AS
       SETB P0.0       
       ACALL YSH01S
       AJMP DIAN
       RET    
  K5: CLR P0.0     ;7
      ACALL YSH09S
      SETB P0.0       
      ACALL YSH03S
      AJMP DIAN
      RET   
   K4:  CLR P0.0       
      ACALL YSH09S
      SETB P0.0       
      ACALL YSH01S
       AJMP DIAN
       RET    
 K4_2:CLR P0.0       
      ACALL YSH08S
      SETB P0.0       
      ACALL YSH01S
       AJMP DIAN
       RET        
  K4_3:CLR P0.0       
      ACALL YSH07S
      SETB P0.0       
      ACALL YSH01S
      AJMP DIAN
       RET            
  K7: CLR P0.0
      ACALL YSH0AS
      SETB P0.0       
      ACALL YSH02S
      AJMP DIAN
      DJNZ J0,K7
      RET
  K7_: CLR P0.0
      ACALL YSH03S
      SETB P0.0       
      ACALL YSH03S
      AJMP DIAN
      RET     
   K8: CLR P0.0
      ACALL YSH04S
      SETB P0.0       
      ACALL YSH02S
      AJMP DIAN
      RET 
   K9: CLR P0.0
      ACALL YSH01S
      SETB P0.0       
      ACALL YSH01S
      AJMP DIAN
      RET          
    K1: CLR P0.0
      ACALL YSH04S
      SETB P0.0       
      ACALL YSH06S
      AJMP DIAN
       RET 
   K2: CLR P0.0
      ACALL YSH03S
      SETB P0.0       
      ACALL YSH06S
      AJMP DIAN
      RET
  K0_:SETB  P0.0
       ACALL YSH05S
       SETB P0.0       
       ACALL YSH05S
       AJMP DIAN
       RET
   K4_: CLR P0.0
      ACALL YSH06S
      SETB P0.0       
      ACALL YSH07S
      AJMP DIAN
       RET
  K3: CLR P0.0
      ACALL YSH06S
      SETB P0.0       
      ACALL YSH08S
      AJMP DIAN
       RET        
   YSH01S:  MOV R3,#01H
  LOOP01:  MOV R4,#01H
  LOOP011: MOV R5,#03AH
  XHD01:   DJNZ R5,XHD01
          DJNZ R4,LOOP011
          DJNZ R3,LOOP01
          RET                
   YSH02S:  MOV R3,#01H
  LOOP02:  MOV R4,#01H
  LOOP021: MOV R5,#04AH
  XHD02:   DJNZ R5,XHD02
          DJNZ R4,LOOP021
          DJNZ R3,LOOP02
          RET         
  YSH03S:  MOV R3,#01H
  LOOP03:  MOV R4,#01H
  LOOP031: MOV R5,#05AH
  XHD03:   DJNZ R5,XHD03
          DJNZ R4,LOOP031
          DJNZ R3,LOOP03
          RET   
  YSH04S:  MOV R3,#01H
  LOOP04:  MOV R4,#01H
  LOOP041: MOV R5,#06AH
  XHD04:   DJNZ R5,XHD04
          DJNZ R4,LOOP041
          DJNZ R3,LOOP04
          RET   
  YSH05S:  MOV R3,#01H
  LOOP05:  MOV R4,#01H
  LOOP051: MOV R5,#07AH
  XHD05:   DJNZ R5,XHD05
          DJNZ R4,LOOP051
          DJNZ R3,LOOP05
          RET 
   YSH06S:  MOV R3,#01H
  LOOP06:  MOV R4,#01H
  LOOP061: MOV R5,#08AH
  XHD06:   DJNZ R5,XHD06
          DJNZ R4,LOOP061
          DJNZ R3,LOOP06
          RET       
   YSH07S:  MOV R3,#01H
  LOOP07:  MOV R4,#03H
  LOOP071: MOV R5,#03AH
  XHD07:   DJNZ R5,XHD07
          DJNZ R4,LOOP071
          DJNZ R3,LOOP07
          RET  
  YSH08S:  MOV R3,#01H
  LOOP08:  MOV R4,#05H
  LOOP081: MOV R5,#03AH
  XHD08:   DJNZ R5,XHD08
          DJNZ R4,LOOP081
          DJNZ R3,LOOP08
          RET 
  YSH09S:  MOV R3,#01H
  LOOP09:  MOV R4,#07H
  LOOP091: MOV R5,#04AH
  XHD09:   DJNZ R5,XHD09
          DJNZ R4,LOOP091
          DJNZ R3,LOOP09
          RET   
  YSH0AS:  MOV R3,#01H
  LOOP0A:  MOV R4,#07H
  LOOP0A1: MOV R5,#05AH
  XHD0A:   DJNZ R5,XHD0A
          DJNZ R4,LOOP0A1
          DJNZ R3,LOOP0A
          RET         
  YSH0BS:  MOV R3,#01H
  LOOP0B:  MOV R4,#08H
  LOOP0B1: MOV R5,#05AH
  XHD0B:   DJNZ R5,XHD0B
          DJNZ R4,LOOP0B1
          DJNZ R3,LOOP0B
          RET     
  YSH0CS:  MOV R3,#01H
  LOOP0C:  MOV R4,#09H
  LOOP0C1: MOV R5,#05AH
  XHD0C:   DJNZ R5,XHD0C
          DJNZ R4,LOOP0C1
          DJNZ R3,LOOP0C
          RET  
  YSH0DS:  MOV R3,#01H
  LOOP0D:  MOV R4,#0AH
  LOOP0D1: MOV R5,#05AH
  XHD0D:   DJNZ R5,XHD0D
          DJNZ R4,LOOP0D1
          DJNZ R3,LOOP0D
          RET     
  YSH0ES:  MOV R3,#01H
  LOOP0E:  MOV R4,#0BH
  LOOP0E1: MOV R5,#05AH
  XHD0E:   DJNZ R5,XHD0E
          DJNZ R4,LOOP0E1
          DJNZ R3,LOOP0E
          RET           
  YSH0FS:  MOV R3,#01H
  LOOP0F:  MOV R4,#0CH
  LOOP0F1: MOV R5,#05AH
  XHD0F:   DJNZ R5,XHD0F
          DJNZ R4,LOOP0F1
          DJNZ R3,LOOP0F
          RET           
  YSH0GS:  MOV R3,#01H
  LOOP0G:  MOV R4,#0DH
  LOOP0G1: MOV R5,#05AH
  XHD0G:   DJNZ R5,XHD0G
          DJNZ R4,LOOP0G1
          DJNZ R3,LOOP0G
          RET     
          END

⌨️ 快捷键说明

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