• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的1602音乐盒设计!!!

04/27 09:22
817
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

单片机仿真设计合集资料获取.pdf

共1个文件

资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频

仿真版本:Proteus8.6及以上版本

程序编译:Keil5 C51

编程语言:C语言

设计编号:【V03】

1.? 简介

? 本文提出了一种基于51单片机LCD1602音乐盒设计。以AT89C51单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有4个按键,利用单片机的定时/计数器T0来产生这样的方波频率信号,只要把一首歌曲的音阶对应频率关系编写正确就可以达到想要的曲目。

2.? 主要功能

a.利用蜂鸣器作为发声部件,设置4个按键,实现8首歌曲的播放。

b.通过独立按键实现播放/暂停、切换歌曲、开关

c. 通过LCD1602显示当前歌曲序号及时间。

3.? 源程序(Keil5)

本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。

void KEY()
{
	if(!pause)		//暂停键处理
		{
		delayms(5);
		if(!pause)
		{
			TR0=0;
			
			speaker=1;
			if(music_num==0)    //music_num=0只有在刚开机,且未按下暂停键时存在,表示刚开机时的状态,按下后从第一首开始播放
			{
				music_num=1;    //歌曲序号置1
				num=0;	        //从头播放
				play_enable=1;	//允许播放
			}
			else
			{
				play_enable=~play_enable;
			    speaker=1;
			}
			while(!pause)	 //若按着暂停键不放手时的处理
			{
			if(play_enable==0){TR1  = 0;}	        //如果是暂停,则显示时间不变//(暂停时play_enable==0)
			else 
			{  
				TR1  = 1;
				LCDDispString(11,2,"00:");
				LCDDispString(0,2,"PLAY:");

			}
		
			}

		  }//暂停键处理结束
	}//while结束

		if((!play_up)&&(music_num!=0)) //上一首按键
		{
		delayms(5);
		if((!play_up)&&(music_num!=0))
		{
		   TR0=0;
		   speaker=1;
			music_num-=1;//歌曲编号减一
			if(music_num<=0)
			music_num=5;
			num=0;		 //从头开始播放


/*			if(music_num==(sound_amount+1))
				music_num=1; 	 */
			delayms(500);//歌曲切换时延时0.5S
			miao=0;
		} 
		while(!play_up); 	
		}

		if((!play_down)&&(music_num!=0))
		{
		delayms(5);
		if((!play_down)&&(music_num!=0))
		{   
			TR0=0;
			speaker=1;
			music_num+=1;//歌曲编号加一
			if(music_num>=6)
			music_num=1;
			num=0;	 	 //从头开始播放


	/*		if(music_num==0)
				music_num=sound_amount;		  */
			delayms(500);//歌曲切换时延时0.5S
			miao=0;
		}
		 while(!play_down); 
		}
	if(!power)		//电源键处理
		{
		delayms(5);
		if(!power)
		{
			TR0=0;
			
			speaker=1;

			power_enable=~power_enable;
					
			while(!power)	 //若按着暂停键不放手时的处理
			{
				if(power_enable==1)
					{
					LCDDispString(1,1,"WELCOME MUSIC");
					miao=0;
					}	        
				else 
				{   TR1  = 0;
					LCDDispString(0,1,"                ");
					LCDDispString(0,2,"                ");
					music_num=1;    //歌曲序号置1
					num=0;	        //从头播放
					play_enable=0;	//不允许播放
	
				}
		
			}

		  }//暂停键处理结束
	}//while结束


}

4.? 仿真proteus8.6

? 本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。

初始界面:

5.? 设计报告

设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考

6.? 资料清单

设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。

7.? 资料获取链接

百度网盘下载链接:【V03】百度网盘下载链接

更多单片机仿真设计合集:单片机仿真设计合集

  • 单片机仿真设计合集资料获取.pdf
    下载

相关推荐