基于单片机音乐播放器系统设计开题报告
- 格式:doc
- 大小:18.00 KB
- 文档页数:7
目录第一章绪论 (1)第二章音乐播放器主要器件相关知识介绍 (2)2.1 AT89C51 (2)2.2 LCD 显示器 (4)2.3 喇叭 (5)2.4 键盘 (5)第三章音乐播放器设计原理 (6)3.1 单片机发声的基本原理 (6)3.2 设计的相关音乐说明 (7)3.3 音乐播放器设计功能说明 (7)3.4 设计结构框图 (9)3.5 主程序控制的工作流程图 (10)3.6 播放音乐的主程序 (11)设计心得 (15)参考文献 (15)第一章绪论二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。
随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。
而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。
家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。
而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。
现在这些由单片机实现的音乐播放器的功能越来越强、费用越来越低。
例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。
但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。
设计指标:(1)设计一个(4×4)的键盘,并将16个键设计成16个音;(2)可弹奏想要表达的音乐;(3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。
设计要求:(1)按设计指标进行电路设计;(2)列出音阶与单片机定时器输出频率关系表格;(3)制作符合设计指标的硬件电路。
第二章音乐电子显示屏主要器件相关知识介绍制作音乐播放器所使用的主要元器件AT89S52 1个晶振 12MHZ 1 个LCD1602液晶显示器 1个小喇叭 1个电容 30pf 2个极性电容 1uf 2个10nf 1个电阻 10k 1个470欧 1个1K欧 1个按键 17个排阻 1k 1个2.1 AT89S52 : AT89S52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
目录1、设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务 (1)1.2 功能要求说明 (1)1.3 设计课题总体方案介绍及工作原理说明 (1)2、设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍 (5)2.2 设计课题电路原理图、PCB图、元器件布局图 (5)2.3 设计课题元器件清单 (5)3、设计课题软件系统的设计3.1 设计课题使用单片机资源的情况 (7)3.2 设计课题软件系统各模块功能简要介绍 (7)3.3 设计课题软件系统程序流程框图 (7)3.4 设计课题软件系统程序清单 (7)4、设计结论、仿真结果、误差分析、教学建议等等4.1 设计课题的设计结论及使用说明 (10)4.2 设计课题的仿真结果 (10)4.3 设计课题的误差分析 (10)4.4 设计体会 (10)4.5 教学建议 (11)参考文献 (12)致谢 (13)附录 (14)第一章设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务设计一个具有特定功能的音乐播放器。
该音乐播放器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该音乐播放器可以播放多首音乐,曲目选择可以由键盘控制,曲目名称可以显示在显示器上。
1.2功能要求说明(1) 该音乐播放器上电后显示系统提示符“P.”。
(2) 在按下第一个键后就播放第一首歌曲,并在显示器上显示“1”。
(3) 在按下第二个键后就播放第二首歌曲,并在显示器上显示“2”。
(4) 在按下第三个键后就播放第三首歌曲,并在显示器上显示“3”。
(5) 在播放音乐的中间能切换歌曲,在放完一首歌后回到起始状态,下一步的动作由人控制。
1.3设计课题总体方案介绍及工作原理说明本设计由AT89C52 单片机,3*1独立键盘,数码管等构成。
总体方案图如图1.1所示图1.1 总体方案图(1)总体原理:乐曲中不同的音符,实质就是不同频率的声音。
通过单片机产生不同的频率的脉冲信号,由蜂鸣器放出,就产生了美妙和谐的乐曲。
基于51 单片机音乐播放器课程设计报告课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118指导教师:课程设计时间:2012-9-20〜2012-9-28 电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文) 首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。
并且实时监测红外接收管是否触发中断,来判断是否遥控器按下了播放/ 暂停键、上一首、下一首,进而实时处理。
并把信息显示在1602 液晶上。
音高与频率的对应关系下表:二设计原理图单片机与1602 液晶、红外接收管SM0038 接线图单片机驱动蜂鸣器电路及红外遥控器键码本次实验所用按键及对应编码:( 1 )上一首07 (2) 下一首15 (3)播放/暂停09三程序设计框图Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;装入的初值(10ms 的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; 装入的初值TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11;ET0 = 1;ET1 = 0;PT0 = 0;TR0 = 0;TR1 = 0;EA = 1;void write_cmd(uchar cmd)//1602 lcd_rs=0; lcd_w=0;P0=cmd;delay(7);lcd_en=1;delay(6);lcd_en=0;void write_date(uchar date)//1602lcd_rs=1;lcd_w=0;P0=date;delay(7);lcd_en=1;delay(6);lcd_en=0;void init_1602()// 初始化1602lcd_en=0;write_cmd(1);write_cmd(0x84);write_cmd(0x38); write_cmd(0x0f); write_cmd(0x06);void inte1_init()// 红外中断 // 计算 TL1 应 // 计算 TH1 应 IT1 = 1;// 外部中断,下降沿中断EX1 = 1;// 开外部中断PX1 = 1;//EA = 1;// 开总中断IRIN=1; // 读引脚前,先置高void jiema() // 红外解码uchar i,j; for(j=0;j<4;j++)irma[j]=0;// 清除上次的码for(i=0;i<8;i++)irma[j]=irma[j]>>1;// 右移 1 位while(!IRIN);// 等待 0.56ms 低电平结束 time2_init();// 启动定时, 0.8ms while(!TF2);// 等到 0.8ms 时间到TR2=0;// 关定时器TF2=0;// 清标志位if(IRIN)// 发送是 1,其高电平时间长,大于 0.565ms irma[j]|=0x80;// 把最高位置 1 while(IRIN);// 等待高电平结束,以便于进入下一位的解码 } void Lcd_displays(uchar add,char *s)//1602 显示字符串uchar i;write_cmd(add);for(i=0;i<strlen(s);i++)write_date(s[i]);void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int 写命令写数据Speed)// 播放歌曲函数unsigned int NewFreTab[12]; // 新的频率表unsigned char i,j;unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength; unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i<12;i++) // 根据调号及升降八度来生成新的频率表j = i + Signature;if(j > 11)j = j-12;NewFreTab[i] = FreTab[j]*2;NewFreTab[i] = FreTab[j];if(Octachord == 1)NewFreTab[i]>>=2;else if(Octachord == 3)NewFreTab[i]<<=2;SoundLength = 0;while(Sound[SoundLength] != 0x00) // 计算歌曲长度SoundLength+=2;Point = 0;Tone = Sound[Point];Length = Sound[Point+1]; // 读出第一个音符和它时时值LDiv0 = 12000/Speed; // 算出 1 分音符的长度(几个10ms)LDiv4 = LDiv0/4; // 算出 4 分音符的长度LDiv4 = LDiv4-LDiv4*SOUND_SPACE; // 普通音最长间隔标准TR0 = 0;TR1 = 1;while(Point < SoundLength)SL=Tone%10; // 计算出音符SM=Tone/10%10; // 计算出高低音SH=Tone/100; // 计算出是否升半CurrentFre = NewFreTab[SignTab[SL-1]+SH]; // 查出对应音符的频率if(SL!=0)if (SM==1) CurrentFre >>= 2; // 低音if (SM==3) CurrentFre <<= 2; // 高音Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);// 计算计数器初值Sound_Temp_TH0 = Temp_T/256;Sound_Temp_TL0 = Temp_T%256;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0 + 12; // 加12 是对中断延时的补偿}SLen=LengthTab[Length%10]; // 算出是几分音符XG=Length/10%10; // 算出音符类型(0 普通 1 连音 2 顿音) FD=Length/100;LDiv=LDiv0/SLen; // 算出连音音符演奏的长度(多少个10ms) if (FD==1)LDiv=LDiv+LDiv/2;if(XG!=1)if(XG==0) // 算出普通音符的演奏长度if (SLen<=4)LDiv1=LDiv-LDiv4;LDiv1=LDiv*SOUND_SPACE;LDiv1=LDiv/2; // 算出顿音的演奏长度LDiv1=LDiv;if(SL==0) LDiv1=0;LDiv2=LDiv-LDiv1; // 算出不发音的长度if (SL!=0)TR0=1;for(i=LDiv1;i>0;i--) // 发规定长度的音while(TF1==0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0; if(LDiv2!=0) void BeepTimer0(void) interrupt 1 // 音符发生中断BeepIO = !BeepIO;TH0 = Sound_Temp_TH0;TL0 = Sound_Temp_TL0;void inte1inte() interrupt 2 // 红外中断,外部中断 1 uchar k=10;EX1 = 0;// 关外部中断while(k--)〃循环十次,一次0.8ms,十次8ms , time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(IRIN)// 中间如果出现高电平,就说明不是9MS 的引导电平{EX1 = 1;// 则开外部中断,退出中断return;while(!IRIN);// 运行到此,说明是引导电平,等待9MS 引导结束k=3;// 循环 3 次,每次0.8ms ,总共 2.4ms,while(k--)time2_init();while(!TF2);TF2 = 0;TR2 = 0;if(!IRIN)//2.4ms 结束如果变低电平,说明是重码,EX1 = 1;return;// 开中断,退出中断while(IRIN);// 等待 4.5ms 高电平结束,到此说明是正常红外信号jiema();// 解码程序,包括用户码,和按键码// irfenli();if(irma[2]==0x09||irma[2]==0x15||irma[2]==0x07){// 判断按下是哪一个键if(irma[2]==0x09)if(com==0)com=1;com=0; if(com)Lcd_displays(0x80,"START");Lcd_displays(0x80,"PAUSE");else if(irma[2]==0x15) newmusic++;if(newmusic==4)newmusic=1;Lcd_displays(0x80,"NEST "); newmusic--;if(newmusic==0)newmusic=3;Lcd_displays(0x80,"LAST ");switch(newmusic){// 更新1602 显示case 1:Lcd_displays(0x88,"MUSIC1");break; case 2:Lcd_displays(0x88,"MUSIC2");break; case 3:Lcd_displays(0x88,"MUSIC3");break; }// Lcd_display();EX1 = 1;return;三首歌曲的代码:位于music.h 文件内// 挥着翅膀的女孩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,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,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,课程设计课程设计名称:单片机课程设计专业班级电科0901 学生姓名:学号:200948360118指导教师:课程设计时间:2012-9-20〜2012-9-28电子信息科学与技术专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一设计任务及要求利用单片机定时器完成控制音乐的频率,每个音调响的时长,来达到播放出音乐。
⾳乐播放器单⽚机课程设计-基于单⽚机的⾳乐播放器⼀.概述 (2)⼆.系统总体⽅案设计 (3)三.硬件设计 (6)3.1 89C51单⽚机 (6)图3-1和3-2 (7)3.2 I/O并⾏⼝直接驱动LED显⽰ (7)四.软件设计 (10)4.1.软件设计 (10)五.系统调试与仿真 (12)5.1软件仿真阶段 (12)5.2系统的仿真调试阶段 (12)5.3硬件安装调试 (12)六.总结 (14)参考⽂献 (15)附录A:⾳乐播放器电路设计图 (16)附录B:程序清单 (17)⼀.概述本课题要求以单⽚机为核⼼设计⼀个⾳乐播放器,完成多曲选择播放控制、停⽌控制、省电模式控制等功能。
⾳乐播放器利⽤单⽚机的定时器产⽣乐谱的各种频率⽅波,信号经过放⼤后由喇叭发出声⾳,选取某段⾳乐使单⽚机连续播放。
设计3个按键:播放/停⽌、下⼀曲、上⼀曲;4位LED显⽰器,⽤来显⽰所选曲⽬,该显⽰器在播放期间为了节省电源,设计为关闭状态,当⼀歌曲演奏结束,或选曲时显⽰器才显⽰曲⽬信息。
总体的设计思路是这样的。
⼆.系统总体⽅案设计本课题要求以单⽚机为核⼼设计⼀个简易⾳乐播放器,具有⾃动播放乐曲的功能。
⼀⾸⾳乐是许多不同的⾳阶组成的,⽽每个⾳阶对应着不同的频率,这样我们就可以利⽤不同的频率的组合,即可构成我们所想要的⾳乐了,⾳阶对应频率关系图1-1:图2-1本设计⽤89C51单⽚机为核⼼,利⽤8段数码管显⽰器.采⽤动态显⽰输出,声⾳输出⽤蜂鸣器来实现。
采⽤8段数码管显⽰器进⾏动态显⽰需要占⽤4根I/O线,蜂鸣器占⽤1根I/O线,89C51单⽚机有⾜够的线,不⽤扩展I/O⼝。
⽤⼀⽚单⽚机即可满⾜本设计的输⼊输出。
系统框图如图1-2所⽰:图2-2通过对⾳乐播放器主体部分的电路进⾏模仿设计,达到播放器固有的基本功能,设定按钮K1、 K2和K3。
按钮K1打开并⾃动播放乐曲1;按钮K2打开并⾃动播放乐曲2;按钮K3为⼿动控制⾳乐停⽌的按键。
引言对于我们电子信息工程专业而言,《单片机原理与应用》是一门实用性很强的课程!在该课程的学习过程中!让我们最感兴趣的就是自己动手设计单片机控制系统。
但是,要将单片机的硬件知识与软件知识融会贯通,设计出实用的系统却是让我们颇感困难的环节。
许多同学对此感到无从下手。
其实,对于单片机应用系统的设计还是有章可循的。
单片机多用于实时工业控制、通信设备和智能仪表中。
但在某些方面,如有些教学实验中,加进一些音乐,一定会趣味横生。
本文介绍了笔者利用AT89C52型单片机和LM386型音频功率放大器构成了自动音乐播放器。
设计音乐的思想是,选一个输出位,如P1。
0端让其按音乐的变化节奏产生音频脉冲。
要产生音频脉冲,就要算出某一音频的周期(1/频率),将此周期除以2,即半周期的时间,然后利用单片机计时器计此半周期的时间。
每当计时到后就将输出脉冲的P1。
0位反相,然后重复计此半周期时间再对P1。
0反相,如此就可以在口端得到此频率的脉冲。
计数器工作在模式MODE1下,改变计数值TH0及TL0以产生不同的音频声响。
据网络调查公司Jupiter Media Metrix的统计数据显示:使用音乐播放器(不论是离线播放器还是网络播放器)的家庭用户从2000年1月的3320万猛增到2001年1月的4170万。
在工作中使用音乐播放器的专业用户数量也较去年同期上升了34.9%,从2000年1月的1160万增加到2001年1月的1570万。
以单片机为基础的本设计成本低,效果好,值得推广。
而如车载音乐播放器、能够播放流式音乐的播放器更是我们要深入的领域。
第1章绪论本设计系统是基于单片机的音乐播放器的设计,具有一定的实际意义。
因此在设计过程中,设计的系统应该考虑到播放器便捷性和稳定性,使设计的系统能够使人们的生活更加丰富多彩。
系统的设计是先是通过第2章,方案的论证,确定系统的元器件。
第3章,硬件电路的设计,硬件的设计是通过元器件的功能和使用方法进行的。
目录一、引言—本课程设计的目的 (2)二、八路LED跑马灯实验 (2)2.1设计内容 (2)2.2电路图 (2)2.3上机程序 (3)2.4调试结果及结论: (4)三、二位数码管循环显示00~99的实验 (4)3.1设计内容 (4)3.2电路图 (4)3.3上机程序 (5)3.4调试结果及结论 (6)四、单片机演奏音乐实验 (6)4.1设计内容 (6)4.2电路图 (6)4.3上机程序 (7)4.4调试结果及结论 (9)五、心得体会 (9)六、参考文献 (10)摘要:由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。
通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。
一、单片机课程设计的目的以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。
二、八路LED跑马灯实验2.1设计内容:八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了。
2.2电路图:.2.3上机程序:org 0000hajmp startorg 0030hstart:mov a,#7fhclr cmov r2,#08hloop: rrc amov p0,acall delaydjnz r2,loopmov r2,#07hloop1: rlc amov p0,acall delaydjnz r2,loop1jmp startdelay:d1: mov r4,#20d2: mov r5,#248djnz r5,$djnz r4,d2retend2.4调试结果及结论:八路发光二极管轮流点亮汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!三、二位数码管循环显示00~99的实验3.1设计内容:8段数码管显示.两位数码管显示00--99依次循环(动态扫描方式).p1做LED 显示数据输出口.p3.2;p3.3分别控制数码管个位数和十位数显示.用单片机进行数码显示应具有显示器件;应用最广泛的是8段数码管。
西北师范大学知行学院计算机与电子信息工程系课程设计报告书课程名称: 单片机程序设计专业: 电子信息工程课题名称: 基于单片机的音乐播放器设计班级: 12电本班学号: 201292160124姓名: 窦红莉指导教师: 胡亚琦二○一四——二○一五学年第一学期基于单片机的音乐播放器设计一、实验题目基于单片机的音乐播放器设计二、实验内容本设计是一个基于AT89C51系列单片机的音乐播放器,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐播放器。
该音乐播放器主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。
使用两个按键控制音乐播放器,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。
播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。
本设计利用KEIL编程软件对音乐播放器源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。
【关键字】音乐盒;AT89C51单片机; KEIL; PROTEUS;音调三、设计目的1、设计方案设计一个基于AT89C51系列单片机的音乐播放器,利用按键切换演奏出不同的乐曲。
蜂鸣器发出某个音调,与之相对应的LED亮起。
使用两个按键,一个用来切换歌曲,另一个切换八路LED的变化花样。
2、研究内容1)电路有两种工作模式:演奏音乐模式和花样灯模式。
演奏音乐模式:演奏完整的一首的歌曲,八路LED随着音乐变化。
花样灯模式:八路LED变化出各种花样,蜂鸣器随着发出“嘀嘀”声2)按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲。
3)按下按键2进入花样灯模式,再按切换LED花样,共三种花样。
此电路的程序只占用了1K左右,可编制更多的音乐和LED花样,使系统的功能更加强大。
3、设计原理1)系统组成框图音乐播放器的系统结构以AT89C51单片机位控制核心,加上2个按键、时钟复位电路、蜂鸣器、LED模块组成。
第一章前言伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理!第二章: 简易音乐播放器的功能和原理说明音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED灯,让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能!表1 需求分析功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。
原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键电路以及扬声器组成。
它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。
音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制扬声器发音。
通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0来产生不同频率。
当控制歌曲按键按下时,按照预先存放在单片机中的程序,就会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过uln2003芯片驱动扬声器,播放出乐曲。
该硬件电路中用P3.0,P3.1,P3.2,P3.3控制四个按键,“0”,“1”,“2”,“3”分别控制四首音乐。
P1.0,P1.1,P1.2,P1.3控制四个LED灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3 来控制扬声器,电路为12MHz晶振频率工作,起振电路中C1 和C2为22pf。
基于单片机音乐播放器系统设计开题报告
河南科技学院新科学院
本科生毕业论文(设计)开题报告
题目名称基于单片机的音乐播放器系统设计
学生姓名
专业
电气工程及其自动化
学号
指导教师姓名
所学专业
模式识别与智能系统
职称
完成期限
20xx 年 11 月 22 日至
一、选题的目的意义
当今世界单片机的应用非常广泛而应用在音乐播放器的系统上的例子也不胜枚举这类音乐播放器就是单片机应用的一种体现这种音乐播放器有功能多、价格廉、外部电路简单的优点深受音乐爱好者及音乐芯片制造商的青睐。
便携式音乐播放器作为一种集音频播放、数据存储为一身的数码产品多应用有高集成度整合了各类音频处理或数据通信模块的8位乃至多位单片机以达到最
小系统设计。
但是它们在保证便携性的同时音质受到了一部分的损失。
现在市场上大多单片机音乐播放器都能完成音频解码播放的过而且支持的格式也是越来越多的。
数字信号处理器是在模拟信号变成数字信号以后进行高速实时处理的专用处理器,其处理速度比最快的CPU还快10-50倍。
在当今的数字化时代背景下,单片机己成为通信、计算机、消费类电一矛产品等领域的基础器件,被誉为信息社会革命的旗手。
业内人士预言单片机将是未来集成电路中发展最快的电子产品,它将彻底变革人们的工作、学习和生活方式。
二、国内外研究现状
在国内外这种基于单片机的音乐播放器都非常流行。
据网络调查公司Jupiter Media Metri_的统计数据显示:使用基于单片机的音乐播放器(无论是离线播放器还是网络播放器)的家庭用户从20__年1月的33200万猛增到20xx年的41700万。
在工作使用这种音乐播放器的专业用户也较去年同期上升34.9%从20__年1月的11600万增涨到20xx年的15700万。
以单片机为基础的音乐播放器设计成本低、音质效果好值得推广。
而如车载音乐播放器等也是这种播放器要深入的领域。
扩展功能强大的音乐播放器是未来音乐播放器的发展趋势体积小携带方便但又功能强大这也是现在所有电子产品的未来。
在扩展功能上这次设计本来还想加上收音机的功能能使人们能够接
受实时资讯但是由于技术有限没能够完成不过在以后的不久一定会有这种更多功能的音乐播放器问世的。
三、主要研究内容
基于单片机的音乐播放器设计是以单片机AT89C51作为硬件核心控制部件键盘输入电路解码芯片功率放大器LCD显示电路SD 卡存储电路USB通讯电路以及其他外围设备电路组成音乐播放系统。
根据音乐演奏控制所需实现的显示与选曲及音乐产生的功能原理系统包括扬声器、选曲、播放和显示等几部分。
MCU控制USB接口芯片与计算机通讯将从计算机上下载的文件存储于SD卡。
播放时MCU控制从 SD卡读取文件并传送给解码芯片通过总线控制其解码解码后的数字音频信号在MCU的控制下通过D/A转换器转换成模拟音频信号放大输出到扬声器。
演奏时MCU 扫描判断摁键工作情况并产生相应频率方波转换放大输出。
录音时在MCU的控制下声源由MIC存储到SD卡里。
四、毕业论文(设计)的研究方法或技术路线
以AT89C51为核心的音乐播放器系统通过单片机控制外围电路各个硬件的工作来实现音乐的播放。
在音乐播放模式中单片机控制各芯片协同工作由扬声器放出音乐;在电子琴模式中单片机电子琴演奏音乐基本都是单音频率它不包含相应幅度的谐波频率因此单片机奏乐只需弄清楚每个乐音的音调即相应的发声频率。
在电子琴模式中有矩形键盘输入高低不同的脉冲信号通过AT89C51来控制蜂鸣器发音。
要想产生音频脉冲信号需要算出某一音频的
周期(1/频率)然后将此周期除以2即为半周期的时间。
利用单片机定时器计时这个半个周期时间每当计时到后就将输出脉冲的I/O 口反相然后重复计时此半周期时间再对I/O口反相这样就能在此I/O口上得到此频率的脉冲。
在录音模式中声源由MIC接收经过解码转换存储在SD卡里面。
本系统以单片机 AT89C51 的核心主要负责控制各个部分协调工作。
在其外围接上:电源、通信电路、复位电路、控制电路、存储电路、显示电路、音频处理电路及外放电路。
各部分核心元件分别为:USB控制芯片、晶振、键盘、SD 卡、液晶显示、解码芯片、小功率集成功放、D/A 转换芯片、扬声器。
其整个工作过程为:AT89C51芯片控制USB接口芯片与计算机通讯交换数据和充电使用将从计算机上下载的音频文件存储在SD卡。
播放时AT89C51控制从SD卡读取音频文件并送给解码芯片通过总线控制其解码解码后的数字音频信号在AT89C51芯片的控制下通过D/A转换器转换成模拟音频信号有放大器放大并输送到扬声器。
主要参考文献与资料
[1]沈红卫. 基于单片机结构的智能系统设计与实现[M] 电子工业出版社20__
[2]李重光. 音乐理论基础[M]人民音乐出版社20__
[3]张力天. DSP目前的技术和市场动态[J]集成电路
20__.621-30
[4]欧伟明. 单片机原理与系统设计[M]电子工业出版社20__
[5]李军. 单片机高级实例开发指南[M]北京航空航天大学出版社20__
[6]康光华. 电子技术基础[M]高等教育出版社20__.1
[7]于海生. 计算机控制技术[M]机械工业出版社20__.5
[8]罗卫星. 单片机音乐播放器设计[J]科学之友20__.11137-139
[9]黄振杰卢小冰. 基于AT89S5单片机的多功能音乐播放器[J]电子设计工程20__.217-21
[10]王宇炎李明伟. 基于C51单片机的MP3播放器设计[D]洛阳理工学院 20__
[11]田媛. 单片机音乐播放器功能多样性的设计与实现[D]陕西工业职业技术学院信息工程学院20xx.2
[12]王亭亭葛熠李峰. 基于AT89S52单片机的音乐播放器
[D]南京信息工程大学电子与信息工程学院20__.5
[13]远飞. 基于单片机的音乐播放器的仿真与制作[D]无锡商业职业技术学院20__.12
[14]曹丽燕. 基于单片机的音乐盒设计[J]软件开发与设计20__.4 58-60
[15]姜丽娜李争艳牛茂苍. 简易音乐播放器的设计与实现[J]科技资讯 20__ 28期230-231
[16]崔广中. 解读扩声系统传输频率特性[J]演术科技
20__.11 64期25-26
[17]程露. 以用户为中心的音乐播放器设计分析[D]北京理
工大学设计艺术学院20__.9
[18]宋阳张志勇. 音乐播放器的硬件设计与实现[J]教育战线20__106-107
[19]田治治. 音响设备的常见故障解析[J]家庭电气化
20__.1138-39
[20]贺辉张来希. 用单片机演奏音乐[J]ONE’S
E_PERIENCES20__.7 99-100
[21]吴金戌. 8051单片机实践与应用[M]清华大学出版社
20__
[22]王治刚. 单片机应用技术与实训[M]清华大学出版社20__
[23]彭为. 单片机程序设计基础[M]电子工业出版社20__
[24]何立民. 单片机高级教程[M]北京航空航天大学出版社2000
[25]周美娟. 单片机技术及系统设计[M]清华大学出版社20__
[26]王亚玲冯涛张燕. 单片机控制系统中电磁干扰及抗扰措
施研究[J]江西电力职业技术学院学报20__年03期
[27]邹丽新翁桂英. 单片微型计算机原理[M]20__年第一版苏州大学出版社248页
[28]周向红. 51系列单片机应用与实践教程[M]20__年第一版北京航空航天大学出版社235页
[29]戴佳戴卫恒. 51单片机C语言应用程序设计实例精讲[M]20__年电子工业出版社454页
[30]侯玉宝陈忠平李成群等. 基于Proteus的51系列单片机设计与仿真[M]20__年电子工业出版社334页
[31]刘守义. 单片机应用技术[M]20__年西安电子科技大学出版社360页
[32]马忠梅. 单片机的C语言应用程序设计[M]北京航空航天大学出版社20__
[33]李玉梅. 基于MCS-51系列单片机原理的应用设计[M] 国防工业出版社20__
[34]E.Musson.Electric motor protector development [J] . International Journal of Production Research, 1998.06,
[35]Kazuhiko Hashimoto. Tomohiro Tsuruta, Katsuya, Morinaka, Nobuyuki Yoshiike.High performance human information senor [J], Sensors and Actuators.
VOL79.No1.2000.
指导教师审批意见
签名:
年月日。