基于51单片机的音乐播放设计.doc_第1页
基于51单片机的音乐播放设计.doc_第2页
基于51单片机的音乐播放设计.doc_第3页
基于51单片机的音乐播放设计.doc_第4页
基于51单片机的音乐播放设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北大学2014届本科生学年论文(课程设计)基于51单片机的音乐播放设计摘要为方便人们的日常生活,优化学校、机关等单位的计时系统,采用以单片机为基础设计了一种的自动音乐播放器。本设计利用单片机AT89S52的定时和计数功能,来完成时间的显示和定时功能。并且,通过对定时器初值的设定来产生不同频率的声音,利用定时器中断来完成对音乐节拍长度的控制。通过音频功率放大器,将单片机输出的信号放大,再通过喇叭播放乐曲。通过MAX232型芯片,可以转换PC机上的电压和单片机的电源电压,再通过串口接入PC机,这样就能从PC机上将用C语言编写的程序下载到单片机上。最后可在数码管上显示时间,当定时时间到后,喇叭自动播放一段连续的音乐。此设计摆脱了传统闹钟的刺耳声音,取而代之的是美妙的音乐,能为人们的日常生活提供准确的计时,且成本低廉,值得推广。关键词:音乐播放;音频转换;时间显示;ULN2003Music playback design based on 51 single chip microcomputerAbstractFor the convenience of Peoples Daily lives, to optimize the timing system schools, agencies and other units, on the basis of the single chip microcomputer was adoptedto design a kind of automatic music player.This design using the single chip microcomputer AT89S52 timing and counting functions, to complete the time display and timing functions.And, by the setting of the initial value of timer to generate different frequencies of sound, using a timer interrupt to complete control of the beat of the music length.Through the audio power amplifier, MCU output signal amplification, then play the music over the loudspeaker.Through MAX232 chip, can convert the voltage of power supply voltage of PC and microcontroller, through a serial port connected to the PC, so you can from the PC will be written in C language program downloaded to the microcontroller.Finally on the digital tube display time, when the time to regularly, speakers play a continuous music automatically.This design to get rid of the traditional alarm clock sharp voice, instead, the wonderful music, can offer the accurate timing for Peoples Daily lives, and low cost, is worth promoting.Key words:Music playback;Audio conversion;Time display;ULN2003目录1总体设计12硬件设计22.1AT89S52型单片机介绍22.2ULN2003及外围电路的设计22.3串行通信和MAX232芯片32.4AT89S52的定时/计数器概述32.5LED显示53软件设计63.1音乐编程原理及其流程图63.1.1产生声音信号63.1.2产生节拍信号63.1.3音频转换73.2时间显示程序设计84仿真及调试过程94.1硬件调试过程94.2软件仿真过程95结束语11参考文献121总体设计在基于单片机的自动音乐播放器中,采用AT89C52RC型单片机为硬件基础,通过C语言对芯片进行编程。单片机需外接+5V稳压电源,并通过MAX232电平转换芯片和串口接入PC机。单片机工作时,用软件对定时器初值进行设定,从而得到所需要的声音频率;通过四位共阴LED数码管,可显示时间,并可进行定时设置;将单片机输出的信号放大,接入喇叭即可发声1。具体要求如下:(1)对时间进行定时,当定时时间到后,通过喇叭能连续播放一段音乐。要求播放出的音乐的音阶准确,不能有太大偏差,否则会造成音乐声音刺耳难听;音乐播放必须连贯,即音乐必须有节奏感;喇叭放出的音乐声音响亮,不能太小,否则不能达到乐曲的提示作用。(2)在四位共阴LED数码管上显示出时间(24小时制),包括小时、分钟,当定时1秒后,秒数加1;当定时满60秒后,秒数归零,分钟数加1;当定时满60分钟后,分钟数归零,小时数加1;当定时满24小时后,小时数归零。设计的硬件流程模块如图1-1:单 片 机PC机RS-232LED显示音频功率放大器喇叭图1-1硬件流程模块图首先,PC机通过串口及MAX232芯片将程序下载到单片机中,其中包括把一个个的单音写入单片机的RAM存储器中,程序运行时再将音乐数据按顺序读出,利用单片机的定时器中断控制音乐节拍的长度,这样就能形成一段乐曲。在单片机P1.0口接入音频放大电路,将单片机输出的信号放大,再通过喇叭播放音乐。单片机P2口接4位共阴LED数码管,并外接1K欧的排阻,利用单片机内部的定时器中断控制时间程序,然后在数码管上显示出时间。2硬件设计2.1AT89S52型单片机介绍AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止2。2.2ULN2003及外围电路的设计ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成乃音频功率放大器,ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据3。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。ULN2003 采用DIP16 或SOP16 塑料封装。ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA,9脚可以悬空。采用ULN2003驱动蜂鸣器时设计电路图2-1如下: 图2-1ULN2003驱动蜂鸣器时设计电路图2.3串行通信和MAX232芯片在单片机和PC机之间,要通过MAX232芯片进行电平转换,MAX232芯片主要是完成TTLEIA双向电平转换。EIA-RS-232C与TTL转换:EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同4。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。与计算机USB之间通信需要USB转串口设计,如下图2-2: 图2-2USB转串口设计2.4AT89S52的定时/计数器概述图2-3是定时器/计数器的结构框图。由图可知,定时器/计数器由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。定时器0,定时器1是16位加法计数器,分别由两个8位专用寄存器组成:定时器0由TH0和TL0组成,定时器1由TH1和TL1组成。 图2-3定时器/计数器的结构框图 TL0、TL1、TH0、TH1的访问地址依次为8AH8DH,每个寄存器均可单独访问。定时器0或定时器1用作计数器时,对芯片引脚T0(P3.4)或T1(P3.5)上输入的脉冲计数,每输入一个脉冲,加法计数器加1;其用作定时器时,对内部机器周期脉冲计数,由于机器周期是定值,故计数值确定时,时间也随之确定。TMOD、TCON与定时器0、定时器1间通过内部总线及逻辑电路连接,TMOD用于设置定时器的工作方式,TCON用于控制定时器的启动与停止。计数方式时,T的功能是计来自T0(P3.4)T1(P3.5)的外部脉冲信号的个数。输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。外部输入信号的下降沿将触发计数,识别一个从“1”到“0”的跳变需2个机器周期,所以,对外部输入信号最高的计数速率是晶振频率的1/24。若晶振频率为6MHz,则计数脉冲频率应低于1/4MHz。当计数器满后,再来一个计数脉冲,计数器全部回0,这就是溢出。脉冲的计数长度与计数器预先装入的初值有关。初值越大,计数长度越小;初值越小,计数长度越大。最大计数长度为65536(216)个脉冲(初值为0)。定时方式时,T记录单片机内部振荡器输出的脉冲(机器周期信号)个数。每一个机器周期使T0或T1的计数器增加1,直至计满回零自动产生溢出中断请求。定时器的定时时间不仅与定时器的初值有关,而且还与系统的时钟频率有关。在机器周期一定的情况下,初值越大,定时时间越短;初值越小,定时时间越长。最长的定时时间为65536(216)个机器周期(初值为0)。2.5LED显示本文采用将多只LED的阴极连在一起的共阴式数码管。如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将b和c段接上正电源,其它端接地或悬空,那么b和c段发光,此时,数码管显示将显示数字“1”。而将a、b、d、e和g段都接上正电源,其它引脚悬空,此时数码管将显示“2”。8位共阳数码管管脚图如图2-4,采用2片74HC573驱动数码管,以降低I/O口使用数量: 图2-48位共阳数码管管脚图3软件设计3.1音乐编程原理及其流程图3.1.1产生声音信号声音是音频振动的结果,振动的频率高则为高音,频率低则为低音。音频范围为20HZ-200KHZ之间,而人类耳朵比较容易辨识的声音大概是200HZ-20KHZ。一般音响电路是以正弦波信号驱动喇叭,产生悦耳的音乐的5。在数字电路里,则是以脉冲信号驱动喇叭以产生声音。同样的频率,脉冲信号或正弦信号产生的音效,对于人类的耳朵来说很难有所区别。若用单片机产生声音,可利用程序产生频率,送到输入/输出端口,例如P1.0,再从该点连接到喇叭的驱动电路,即可驱动喇叭。若要产生音频脉冲,只要算出某一音频的周期,再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。3.1.2产生节拍信号音阶的频率是固定的,而节拍有快有慢,拍子越短节奏越快,拍子越长节奏越慢。控制发音的时间有两种方法:调用延时子程序或采用定时器中断6。本次设计采用的是定时器终端方式。设计的程序具体编程方法如下:1.首先,定义toneh和tonel两个数组,将各个音乐频率的定时器初值的16进制数的高8位装入toneh,低8位装入tonel。2.利用单片机的定时器中断,将toneh和tonel的数据分别装入TH0和TL0,并且,收到信号P1.0就反相。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+; 然后在程序执行时顺序查此表,取出音符代码,查频率表,置入T/C口,取出节拍代码,供定时器使用,启动后即可发出声音。3.1.3音频转换利用单片机的内部定时器使其工作计数器模式(MODEL1)下,改变其计数值TH0及TL0以产生不同频率的方法产生不同音阶。音阶与频率的对应关系如表3-1所示。表3-1音阶与频率的对应关系表音符DOREMEFASOLASI低音简谱码1234567频率/Hz523587659698784880987高音简谱码1234567频率/Hz1046117413181396156717601975设计的软件流程如图2-1所示。程序开始运行时先对单片机进行初始化,其中包括定时器及其工作方式的选择、外部中断设定、定时器初值的设定。开 始初始化读取简谱码简谱码是否在编码表中?读取音阶驱动喇叭延时YESNO图3-1软件流程设计图3.2时间显示程序设计对于时间程序的设计,主要依靠单片机内部定时器的计数功能实现。时钟由秒针、分针和时针组成,在程序中分别由sdata,mdata,hdata表示各单位的数据。首先对sdata,mdata,hdata分别设定一个初值,其中sdata设为0,表示秒针初始为0。然后利用定时器对秒针计数,当计数值达到1秒的时间后产生定时器中断,sdata的数据就加1。由于本次设计采用的晶振频率为6MHz,所以定时器取值为2500。将hdata的数据装入第一和第二个数码管,将mdata的数据装入第三和第四个数码管。当sdata的数据为59时,若此时再来一个定时器中断,则秒针重新归零,而分针就加1。同样,分针和时针的进位也是同一道理。当设定的闹钟时间一到,程序即转入音频程序,驱动喇叭放出音乐7。4仿真及调试过程4.1硬件调试过程本次设计的硬件电路主要由单片机AT89S52、MAX232和ULN2003的外围电路组成,在调试电路的过程中也碰到了一些问题。问题一:单片机无法正常下载程序。调试步骤:1、检查单片机和串口电路是否连接错。2、检查串口的接口是否连接正确。3、检查焊接电路是否有虚焊和漏焊。4、检查串口助手的芯片选择是否正确。MAX232工作电压如表4-1所示。表4-1MAX232工作电压表管脚电压值(V)管脚电压值(V)16.6794.7028.7810032.52114.7744.13120.445-4.2513-9.856-8.1614-7.6078.2615080164.79问题二:下载音频程序后无法播放音乐。调试步骤:1. 检查电源是否正常接入电路中。2. 利用示波器测试单片机输出端是否有信号输出,发现信号输出正常,说明单片机正常工作。3. 利用示波器测试音频放大电路输出端是否有信号输出,发现信号输出正常,说明音频放大电路工作正常,同时说明是喇叭部分出现了问题。4. 故障原因:焊接时将发声器件烧坏了,导致发不出声音。解决方案:重新换一个8欧姆喇叭,即可正常播放音乐。4.2软件仿真过程对于时间显示程序,采用Preteus软件来仿真。首先进入Preteu界面,设计一个简单的仿真电路,及一个单片机的基本外围电路,在P0.0-P0.7接一个4位共阴数码管和排阻。最后,把程序调入单片机中,开始运行。1、调试过程中所遇到的问题:运行程序时LED4位共阴数码管显示程乱码。 原因分析:数码管初始设置有错。 解决方案:重新设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论