1. 单片机设计音乐播放器程序和仿真图(用汇编语言)?急求~谢谢!!!
NUM EQU 30HUP EQU P3.6DN EQU P3.7ORG 0000HAJMP START ;Fosc=12MHzORG 000BH ;T0 中断入口地址AJMP INT_T0ORG 001BH ;T1 中断入口地址AJMP INT_T1START:MOV SP, #60HMOV TMOD, #11HMOV IE, #8AH MOV IP, #08H ;T1中断优先于T0中断MOV TH1, #3CHMOV TL1, #0BH ;以上为系统初始化,T=60msW1: MOV P2, #01110001B ;等待提示"F" ,01110001LCALL GETKEYCJNE A, #0FFH, W1 MOV A, BCJNE A, #0AH, W2LCALL KEY_A ;输入键是'A',转KEY_ASJMP W1W2: CJNE A, #0BH, W3 LCALL KEY_B ;输入键是'B',转KEY_BW3: CJNE A, #0CH, W4 LCALL KEY_C ;输入键是'C',转KEY_CW4: CJNE A, #0DH, W5 LCALL KEY_D SJMP W1 ;输入键是'D',转KEY_DW5: CJNE A,#0EH,W6 ;下一首 INC NUM MOV A,NUM CJNE A,#4,W51W51: JC W52 MOV NUM,#0W52: MOV A,NUM SJMP D0W6: CJNE A,#0FH,W7 ;上一首 MOV A,NUM JNZ W61 MOV NUM,#4W61: DEC NUM MOV A,NUM SJMP D0W7: SJMP W1KEY_A: ;从1~4按顺序播放 LCALL MUSIC1 ;乐曲《我和你》 LCALL MUSIC2 ;乐曲《万水千山总是情》 LCALL MUSIC3 ;乐曲《送别》 LCALL MUSIC4 ;乐曲《北京欢迎您》 RETKEY_B: ;从1~4循环播放T11: LCALL KEY_A SJMP T11 RETKEY_C: ;循环播放某一乐曲T3: LCALL GETWORD CJNE A, #0FFH, T3 MOV A, BD0: JNZ D1 SJMP E0D1: DEC A JNZ D2 SJMP E1D2: DEC A JNZ E3 SJMP E2E0: LCALL MUSIC1 ;乐曲《我和你》 SJMP E0E1: LCALL MUSIC2 ;乐曲《万水千山总是情》 SJMP E1E2: LCALL MUSIC3 ;乐曲《送别》 SJMP E2E3: LCALL MUSIC4 ;乐曲《北京欢迎您》 SJMP E3 RETKEY_D: ;从某一乐曲开始播放,播放完后停止T2: LCALL GETWORD CJNE A, #0FFH, T2 MOV A, B CJNE A, #00H, B1 SJMP C0B1: CJNE A, #01H, B2 SJMP C1B2: CJNE A, #02H, C3 SJMP C2C0: LCALL MUSIC1 ;乐曲《我和你》C1: LCALL MUSIC2 ;乐曲 《万水千山总是情》 C2: LCALL MUSIC3 ;乐曲《送别》C3: LCALL MUSIC4 ;乐曲《北京欢迎您》 RETMUSIC1: ;第一首《我和你》 MOV P2, #00000110B ;显示1,00000110 MOV R5, #11111001B MOV 52H, #HIGH TABLE10 MOV 53H, #LOW TABLE10 MOV NUM,#0 LCALL music RETMUSIC2: ;第二首《万水千山总是情》MOV P2, #01011011B ;显示2,01011011 MOV R5, #10100100B MOV 52H, #HIGH TABLE20 MOV 53H, #LOW TABLE20 MOV NUM,#1 LCALL music RETMUSIC3: ;第三首《送别》 MOV P2, #01001111B ;显示3,01001111 MOV R5, #10110000B MOV 52H, #HIGH TABLE30 MOV 53H, #LOW TABLE30 MOV NUM,#2 LCALL music RETMUSIC4: ;第四首《北京欢迎您》 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 RETNEXT21: 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 TR1W11: LCALL DELAY3 INC R3 LJMP NEXT20;-----------------------------------------------------------STOP: CLR TR0 CLR TR1 RET;***************************************************;定时器0中断子程序;***************************************************INT_T0: CLR TR0 MOV TL0, 20H MOV TH0, 21H CPL P3.0 SETB TR0 RETI;***************************************************;定时器1中断子程序;***************************************************INT_T1: CLR TR1 CLR TR0 LCALL KEY_E MOV TH1, #3CH MOV TL1, #0BH DJNZ 60H, OUT MOV 60H, #20OUT: SETB TR1 RETI KEY_E: JB P3.1, L2 ;中断键盘检测 LCALL DELAY2 ;消除抖动 JB P3.1, L2 ;如果是高电平就跳到L2 JNB P3.1, $ ;如果仍然是低电平就执行中断程序 MOV P2, #0111100B ;让LED显示E,01111001L3: JB P3.1, $ ;检测低电平,直到低电平时才跳出该指令 LCALL DELAY2 JB P3.1, L3 JNB P3.1, $ ;如果再来一个高电平才跳出中断 MOV P2,R5L2: SETB TR0 RETGETKEY: ;读A B C D键盘子程序 SA: JB P1.0, SB ;读A,是高电平表示没有按键,跳转到SB LCALL DELAY2 JB P1.0, SA JNB P1.0, $ MOV P2, #01110111B ;显示A,01110111 MOV R5, #10001000B MOV A, #0FFH MOV B, #0AH RETSB: JB P1.1, C11 ;读B,是高电平表示没有按键按下,跳转到C11 LCALL DELAY2 JB P1.1, SB JNB P1.1, $ MOV P2, #01111100B ;显示B,01111100 MOV R5, #10000011B MOV A, #0FFH MOV B, #0BH RETC11:JB P1.2, ED1 ;读C LCALL DELAY2 JB P1.2, C11 JNB P1.2, $ MOV P2, #00111001B ;显示C,00111001 MOV R5, #11000110B MOV A, #0FFH MOV B, #0CH RETED1: JB P1.3, L0 ;读D LCALL DELAY2 JB P1.3, ED1 JNB P1.3, $ MOV P2, #01011110B ;显示D,01011110 MOV R5, #10100001B MOV A, #0FFH MOV B, #0DHL0: JB UP,L01 LCALL DELAY2 JB UP,L01 JNB UP,$ MOV A,#0FFH MOV B,#0EH RETL01: JB DN,L02 LCALL DELAY2 JB DN,L02 JNB DN,$ MOV A,#0FFH MOV B,#0FHL02: RETGETWORD: ;读音乐序号子程序S1: JB P1.4, S2 ;读1键 LCALL DELAY2 JB P1.4, S1 JNB P1.4, $ MOV P2, #00000110B ;显示1 MOV R5, #11111001B MOV A, #0FFH MOV B, #00H RETS2: JB P1.5, S3 ;读2键 LCALL DELAY2 JB P1.5, S2 JNB P1.5, $ MOV P2, #01011011B ;显示2 MOV R5, #10100100B MOV A, #0FFH MOV B, #01H RETS3: JB P1.6,S4 ;读3键 LCALL DELAY2 JB P1.6,S3 JNB P1.6,$ MOV P2,#01001111B ;显示3 MOV R5,#10110000B MOV A,#0FFH MOV B,#02H RETS4: JB P1.7, L1 ;读4键 LCALL DELAY2 JB P1.7, S1 JNB P1.7, $ MOV P2, #01100110B ;显示4 MOV R5, #10011001B MOV A, #0FFH MOV B, #03HL1: RETDELAY: ;延时子程序 PUSH 0 ;保存现场 PUSH 1 MOV 0, #0HDELAY1: MOV 1, #0H DJNZ 1, $ DJNZ 0, DELAY1 POP 1 ;恢复现场 POP 0 RETDELAY2: MOV 41H, #100 ;延时子程序2F1: MOV 42H, #250 DJNZ 42H, $ DJNZ 41H, F1 RETDELAY3: ;延时子程序3 MOV R7, #2W22: MOV R4, #125W33: MOV R0, 248 DJNZ R0, $ DJNZ R4, W33 DJNZ R7, W22 DJNZ R1, DELAY3 RETTABLE00: ;频率表 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 00HEND
2. 单片机汇编语言流程图
同情你
3. 单片机汇编程序及流程图
要是两年前的我还会,现在的我只能表示同情了~ 哎 这个不难 你还是自己试试~~8950C就能实现了 弄清楚几个功能管脚 就行了
4. 单片机怎么实现演奏两首歌(生日快乐+两只老虎) 汇编语言
;音乐生日快乐的播放
numtim equ 20h
EQUei equ 21h
EQUwei equ 22h
EQUnled equ 23h
EQU 000hORGp startJMPg 00bh
jORGtim0
oJMP100h
ORGart:; JB P3.7,$ ;检测播放按键是否按下
mov tmod,#00000001b
MOV mov ie,#10000010b
MOV mov numtim,#01h
startMOVov 30h,#00h
nextMOVv a,30h
mov MOVr,#table
MOVovc a,@a+dptr
mov r2,a
jz eMOV
anl aJZ0fh
mov r5,a
mov aMOV
swap MOV anl a,#0fh
jnz sing
clr tJNZ
jmp d1
sing: dec aJMP mov 22h,DEC rl aMOV mov dptr,#table1
MOVmovc a,@a+dptr
mov th0,a
mov MOV,a
mov MOV2h
rl aMOV inc a
movc a,@INCptr
mov tl0,a
mov MOV,a
setbMOV0
d1:lcall delay
inc 30h
jmp neINC
end0:clr JMP
jmp start0
tim0:puJMPacc
pushPUSH
mov PUSH2PSW
MOV th0,21h
MOV p1.6 ;由该口输出音频数据
pop psw
pop acc
POPrPSW
dPOPy: mov r7,#02h
d2: mov r4,#1MOV
d3: mov r3,#MOV
djnz r3,MOV djnz r4,d3
djnz r7,d2
djnz r5,delay
ret
table1: RET ;音乐码表
dw 64260,64400,64524,64580
DW dw 64684,64777,64820,64898
DW dw 64968,65030,65058,65110
DW dw 65157,65178,65217
table:dDW82h,01h,81h,94h,84h
DB 0b4h,0a4h,04h
db 82hDB1h,81h,94h,84h
DB 0c4h,0b4h,04h
db 8DB,01h,81h,0f4h,0d4h
DBdb 0b4h,0a4h,94h
db 0e2DB01h,0e1h,0d4h,0b4h
DB db 0c4h,0b4h,04h
db 8DB,01h,81h,94h,84h
DB 0b4h,0a4h,04h
db 82hDB1h,81h,94h,84h
DB 0c4h,0b4h,04h
db 8DB,01h,81h,0f4h,0d4h
DBdb 0b4h,0a4h,94h
db 0e2DB01h,0e1h,0d4h,0b4h
DB db 0c4h,0b4h,04h
db 00DB
TABLE2:DB 0C0H,0F9H,DB4H,0B0H,99H,92H,8DB,0F8H,80H,90H
end
END
我只有生日快乐的程序,希望对你有帮助,从我这个程序你了解了原理,你就可以随意搞了,玩熟悉了就简单了!
5. 在单片机中如何用汇编语言实现音乐的播放
通过送相应频率的脉冲给扬声器。
6. 用单片机汇编语言怎样实现下面步骤
以51单片机为例
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV P3,#0FFH
JNB S0,HL; S0 IS P1.0
SJMP MAIN;
HL:
JNB P1.1,HL1
JNB P1.2,HL2
JNB P1.3,HL3
JNB P1.4,HL4
JNB P1.5,HL5
JNB P1.6,HL6
JNB P1.7,HL7
LJMP HL
HL1: MOV P0,#06H
LJMP HL
HL2: MOV P0,#003H
LJMP HL
HL3: MOV P0,#0EH
LJMP HL
HL4: MOV P0,#05H
LJMP HL; 以下注意 ,无再次检测S1
;HL5: MOV P0,#030H
;LJMP HL
HL5: MOV P0,#050H
LJMP HL
HL6: MOV P0,#060H
LJMP HL
HL7: MOV P0,#000H
LJMP FINAL
FINAL: MOV P0,#000H
END
7. 求 单片机中用汇编语言写的简单的音乐演示
ORG 00H
JMP START
ORG 0BH
JMP TIM0
START:MOV TMOD,#01H
MOV IE,#10000010B
CLR TR0
MOV P2,#0FFH
MOV A,P2
MOV P2,#0FFH
RR A
RR A
RR A
ANL A,#0FH ;将选择的音乐号放入A
MOV 40H,A
JB P3.3,$ ;P3.3 为起始信号 片选信号
START0:MOV 30H,#00H
NEXT: MOV A,40H
JB P3.3,START
CJNE A,#00H,MUSIC1
MOV DPTR,#TABLE ;生日快乐的TABLE
JMP CON
MUSIC1: CJNE A,#01,MUSIC2
MOV DPTR,#TABLE1
JMP CON
MUSIC2:CJNE A,#02,MUSIC3
MOV DPTR,#TABLE2
JMP CON
MUSIC3:CJNE A,#03,MUSIC4
MOV DPTR,#TABLE3
JMP CON
MUSIC4:CJNE A,#04,MUSIC5
MOV DPTR,#TABLE4
JMP CON
MUSIC5:CJNE A,#05,MUSIC6
MOV DPTR,#TABLE5
JMP CON
MUSIC6:CJNE A,#06,MUSIC7
MOV DPTR,#TABLE6
JMP CON
MUSIC7:SETB P2.6
JMP START ;共7首歌,这个时候不发音
CON: MOV A,30H
MOVC A,@A+DPTR
MOV R2,A
JZ END0
ANL A,#0FH
MOV R5,A
MOV A,R2
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
JMP D1
SING: mov 50H,A
MOV A,40H
CJNE A,#00H,MODE1
MOV DPTR,#TABLE0 ;TABLE1
JMP CONT
MODE1: MOV DPTR,#TABLE01
CONT: MOV A,50H
DEC A
MOV 22H,A
RL A
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
D1: CALL DELAY
INC 30H
JMP NEXT
END0: CLR TR0
JMP START0
TIM0: PUSH ACC
PUSH PSW
MOV TL0,20H
MOV TH0,21H
CPL P2.6
POP PSW
POP ACC
RETI
DELAY: MOV R7,#02
D2: MOV R4,#125
D3: MOV R3,#248
;JB P2.7,START
DJNZ R3,$
DJNZ R4,D3
DJNZ R7,D2
DJNZ R5,DELAY
RET
TABLE0:
DW 64260,64400,64524,64580
DW 64684,64777,64820,64898
DW 64968,65030,65058,65110
DW 65157,65178,65217
TABLE01:
DW 64260,64400,64524,64580
DW 64684,64777,64820,64898
DW 64968,65030,65058,65110
DW 65157,65178,65217
TABLE: ;生日快乐
DB 82H,01H,81H,94H,84H
DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H
DB 0C4H,0B4H,04H
DB 82H,01H,81H,0F4H,0D4H
DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H
DB 0C4H,0B4H,04H
DB 82H,01H,81H,94H,84H
DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H
DB 0C4H,0B4H,04H
DB 82H,01H,81H,0F4H,0D4H
DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H
DB 0C4H,0B4H,04H
TABLE1: ;三只小猫
DB 62H,82H,82H,62H,98h
DB 92H,0B2H,0B2H,82H,98H
DB 62H,82H,82H,52H,68H
DB 92H,0B2H,0B2H,82H,98H
DB 62H,82H,82H,62H,92H,92H,94H
DB 92H,0B2H,0B2H,92H,84H,94H
DB 0B8H,0B4H,04H
TABLE2: ;两只老虎
DB 44H,54H,64H,44H
DB 44H,54H,64H,44H
DB 64H,74H,88H
DB 64H,74H,88H
DB 82H,92H,82H,72H,64H,44H
DB 82H,92H,82H,72H,64H,44H
DB 44H,84H,48H
DB 44H,84H,48H
TABLE3: ;哈巴狗
DB 42H,42H,42H,52H,64h,04H
DB 62H,62H,62H,72H,84H,04H
DB 92H,92H,82H,72H,64H,04H
DB 82H,82H,52H,62H,44H,04H
DB 42H,42H,42H,52H,64h,04H
DB 62H,62H,62H,72H,84H,04H
DB 92H,92H,82H,72H,64H,04H
DB 82H,82H,52H,62H,44H,04H
TABLE4: ;兰花草
DB 42H,82H,82H,82H,02H,72h
DB 62H,72H,62H,52H,48H
DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0AH
DB 12H,0A2H,0D2H,92H,88H
DB 82H,0B2H,0B2H,0A2H,84H,02H,72H
DB 62H,72H,62H,52H,44H,02H,12H
DB 12H,62H,62H,52H,44H,02H,82H
DB 72H,62H,52H,32H,48H
TABLE5: ;妹妹背着洋娃娃
DB 84H,02H,82H,64H,54h
DB 64H,54H,48H
DB 64H,02H,52H,44H,24H
DB 14H,24H,18H
DB 24H,02H,22H,42H,24H
DB 44H,54H,68H
DB 54H,02H,52H,84H,84H
DB 54H,64H,48H
TABLE6: ;不倒翁
DB 84H,94H,88H
DB 64H,54H,68H
DB 84H,64H,54H,44h
DB 62H,82H,42H,62H,58H
DB 84H,94H,88H
DB 64H,54H,68H
DB 84H,64H,54H,44h
DB 52H,42H,52H,62H,48H
DB 00
END
7首简单音乐的汇编代码
8. 如何画出单片机汇编程序的流程图
就和所有程序的流程图都一样啊。