在线等 求~单片机 音乐彩灯 程序

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:37:52
我想做一个如题的东西出来,请各位高手帮忙,要求如下:

按键开始播放一首音乐(循环播放)

同时红灯亮起,2位数码管显示从10秒开始的倒计时,当显示00时,红灯熄灭,绿灯亮起,数码管复位到10,再倒计时,00时绿灯熄灭,红灯亮起,如此反复,音乐一直在播放

求电路图,最好采用89c51芯片,歌曲有喇叭播放,P1口输出的方波对应音符

求完整程序

我会再加分,谢谢

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 P2.4
MOV A,R6
MOV R3,A
CPL A
MOV P1,A ;显示(修改者加入的显示)
CPL A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2