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

📄 music.asm

📁 用51单片机写的5首音乐
💻 ASM
字号:
;音乐定义字符
;低音为数字前加D,高音前加F,中音前不加数字
;例如低音2,中音3,高音4表示为D2,3,F4
;延时用FFH表示,FEH表示1/8节拍开始与结束
;采用查表算法,计算频率
;晶振12MHZ
;如果仅仅间的唱歌,也许不要这么长的
;但是为了写成万能的歌唱,写了不少哦。
KG1_8  BIT 20H.0
GE_QU   BIT 20H.1
ORG 0000H
JMP MAIN
ORG 000BH
JMP INT
MAIN:
   MOV  20H,#00H
START:
   MOV   TMOD, #01H
   MOV   IE, #82H;T0 --INT
   MOV   IP, #00H
   MOV  35H,#00 ; MUSIC POINTER
   MOV  36H,#00
   MOV  37H,#00
   MOV  38H,#00
   MOV DPTR,#MUSIC
QUZHI:
   CLR TR0
   MOV A,35H
   JB P2.0,QU1
QU:
   INC 38H
   MOV R1,38H
   CALL DL187MS
   CJNE R1,#01,TIAO0
   MOV DPTR,#MUSIC0
   JMP QU0
TIAO0:
   CJNE R1,#02,TIAO1
   MOV DPTR,#MUSIC1
   JMP QU0
TIAO1:
   CJNE R1,#03,TIAO2
   MOV DPTR,#MUSIC2
   JMP QU0
TIAO2:
   CJNE R1,#04,TIAO3
   MOV DPTR,#MUSIC3
   JMP QU0
TIAO3:
   CJNE R1,#05,MAIN
   MOV DPTR,#MUSIC4
   MOV R1,#00
QU0:   MOV 35H,#00
QU1:
   MOVC A,@A+DPTR
   JZ QU0
   MOV 36H,A   ; 存储A值 ,YIN DIAO
   INC 35H
   CJNE A,#0FEH,NEXT
   CPL KG1_8
   JMP QUZHI
NEXT:
   CJNE A,#0FFH,NEXT0
   MOV TH0,24H
   MOV TL0,25H
   SETB TR0
   CALL DL187MS
   JMP QUZHI
NEXT0:
   CLR C
   SUBB A,#10
   JNC BJ    ; C=1,BU SHI ZHONG YIN
   MOV A,36H
   ADD A,#07H ;TIAO ZHENG DAO ZHONG YIN
   JMP SING
BJ: CLR C
   MOV A,36H
   SUBB A,#0E0H
   JNC  GAOYIN ;C=0,GAO YIN
DIYIN:
   MOV A,36H
   ANL A,#0FH
   JMP SING
GAOYIN:
   MOV A,36H
   ANL A,#0FH
   ADD A,#14
   JMP SING
SING:
   PUSH DPH
   PUSH DPL
   MOV DPTR,#MSC_F
   DEC A
   RL A
   MOV 37H,A       ;STORE MUSIC POINTER
   MOVC A,@A+DPTR
   MOV 24H,A
   MOV A,37H
   INC A
   MOVC A,@A+DPTR
   MOV 25H,A
   MOV TH0,24H
   MOV TL0,25H
   SETB TR0
   JB KG1_8,KG
   CALL DL187MS
   CALL DL187MS
   POP DPL
   POP DPH
   JMP QUZHI
KG:CALL DL94MS
   CALL DL94MS
   POP DPL
   POP DPH
OK: JMP QUZHI
INT:
  PUSH PSW
  PUSH A
  MOV TH0,24H
  MOV TL0,25H
  CPL P3.7
  POP A
  POP PSW
  RETI

