基于51单片机的自动音乐播放器设计毕业论文.doc
贵阳学院本科毕业论文(设计) 本科毕业论文(设计)题 目: 基于51单片机的自动音乐播放器设计 院 系: 电子与通信工程学院 专 业: 通信工程 姓 名: 张志顺 学 号: 101118401042 指导教师: 陈冬云 教师职称: 助教 填写日期:2014年4月20日摘 要 为了人们在快节奏的日常生活,优化工厂、事业单位、公司等的计时系统,采用了依靠单片机为基础设计了一种的自动音乐播放器。本设计利用单片机89C58RD+的计数和定时功能,来完成对时间的定时和显示功能。并且,通过对定时器初值的设定来产生不同频率的声音,利用定时器中断来对音乐节拍长度的控制。通过LM386N1音频功率放大器的音频放大功能,将单片机控制输出的信号放大,然后通过扩音器播放乐曲。通过MAX232型芯片,可以转换PC机上的电压和单片机的电源电压,再通过相应串口接入PC机,这样就能从PC机上将用C语言编写的程序代码下载到单片机上。最后可以在数码管上显示时间,当到达之前设定的时间之后,扩音系统就会自动播放一段连续而美妙动听的音乐。此设计规避了传统闹钟的难听并且刺耳声音,而变成的是美妙动听的音乐,能给处于当前快节奏生活的人们的日常生活提供精确的计时,且因为成本较低,值得推广。 关键词:单片机;自动音乐播放;音频转换;时间显示;LM386N1音频功率放大器。Abstract To people in the fast pace of daily life, optimization of factories, institutions, companies such as timing system, based on microcomputer was adopted to design a kind of automatic music player. This design using the single chip microcomputer 89 c58rd + count and timing functions, to complete the regular and display function of time. And, through to the setting of the initial value of timer to generate different frequencies of sound, using a timer interrupt to control of the beat of the music length. Through the audio amplifier function LM386N1 audio power amplifier, the single-chip microcomputer control output signal amplification, and then through loudspeakers. Through MAX232 chip, can convert the voltage of power supply voltage of PC and microcontroller, again through the corresponding access PC serial port, so you can from the PC to download program code written in C language to the single chip microcomputer. Last time can be displayed on the digital tube, when, after arriving in setting the time before the public address system will automatically play a continuous and delightful music. This design to avoid the traditional alarm clock ugly and harsh voice, and become the beautiful melody of music, can give in the fast-paced life of the People's Daily life to provide accurate timing, and because of lower cost, is worth promoting. Key words: single chip microcomputer; Automatic music playback; Audio conversion; Time display; LM386N1 audio power amplifier.贵阳学院本科毕业论文(设计)目录第一章 绪论1第二章 系统硬件的设计22.1设计目的22.2硬件电路结构22.3 89C51单片机芯片介绍32.4 89C51单片机的基本组成32.5 硬件电路设计4第三章 音乐播放器的系统软件设计83.1音频脉冲产生的原理83.2 节拍产生原理与音乐频率转换83.3 音阶的实现93.4 音频转换流程图103.5 主程序设计流程10第四章 系统调试及分析124.1硬件调试124.2 软件调试134.3 仿真结果144.4 演示效果15结 论16致 谢17参考文献18附录19III 第一章 绪论 本设计系统是基于单片机控制实现完成音乐播放功能的设计,在现实生活中具有其广泛的应用及实际意义。因而在设计的时候,会着重考虑该系统的稳定跟便利的特点,通过设计出来的系统为人们提供更加丰富多彩的生活。系统的设计是先是通过系统硬件设计,加强对单片机的认识,硬件的设计是通过元器件的功能和使用方法进行的。音乐播放器的音阶原理及系统软件实现,软件程序的设计,系统的软件设计是根据单片机对其它元器件的控制进行设计的。以实现系统的采集功能。本设计通过对测量放大器性能指标的分析,明确设计原理跟设计思路,提出多个需要使用电路搭建电路的方案,并对每个方案的优缺点进行逐一系统地对比,最终得出此毕业设计方案。通过对测量放大器的设计,论文中进行了对于稳压电源设计原理和思路的一系列的讨论,通过分析讨论之后,最终定下该电源电路设计方案,以达到设计要求。本次毕业设计主要通过对测量放大器以及稳压电源的设计,系统性地熟悉并掌握了一般电子系统的一般的设计方法跟思路,熟悉了一些常用的电子元器件,并对大学所学的模电跟51单片机知识得到了巩固跟加强,熟悉了电路调试仿真的一系列基本方法,使自己能将课本中所学的理论知识得以应用,为自己的设计能力得以加强。0第二章 系统硬件的设计2.1设计目的设计一个音乐播放器,通过按钮控制单片机,播放所要求的音乐片段,并通过放大电路和蜂鸣器输出美妙动听音乐,同时还可以通过数码管显示播放信息。2.2硬件电路结构该系统中最主要的电路有电源电路(为整个系统提供必须的电源),晶振电路(为单片机提供一定频率的系统时钟),单片机(小型CPU,起控制作用),显示电路(控制数码管显示),键控电路(进行按键切换),复位电路(使整个系统恢复到初始状态),发声电路(主要有三极管进行功率放大)组成:显示电路89C51单片机电源电路12MHZ晶振电路发声电路复位电路键控电路2.3 89C51单片机芯片介绍AT89C51单片机有很好的可擦除性能以及兼容性,该产品为很多嵌入式控制系统提供了更高性价比及更佳灵活的方案。引脚排列和外形如图2-4所示 (二)稳压芯片LM7912的主要参数主要参数:最大输出电流:1A输出电压:12V图2-1 AT89C51引脚序列及外形图2.4 89C51单片机的基本组成·一个8位的80C51微处理器(CPU)·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源 ·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.5 硬件电路设计(1) 晶振电路此电路的两个电容的频率一致,形成共振,从而达到一个稳定的频率。最主要作用是为单片机提供一定频率的系统时钟。晶振提供的时钟频率越高,意味着单片机运行速度也就越快。图2-2 晶振电路(2) 复位电路复位电路工作原理如下图所示,复位方式有上电复位跟手动按钮复位两种。通电后电路对电容进行充电,此过程使其处于高电平状态,在高电平状态时能达到复位,按下按键后电路的电容处于放电状态,即低电平,不能复位。图2-3 复位电路(3) 发声电路发声电路是用三极管(PNP)驱动蜂鸣器低电平正常发声,对于PNP管,基极接低电平,发射极接VCC, BE导通。集电极接负载接地, CE导通。当I/O口输出是高电平是,三极管处于截止状态。图2-4 发声电路(4) 按键电路本来按键开关有四个引脚,但自己所做的设计只能用到其中两个引脚,若开关按下的时候电路处于导通状态,四个开关处于并联状态,相互不会产生任何电压电流的影响。图2-5 按键电路(5)电源电路通过USB口提供电流,再经过两个滤波电容过滤掉其中的交流电流,使其变成单一的直流电流。图2-6 电源电路(6) 显示部分电路该部分由4个晶体管控制4个数码管,晶体管的原理和发声电路里的晶体管的原理是一样的,当晶体管的基极是低电平时,数码管处于显示状态,相反,处于高电平时,晶体管处于截止状态,而数码管也处于截止状态。显示部分分为位选部分和段选部分:图2-7 显示部分分为位选部分图2-24是段选部分,由P0控制数码管的段选,从而显示你想要的数字,图2-24为共阳极数码管,当I/O为低电平时,相应的段位的灯就会亮,相反,当I/O为高电平时,相应的段位的灯就不会亮。图2-8 显示部分分为段选部分(7) PC机与单片机通信接口使用时需要注意的是MAX232有两组输入,两组输出,你在使用时输入输出要同号,即与单片机相连的端,输入选的是T-IN2,输出选R-OUT2,与串口座DB9相连端同样选择输入端RR-IN2,输出端RR-OUT2。图2-9 单片机与PC机通信部分第三章 音乐播放器的系统软件设计3.1音频脉冲产生的原理音频振动会导致声音的产生,频率的高低决定了声音的高低。音频大致处于20HZ-200KMH之间。其中正常耳朵能辨识声音频率大致为200HZ-20KHZ。音乐是由音符组成的,而不同的音符对应不同的振荡频率。单片机的定时器可以产生不同频率,在驱动通过蜂鸣器,就可以播放音乐了。如果要产生音频脉冲,需要算出该音频的周期T,然后除以2得到半周期T/2时间,再通过让单片机的某个I/O口反向,就能够在单片机的这个I/O引脚得到次频率的脉冲。3.2 节拍产生原理与音乐频率转换通常音阶频率都是是固定不变的,然而节拍则有快慢的区别,拍子的长短与节奏的快慢成反比。控制发音有调用延时程序和采用定时中断两种方式。据节拍原理的特征,可设定每0.4S为1拍,1/4拍就是0.1S,只要设定延时时间就可以求得节拍时间。假设1/4拍为1DELAY(延时),则1拍应为4 DELAY,则以后的诸如3/4拍等均可以依次类推。表3-1 为节拍时间设定表表3-2 节拍码对照表1/4节拍 1/8节拍节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍71又3/4拍77/8拍82拍81拍92又1/4拍91又1/8拍A2又1/2拍A1又1/4拍B2又3/4拍B1又3/8拍C3拍C1又1/2拍D3又1/4拍D1又5/8拍E3又1/2拍E1又3/4拍F3又3/4拍F1又7/8拍3.3 音阶的实现因为每个音阶对应相应的频率,所以音阶可以用来表示音调的高低。又由于音阶可以通过不同频率的方波产生,其关系如表3-3。因为频率倒数即为周期,所以可由单片机中的定时来控制方波的周期,每当定时器计数溢出时就会产生中断反应。其周期可以通过跟扬声器所连接的P1.7取反后就得到,因此可以达到控制频率(音阶)的目的。音阶频率(Hz)定时器初值音阶频率(Hz)定时器初值音阶频率(Hz)定时器初值1234567013114716517519622024700F85EH0F933H0F9F0H0FA49H0FAE6H0FB74H,0FBF4H0100H1234567026229433034939244049400FC2FH0FC99H0FCF8H0FD22H0FD73H0FDBAH0FDFAH0100H1234567052358765969878488098800FE17H0FE4CH0FE7CH0FE91H0FEB9H0FEDDH0FEFDH0100H低八度音中音高八度音表3-3音阶与频率的关系注:0表示简谱中的空拍当晶体振荡频率达到6.144MHz,定时器在方式1下工作时,如果各音阶相对应的定时器计数初值为X,则可根据计算X。3.4 音频转换流程图图3-1 音频转换流程图3.5 主程序设计流程通过初始化进行中断属性设置、定时器设置并打开中断跟定时器,此过程中CPU处于一直不断运行中,然后等待按键是否按下,即判断电平状态,高电平为断开,低电平为导通,然后进入下一个环节判断按键编号,播放指定的曲目,播放完成,这是循环往复的一个过程。开始初始化no设置中断属性、设置定时器打开中断、打开定时器判断按键是否按下判断按键的编号yes执行播放命令结束 图3-2 软件设计流程第四章 系统调试及分析在比较了市面上较多的仿真软件之后,在从对软件熟悉程度以及自己的毕业设计要求做了认真的对比之后,慎重选择的仿真平台为Proteus软件,结果证明这是能够达到此次毕业设计的仿真要求的。 4.1硬件调试本次设计在调试单片机89c85RD+、LM386N1跟MAX232的电路过程中也遇到了许许多多的问题。问题:单片机无法正常下载程序。调试步骤:(1)检查单片机跟串口电路连接是否错误。检查出单片机的18、19脚的印制线接在了17、18脚上,致使晶振无法工作。出现错误原因是由于自己制作PCB板时,自己将印制线连错。解决办法:将17脚的印制线用小刀将其切断,再将19脚与晶振通过导线连接起来。(2)检查串口的接口是否连接正确。发现串口连接线的发送两端跟数据接收接反了,致使单片机无法正常接受到数据。解决办法:把串口DB9端拆出,将连接2脚和3脚的数据线进行交换。 (3)检查焊接电路是否有虚焊和漏焊。 (4)检查所选串口助手芯片是不是正确的。MAX232工作电压如表4-1所示。表4-1 管脚电压值(V)管脚电压值(V)16.6794.7028.7810032.52114.7744.13120.445-4.2513-9.856-8.1614-7.6078.2615080164.794.2 软件调试图4-1 硬件部分图此次调试我把重点放在分模块调试上,通调被我放在最后一个环节。采取了离线调试和在线调试两种软件调试方式,其中离线调试无需硬件仿真器,只需要借助于软件仿真器就可以完成调试;而在线调试一般需要借助于仿真系统的支持。在本次设计中是借助于keilc51软件仿真器。对该MP3播放器的设计的调试最主要的是对扬声器的输出音乐部分的调试跟键盘控制和LED显示部分的调试,可以按照以下顺序对各个功能模块的程序进行调试。(1) 将P2口作为输出口用来实现LED的显示,进而检测P2口和LED显示模块能不能正常进行工作。(2) 通过键盘的控制LED数码管显示相应的内容。(3) 使用某I/O口做输出口使扬声器工作。通过软件对该设计的各种调试以及自己做出的自动音乐播放器的各个功能模块的电路跟代码调试之后,产品的各个性能指标均能达到设计要求。产品图片如下:实物图4.3 仿真结果 在keil仿真软件中建立工程,连接,通过编译后生成.hex文件,然后加载在proteus中的单片机.hex文件仿真中遇到了以下几个问题。(1)按键与LED显示不能同步,最后修改程序后,显示正常。(2)蜂鸣器不能正常被控制播放音乐 ,在protues仿真中的蜂鸣器老是不能正常响,会断断续续地播放,按键控制后音乐出现一些错误。4.4 演示效果当接通电源之后,开启指示灯边上的开关,指示灯亮之后,按下单片机旁边的黑色按钮,就可以通过按键电路上的按键开关进行切换歌曲,每次切换的时候需要先按单片机旁边的复位键之后才可以,我在此次设计中总共设置了三首歌曲,具体效果如下图所示: 效果图 20结 论在这次研究设计的过程中不乏会遇到很多困难,但在同学和老师的帮助下,让我懂得了怎样去挑战困难,深知科学研究的不容易。懂得了坚持不懈才会成功,也只有坚持不懈和认真学习研究才能学有所成。在设计过程中我不断通过看书、网上查阅资料以及询问同学和老师的渠道来获得相关知识,使得设计才成功完成。期间学习使用keil编程软件、Altium Designer绘图软件以及protues仿真软件的使用,并成功的利用protues来完成了仿真过程并依据此完成了我的毕业设计。这是我本科阶段最后的一次工作,其充满了苦与乐,让我收获了很多课堂上无法获得的知识,留下了美好的一段人生插曲。通过本次设计让我懂得了在以后的生活中,我必须以严谨认真的科学态度才能完成工作,在生活中必须拥有勇于探索、勇于实践和开拓创新精神。致 谢本论文在陈冬云老师的帮助下顺利完稿,感谢陈老师在撰写过程中提供各个方面的帮助和意见,让我感到受益匪浅,同时也感谢我的室友,他们为我的论文研究提供了大量的资料和可行性方案,并帮助和指导我完成论文的主要程序。在论文设计过程中,遇到诸多的麻烦,后来经过老师及其同学的大力帮助,并对前期的方案进行系统地修改后,方才得出一个更为合适的可行性方案,使得论文顺利完稿,在这里我非常感谢对我在论文设计过程中提供过帮助的老师和同学。在论文的设计的过程中,通过一系列的学习使我不断成长,学到了很多宝贵的东西,既对以前的只是得到了系统的复习,又学得了不少新的东西。论文是大学毕业的最后一道学习,需要很多方面的知识来完成,特别是对专业课是一个很有力的检验,刚好在这些方面我又存在太多的不足。所以通过这段日子的论文撰写,让我在这些方面的知识得到了很大的巩固和补充,这些重要的知识将在我以后的人生道路上产生很大的作用。由于我个人的知识局限性,以及时间的仓促,论文撰写难免有不妥之处,敬请各位评审老师指正,对你们认真细致的工作态度致以真诚的谢意!参考文献1 郑郁正.单片机原理及应用.四川大学出版社,2003.2 谭浩强.C程序设计(第二版).清华大学出版社,1999.3 王晓君.安国臣等. MCS51及兼容单片机原理与选型. 北京-电子工业出版社, 2003.4 米昶. 零点起航.CDA应用软件系列教材:Protel DXP电路设计基础教程 . 机械工业出版社 , 2005-01-01 .5 谈世哲. Protel DXP2004电路设计基础与典型范例. 电子工业出版社, 2007.6 张义和.陈敌北.例说8051.北京.人民邮电出版社,2006.7 张洪润.张亚凡.单片机原理及应用.清华大学出版社,2000 .8 李朝青.单片机原理及接口技术.第三版. 北京.北京航空航天大学出版社,2003.9 唐颖. 单片机原理与应用及C51程序设计. 北京大学出版社,2008.10 张秀国. 单片机C语言程序设计教程与实训. 北京大学出版社,2008.11 马忠梅. 单片机的C语言应用程序设计(第3版). 北京航空航天大学出版社,2008.12 黄振杰. 基于AT89S52的多功能音乐播放器J . 广东:电子设计工程,2009.13 何立民MCS-51系列单片机应用系统设计北京航空航天大学出版社,M 1990 .14 张义和.王敏男等.例说51单片机M. 北京:人民邮电出版社,2008.4.15 陈明荧.8051单片机课程设计实训教材M(第一版).北京:清华大学出版社,2004.16 AT89C51 DATA SHEEP Philips Semiconductors 1999.dec .附录附录一、总体原理图附录二、PCB图图2-3 PCB 附录三、音频程序的编写1 将节拍代码装入低4位,音符代码装入8位字节高4位,组成一个字节,由此类推。将整段音乐转换成一定长度的编码表。具体方法如下:(1)开始,定义toneh和tonel出两个数组,把每个音乐频率的定时器初值的低8位装入tonel和16进制数的高8位装入toneh。(2)通过单片机的定时器中断功能,将tonel和toneh的数据分别装入TL0和TH0。void timer0(void) interrupt 1 using 1 P1_0=!P1_0; TH0=tonehrti; TL0=tonelrti; (3)通过定时器1来控制音乐节拍的运行时间长度,将以上定时器初值装入定时器1。void timer1(void) interrupt 3 using 2 TH1=0x0c; TL1=0xdc; m+; 2 查频率表取出控制音符的代码,放入T/C口,取出控制节拍的代码,放入定时器中使用,启动之后就能发出美妙的声音了。