
你的程序最后缺少:
code ends
end start
===================================
DATA SEGMENT PARA 'DATA'
MUSIC_F DW 440,392,330,392,524,440,392,440
DW 330,392,440,392,330, 262,220,392,330,294
DW 294,330,392,392,440,330,294,262
DW 392,330,294,262,220,262,196,0
MUSIC_T DW 32000,16000,32000,32000,32000,16000,16000,32000
DW 32000,16000,16000,32000,32000,16000,16000,16000,16000, 32000
DW 32000,16000,32000,16000,16000,32000,32000,32000
DW 32000,16000,16000,16000,16000,32000
DATA ENDSCODE SEGMENT PARA 'CODE'
ASSUME CS:CODE,DS:DATA
START1 PROC FAR
start:
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA SI,MUSIC_F
NEXT: LEA BP,MUSIC_T
START2: MOV DI,[SI]
CMP DI,0
JE EXIT
MOV BX,DS:[BP]
MOV AL,0B6H ;向 8253 计数器 2 写控制字(主板规定)
OUT 43H,AL ;方式 3、双字节写和二进制计数方式写到控制口
MOV DX,12H ;设置被除数
MOV AX,3208H ;其商(AX)为预置值
DIV DI
OUT 42H,AL ;先送低位数据
MOV AL,AH
OUT 42H,AL ;再送高位数据
IN AL,61H ;读 8255 端口 B(61H)原值
MOV AH,AL
OR AL,03H
OUT 61H,AL ;使与门打开,GETE2 有效,扬声器响
WAIT1:MOV CX,2801H
DELAY:LOOP DELAY ;时间延迟次数为 2801H 次
DEC BX ;循环持续 BX 次
JNZ WAIT1
MOV AL,AH ;写回 61H 口原值,关闭扬声器
OUT 61H,AL
ADD SI,2
ADD BP,2
JMP START2
EXIT: MOV AL,48H
OUT 61H,AL
RET
START1 ENDP
code ends
end start
只有音乐发声汇编程序,没有加入LED灯,供参考。数据代码已改为小星星发声
;
ORG 0000H
SJMP MAIN
ORG 0BH
AJMP TIME0
;主程序
MAIN: MOV SP,#60
MOV TMOD,#01H ;T0定时工作方式
MOV IE,#82H ;CPU 中断允许,T0中断允许
START0: MOV 30H,#00H ;TABLE 相对地址指针
NEXT: MOV A,30H
MOV DPTR,#TABLE ;到TABLE处取 简谱码 节拍 码
MOVC A,@A+DPTR
MOV R2,A ;取到的简谱码 节拍码 暂存于R2中
JZ ENDF ;取到 00 结束
ANL A,#0FH ;否,取低四位 节拍 码
MOV R5,A ;将节拍码存于R5中
MOV A,R2 ;简谱码 节拍 码 给A
SWAP A ;高4位 与 低4位 交换
ANL A,#0FH ;取简谱 码
JNZ SING ;取到的简谱 码不是0,则去发声
CLR TR0 ;取到0 则不发声
SJMP DLY1 ;节拍延时子程序( 随节拍码变化,延时时间不同)
;---------------发声-----------------------
SING: DEC A ;取到的简谱码减1
;(简谱码计数值16位数据存储首地址从TABLE1 《相对地址》0处开始放起,所以要减1)
MOV 22H,A ;存入(22H)中
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2
MOV DPTR,#TABLE1
;简谱码转换为相应定时器16位计数值
MOVC A,@A+DPTR ;到TABLE1取相应的高字节计数值
MOV TH0,A ;高字节计数值存入TH0和(21H)中
MOV 21H,A
MOV A,22H ;减1的简谱码给A
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2
INC A ;A 增加 取下一个字节计数值
;简谱码转换为相应定时器16位计数值
MOVC A,@A+DPTR ;到TABLE1取相应的低字节计数值
MOV TL0,A ;低字节计数值存入TL0和(20H)中
MOV 20H,A
SETB TR0 ;启动T0定时器让喇叭发出不同频率声音
;---------------节拍延时-------------------
DLY1: ACALL DELAY ;基本单位时间为1/4拍 187ms
INC 30H ;取下一个简谱码 节拍 码
SJMP NEXT
;---------------歌放完结束---------------
ENDF: CLR TR0 ;关闭T0定时器
AJMP START0 ;反复循环
;T0中断子程序(用来驱动喇叭发出不同频率声音)
TIME0: PUSH ACC
PUSH PSW
MOV TL0,20H ;重装计数值
MOV TH0,21H
CPL P37 ;驱动发声
POP PSW
POP ACC
RETI
;节拍延时187ms
DELAY: MOV R7,#187 ;187ms延时子程序
DLY2: MOV R4,#02
DLY3: MOV R3,#248
DJNZ R3,$
DJNZ R4,DLY3
DJNZ R7,DLY2
DJNZ R5,DELAY
RET
;音符T值表(用来让定时器发出不同的频率)DW 表示一个 计数值 占两个字节存储单元
TABLE1: DW 64260,64400,64524,64580,64684 ;低音SO 低音LA 低音SI /中音DO 中音RE
DW 64777,64820,64898,64968,65030 ;中音MI 中音FA 中音SO 中音LA 中音SI
DW 65058,65110,65157,65178,65217 ;高音DO 高音RE 高音MI 高音FA 高音SO
;简谱码 节拍码(高4位简谱码 ,低4位节拍码)
TABLE: DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -
DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-
DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-
DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-
DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -
DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-
END
加入了LED灯,水平有限,效果有点不太好
;
ORG 0000H
SJMP MAIN
ORG 0BH
AJMP TIME0
;主程序
MAIN: MOV SP,#60
MOV TMOD,#01H ;TO定时工作方式
MOV IE,#82H ;CPU 中断允许,TO中断允许
START0: MOV 30H,#00H ;TABLE 相对地址指针
NEXT: MOV A,30H
MOV DPTR,#TABLE ;到TABLE处取 简谱码 节拍 码
MOVC A,@A+DPTR
MOV R2,A ;取到的简谱码 节拍码 暂存于R2中
JZ ENDF ;取到 00 结束
ANL A,#0FH ;否,取低四位 节拍 码
MOV R5,A ;将节拍码存于R5中
MOV A,R2 ;简谱码 节拍 码 给A
SWAP A ;高4位 与 低4位 交换
ANL A,#0FH ;取简谱 码
JNZ SING ;取到的简谱 码不是0,则去发声
CLR TR0 ;取到0 则不发声
SJMP DLY1 ;节拍延时子程序( 随节拍码变化,延时时间不同)
;---------------发声-----------------------
SING: DEC A ;取到的简谱码减1
;(简谱码计数值16位数据存储首地址从TABLE1 《相对地址》0处开始放起,所以要减1)
MOV 22H,A ;存入(22H)中
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2
MOV DPTR,#TABLE1
;简谱码转换为相应定时器16位计数值
MOVC A,@A+DPTR ;到TABLE1取相应的高字节计数值
MOV TH0,A ;高字节计数值存入TH0和(21H)中
MOV 21H,A
MOV A,22H ;减1的简谱码给A
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2
INC A ;A 增加 取下一个字节计数值
;简谱码转换为相应定时器16位计数值
MOVC A,@A+DPTR ;到TABLE1取相应的低字节计数值
MOV TL0,A ;低字节计数值存入TL0和(20H)中
MOV 20H,A
SETB TR0 ;启动T0定时器让喇叭发出不同频率声音
;---------------节拍延时-------------------
DLY1: ACALL DELAY ;基本单位时间为1/4拍 187ms
INC 30H ;取下一个简谱码 节拍 码
CPL P10 LED灯 闪烁
CPL P11
CPL P12
CPL P13
CPL P14
CPL P15
CPL P16
CPL P17
SJMP NEXT
;---------------歌放完结束---------------
ENDF: CLR TR0 ;关闭T0定时器
AJMP START0 ;反复循环
;T0中断子程序(用来驱动喇叭发出不同频率声音)
TIME0: PUSH ACC
PUSH PSW
MOV TL0,20H ;重装计数值
MOV TH0,21H
CPL P37 ;驱动发声
POP PSW
POP ACC
RETI
;节拍延时187ms
DELAY: MOV R7,#187 ;187ms延时子程序
DLY2: MOV R4,#02
DLY3: MOV R3,#248
DJNZ R3,$
DJNZ R4,DLY3
DJNZ R7,DLY2
DJNZ R5,DELAY
RET
;音符T值表(用来让定时器发出不同的频率)DW 表示一个 计数值 占两个字节存储单元
TABLE1: DW 64260,64400,64524,64580,64684 ;低音SO 低音LA 低音SI /中音DO 中音RE
DW 64777,64820,64898,64968,65030 ;中音MI 中音FA 中音SO 中音LA 中音SI
DW 65058,65110,65157,65178,65217 ;高音DO 高音RE 高音MI 高音FA 高音SO
;简谱码 节拍码(高位简谱码 ,低位节拍码)
TABLE: DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 - -表示有节拍
DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-
DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-
DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-
DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -
DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-
END
OUT BIT P23 //该引脚接蜂鸣器
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MOV B,#00H ;表序号清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A
SETB TR0 ;启动计数
MUSIC2:
NOP
CPL OUT
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
; INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H
END
NUM EQU 30H
UP EQU P36
DN EQU P37
ORG 0000H
AJMP START ;Fosc=12MHz
ORG 000BH ;T0 中断入口地址
AJMP INT_T0
ORG 001BH ;T1 中断入口地址
AJMP INT_T1
START:
MOV SP, #60H
MOV TMOD, #11H
MOV IE, #8AH
MOV IP, #08H ;T1中断优先于T0中断
MOV TH1, #3CH
MOV TL1, #0BH ;以上为系统初始化,T=60ms
W1: MOV P2, #01110001B ;等待提示"F" ,01110001
LCALL GETKEY
CJNE A, #0FFH, W1
MOV A, B
CJNE A, #0AH, W2
LCALL KEY_A ;输入键是'A',转KEY_A
SJMP W1
W2: CJNE A, #0BH, W3
LCALL KEY_B ;输入键是'B',转KEY_B
W3: CJNE A, #0CH, W4
LCALL KEY_C ;输入键是'C',转KEY_C
W4: CJNE A, #0DH, W5
LCALL KEY_D
SJMP W1 ;输入键是'D',转KEY_D
W5: CJNE A,#0EH,W6 ;下一首
INC NUM
MOV A,NUM
CJNE A,#4,W51
W51:
JC W52
MOV NUM,#0
W52:
MOV A,NUM
SJMP D0
W6: CJNE A,#0FH,W7 ;上一首
MOV A,NUM
JNZ W61
MOV NUM,#4
W61:
DEC NUM
MOV A,NUM
SJMP D0
W7:
SJMP W1
KEY_A: ;从1~4按顺序播放
LCALL MUSIC1 ;乐曲《我和你》
LCALL MUSIC2 ;乐曲《万水千山总是情》
LCALL MUSIC3 ;乐曲《送别》
LCALL MUSIC4 ;乐曲《北京欢迎您》
RET
KEY_B: ;从1~4循环播放
T11: LCALL KEY_A
SJMP T11
RET
KEY_C: ;循环播放某一乐曲
T3: LCALL GETWORD
CJNE A, #0FFH, T3
MOV A, B
D0:
JNZ D1
SJMP E0
D1: DEC A
JNZ D2
SJMP E1
D2: DEC A
JNZ E3
SJMP E2
E0: LCALL MUSIC1 ;乐曲《我和你》
SJMP E0
E1: LCALL MUSIC2 ;乐曲《万水千山总是情》
SJMP E1
E2: LCALL MUSIC3 ;乐曲《送别》
SJMP E2
E3: LCALL MUSIC4 ;乐曲《北京欢迎您》
SJMP E3
RET
KEY_D: ;从某一乐曲开始播放,播放完后停止
T2: LCALL GETWORD
CJNE A, #0FFH, T2
MOV A, B
CJNE A, #00H, B1
SJMP C0
B1: CJNE A, #01H, B2
SJMP C1
B2: CJNE A, #02H, C3
SJMP C2
C0: LCALL MUSIC1 ;乐曲《我和你》
C1: LCALL MUSIC2 ;乐曲 《万水千山总是情》
C2: LCALL MUSIC3 ;乐曲《送别》
C3: LCALL MUSIC4 ;乐曲《北京欢迎您》
RET
MUSIC1: ;第一首《我和你》
MOV P2, #00000110B ;显示1,00000110
MOV R5, #11111001B
MOV 52H, #HIGH TABLE10
MOV 53H, #LOW TABLE10
MOV NUM,#0
LCALL music
RET
MUSIC2: ;第二首《万水千山总是情》
MOV P2, #01011011B ;显示2,01011011
MOV R5, #10100100B
MOV 52H, #HIGH TABLE20
MOV 53H, #LOW TABLE20
MOV NUM,#1
LCALL music
RET
MUSIC3: ;第三首《送别》
MOV P2, #01001111B ;显示3,01001111
MOV R5, #10110000B
MOV 52H, #HIGH TABLE30
MOV 53H, #LOW TABLE30
MOV NUM,#2
LCALL music
RET
MUSIC4: ;第四首《北京欢迎您》
MOV P2, #01100110B ;显示4,01100110
MOV R5, #10011001B
MOV 52H, #HIGH TABLE40
MOV 53H, #LOW TABLE40
MOV NUM,#3
LCALL music
RET
music: MOV R3,#00H ;音乐解码器
NEXT20:
MOV A,P3
ORL A,#0C0H
MOV P3,A
MOV A,P3
CPL A
ANL A,#0C0H
JZ NEXT21
POP ACC
POP ACC
LJMP W1
RET
NEXT21:
MOV A, R3
MOV DPH, 52H
MOV DPL, 53H
MOVC A, @A+DPTR
MOV R2, A
JZ STOP
ANL A, #0FH
MOV R1, A
MOV A, R2
SWAP A
ANL A, #0FH
JNZ SING
CLR TR0
JMP W11
;----------------------------------------------------------
SING:
DEC A
MOV 22H, A
RL A
MOV DPTR, #TABLE00
MOVC A, @A+DPTR
MOV TH0, A
MOV 21H, A
MOV A, 22H
RL A
INC A
MOVC A, @A+DPTR
MOV TL0, A
MOV 20H, A
SETB TR0
SETB TR1
W11:
LCALL DELAY3
INC R3
LJMP NEXT20
;-----------------------------------------------------------
STOP:
CLR TR0
CLR TR1
RET
;
;定时器0中断子程序
;
INT_T0:
CLR TR0
MOV TL0, 20H
MOV TH0, 21H
CPL P30
SETB TR0
RETI
;
;定时器1中断子程序
;
INT_T1:
CLR TR1
CLR TR0
LCALL KEY_E
MOV TH1, #3CH
MOV TL1, #0BH
DJNZ 60H, OUT
MOV 60H, #20
OUT:
SETB TR1
RETI
KEY_E:
JB P31, L2 ;中断键盘检测
LCALL DELAY2 ;消除抖动
JB P31, L2 ;如果是高电平就跳到L2
JNB P31, $ ;如果仍然是低电平就执行中断程序
MOV P2, #0111100B ;让LED显示E,01111001
L3: JB P31, $ ;检测低电平,直到低电平时才跳出该指令
LCALL DELAY2
JB P31, L3
JNB P31, $ ;如果再来一个高电平才跳出中断
MOV P2,R5
L2: SETB TR0
RET
GETKEY: ;读A B C D键盘子程序
SA: JB P10, SB ;读A,是高电平表示没有按键,跳转到SB
LCALL DELAY2
JB P10, SA
JNB P10, $
MOV P2, #01110111B ;显示A,01110111
MOV R5, #10001000B
MOV A, #0FFH
MOV B, #0AH
RET
SB: JB P11, C11 ;读B,是高电平表示没有按键按下,跳转到C11
LCALL DELAY2
JB P11, SB
JNB P11, $
MOV P2, #01111100B ;显示B,01111100
MOV R5, #10000011B
MOV A, #0FFH
MOV B, #0BH
RET
C11:JB P12, ED1 ;读C
LCALL DELAY2
JB P12, C11
JNB P12, $
MOV P2, #00111001B ;显示C,00111001
MOV R5, #11000110B
MOV A, #0FFH
MOV B, #0CH
RET
ED1:
JB P13, L0 ;读D
LCALL DELAY2
JB P13, ED1
JNB P13, $
MOV P2, #01011110B ;显示D,01011110
MOV R5, #10100001B
MOV A, #0FFH
MOV B, #0DH
L0: JB UP,L01
LCALL DELAY2
JB UP,L01
JNB UP,$
MOV A,#0FFH
MOV B,#0EH
RET
L01:
JB DN,L02
LCALL DELAY2
JB DN,L02
JNB DN,$
MOV A,#0FFH
MOV B,#0FH
L02:
RET
GETWORD: ;读音乐序号子程序
S1: JB P14, S2 ;读1键
LCALL DELAY2
JB P14, S1
JNB P14, $
MOV P2, #00000110B ;显示1
MOV R5, #11111001B
MOV A, #0FFH
MOV B, #00H
RET
S2: JB P15, S3 ;读2键
LCALL DELAY2
JB P15, S2
JNB P15, $
MOV P2, #01011011B ;显示2
MOV R5, #10100100B
MOV A, #0FFH
MOV B, #01H
RET
S3: JB P16,S4 ;读3键
LCALL DELAY2
JB P16,S3
JNB P16,$
MOV P2,#01001111B ;显示3
MOV R5,#10110000B
MOV A,#0FFH
MOV B,#02H
RET
S4: JB P17, L1 ;读4键
LCALL DELAY2
JB P17, S1
JNB P17, $
MOV P2, #01100110B ;显示4
MOV R5, #10011001B
MOV A, #0FFH
MOV B, #03H
L1: RET
DELAY: ;延时子程序
PUSH 0 ;保存现场
PUSH 1
MOV 0, #0H
DELAY1: MOV 1, #0H
DJNZ 1, $
DJNZ 0, DELAY1
POP 1 ;恢复现场
POP 0
RET
DELAY2: MOV 41H, #100 ;延时子程序2
F1: MOV 42H, #250
DJNZ 42H, $
DJNZ 41H, F1
RET
DELAY3: ;延时子程序3
MOV R7, #2
W22: MOV R4, #125
W33: MOV R0, 248
DJNZ R0, $
DJNZ R4, W33
DJNZ R7, W22
DJNZ R1, DELAY3
RET
TABLE00: ;频率表
DW 64260,64400,64524,64580 ;简码值 低音5, 低音6, 低音7,1
DW 64684,64777,64820,64898 ; 简码值 2,3,4,5
DW 64968,65030,65058,65110 ; 简码值 6,7,高音1,高音
DW 65157,65178,65217 ;简码值 高音3,高音4,高音5
;--------------------------------------------------------------------
;第一首《我和你》
;--------------------------------------------------------------------
TABLE10: DB 64H,82H,42H,48H
DB 54H,64H,18H
DB 44H,54H,64H,84H
DB 5CH
DB 64H,84H,44H,04H,42H
DB 54H,64H,28H
DB 54H,14H,54H,64H
DB 4CH
DB 98H,88H
DB 98H,48H
DB 64H,24H,64H,84H
DB 5CH
DB 64H,82H,42H,48H
DB 54H,64H, 28H
DB 54H,14H,54H,34H
DB 4CH
DB 00H
;--------------------------------------------------------------------
;第二首《万水千山总是情》
;--------------------------------------------------------------------
TABLE20: DB 64H,74H,84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H, 44H,54H,64H,84H,94H,64H,5CH
DB 64H,74H,84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H, 44H,64H,54H,04H,42H,24H,44H,4CH
DB 64H,84H,9CH,0A4H,94H,74H,84H,04H,92H,8CH,64H,88H
DB 64H,84H,9CH,0A4H,0A4H,94H,84H,64H,5CH
DB 64H,74H, 84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H,44H,64H,54H,42H,24,44H,4CH
DB 00H
;--------------------------------------------------------------------
;第三首《送别》
;--------------------------------------------------------------------
TABLE30: DB 84H,62H,82H,0B8H
DB 94H,0B2H,92H,88H
DB 84H,42H,52H,64H,52H,44H
DB 5CH
DB 84H,62H,82H,0B4H,04H,82H
DB 94H,0B4H, 88H
DB 84H,52H,62H,74H,04H,32H
DB 4CH
DB 94H,0B4H,0B8H
DB 0A4H,92H,0A2H,0B8H
DB 92H,0A2H,0B2H,92H,92H,82H,62H,42H
DB 5CH
DB 84H,62H,82H,0B4H,04H,0A2H
DB 94H,0B4H,88H
DB 84H,52H,62H,74H,04H,32H
DB 4CH
DB 00H
;--------------------------------------------------------------------
;第四首《北京欢迎您》
;--------------------------------------------------------------------
TABLE40: DB 62H,82H,62H,52H,12H
DB 62H,52H,12H,64H
DB 62H,52H,22H,42H
DB 62H,54H
DB 52H,42H,22H,42H
DB 52H,62H,82H,52H
DB 62H,92H,82H,12H
DB 52H,44H
DB 52H,42H,22H,42H
DB 52H,62H,82H,52H
DB 62H,92H,82H,82H
DB 68H
DB 52H,62H,52H,42H
DB 82H,92H,64H
DB 22H,62H,64H
DB 54H,64H
DB 64H,84H
DB 0B2H,82H,94H
DB 02H,92H,82H,62H
DB 62H, 82H,88H
DB 00H
END
以上就是关于用汇编语言来实现音乐播放程序设计,编译的时候最后一行总是提示报错,求大神告诉我原因呀。全部的内容,包括:用汇编语言来实现音乐播放程序设计,编译的时候最后一行总是提示报错,求大神告诉我原因呀。、单片机 音乐程序编写 歌曲《小星星》、跪求基于51单片机的汇编语言音乐盒程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)