收藏 分销(赏)

基于51单片机多功能音乐播放器的设计.doc

上传人:pc****0 文档编号:6559441 上传时间:2024-12-13 格式:DOC 页数:21 大小:771.05KB 下载积分:10 金币
下载 相关 举报
基于51单片机多功能音乐播放器的设计.doc_第1页
第1页 / 共21页
基于51单片机多功能音乐播放器的设计.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
学习情境1 多功能音乐播放器的设计 江西环境工程职业学院机械与电子学院 一、 引言 二、 设计任务与设计原理 1、 设计任务 (1)可播放多首音乐,且通过按键来选择播放的音乐 (2)选择音乐时,音乐名称在LCD上显示 (3)音乐播放种类跨度要大一些,播放声音要清晰 2、 设计原理 三、 硬件电路设计 1 系统框图 图2-1-1 系统框图 2 电路原理图 (1)、单片机最小系统电路,主要由:时钟振荡电路、复位电路、电源电路等组成。 图2-1-2 单片机最小系统电路 (2)、矩阵键盘输入电路 图2-1-3 矩阵键盘输入电路 (3)、LCD12864显示电路 图2-1-4 LCD12864显示电路 (4)、蜂鸣器播放电路 图2-1-5 蜂鸣器播放电路 3 整体电路原理图 图2-1-6 系统仿真效果图 四、 软件设计 1、 流程图设计 2、 完整程序代码 整个KEIL工程文件有4个.C文件和1个头文件组成,具体代码如下: (1)PlayMusic.c #include <REG52.H> #include "SoundPlay.h" #include<math.h> #define uchar unsigned char #define uint unsigned int sbit WAI_INT0=P3^2; // 复位 //水平与垂直偏移 uchar H_Offset=0; // uchar V_page_Offset=0; extern uchar Key_Num; extern uchar code Name_Of_Song[]; extern uchar KeyScan(); // 矩阵键盘扫描子程序 extern void LCD12864_Initialization(); extern void Display_Word(uchar P2,uchar L2,uchar *M) reentrant; extern void Display_char(uchar P1,uchar L1,uchar *M) reentrant; void delay(uint K); //延时子程序 void key_process();// 矩阵键盘按键处理子程序 void Delay1ms(uint count) { unsigned int i,j; for(i=0;i<count;i++) for(j=0;j<120;j++); } //*****************************Music****************************************************** //挥着翅膀的女孩 unsigned char code Music_Girl[]={ 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03, 0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03, 0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03, 0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02, 0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02, 0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00}; //同一首歌 unsigned char code Music_Same[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 }; //两只蝴蝶 unsigned char code Music_Two[] ={ 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02, 0x10,0x03, 0x15,0x00, 0x00,0x00 }; //死了都要爱 unsigned char code Music_Three[]={ 0x17,0x03, 0x1F,0x02, 0x1F,0x03, 0x1F,0x03, 0x1F,0x02, 0x20,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x04, 0x17,0x04, 0x17,0x15, 0x18,0x03, 0x18,0x04, 0x19,0x0E, 0x19,0x03, 0x1A,0x03, 0x16,0x02, 0x16,0x04, 0x17,0x0E, 0x17,0x03, 0x18,0x16, 0x1A,0x04, 0x1A,0x04,0x1B,0x03, 0x1A,0x04, 0x1B,0x0E, 0x1B,0x01, 0x17,0x18, 0x17,0x03, 0x1F,0x02, 0x1F,0x03, 0x1F,0x03, 0x1F,0x02, 0x20,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x16,0x03, 0x16,0x02, 0x17,0x04, 0x17,0x0E, 0x17,0x15, 0x18,0x02, 0x18,0x04, 0x19,0x0E, 0x19,0x03, 0x1A,0x03, 0x1F,0x02, 0x1B,0x02, 0x1A,0x15, 0x15,0x02, 0x0D,0x02, 0x0E,0x02, 0x0D,0x03, 0x0D,0x03, 0x11,0x03, 0x11,0x03, 0x0D,0x03, 0x11,0x03, 0x15,0x04, 0x15,0x0E, 0x1F,0x02, 0x10,0x02, 0x10,0x03, 0x0F,0x03, 0x0E,0x66, 0x0E,0x03, 0x0C,0x03, 0x0E,0x03, 0x16,0x03, 0x15,0x03, 0x15,0x67, 0x11,0x04, 0x11,0x0E, 0x1B,0x02, 0x15,0x02, 0x0D,0x02, 0x0E,0x66, 0x0D,0x03, 0x0D,0x03, 0x11,0x03, 0x11,0x03, 0x0D,0x03, 0x11,0x03, 0x15,0x04, 0x15,0x0E, 0x15,0x04, 0x17,0x03, 0x17,0x04, 0x17,0x03, 0x18,0x03, 0x10,0x02, 0x10,0x67, 0x0F,0x03, 0x10,0x00, 0x18,0x0B, 0x18,0x03, 0x19,0x03, 0x18,0x03, 0x16,0x03, 0x18,0x03, 0x17,0x03, 0x17,0x15, 0x16,0x03, 0x16,0x04, 0x16,0x0E, 0x16,0x04, 0x16,0x04, 0x17,0x03, 0x18,0x04, 0x17,0x67, 0x16,0x04, 0x15,0x67, 0x15,0x03, 0x15,0x04, 0x15,0x0E, 0x15,0x04, 0x15,0x04, 0x17,0x68, 0x17,0x0E, 0x17,0x03, 0x10,0x03, 0x15,0x03, 0x17,0x03, 0x18,0x66, 0x18,0x04, 0x19,0x04, 0x1A,0x03, 0x19,0x03, 0x18,0x03, 0x18,0x03, 0x18,0x03, 0x17,0x04, 0x17,0x0E, 0x17,0x02, 0x16,0x04, 0x15,0x0E, 0x15,0x16, 0x18,0x03, 0x18,0x04, 0x19,0x0E, 0x19,0x03, 0x1A,0x03, 0x16,0x03, 0x16,0x04, 0x17,0x0E, 0x17,0x03, 0x18,0x17, 0x1A,0x03, 0x1B,0x03, 0x1A,0x03, 0x1B,0x16, 0x17,0x03, 0x1F,0x02, 0x1F,0x03, 0x1F,0x03, 0x1F,0x66, 0x20,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x04, 0x17,0x0E, 0x17,0x7B, 0x18,0x03, 0x18,0x04, 0x19,0x0E, 0x19,0x03, 0x1A,0x03, 0x16,0x03, 0x16,0x04, 0x17,0x0E, 0x17,0x04, 0x18,0x17, 0x1A,0x04, 0x1A,0x04, 0x1B,0x03, 0x1A,0x04, 0x1B,0x72, 0x17,0x04, 0x1F,0x02, 0x1F,0x03, 0x1F,0x03, 0x1F,0x66, 0x20,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x04, 0x17,0x0E, 0x17,0x67, 0x18,0x03, 0x18,0x04, 0x19,0x0E, 0x19,0x03, 0x1A,0x03, 0x1F,0x02, 0x1B,0x02, 0x1A,0x14, 0x00,0x00 }; unsigned char code Music_End[]={0x00,0x00,0x00,0x00}; //*********************************************************************************** void main() { P1=0x0f; InitialSound(); EX0=1; IT0=1; LCD12864_Initialization();//液晶初始化函数 // 以下显示“环境工程学院张小波” Display_Word(V_page_Offset+4,H_Offset,Name_Of_Song+15*32); Display_Word(V_page_Offset+4,16+H_Offset,Name_Of_Song+16*32); Display_Word(V_page_Offset+4,32+H_Offset,Name_Of_Song+19*32); Display_Word(V_page_Offset+4,48+H_Offset,Name_Of_Song+20*32); Display_Word(V_page_Offset+4,80+H_Offset,Name_Of_Song+21*32); Display_Word(V_page_Offset+4,96+H_Offset,Name_Of_Song+22*32); Display_Word(V_page_Offset+4,112+H_Offset,Name_Of_Song+23*32); while(1) { key_process(); } } /*--------延时子程序--------*/ void delay(uint K) { uint i,j; for(i=K;i>0;i--) for(j=120;j>0;j--); } /*---------------按键处理子程序--------------------*/ void key_process() { EA=1; KeyScan(); switch(Key_Num) { case 13: delay(200); if (Key_Num==13) { //以下显示歌曲名:挥着翅膀的女孩 Display_Word(V_page_Offset+2,H_Offset,Name_Of_Song+0*32); Display_Word(V_page_Offset+2,16+H_Offset,Name_Of_Song+1*32); Display_Word(V_page_Offset+2,32+H_Offset,Name_Of_Song+2*32); Display_Word(V_page_Offset+2,48+H_Offset,Name_Of_Song+3*32); Display_Word(V_page_Offset+2,64+H_Offset,Name_Of_Song+4*32); Display_Word(V_page_Offset+2,80+H_Offset,Name_Of_Song+5*32); Display_Word(V_page_Offset+2,96+H_Offset,Name_Of_Song+6*32); Play(Music_Girl,0,2,360); } break; case 2: delay(200); if (Key_Num==2) { //以下显示歌曲名:同一首歌 Display_Word(V_page_Offset+2,H_Offset,Name_Of_Song+24*32); Display_Word(V_page_Offset+2,16+H_Offset,Name_Of_Song+7*32); Display_Word(V_page_Offset+2,32+H_Offset,Name_Of_Song+8*32); Display_Word(V_page_Offset+2,48+H_Offset,Name_Of_Song+9*32); Display_Word(V_page_Offset+2,64+H_Offset,Name_Of_Song+10*32); Display_Word(V_page_Offset+2,80+H_Offset,Name_Of_Song+24*32); Display_Word(V_page_Offset+2,96+H_Offset,Name_Of_Song+24*32); Play(Music_Same,2,2,500); }// break; case 1: delay(200)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服