51单片机音乐盒
目录具体实现功能设计介绍51单片机简介资料内容原理图和PCBAD19仿真实现protues8.7程序Keil5全部资料资料获取具体实现功能具体功能单片机内置8首歌曲按键可以上一曲下一曲开始或暂停。仿真/实物演示视频51单片机音乐盒设计介绍51单片机简介51单片是一种低功耗、高性能CMOS-8位微控制器拥有灵巧的8位CPU和可编程Flash使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机包括AT系列和STC系列。资料内容原理图AD19本系统原理图设计采用Altium Designer19具体如图。注1请使用Altium Designer19直接打开资料中的工程文件资料中已说明打开方式注2此设计需按照原理图制作实物不可直接烧录到任何开发板中运行需要修改程序仿真实现protues8.7本设计利用protues8.7软件实现仿真设计具体如图。注1请使用protues8.7直接打开资料中的工程文件资料中已说明打开方式注2由于仿真软件限制仿真设计和实物设计无法百分百对应程序Keil5本设计利用KEIL5软件实现程序设计。主函数如下//////////////// void main(void) { TMOD0x11; //T0 T1 均在工作方式1 ET01; //T0开中断 EA1; //CPU开中断 while(1) { music_play(); //根据当前状态播放相应歌曲的某个音符 if(!pause) //暂停键处理 { delayms(5); if(!pause) { if(music_num0) //music_num0只有在刚开机,且未按下暂停键时存在,表示刚开机时的状态,按下后从第一首开始播放 { music_num1; //歌曲序号置1 num0; //从头播放 play_enable1; //允许播放 } else { play_enable~play_enable; speaker1; } while(!pause) //若按着暂停键不放手时的处理 { if(play_enable0){} //如果是暂停则显示时间不变//暂停时play_enable0 } }//暂停键处理结束 }//while结束 if((!play_up)(music_num!0)) //上一首按键 { delayms(5); if((!play_up)(music_num!0)) { speaker1; music_num-1;//歌曲编号减一 if(music_num0) music_num8; num0; //从头开始播放 if(music_num(sound_amount1)) music_num1; delayms(500);//歌曲切换时延时0.5S } } if((!play_down)(music_num!0)) { delayms(5); if((!play_down)(music_num!0)) { speaker1; music_num1;//歌曲编号加一 if(music_num9) music_num1; num0; //从头开始播放 if(music_num0) music_numsound_amount; delayms(500);//歌曲切换时延时0.5S } } } }程序运行结果如图注请使用KEIL C51直接打开资料中的工程文件资料中已说明打开方式全部资料全部资料包括原理图(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考)、仿真视频、开发资料、仿真视频、单片机最小系统介绍等全网最全资料内容如下图所示资料获取https://docs.qq.com/doc/DT1dDaG1VamdkV2N4