1、基于单片机的音乐播放器设计附带程序与原理图* 大 学毕 业 设 计( 论 文 )题目基于单片机的音乐播放器设计作者*学院*学院专业电子信息科学与技术学号110802*指导教师*二一五 年 五 月 二十 日摘 要设计了一种基于STC89C51单片机控制的音乐播放器,该播放器具有歌曲播放、歌名显示、彩灯伴奏等功能,并采用红外遥控作为歌曲播放控制器,这使得整个设计具有观赏性的同时操作也更加便捷。该设计主要分五个模块,分别为单片机核心模块、红外遥控模块、彩灯伴奏模块、发声模块与液晶(LCD)歌曲信息显示模块,文章对每个模块做了简单的介绍,并对音乐发声原理做了详细的说明。本设计利用Keil软件对系统程序
2、进行调试和编译,并配合使用Altium Designer对硬件电路的进行设计与仿真,使得设计更加顺利。关键词:51单片机控制系统;红外无线遥控;发声原理;Altium DesignerABSTRACTThis thesis is describe a music player design based on 89c51 series single chip , the design is set of songs information shows , lights accompaniment. And introduct the infrared remote control as the
3、songs controller inacreativeway, that make whole design are ornamental and handled easily.This design is divided into five modules, the five modules are Micro Control Unit(MCU)module, infrared remote control module, lights accompaniment module, voice module and Liquid Crystal Display(LCD)song inform
4、ation display module, the article made a simple introduction for each module, and has made the detailed instructions of music sound principles.This design using Keil software to debugging program of the system , and cooperate with Altium Designer(AD)for hardware circuit design and simulation, which
5、making it smoother.Key words:systems-on-chips; infrared controller;vocalism principle;The Altium Designer摘 要 .i第一章 前言 .1第二章 概论 . 22.1 单片机简介 .22.2 单片机特点及应用 .2第三章 系统硬件原理与设计 .43.1 STC单片机系统 .43.2 红外接收模块 .53.3 LCD液晶显示模块 .73.4 LED彩灯模块 .73.5 发声模块 .8第四章 系统软件原理与设计 .94.1 音乐基础知识 .94.2 单片机发声的基本原理 .9第五章 系统调试与仿真
6、.135.1 程序调试与下载软件 .135.2 原理图设计与PCB制作 .14参考文献 .16第一章 前 言当今世界是一个以科技为主导的世界,电子技术进入了飞速发展的阶段,微型计算机的出现便是很好的见证。单片机技术的产生更是现代工业技术革命的一次新的突破。单片机发展至现在,在其功能、体积、可靠性和造价等方面已展现出其他微机难以比拟的优势,这也使得其在工业控制、智能仪器设备、数据分析系统、自动化办公等众多平台得到极为广泛的运用。与此同时,以单片机为控制中心的小型电子设备也日益增加,本设计就是以单片机为中心的小型音乐视听设备。人类最初是用声带进行歌唱的,这便是音乐的起源。随着人类智慧的快速发展,人
7、们不再满足于自己的声带,而是配合使用起了各种工具。除了用声音唱歌外,在管上凿孔或者张弦来奏出音乐作为娱乐,这便产生了乐器。慢慢的,人们对乐器的要求也愈来愈高,在乐器种类等等方面提出了越来越多的要求。这便使得乐器种类日益增多,演奏形式也更加变化多样,如今电子音乐时代的到来更是让音乐更加丰富多彩。为了让音乐播放器更加实用,设计时使用LCD液晶显示来显示乐曲信息,用LED灯做伴奏彩灯,并创造性使用红外遥控作为播放控制器。整个系统由STC89C52系列的单片机控制,结合C语言编程来完成系统的设计制作。第二章 概论2.1 单片机简介单片机又称为单片微型计算机,它不是一个一般的常见的逻辑芯片,而是一个在一
8、块不大的半导体硅片上集成了包括MCU、ROM以及定时计数器等器件的,一个比较完整的微型处理器系统。它分为专用型和通用性两种,我们一般使用的是通用型的,因为其体积小、质量轻、价格便宜,被学习和开发者追捧,成了学习计算机原理与结构的最佳选择。最古老的单片微机是英特尔公司在1976年发布的MCS-48系列的单片微机,它是一个含8位处理器的微机,并包含有1024B的 ROM、64B RAM以及27个I/O口,一个定时器,2个中断源。这个单片机功能并不强大,但在当时来讲已经非常不错了。而随着单片机的性能逐渐完善,单片机开始朝着微控制器化发展。到1982年,MSC-96系列的单片机在系统配置上有了较大的提
9、升,除了CPU、 ROM等方面有了改进,还另外包括8路10位的ADC,1路PWM的输出和高速I/O口等等,功能已相当强大。尽管单片机种类繁多,但我们使用的较多的还是51系列的,MCS-51系列单片机一般集成了可以由软件来设定的5个中断源,包过高优先级和低优先级两个中断优先级1。本次设计也是以51系列单片机作为核心系统控制部分。2.2 单片机特点及应用单片机与微处理器有些不同,微处理器的设计主要是考虑其计算机性能以及满足其外接设备和网络接口的,而单片机则主要从工业控制方面出发,为了加强其控制能力,从而提高工业环境下的可靠性、灵活性等。单片机有如下特点:一、型号多样且种类繁多;二、存储容量大;三、
10、频率和速度都高;四、集成度高、可控性强;五、功耗低;六、配套软件多,易扩展。正因为它有如此特点,使得其在许多领域都能得以应用: 一、在家用电器中的应用:如今智能家居受到越来越多家庭的喜爱,单片机控制的智能家居让生活更加方便,更加安全。 二、在医疗设备中的运用:血糖仪,供氧设备,人体分析仪器,血养测试仪,等医学分析和生命科学仪器都与单片机有关,可用单片机控制。 三、在大型电器中的模块化运用:使用单片机控制大型设备的某些小模块,并实现各个小模块之间协同控制,从而实现某一特定功能。四、在工业控制方面:用单片机可以构成各种控制系统。例如可编程控制器,编码器,传动调速器,监控报警系统,与互联网组合构成多
11、级控制系统等。五、在汽车电子设备上的应用:如今人们买汽车除了其在机械上的性能之外最看重的就是汽车的电子设备,而单片机控制的电子设备不仅让汽车性能更加可靠,同时也使人们有了更好的体验。第三章 系统硬件原理与设计本设计系统主要分为五个部分:红外接收模块、发声模块、LCD液晶显示模块、LED彩灯模块、89C52单片机系统。整个设计以单片机为控制核心,处理接收到的红外信号,并控制液晶显示、蜂鸣器发声以及让LED按一定规律亮灭。系统组成框如图3.1。 其中LCD显示器用于显示歌曲信息,彩灯模块会根据节奏的变化而变化,而红外遥控则能控制歌曲的切换,暂停,播放等功能。下面对各模块进行介绍。3.1 STC单片
12、机系统此部分为单片机最小系统,单片机最小系统以89C52为核心,外加晶振电路、复位电路、电源、接地。电路结构构成简单,所以成本也比较低,但抗干扰能力还是很强的。为了让单片机有序运行,需要给其一个时钟模块作为参考,这就是时钟振荡电路;复位电路有多种,为了方便起见,这里我们采用微分型的复位电路;电源所选用的是+5V的电源,可直接由稳压电源提供23。整体电路图3.2。图2.2 单片机最小系统 图3.2 单片机最小系统 3.2 红外接收模块红外遥控在现实生活中运用非常广泛,电视、空调、投影仪等各种电器都有用到,本设计使用红外遥控也有其优势。首先红外遥控距离长,抗干扰能力强,其次红外接收只占用到单片机一
13、个I/O口,信号处理主要由程序编程决定,所以I/O占用率低。而红外接收模块主要是红外接收器IRM。接收器之所以可以接受红外线,是因为里面集成了一个红外信号收集放大电路。它仅仅只有三个管脚,电源正负极和信号输出端。在两个引脚直接接上电源电压后她便是一个放大器,敏感度强且价格低廉,大小也合适,能方便的直接使用。在接收到已经被调制好后的信号后便能实现放大,选频和解调等功能,并从输出端输出原始信号。我们使用STC89C51单片机红外遥控来控制歌曲实现歌曲的播放、暂停、上一曲、下一曲等功能。图3.3 红外接收模块这里对红外遥控原理做简单介绍:当红外遥控的按键按下时,遥控首先发射一个完整的全码,一个完整的
14、全码由引导码、用户码1、用户码2、数据码和数据反码组成。其中,引导码由9ms的起始码和4.5ms的结果码组成;系统码和数据码一共32 位;其中前 16 位为用户识别码,用来识别不同型号的红外遥控,防止不同机种遥控红外信号互相串扰。后 16 位为各8位的操作码及其反码,该设置用于对接收数据进行比较核对以保证其数据的准确性45。验证完成后单片机会根据接收到的红外数据码执行相应的动作。当按下一个按键不松时,系统会发射一个连发代码, 连发代码是在持续按键时发送的码,如果键按下超过108ms 仍未松开,那么接下来发射的连发代码便仅由2.5ms的结束码和9ms的起始码组成,它主要是让接收端知道某键被按着而
15、未松开。 红外接收头接收到红外信号后会传送到单片机,给单片机去进行红外解码。解码最关键的地方便是识别“0”和“1”。代码“0”的信号是由0.56毫秒的低电平和0.56毫秒的高电平组成、“1”代码则是由0.56毫秒的低电平和1.68毫秒的高电平组成。所以我们主要是通过后面的高电平来区别0和1的。解码检测步骤如下:在0.56ms低电平过后,开始进行延时,马上再次检测,若读到低电平,说明该码为“0”,相反则为“1”,为了加强可靠性,我们将延时增加到0.56ms以上,但又不超过1.12ms,要不然如果此位为“0”的话,读到的可能是高电平,但是是下一位的高电平了,因此我们取最为可靠45,所以一般延时0.
16、84ms左右最为合适。3.3 LCD液晶显示模块LCD液晶显示器是一种利用光调制液晶的受光型显示器件。LCD的特点是厚度薄、重量轻、能耗低、发热少、低压工作、无辐射,而且视域宽、显示信息量多,能直接与CMOS集成电路相匹配。本音乐播放器设计上增上液晶显示模块,可为使用者提供较详细的曲目信息。由于普通的LED数码管只能显示数字和部分英文字符,而且显示内容数量受限,所以从设计成本,功能等多方面考虑,我们采用既能显示数字又能显示英文字母的液晶显示器LCD1602。并且LCD1602液晶显示器的驱动电路比较简单,可直接用单片机编程进行驱动67。所以LCD的显示驱动在软件中完成,硬件中不做处理。图3.6
17、 LCD1602显示模块3.4 LED彩灯模块设计中增加了LED彩灯作为花样伴奏电路,LED采用一般的黄色发光二级管。当播放乐曲时,LED灯会随着音乐的节奏亮灭。当系统发出“多”的音调时,D1灯亮;当系统发出“来”音调时,D2、D1亮;当播放器发出“米”音调时,D3、D2、D1亮;当播放器发出“发”音时,D4、D3、D2、D1亮;当播放器发出“索”音时,D5、D4、D3、D2、D1亮;当播放器发出“啦”音时,D6、D5、D4、D3、D2、D1亮;当播放器发出“西”音时,D7、D6、D5、D4、D3、D2、D1同时亮起。程序共设三个音阶,前面说的是在中音阶的时候彩灯的变换,当播放低音阶的时候LE
18、D全不亮,而播放高音阶的时候D1D8全亮。当程序开始执行时,音调对应的代码会被单片机识别,随后单片机根据检测到的音调控制发光二极管,使LED发出相应的变化89。彩灯硬件电路如图3.7。图3.7 LED硬件电路3.5 发声模块发声模块是由电磁蜂鸣器和8050 NPN三极管组成。电磁式蜂鸣器组成原件为铁芯、线圈、震动膜片及保护壳等。STC89C52输出控制信号,导通8050 NPN三极管使信号放大,发出震荡电流,振荡电流流通电线圈,使线圈产生相应的磁场,这一磁场会使振动膜片产生微小又迅速的波动,从而带动空气发生振动,如果达到一定的频率,就能引起人耳听觉反应,这也就产生了蜂鸣声。在调试时发现该发声模
19、块存在一定噪声,且音响效果一般。但因为这样的模块功率并不大,而且对驱动原件的要求不高,成本也随之降低了,所以选用此三极管和蜂鸣器作为组合来满足系统对硬件的的要求。图3.8 蜂鸣器驱动电路各模块之间的连接及系统原理图连接请见附录。 第四章 系统软件原理与设计本设计的难点主要在音乐程序上的编写,故这里仅对演奏原理程序作说明,其余本文不做详解(读者可自行阅读附录总程序了解详情)。4.1 音乐基础知识乐理常识上不同音调的音乐是用1、2、3、4、5、6、7来表示的,即音乐简谱,它们一般依次唱成duo、ruai、mi、fa、suo、la、xi,相当于汉字“多来米法索啦系”的读音。这七个音调又用C、D、E、
20、F、G、A、B来表示。在钢琴或者电子琴的琴键上,我们看到有黑白琴键相隔,像CD、DE、FG、GA、AB他们之间就隔着黑键,这样的距离就称做“全音”;而EF、BC两个之间没有隔黑键,这个距离称作“半音”。音乐分自然音和变化音,自然音就是17,而变化音则是在自然音的左上角加上#号或者b号来表示。其中标了b和#的又分别表示降记音和升记号,升记号用来表示音在原来音调的基础上升高半音,降记音表在原来的音调的上降半音10。不同音调的音乐对应着不同的频率,而不同音阶的频率却有着一定的关系。比如高音“来”的频率是1175Hz,中音“来”的频率是587Hz,两者相差一倍;同样的,高音“西”的频率(1976Hz)
21、刚好是中音“西”频率(988 Hz)的一倍因为使用电磁式蜂鸣器发声,所以播放的乐曲基本上都是单音频率的,不会有相应幅度变化的谐频变化,也就是说不能像电子乐器那样能奏出多种音色的声乐。因此为了让单片机播放音乐,我们只需要思考两个方面的问题,即“音调”和“节拍”。4.2 单片机发声的基本原理系统发出声乐的基本原理是:一首音乐曲子是由音调与节拍两个成分构成,不同音调对应不同的频率;而节拍则控制同一个音调保持的时间的长短;若改变节拍的大小,则音调产生时间相应变化,若操作音调与节拍按一定规律组合,就能产生美妙而和谐的乐曲了。有了这一概念,那么我们便可以利用51单片机来设计我们的音乐播放器了。我们知道,人
22、耳能够听到的声音频率大约在20Hz20KHz范围内,如果利用程序来控制单片机I/O口进行高低电平的变化,在I/O口上就能产生出较高频率的脉冲波,将这脉冲波输出给外接的一个发声器件,就能发出一定频率的声音了。此时再利用编程来使高低电平在一定的时间内变化一定的次数,就能使输出频率发生改变,音调也随之改变。所以,为了得到一定的频率方波,就要算出此频率的周期(即频率的倒数),然后将此周期折半,即为半周期的时长。这里我们启用定时计数器,先定时半个周期的时间,然后改变电平,使其反相,然后再重复定时二分之一个周期时间,最后再将电平取反,则在相应的I/O口上就能得到相应频率的脉冲频率波。具体操作是利用8051
23、的自带的内部定时器,并使其工作在工作方式一上,然后往定时计数器装入初值THO及TLO,便能产生不同频率的矩形波了。那么如何确定定时器的初值呢?我们所使用的单片机震荡频率为,通过对定时器T1溢出后在I/O口P1.5口取反产生脉冲频率,则定时器时间为1/2fn。由(216-Xn)*(12/fosc)=1/2fn ,可知:定时初值 Xn=216-fosc/24fn 以音调2为例,fn=587Hz,则T=1/fn ,定时初值Xn=216-(12*106)/(24*587)=64684=FCAC。我们同样利用这个方法来算出每个音调对应频率的简谱码和初值代码:表4.2.1 频率对应初值表音符频率(赫兹)简
24、谱码(定时器值)代码音符频率(赫兹)简谱码(定时器值)代码低1DO26263628F88C# 4 FA#74064860FD5C#1DO#27763731F8F3中 5 SO78464898FD82低2RE29463835F95B# 5 SO#83164934FDA6#2 RE#31163928F9B8中 6 LA88064968FDC8低 3 M33064021FA15# 693264994FDE2低 4 FA34964103FA67中 7 SI98865030FE06# 4 FA#37064185FAB9高 1 DO104665058FE22低 5 SO39264260FB04# 1 DO
25、#110965085FE3D# 5 SO#41564331FB4B高 2 RE117565110FE56低 6 LA44064400FB90# 2 RE#124565134FE6E# 646664463FBCF高 3 M131865157FE85低 7 SI49464524FC0C高 4 FA139765178FE9A中 1 DO52364580FC44# 4 FA#148065198FEAE# 1 DO#55464633FC79高 5 SO156865217FEC1中 2 RE58764684FCAC# 5 SO#166165235FED3# 2 RE#62264732FCDC高 6 LA176065252FEE4中 3 M65964777FD09# 61
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1