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

📄 电子琴完成版.asm

📁 在单片机最小系统上实现的电子琴制作
💻 ASM
字号:
ORG  0000H
LJMP K1
ORG 001BH
LJMP TIME
K1: CLR P2.5     
	MOV  P3,#11101111B
    JB   P3.3,K2
    LCALL DO
K2:	MOV  P3,#11011111B
    JB   P3.3,K3
	LCALL RE
K3: MOV  P3,#10111111B
    JB   P3.3,K4
	LCALL MI
K4: MOV  P3,#01111111B
	JB   P3.3,K5
	LCALL FA
K5: MOV  P3,#11101111B
    JB   P3.2,K6
	LCALL SO
K6: MOV  P3,#11011111B
    JB   P3.2,K7
	LCALL LA
K7: MOV  P3,#10111111B
    JB   P3.2,K8
	LCALL SI
K8: MOV P3,#01111111B
    JB P3.2,K1
	LJMP MUSIC
DO: MOV  TMOD,#01H
    MOV  TL0,#44H
	MOV  TH0,#0FCH
	MOV  IE,#00H
	SETB TR0
LP1: JBC TF0,LP2
     LJMP LP1
LP2: CPL P2.5
     MOV TH0,#0FCH
     MOV TL0,#44H
	 CLR TF0
	 JNB P3.3,LP1
	 CLR TR0
	 CLR P2.5
	 RET
RE: MOV  TMOD,#01H
    MOV  TL0,#0ACH
	MOV  TH0,#0FCH
	MOV  IE,#00H
	SETB TR0
LP3: JBC TF0,LP4
     LJMP LP3
LP4: CPL P2.5
     MOV TH0,#0FCH
     MOV TL0,#0ACH
	 CLR TF0
	 JNB P3.3,LP3
	 CLR TR0
	 CLR P2.5
	 RET
MI: MOV  TMOD,#01H
    MOV  TL0,#09H
	MOV  TH0,#0FDH
	MOV  IE,#00H
	SETB TR0
LP5: JBC TF0,LP6
     LJMP LP5
LP6: CPL P2.5
     MOV TH0,#0FDH
     MOV TL0,#09H
	 CLR TF0
	 JNB P3.3,LP5
	 CLR TR0
	 CLR P2.5
	 RET
FA: MOV  TMOD,#01H
    MOV  TL0,#34H
	MOV  TH0,#0FDH
	MOV  IE,#00H
	SETB TR0
LP7: JBC TF0,LP8
     LJMP LP7
LP8: CPL P2.5
     MOV TH0,#0FDH
     MOV TL0,#34H
	 CLR TF0
	 JNB P3.3,LP7
	 CLR TR0
	 CLR P2.5
	 RET 
SO: MOV  TMOD,#01H
    MOV  TL0,#82H
	MOV  TH0,#0FDH
	MOV  IE,#00H
	SETB TR0
LP9: JBC TF0,LPA
     LJMP LP9
LPA: CPL P2.5
     MOV TH0,#0FDH
     MOV TL0,#82H
	 CLR TF0
	 JNB P3.2,LP9
	 CLR TR0
	 CLR P2.5
	 RET
LA: MOV  TMOD,#01H
    MOV  TL0,#0C8H
	MOV  TH0,#0FDH
	MOV  IE,#00H
	SETB TR0
LPB: JBC TF0,LPC
     LJMP LPB
LPC: CPL P2.5
     MOV TH0,#0FDH
     MOV TL0,#0C8H
	 CLR TF0
	 JNB P3.2,LPB
	 CLR TR0
	 CLR P2.5
	 RET
SI: MOV  TMOD,#01H
    MOV  TL0,#06H
	MOV  TH0,#0FEH
	MOV  IE,#00H
	SETB TR0
LPE: JBC TF0,LPD
     LJMP LPE
LPD: CPL P2.5
     MOV TH0,#0FEH
     MOV TL0,#06H
	 CLR TF0
	 JNB P3.2,LPE
	 CLR TR0
	 CLR P2.5
	 RET
MUSIC: CLR P2.5
       LJMP BEGIN
       
BEGIN:MOV TMOD,#10H
      MOV IE,#88H
      MOV  00H,#00H
