基于单片机多功能音乐播放器的设计.docx
- 文档编号:13692909
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:33
- 大小:213.37KB
基于单片机多功能音乐播放器的设计.docx
《基于单片机多功能音乐播放器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机多功能音乐播放器的设计.docx(33页珍藏版)》请在冰点文库上搜索。
基于单片机多功能音乐播放器的设计
多功能音乐播放器的设计
一、设计任务与设计原理
1、设计任务
(1)可播放多首音乐,且通过按键来选择播放的音乐
(2)选择音乐时,音乐名称在LCD上显示
(3)音乐播放种类跨度要大一些,播放声音要清晰
电路原理图
(1)、单片机最小系统电路,主要由:
时钟振荡电路、复位电路、电源电路等组成。
图2-1-2单片机最小系统电路
(2)、矩阵键盘输入电路
图2-1-3矩阵键盘输入电路
(3)、LCD12864显示电路
图2-1-4LCD12864显示电路
(4)、蜂鸣器播放电路
图2-1-5蜂鸣器播放电路
2整体电路原理图
图2-1-6系统仿真效果图
二、软件设计
1、流程图设计
2、完整程序代码
整个KEIL工程文件有4个.C文件和1个头文件组成,具体代码如下:
(1)PlayMusic.c
#include
#include"SoundPlay.h"
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitWAI_INT0=P3^2;//复位
//水平与垂直偏移
ucharH_Offset=0;//
ucharV_page_Offset=0;
externucharKey_Num;
externucharcodeName_Of_Song[];
externucharKeyScan();//矩阵键盘扫描子程序
externvoidLCD12864_Initialization();
externvoidDisplay_Word(ucharP2,ucharL2,uchar*M)reentrant;
externvoidDisplay_char(ucharP1,ucharL1,uchar*M)reentrant;
voiddelay(uintK);//延时子程序
voidkey_process();//矩阵键盘按键处理子程序
voidDelay1ms(uintcount)
{
unsignedinti,j;
for(i=0;i for(j=0;j<120;j++); } //*****************************Music****************************************************** //挥着翅膀的女孩 unsignedcharcodeMusic_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}; //同一首歌 unsignedcharcodeMusic_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}; //两只蝴蝶 unsignedcharcodeMusic_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}; //死了都要爱 unsignedcharcodeMusic_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}; unsignedcharcodeMusic_End[]={0x00,0x00,0x00,0x00}; //*********************************************************************************** voidmain() { 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(); } } /*--------延时子程序--------*/ voiddelay(uintK) { uinti,j; for(i=K;i>0;i--) for(j=120;j>0;j--); } /*---------------按键处理子程序--------------------*/ voidkey_process() { EA=1; KeyScan(); switch(Key_Num) { case13: 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_Wor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 多功能 音乐 播放 设计