具体实现功能
(1)仿真分为接收器(播放器)和发射器(遥控)。接收器由一个可以播放音乐的电子琴构成;
(2)发射器通过按键遥控接收器上电子琴的启动;
(3)启动时播放的是《同一首歌》的旋律,数码管显示“b”,表示播放,按下接收器的停止按键后停止播放音乐;
(4)按下复位按键后回到初始状态。
仿真演示视频:
17-基于51单片机的遥控音乐系统仿真—仿真视频
设计介绍
51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
资料内容
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计,具体如图。
程序(Keil5)
本设计利用KEIL5软件实现程序设计。
发射器主函数如下:
void main()
{
intCon();
while(1)
{
panduan_01();
RI = 0;
SBUF=qhao; //数字发送到缓存中
while(!TI); //若一帧数据发送完毕,则TI=1,在将 TI置为0,让其处于接收状态
TI=0;
}
}
发射器程序运行结果如图:
接收器主函数如下:
void main() //主函数入口
{
intCon();
Speak=1; //蜂鸣器端口置1 (让蜂鸣器处于与电源5V断电状态)
qhao=0;
while(1) //无限循环
{
qhao=SBUF;//数字从接收存储器中取得
RI=0;
if(qhao==1)
{
SMG=table[11]; //数码管显示"B"
for(i=0;Music_tyshg[i]!=0xff;i++) //for循环语句
{ //Music_hzcb[]=0ff时,跳出for循环语句,停止播放音乐
Time0_Init(); //定时器T0初始化
sth=yinfu1[(Music_tyshg[i]%100)/10-1][((Music_tyshg[i]%10)-1)*2]; //定时器高八位赋值
stl=yinfu1[(Music_tyshg[i]%100)/10-1][((Music_tyshg[i]%10)-1)*2+1];//定时器低八位赋值
i++; //i加1
TR0=1; //启动定时器T0
delay_ms(4*500/length[Music_tyshg[i]%10]); //确定几分音符(节拍)
TR0=0; //节拍结束,关闭定时器T0
}
}
if(qhao==0)
{
TR0=0; //节拍结束,关闭定时器T0
Speak=0; //蜂鸣器端口置1 (让蜂鸣器处于与电源5V断电状态)
}
}
}
接收器程序运行结果如图:
全部内容
全部资料包括程序(keil5)、protues仿真(protues8.7)、课设报告(仅供参考)、软硬件设计框图、开发资料、资料使用介绍、仿真视频、程序讲解视频、原理图讲解视频、仿真讲解视频、最小系统介绍视频等。
资料获取
【腾讯文档】17-基于51单片机的遥控音乐系统仿真
https://docs.qq.com/doc/DT1lhREpoSHFIY3lC