NEXT: MOV A,00H
	  MOV DPTR,#TABLE
	  MOVC A,@A+DPTR
	  CJNE A,#00H,PLAY
	  LJMP STOP
PLAY: MOV R1,A
      ANL A,#0FH
	  MOV R2,A
	  MOV A,R1
	  ANL A,#0F0H
	  SWAP A
MSO:  CJNE A,#01H,MLA
      MOV TH1,#0FDH
	  MOV TL1,#82H
	  MOV R4,#0FDH
	  MOV R3,#82H
	  LJMP START
MLA:  CJNE A,#02H,MSI
      MOV TH1,#0FDH
	  MOV TL1,#0C8H
	  MOV R4,#0FDH
	  MOV R3,#0C8H
	  LJMP START
MSI:  CJNE A,#03H,HDO
      MOV TH1,#0FEH
	  MOV TL1,#06H
	  MOV R4,#0FEH
	  MOV R3,#06H
	  LJMP START
HDO:  CJNE A,#04H,HRE
      MOV TH1,#0FEH
	  MOV TL1,#22H
	  MOV R4,#0FEH
	  MOV R3,#22H
	  LJMP START
HRE:  CJNE A,#05H,HMI
      MOV TH1,#0FEH
	  MOV TL1,#56H
	  MOV R4,#0FEH
	  MOV R3,#56H
	  LJMP START
HMI:  CJNE A,#06H,HFA
      MOV TH1,#0FEH
	  MOV TL1,#85H
	  MOV R4,#0FEH
	  MOV R3,#85H
	  LJMP START
HFA:  CJNE A,#07H,HSO
      MOV TH1,#0FEH
	  MOV TL1,#9AH
	  MOV R4,#0FEH
	  MOV R3,#9AH
	  LJMP START
HSO:  CJNE A,#08H,HLA
      MOV TH1,#0FEH
	  MOV TL1,#0C1H
	  MOV R4,#0FEH
	  MOV R3,#0C1H
	  LJMP START
HLA:  MOV TH1,#0FEH
	  MOV TL1,#0E4H
	  MOV R4,#0FEH
	  MOV R3,#0E4H
	  LJMP START
START:SETB TR1
DEL:  LCALL DELAY
      INC 00H
	  LJMP NEXT
STOP: CLR TR1
      LJMP K1
TIME: PUSH Acc
      PUSH PSW
	  CPL  P2.5
	  MOV TH1,R4
	  MOV TL1,R3
	  POP PSW
	  POP Acc
	  RETI
DELAY:MOV R7,#02H
DELAY1:MOV R6,#125
DELAY2:MOV R5,#252
       DJNZ R5,$	
	   DJNZ R6,DELAY2
	   DJNZ R7,DELAY1
	   DJNZ R2,DELAY
	   RET	 
TABLE:DB 22H,11H,23H,11H,21H,31H,31H,21H,35H,51H,52H,51H,52H,32H,41H,51H,62H,61H,61H
      DB 51H,54H,52H,41H,65H,32H,11H,2EH,11H,21H,41H,51H,64H,62H,51H,65H,61H,51H,41H,51H
	  DB 42H,21H,29H,11H,21H,41H,51H,64H,62H,51H,65H,62H,82H,92H,82H,61H,69H,61H,61H
	  DB 42H,21H,29H,11H,21H,41H,51H,64H,62H,51H,65H,62H,82H,92H,82H,61H,69H,61H,61H
	  DB 54H,52H,41H,53H,41H,21H,61H,61H,72H,62H,52H,41H,53H,61H,63H,62H
	  DB 54H,52H,41H,53H,42H,61H,84H,88H,11H,21H,41H,51H,64H,62H,51H,65H,61H,51H,41H,51H
	  DB 42H,21H,29H,11H,21H,41H,51H,64H,62H,51H,65H,62H,82H,92H,82H,61H,69H,61H,61H
	  DB 54H,52H,41H,52H,41H,22H,61H,61H,72H,62H,52H,41H,52H,61H,64H,62H,54H,52H,41H,53H,42H,21H,44H,4CH
	  DB 00H     
      END
      	

	  	  	  	  	  	   

⌨️ 快捷键说明

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