标题:
单片机多功能音乐播放器仿真+源程序
[打印本页]
作者:
51黑ff
时间:
2016-9-26 17:59
标题:
单片机多功能音乐播放器仿真+源程序
0.png
(28.94 KB, 下载次数: 79)
下载附件
2016-9-26 17:57 上传
多功能音乐播放器的仿真工程文件和源码下载:
多功能音乐播放器.zip
(79.98 KB, 下载次数: 193)
2016-9-26 17:57 上传
点击文件名下载附件
下载积分: 黑币 -5
源程序:
#include<reg52.h>
#include<lcd.h>
#include<1302.h>
#include<music_code.h>
#include<SoundPlay.h>
#include<dds.h>
uchar code time[]={'0','1','2','3','4','5','6','7','8','9'};
uchar code get_up[]="Time to Get up!";
uchar code str[]="Never frown,even when you are sad,because you never know who is falling in love with your smile! To the world you may be one person,but to one person you may be the world ";
uchar code menu[4][10]={{"Time Set"},{"Music"},{"Books"},{"Ring Set"}};
void main()
{
ini();
open();
delay(255);
delay(255);
delay(255);
delay(255);
write_order(0x01);
init_ds1302();
set_ds1302(time_add,initial_time);
while(1)
{
read_ring();
if(ring_time[0]==now_time[0]&&ring_time[1]==now_time[1]&&ring_time[2]==now_time[2])
{
timeup();
}
detect();
write_order(0x80+0x04);
for(i=0;menu[key][i]!=0;i++)
{
write_date(menu[key][i]);
}
get_ds1302();
write_order(0x80+0x40);
write_date(time[now_time[4]>>4]);
write_date(time[now_time[4]&0x0f]);
write_date(0x01);
write_date(time[now_time[3]>>4]);
write_date(time[now_time[3]&0x0f]);
write_date(0x00);
write_date(' ');
write_date(' ');
write_date(time[now_time[2]>>4]);
write_date(time[now_time[2]&0x0f]);
write_date(':');
write_date(time[now_time[1]>>4]);
write_date(time[now_time[1]&0x0f]);
write_date(':');
write_date(time[now_time[0]>>4]);
write_date(time[now_time[0]&0x0f]);
if(key==2)
{
sum=0;
book();
}
if(key==1)
{
music();
}
if(key==3)
{
alamn();
}
if(key==0)
{
time_set();
}
}
}
void detect()
{
uchar temp;
temp=P1;
temp=temp&0x0f;
if(temp!=0x0f)
{
switch(temp)
{
case 0x0e:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
if(key==0)
{
key=4;
}
key--;
flag=1;
write_order(0x01);
break;
case 0x0d:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
key++;
flag=2;
if(key==4)
{
key=0;
}
write_order(0x01);
break;
case 0x0b:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
flag=3;
write_order(0x01);
break;
case 0x07:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
flag=4;
write_order(0x01);
break;
}
}
}
void page(uchar k)
{
write_order(0x80);
for(i=k*32;i<k*32+16&&str[i]!='\0';i++)
{
write_date(str[i]);
}
write_order(0x80+0x40);
for(i=k*32+16;i<k*32+32&&str[i]!='\0';i++)
{
write_date(str[i]);
}
}
void book()
{
flag=0;
detect();
if(flag==3)
{
flag=0;
page(sum);
while(flag!=4)
{
detect();
if(flag==1)
{
flag=0;
if(sum!=0)
{
sum--;
}
page(sum);
}
if(flag==2)
{
flag=0;
if(sum<5)
{
sum++;
}
page(sum);
}
}
key=2;
}
}
void alamn()
{
flag=0;
detect();
if(flag==3)
{
flag=0;
while(flag!=4)
{
write_order(0x80+0x02);
write_date(time[move[0]]);
write_date(time[move[1]]);
write_date(':');
write_date(time[move[2]]);
write_date(time[move[3]]);
detect();
if(flag==1)
{
flag=0;
move[1]++;
if(move[1]==10)
{
move[1]=0;
move[0]++;
}
if(move[0]==2)
{
if(move[1]==4)
{
move[1]=0;
move[0]=0;
}
}
ringgo[2]=move[0]<<4|move[1];
}
if(flag==2)
{
flag=0;
move[3]++;
if(move[3]==10)
{
move[3]=0;
move[2]++;
if(move[2]==6)
{
move[2]=0;
}
}
ringgo[1]=move[2]<<4|move[3];
}
if(flag==3)
{
set_ds1302(alamn_add,ringgo);
flag=4;
}
}
key=3;
}
}
void time_set()
{
flag=0;
detect();
if(flag==3)
{
flag=0;
while(flag!=4)
{
write_order(0x80+0x02);
write_date(time[set[0]]);
write_date(time[set[1]]);
write_date(':');
write_date(time[set[2]]);
write_date(time[set[3]]);
detect();
if(flag==1)
{
flag=0;
set[1]++;
if(set[1]==10)
{
set[1]=0;
set[0]++;
}
if(set[0]==2)
{
if(set[1]==4)
{
set[1]=0;
set[0]=0;
}
}
timego[2]=set[0]<<4|set[1];
}
if(flag==2)
{
flag=0;
set[3]++;
if(set[3]==10)
{
set[3]=0;
set[2]++;
if(set[2]==6)
{
set[2]=0;
}
}
timego[1]=set[2]<<4|set[3];
}
if(flag==3)
{
set_ds1302(time_add,timego);
flag=4;
}
}
key=0;
}
}
void timeup()
{
write_order(0x01);
write_order(0x80+0x00);
for(i=0;get_up[i]!='\0';i++)
{
write_date(get_up[i]);
}
InitialSound();
switch(ring_song)
{
case 0:Play(tale,0,3,300);break;
case 1:Play(coral,0,3,300);break;
case 2:Play(Meet,0,3,300);break;
case 3:Play(Love,0,3,340);break;
}
write_order(0x01);
}
void music()
{
if(flag==3)
{
flag=0;
write_order(0x01);
while(flag!=4)
{
detect();
write_order(0x80);
for(i=0;song[key][i]!='\0';i++)
{
write_date(song[key][i]);
}
if(flag==3)
{
InitialSound();
switch(key)
{
case 0:Play(tale,0,3,300);break;
case 1:Play(coral,0,3,300);break;
case 2:Play(Meet,0,3,300);break;
case 3:Play(Love,0,3,340);break;
}
ring_song=key;
while(!esc);
}
}
write_order(0x01);
key=1;
}
}
复制代码
作者:
51小杜
时间:
2018-7-19 19:54
感谢分享0000000000000000
作者:
1285178397
时间:
2019-7-5 13:18
看不懂
作者:
我们不一样111
时间:
2019-12-17 18:44
可以显示屏运行吗
作者:
wode1992
时间:
2021-5-24 11:21
非常感谢分享,最近在学习怎么用DAC进行语音播报~
作者:
Deadp0o0ol
时间:
2021-5-30 14:12
dds.c - 9 Error(s), 0 Warning(s).
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1