MUSIC:  ; 生日快乐歌 ,1=F3/4拍,1/4拍=187ms*2,1/8拍=94MS*2
DB  0FEH,0D5H,0D5H,0FEH,0D6H,0D5H,01H,0D7H,0FFH
;    |   1/8   1/8  |
DB  0FEH,0D5H,0D5H,0FEH,0D6H,0D5H,02H,01H,0FFH
DB  0FEH,0D5H,0D5H,0FEH,05H,03H,01H,0D7H,0D6H
DB  0FEH,04H,04H,0FEH,03H,01H,02H,01H,0FFH,00H
MUSIC0: ;两只老虎
DB  1,2,3,1,1,2,3,1,3,4,5,0FFH,3,4,5,0FFH,
DB  0FEH,5,6,5,4,0FEH,3,1,0FEH,5,6,5,4,0FEH,3,1
DB  2,0D5H,1,0FFH,0FFH,2,0D5H,1,0FFH,0FFH,00H
MUSIC1: ;白龙马
DB  3,3,0D6H,0FFH,1,0FEH,0D6H,0D5H,0FEH,0D6H,0FFH
DB  0FEH,0D6H,1,1,1,0FEH,1,0FEH,1,0D6H,0FEH,1,0FEH,2,3,0FEH
DB  3,0FFH,3,5,0D6H,1,0D6H,0FEH,0D6H,0D5H,0FEH,0D3H,0FFH
DB  0FEH,2,2,2,3,0FEH,0D5H,0D7H,0D6H,0FFH,0FFH,0FFH
DB  0FEH,6,6,6,6,0FEH,3,0FEH,5,5,0FFH,5,5,5,3,6,5,0FFH,
DB  4,4,4,4,0FEH,4,0FEH,1,1,1,1,2,1,2,3,6,6,6,6,0FEH
DB  3,0FEH,5,5,0FFH,5,5,5,3,6,5,6,6,6,6,0FEH,0F1H,0FEH,6,5,0FFH
DB  5,5,5,5,0FEH,3,5,0FEH,2,2,1,2,3,2,1,2,3,2,3,5,0FEH,5,0FFH
DB  0FEH,1,2,3,5,0FEH,5,0D7H,0D6H,0FFH,0FFH,0FFH,00
MUSIC2: ; 北京欢迎你1=A2/4 1PAI=1/4 CHANGDU
DB 3,5,3,2,3,2,3,0FFH,3,2,0D6H,1,3,0FFH,2,0FFH
DB 2,1,0D6H,1,2,3,5,2,3,6,5,0D5H,2,0FFH,1,0FFH
DB 2,1,0D6H,1,2,3,5,2,3,6,5,5,3,0FFH,0FFH,0FFH
DB 2,3,2,1,5,6,3,0FFH,0D6H,3,2,2,1,0FFH,0FFH,0FFH
DB 3,5,0F1H,5,6,0FFH,5,6,5,3,3,5,0FFH,5,0FFH
DB 3,5,6,0F1H,0F2H,0F1H,5,3,2,5,3,3,0FFH,00
MUSIC3: ;丢手绢1=4/4
DB 5,3,5,3,0FEH,5,3,2,3,0FEH,5,0FFH,
DB 5,0FEH,5,3,0FEH,6,5,0FEH,3,5,3,2,0FEH,1,2
DB 3,5,0FEH,3,2,1,2,0FEH,3,0FFH,0FEH,6,5,6,5,0FEH
DB 3,6,5,0FFH,0FEH,6,5,6,5,0FEH,2, 3,1,0FFH,0FFH,00
MUSIC4:;我和你,主题曲1=4/4
DB 3,0FFH,5,0FFH,1,0FFH,0FFH,2,0FFH,3,0FFH,0D5H,0FFH,0FFH
DB 1,0FFH,2,0FFH,3,0FFH,0FFH,5,0FFH,2,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,
DB 3,0FFH,5,0FFH,1,0FFH,0FFH,2,0FFH,3,0FFH,0D6H,0FFH,2,0FFH,
DB 0D5H,0FFH,2,0FFH,3,0FFH,1,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 6,0FFH,0FFH,0FFH,5,0FFH,0FFH,0FFH,6,0FFH,0FFH,0FFH,1,0FFH,
DB 0FFH,0FFH,3,0FFH,0D6H,0FFH,3,0FFH,5,0FFH,2,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 3,0FFH,5,0FFH,1,0FFH,0FFH,0FFH,2,0FFH,3,0FFH,0D6H,0FFH,0FFH,0FFH,2,
DB 0FFH,0D5H,0FFH,2,0FFH,3,0FFH,1,0FFH,0FFH,0FFH,0FFH,00
MSC_F:;音乐频率表
DW  63628,63835,64021,64103,64260,64400,64524
;低音 1     2    3       4    5     6     7
DW  64580,64684,64777,64820,64898,64968,65030
;中音
DW  65058,65110,65157,65178,65217,65252,65283
;高音
DL187MS:    ;1/4 PAI
  MOV R6,#187
  JMP DL
DL94MS:    ;1/8 PAI
  MOV R6,#94
DL:
  MOV R7,#2
DL0:
  MOV R5,#248
  DJNZ R5,$
  DJNZ R7,DL0
  DJNZ R6,DL
  RET

⌨️ 快捷键说明

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