版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. 宁波大学信息学院本科毕业设计(论文) 编号: 本科毕业设计(论文)题目:(中文)基于stc89c52单片机的智能音乐演奏器设计 (英文)Design of Intelligent Music Player 学 院 信息学院 专 业 电气工程与自动化 班 级 电气升本 学 号 姓名 指导教师 职称副教授 完成日期 2014.04.10 ;摘 要 随着人们现代化水平的提高,科技产业发挥着举足轻重的作用。其中新兴技术由于其实用性广、成本低廉被广泛发展及运用。单片机技术是新兴技术的核心要素,正被人们广泛关注,因此它的发展前景很宽广。由于单片机有很强的实用性及开发周期短等优点,单片机的设计也越来越广
2、泛。所设计的智能音乐演奏器,选用的是stc89c52单片机为主要控制系统,通过编程手段使音乐的播放功能得到实现。该播放器可以读取外置存储设备,对存储设备内的音频文件进行读取及解码,再通过外置音频播放。按键控制功能也是本设计的一大功能,设置相应按键来控制选歌、播放和停止。 【关键词】stc89c52;音乐演奏器;液晶显示Design of Intelligent Music PlayerAbstract Technology industry plays a vital role in our life, with the improvement of peoples level of mode
3、rnization . The emerging technologies have been extensively developed because of its wide availability and low cost. SCM technology, as a symbol of emerging technologies, develops also rapidly. As the microcontroller has the advantage of a strong practicability and short developing cycle, the design
4、 of microcontroller has become increasingly widespread. The name of the design is a smart music player, which choose stc89c52 MCU as the master. The music player achieves control music playback functions by means of programming. The player can read external storage devices, store and decode the file
5、s automatically, and then played by the external device. The function of keys controlling is a big program in this project. The player is set appropriate keys to control song selection, play and stop. 【Key words】 stc89c52 ;Music Player ;LCD display目 录1 绪 论11.1 研究背景和现状12.2研究的目的和意义12 智能音乐演奏器的方案对比论证32.
6、1智能音乐演奏器的实现功能32.2智能音乐演奏器的实现功能图32.3系统各个子系统的方案对比32.3.1 系统主控方案论证32.3.2 电源供电方案论证42.3.3 显示方案论证52.3.4 按键输入方案论证62.3.5语音模块论证73 智能音乐演奏器的硬件设计83.1单片机系统设计83.1.1 单片机概述83.1.2 单片机管脚及功能说明83.1.3 单片机最小系统设计93.2 LCD显示电路设计103.2.1 LCD1602操作时序及引脚定义103.2.2 LCD1602的硬件设计113.3 语音转换模块设计123.3.1 语音模块概述123.3.3 语音模块芯片引脚定义及功能描述133.
7、3.4 语音模块触发时序134 智能音乐演奏器的软件设计154.1 开发软件简介154.2 应用程序设计154.2.1 主程序的设计154.2.2 LCD显示程序设计164.2.3 按键检测程序设计194.2.4 NV020模块的程序设计205 总 结24参 考 文 献27致 谢28附 录29V1 绪 论1.1 研究背景和现状自动控制愈来愈重要,它为我国新兴产业带来巨大效益。其中要求控制实现智能化、小型化、便携式得到人们广泛的关注。在航空航天、军事民用、医疗设备等控制领域中,集成度和控制功能强大的单片机已发挥不可替代的作用,这使得各种单片机项目的开发与应用成为系统设计新的热点话题。单片机具有很
8、多优点,如集成度高,开发简单,价格低和品种多样,这使得单片机进入各种系统的品种方式也多样化了。新兴技术的提升发展,也同样有助于芯片业的蓬勃发展。但是,利用单片机进行控制,并且显示的集成芯片是微乎其微的,其一是开发的难道较难,其二是开发的周期赶不上市场淘汰产品的速度。现阶段社会上也有多种音乐播放器,但是市场上的音乐播放器大都价格昂贵,显示、功能单一,所以开发新型的便携且价格实惠的音乐播放器成为必须。音乐演奏器要实现可操作、可播放、可选择等功能,且它的听觉效果要有一定的水平。即使对音乐演奏器的研究,过去已经多如牛毛,但是它的可操作性不佳,且它把音乐搜索、收藏、管理全部交给网络来完成,这就造成资源利
9、用不便。所以,还是有必要完善。也可以增加一些流水灯闪烁效果,使得该播放器一边播放,一边有流水灯闪烁,实现美观和效果功能同步进行。1.2研究的目的和意义本设计目的是设计一种全新的,通过单片机控制并显示的智能音乐播放器,本播放器能够实现音乐文件的读取及控制播放等基本功能。该播放器可以存储多首歌曲,可选择性播放歌曲,通过音频电路驱动喇叭播放。设置相应按键来控制选歌、播放和暂停,同时在LCD液晶屏上显示正在播放的歌名,伴随音乐播放有流水灯闪烁效果。该音乐演奏器采用技术与实惠的双赢的STC89C52单片机作为核心控制单元,结合信号控制及处理电路、LM386功率放大器,LCD1602液晶显示电路,以及配套
10、的外围设备共同组成的可控、可显示的音乐播放系统。本设计实现的按键功能为:上一首,下一首,暂停、停止。可以选择不同的按键来实现播放。伴随着音乐的播放可实现流水灯效果,并且可以在LED显示屏上显示正在播放歌曲的名字。本设计以STC89c52芯片作为主控制器,选用nv020作为音频解码芯片。通过对外置TF卡媒体存储介质的读取及操作,利用LCD1602液晶屏显示内容及用流水灯实现动态效果,来完成智能音乐播放器的功能。智能音乐演奏器设计的意义在于开发新型基于单片机的音乐播放器,实现低成本及高性能,达到更换现在社会有的价格昂贵的音乐播放器。它的设计,应该追求高效、可操作性强、能显示多首歌等特点。在新时代的
11、今天,各种音乐演奏器。参差不齐。而且功能大同小异,可以说,音乐播放器发展也给社会的发展带来了新生,为人们的生活带来了色彩,为可持续发展的当下社会和资源节约型、环境友好型的社会增添了活力。因此,对于智能音乐演奏器设计还是有必要发展这些特点。智能音乐演奏器研究的是播放器的灵敏便捷。让人们使用起来有愉悦身心的感觉,它在我们生活中还是很有价值的,何况当今的社会是信息社会,计算机技术的发展带动社会的发展,而单片机技术的完善带动计算机的发展,因此很有必要好好研究。智能音乐演奏器,是一款以STC89C52为主要控件的设计,很好的把技术和实物融合了。2 智能音乐演奏器的方案对比论证2.1智能音乐演奏器的实现功
12、能智能音乐演奏器基于STC89C52主控设计并制作,以外置的TF卡为存储设备,主控通过在不同时间和状态下,对有关芯片发出不同控制命令,来实现解码播放功能。智能音乐演奏器可以达到按键目的为开始,停止,上一首,下一首。伴随着音乐的播放可实现流水灯效果,并且可以在LED显示屏上显示正在播放歌曲的名字。其中,智能音乐演奏器可实现歌曲的转换功能及歌曲信息显示功能。主要的技术难度在于对TF进行驱动及对解码信息进行控制。2.2智能音乐演奏器的实现功能图语音模块电源电路STC89C52键盘电路LCD显示显示图1 系统功能框图智能音乐演奏器设计时就有四个可以进行控制的按键,按键的功能分别为:下一曲,上一曲,暂停
13、和停止。通过主控,实现存储卡内文件扇区的读写,及数据流方向的控制。后面再通过音频放大电路和声音输出设备将动听的音乐输出。在音乐播放的同一时间,LCD液晶屏也能显示出曲目的名字。主要的控制流程是单片机对语音模块进行驱动及控制,通过语音模块返回的值,进行显示。按键电路,通过按键可以得到不同的设置控制功能,作用于语音模块(以不同控制字的方式),来达到不同的控制方法。2.3系统各个子系统方案对比2.3.1 系统主控方案论证主流控制器有:PLC、MSP430、ARM、51单片机等。MSP430有非常丰富的片上资源,即用户可以通过对多种类寄存器的配置,达到不同的控制效果和要求,而且430单片机的输出引脚一
14、般可以选择为DAC及PWM输出模式,用户可以通过控制其中的寄存器来实现自己想要的要求,达到自己想要的期望,可谓灵活方便。51单片机控制资源有限,但现阶段的51单片机产品集成度、稳定性也在提高。MSP430低功耗单片机 是个控制能力很强且具有很强可操作性的单片机,所以它有非常多种控制方法,但是,美中不足的是它很难开发,而且单片芯片较贵(一片在20元-30元左右),所以智能音乐演奏器根据各个方面的权衡,经过慎重考虑,还是选择了51单片机,以它来作为主要的控制器。51单片机有4个8位的P口控制端口,还有2个中断源,及片内ROM和RAM。通过相关程序的编写,可以很快的实现智能音乐演奏器的设计。最终结果
15、,本设计选择了STC89C52这个很实用而且价格低廉的单片机来达到硬件功能要求。由于STC89C52内部自带了8KB的存储空间,所以它应该基本满足设计所要的需求。2.3.2 电源供电方案论证由于系统要求便携式及尽量控制成本,所以不能使用取市电处理之后供电。所以选用5号电池进行串联后组成电池组提供6V直流电压。供电方法有以下两种:电池后接稳压二极管供电;电池后接稳压芯片供电。方案一:电池组后接5v/1w的稳压二极管组成。该电路图如图1所示。这样设计的系统,最多可以提供5V和0.2A的电源输出。中和本设计电流在150mA左右,这种稳压管供电方式是可以的。但是由于智能音乐演奏器要求随身携带,即要求待
16、机功耗尽量低的设计条件下,该类方案不可行。稳压管方案设计电路,在无工作时(主系统进入待机模式等待命令或按键),稳压二极管内也是有静态电流流过的(If=10MA左右),即该系统始终有功耗10mA*5V=50mW产生。图2 稳压管供电方式方案二:由电池组后接稳压芯片LM2596-5V组成。电路图如图2所示。LM2596系列美国一家电子厂商生产的,最高输出电流为3A的开关型稳压芯片。开关电源的机理是通过电源导通的占空比不同,达到不同的输出电压,所以稳压芯片是自带了一个150KHZ频率振荡器。固定频率的振荡器可以通过反馈电阻,改变开关的频率,达到不同电压输出的要求,并且该芯片在待机的模式下,静态电流只
17、有70A,及5V输出时待机功率仅为0.35mW。运用LM2596组成的系统,系统的待机功率将大大减小。 图3 稳压芯片供电方式 综上所述,方案二的系统供电方案是值得我选择的。2.3.3 显示方案论证随着各种智能化设备的出现,显示的种类也是千奇百样。但是依照其原理,显示方法有两种:一种方案是自发光式的LED数码管显示,另外一种方案是背光式的LCD液晶显示。数码管显示的优点是简单;数码管显示不足之处是比较单一,通常仅仅能够显示8段数据。LCD显示的优点是数据多样即可以显示字符,也可以图片,并且相同时间内显示的信息更多。LCD显示美中不足的是它本身是不带光的,唯一可显示的方法是依靠其背光来显示,但是
18、其产生的是不经济、不合理地效果。由于智能音乐演奏器显示多样,并且有字符显示,所以综上所述,本设计采用的是LCD1602液晶显示。实物如图4所示 图 4 LCD1602实物图2.3.4 按键输入方案论证键盘,它的功能是信息的输入,并伴随着单片机的发展,它所带来的便利和重要性是巨大的。键盘的输入能带来非常有效的可操作性。从最初的机械式动作按键,到电气化触摸按键,键盘的发展也是多样的。由于需要按键控制智能音乐演奏器,所以输入键盘也成为了一个关键的部件,控制系统当要读取输入数据时,键盘必须有效的被查询。键盘的原理是:一般情况下,按键所用到的开关为弹簧机械式开关,其利用的原理是通过判断键盘的高低电平,来
19、确定触点的不同状态。键盘通常有两种:一种为独立式矩阵键盘,另一种是独立式按键键盘。其中,独立式按键键盘的原理就是:因为按键一端接地,按键另一端接控制口供主控查询,所以按键之间不会相互影响,各自都可独立的完成操作。它的好处是可实现的电路很简单,可实现的软件非常灵活。软件控制方式就是通过对独立按键的查询:按键按下了为低电平,若是相反的,则表示高电平。但是,在按键较多的情况下使用独立式键盘是有缺陷的,由于每个按键都需占用一个主控的输入口,所以输入控制口被大大的浪费,故此种键盘适用于按键较少的场合。而恰恰相反,矩阵式键盘在按键数量多的情况下使用就没有这个端口浪费了。由两根线构成矩阵键盘:行线和列线。各
20、个按键位于行、列的交叉点上,通过主控的分时查询,最后确认被按下的是哪一个按键。两种常见的键盘如Error! Reference source not found.所示:图5 独立式键盘和矩阵式键盘理想的按键,其可以看成2种状态:按下及没有按下。但是由于在使用中,机械触点和人为因素,一旦按下按键就会有颤动。若主控实时扫描按键,就会出现错误判断:本是按下动作,由于抖动,会读取到按下-松开-再按下的错误信息。因此在使用键盘的时候,应该去除抖动,来使操作顺利进行。按键可以通过两种方法来去除抖动:一是硬件消抖,适合于按键数较少的场合,即利用RS触发器构成双稳态电路消抖,硬件消抖电路如图 所示;二是通过主
21、控处理进行消抖,其原理是:当有按键按下且闭合后,主控检测到低电平信号,主控不马上执行相关按键值的操作,而是去运行一个一定时常的延时函数。当过一段时间之后,我们认为物理机械上的前沿抖动消失之后,主控将再一次对按键进行检查。如果检查到的状态和第一次的相同,那么可以肯定这是数据信号;若检查到的状态与第一次检测到的信号不一样,则认为是抖动信号。图 6硬件消抖电路由于本设计要求只需4个按键输入,所以选择独立式按键作为按键输入方式。并且采取了软件延时的策略去抖。2.3.5语音模块论证本智能音乐演奏器需要设计出的产品是能够进行控制的,且能实现歌曲播放功能的产品。但STC89C52本身来说,是不能进行音频信息
22、解码及处理数据流的,所以只能利用外部的解码芯片,并且配合不同的控制方式来实现歌曲播放功能。MP3解码芯片常见的有VS100X 系列和NV020模块系列,NV系列输出可选为DAC及PWM方式输出,这样既有利于输出设备的选择及实现,而且能解码的音频格式也比较多;而VS系列需要外加DAC,使用起来必须外加DAC电路才能实现音频的播放,而且只限于解码MP3一种格式的音乐文件。经过比较,选用NV020模块为解码芯片,该芯片支多种格式的解码,包括MP3、PWM等,自带DAC、PWM输出。NV020芯片功能有:使用者通过设计不同的外围配置电路,就能选择按键控制模式、并口及串口控制模式等不同的模式。但是其中,
23、NV020芯片的按键模式有很多种灵活的触发方式。3 智能音乐演奏器的硬件设计经过对各个功能模块的系统分析,智能音乐演奏器的硬件设计方案已经确定。智能音乐演奏器的组成为:STC89C52单片机,LCD1602液晶显示,独立按键,NV020集成语音解码模块。接着,我们来设计各种功能模块的最小系统,来完善播放器的设计。3.1单片机系统设计3.1.1 单片机概述STC89C52的功能概述:STC89C52是一种带8K字节Flash存储器的低电压、高性能的8位微处理器。STC89C52单片机的片上Flash存储空间,允许系统在线编程,当然常规编程也是支持的。该款单片机,有一颗8位处理能力的核心运算单元,
24、并且有在线编程,这些特殊的优势使STC89C52为很多产品提供一些有效果而且很灵活的解决方法。3.1.2 单片机管脚及功能说明图7 STC89C52引脚图单片机如图所示。单片机引脚功能说明如下。VCC:5V供电电压。GND:接地。P0口:双向IO口,内部无上拉,可以做数据和地址总线。数据总线时,需要上拉电阻。P1口:P1口与P0口的主要区别是具有内部上拉电阻。 主控芯片引脚复用功能的简单介绍:P1.0 T2(外部计数输入端口,计数时使用),主频率时钟分频输出 P1.1 T2EX(功能控制器的控制端口,通过不同的配置达到不同的输入检测) P1.5 MOSI(在系统编程用) P1.6 MISO(在
25、系统编程用) P1.7 SCK(在系统编程用) P2口:功能同P1口。P3口:P3口的驱动能力和其他口一样。不同之处是P3口也能成为89C52的特殊功能(复用第二功能)来使用,如下表所示。P3口含有单片机的特殊功能,如烧录及中断。描述如表1所示:P3口引脚P3口第二功能P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2INT0(外部中断0输入)P3.3INT1(外部中断1输入)P3.4T0(定时器/计数器0)P3.5T1(定时器/计数器1)P3.6WR(写信号输入)P3.7RD(读信号输出)表1 P3口引脚功能表RST:复位输入。 XTAL1:振荡时钟输入端。 XTAL2:振荡时
26、钟输入端。3.1.3 单片机最小系统设计单片机最小的组成单位是由复位电路、电源电路、时钟电路所组成的。而时钟信号是单片机运行的基础。时钟相当于是整个系统运行的时间准则,只有当时间安排精准,程序才能有条不絮的运行,才能各司其职。复位操作使它内部所有程序全部重新开始。当单片机的复位引脚检测到2个机器周期(1us左右)以上的高电平以后,单片机就会执行复位操作。STC89C52的最小系统设计图如Error! Reference source not found.所示:图8 STC89C52的最小系统设计图3.2 LCD显示电路设计相关数据的显示是智能音乐演奏器的一项重要功能,是整个系统的主要组成部分,
27、所以对显示电路的设计,也必须着重考虑。显示的设计功能是:将主控读取到的歌曲按键等相关数据经过器处理后直观的显示出来。3.2.1 LCD1602操作时序及引脚定义对LCD1602的读写有严格的时序要求。读时序如图9所示,写时序如图10所示。 图9 LCD1602读时序 (引自LCD1602数据手册) 图10 LCD1602写时序 (引自LCD1602数据手册)引脚号引脚名称引脚功能定义1VSS地引脚(GND)2VDD+5V电源引脚(VCC)3VO液晶背光电压(05V),可接电位器调节4RS数据状态控制端端,RS=0时命令或状态;RS=1时数据5R/W读写控制,高为读,低为写6E数据读写操作使能端
28、714DB0-DB7数据线,可以用8位连接,也可以只用高四位连接,其目的是为了节约资源15A背光控制正电源16K背光控制地 表2 LCD1602引脚定义 LCD1602的读操作,主要是读取LCD的状态,判断LCD是否在转换及合成显示状态。LCD1602的写操作,主要是对LCD1602进行控制操作,包括清除指令,控制指令及相关的数据接收。3.2.2 LCD1602的硬件设计根据上面的分析,我设计出了如图11所示LCD1602显示电路。其中V0通过R1变阻器分压得到电压,通过对该电压的修改可以达到不同对比度的显示效果。数据口我们选用P0外接上拉电阻实现,控制口我们选用P2口实现。图11 LCD16
29、02显示电路3.3 语音转换模块设计3.3.1 语音模块概述根据以上的方案对比,我们可以知道NV的确是个有着非常强大的可编程语音芯片。它的音频输出方式可选为PWM和DAC。多样的输出方式选择,使它的运用场合也越来越大。NV芯片内通过串口控制字的输入,用户可以选择高分辨率的DA音频输出方式,而且NV芯片内部滤波功率的放大,致使模块后可以自动驱动0.5W的喇叭响动。该芯片内部还集成PSG可编程语音合成技术,这种效果使得音乐的音质极好,发出的噪声极低。此芯片设计时就考虑了众多的外围搭配电路,配合其有的极强的可编程能力,NV解码模块不仅能实现标准的控制方式,亦可根据不同的控制需求,做出各种不同功能的音
30、乐解码器件。3.3.2 功能特点用户灵活且多变的操作模式供选择(串口数据命令操作、并口数据命令操作、按键操作); 20秒语音长度(在6KHz采样率); 有忙状态输出指示供主控查询,并且主控可以通过软件调节音量大小; 音质好,性能高,物美价廉; 多样的封装可供选择,使用更方便,开发应用更灵活; 极简的外围电路,配合芯片内部丰富的资源,能够轻松实现用户提出的各种功能要求;静态工作电流:2uA; 有音频输出时的Ia在20mA120mA之间;3.3.3 语音模块芯片引脚定义与功能封装引脚引脚标号简述功能描述1P01K1/A0/CS控制方式1选择端 2GNDGND地3EQIOPI芯片内部的功率放大电路的
31、反馈输入端4EQOOPO内部功放反馈输出5VCCVCC芯片模拟电源2.6V5.6V6SPK-PSPK-PDAC及PWM输出7SPK-NSPK-NDAC及PWM输出8P06BUSY语音播放忙信号9P05K3/A2/DI/RXD控制方式2选择端 10P04K2/A1/SCK控制方式3选择端 11VPPVPP芯片编程电源12VDDVDD芯片数字电源2.6V5.6V13P10A3按键口14P11D5按键口15RESETBRESETB芯片复位端,低有效 表3 语音模块引脚及相关功能描述3.3.4 语音模块触发时序语音模块可分为:一线制和三线制。一线串口控制方式,很特殊,它只有一条数据通信线,芯片确定不同
32、的数据位是根据分辨电平占空比。这一点很特别,数据解调的方法同脉宽调制方法,即通过判断脉冲高低电平的时间不同,来确定是高电平还是低电平。低电平在后,高电平在前,这种规定是脉冲时间所具有的。3条 通信控制线组成了三线串口控制,线程分别是SS,DI,SCK。控制的时序仿照标准SPI通信格式。通信的准则是:复位信号线在发码之前先将数据线拉低1ms5ms左右,然后再拉高并等待5ms以上。时序图如图12所示。通过该三线串口即可以实现对NV020芯片的命令控制、语音播放。D0位为语音测试口。根据智能音乐演奏器的设计要求,我们选用三线制对语音模块进行控制。 图12 三线串口控制时序图(引自语音模块数据手册)4
33、 智能音乐演奏器的软件设计4.1 开发软件简介系统的软件部分主要是利用C语言编程来完成程序的设计,进一步设计带来了便利。汇编语言和C语言组成了单片机开发语言,由于汇编语言的冗长及复杂,所以智能音乐演奏器选用C语言为开发语言。对单片机进行编程,Keil软件当仁不让的是最好的工具,它有利于程序更好的设计实现。Keil 的 C51系列软件是该公司独自设计的,面向51单片机系列并且可以兼容国产单片机的软件开发系统。C和其他编程语言相比较,它的优点还是有很多的,而且该单片机的平台提供大量的、可操作性强的调试工具,有利于集成开发。4.2 应用程序设计那些设计类软件,如果大脑中没有很清楚的思路和很好的方案,
34、那么设计东西是非常困难的。程序设计真的很繁琐,很乏味但是它的重要性不言而喻。为了枯燥乏味的设计工作条理化,就必须要有相应的步骤和方法。通过系统的分析,其设计流程可以简单的分为以下若干种:(1)整体分析系统控制要求:什么要被控制,什么要被显示,什么要被读取。然后在根据处理值得不同,确定算法。(2)然后根据它的算法来画流程:第一步是什么,第二步是什么,再者又是什么。画框图的优点可以把算法和程序设计的流程方法更加具体化(3)最后再编写程序:可以通过框图的算法和步骤,选取合适的指令实现功能,然后把它们组成一个有机的整体,就构成了整体程序。下面给出各个模块的软件设计,最终来达到设计的要求,实现其功能。4
35、.2.1 主程序的设计智能音乐演奏器的软件设计构成主要有如下几种:由按键检测及控制发出的主程序、系统LCD及解码模块的初始化程序、1602的数据显示程序、控制解码程序等。主程序设计流程Error! Reference source not found.3所示。是否是是开始初始化LCD1602 初始化NV020模块是否有TF卡插 入?初始化文件系统查找音乐文件数据送至NV020目录循环播放音乐是否有键按下?执行相应功能结束否是 图13 主程序设计流程图4.2.2 LCD显示程序设计显示程序设计流程图,如是其他需要调用的程序之一,所以它的设计重要性不言而喻。 是 否 图 4所示。显示的目的是直观的
36、向用户提供用户想要的信息,并且在设计时,应该充分考虑设计显示的内容,和显示的时间。因为LCD1602显示子程序是其他需要调用的程序之一,所以它的设计重要性不言而喻。入口对1602初始化写入显示设置命令延时一段时间检查忙标志BF>=7?设置字符显示位置延时一段时间向1602中写入数据LCD显示内容返回主程序 是 否 图 14 显示子程序流程图显示程序如下所示:static void delayms(unsigned int n)unsigned int x,y;for(x=n;x>0;x-)for(y=110;y>0;y-); void lcd_wcom(unsigned ch
37、ar com)/lcd1602写命令函数rs=0;/选择指令寄存器 rw=0;/选择写P0=com;/把命令字送入P2 delayms(5);en=1;en=0; void lcd_wdat(unsigned char dat)/1602写数据函数rs=1;/选择数据寄存器 rw=0;P0=dat;delayms(5); en=1;en=0; void lcd_wstr(unsigned char *s)unsigned char i=0;while(*s!='0'&&i<32)if(i=16)lcd_wcom(0x80+0x40);lcd_wdat(*s
38、);s+;i+;void lcd_init()/ 1602初始化函数 lcd_wcom(0x38);lcd_wcom(0x0c);lcd_wcom(0x06);lcd_wcom(0x01); 4.2.3 按键检测程序设计按键检测的难度主要是处理按键的去抖。针对硬件的设计,我们视按键按下时为低电平。其主要的设计思路是,时刻检测按键端口是否为“0”,当检测为0时,软件延时10ms之后,再对其进行读取,若该端口仍为“0”,说明按键确实按下,并对其进行相应处理;若延时之后,该端口为“1”,说明按键存在抖动,在处理键值的时候,应该将该类情况处理为错误信号。按键检测程序如下:uchar getkey()i
39、f(key1=0)Delay_ms(15);if(key1=0) while(!key1); return 1;if(key2=0)Delay_ms(15);if(key2=0)while(!key2);return 2;if(key3=0)Delay_ms(15);if(key3=0)while(!key3);return 3;if(key4=0)Delay_ms(15);if(key4=0)while(!key4);return 4;return 0;4.2.4 NV020模块的程序设计音乐解码模块是决定整个系统正确与否及控制对象的主要器件,所以NV020设计必须格外小心。NV020工作方
40、式是可以如下:当播放器开启后,主要控制将TF卡中的信息读取到,并通过数据处理芯片送达到NV020芯片中。NV020芯片根据数据再进行解码分析,及耳机驱动电路,将音频信号输出,最后实现了非常优美的乐曲播放。NV020的所有数据和控制命令均通过控制器模拟SPI总线接口实现。要控制NV020首先要实现的就是写命令,它是控制实现成功的前提。通信接口所在的部分,使用的是同步串行接口方式。在该模式下,要求NV020的时钟信号必须由外部电路产生,这样才能操作数据的读取及分析。数据(SDATA)在SCLK的上升沿或下降沿时被写入。在方案论证时,已经分析过NV020的时序,这里主要介绍NV020的语音地址对应关
41、系及命令、语音码。语音地址所呈现的关系如表4所示。数据(十六进制)功能00H播放第1段语音01H播放第2段语音02H播放第3段语音03H播放第4段语音播放第N段语音表4 语音地址对应关系NV020三线串口程序如下:#include<reg52.h>#include<intrins.h>#include"music.h"void Delay_ms(unsigned int a) unsigned int i; while(a-) for(i = 0; i < 125; i+); void Delay_us(unsigned int n) unsi
42、gned int j; for(j=0;j<n;j+) _nop_(); void TF_SD_2L(unsigned int dat) unsigned char i;/*- 复位后等待的时间比较久,干扰较弱的场合可以省去复位控制 -*/ TF_RESET = 0; Delay_ms(5); /5ms TF_RESET = 1; Delay_ms(300); /300ms TF_CLK = 0; /拉低片选信号 clk预先拉低2ms以上 唤醒芯片 Delay_ms(2); for (i=0;i<16;i+) TF_CLK = 0; /拉低 if(dat&0X8000) /
43、传输数据一位 先发高位,总共16位 TF_DATA = 1; else TF_DATA = 0; dat <<= 1; Delay_us(100); TF_CLK = 1; Delay_us(100); /延时 TF_DATA = 1; Delay_ms(20); void bofang(unsigned char kk)TF_SD_2L(0Xffff);TF_SD_2L(kk);5 总 结本设计把我大学两年所学的专业知识都运用进去了,其中涉及的思路、方法都是很具体的。毕业设计是培养学生发现问题、分析问题、解决问题的重要途径,也是锻炼实践能力的重要环节,是对学生的动手能力、综合能力
44、的考察。有利于学生真正的将理论知识融入到社会工作中。所以是非常有好处的。随着的社会的高速发展,单片机的应用在计算机领域也是非常重要的。因此,我们电气与自动化专业的学生很有必要学好这门技术,设计开发新产品。我所设计的是智能音乐演奏器,这对于我来说又是一种全新的考验,也是新的挑战。怎么去把理论知识通过硬件设计更好的表现出来,怎么安排自己的计划使得与写论文的时间不冲突,怎么合理解决设计中碰到的问题,怎么样把自己的设计中的不良情绪很好的转移,设计中不进掌握了平时课堂上所掌握的理论知识,而且学到了一些课堂上没有学过的知识,我受益匪浅,收获很大。我掌握了一些系统性的方法,也懂得怎么去完善自己的设计方案,去
45、克服一些瑕疵。可以进行一些编程,而且到达强化的目的。这次设计,我知道了实践才是检验理论的唯一标准,只有通过实践,我才知道哪些不足点,哪些是需要改进的,哪些是需要强化的。当然,我在设计的过程中也碰到很多问题,这些都怪自己当初学习的时候没有很认真的投入学习。没有充分掌握老师所说的理论知识。但是,通过自己的努力以及老师同学的帮助,最终我还是很顺利的完成了。通过对各个系统的研讨,及仔细分析,最终设计出智能音乐播放器,各项功能指标达到设计任务。其间的设计也是艰难的,出现过很多问题。比如按键检测,原理是很清晰的,程序思路也是很明白的,但是在调试的过程中,总是出现多次误判的情况。最后通过和老师交流,才知道原
46、因,原来只对按下进行了软件消抖。期间,我找了许多资料查阅,很多报刊书籍都被我仔细翻阅以求每个步骤都能有效。在文献查阅的基础上,完成课题综述,制定实施课题的技术路线与总体方案,完成开题报告(老师要进行验收) ,按本课题的技术路线与总体方案具体实施。完成本课题的程序设计、编程、调试、试验结果分析,在制作过程中,我投入很多精力和时间,因为材料的有限和设备的有限,每个步骤我必须亲自完成,每个困难必须自己克服,即使过程很痛苦,但是结果我还是很享受的。但是,我任然坚持着,对按键释放没有进行软件消抖,所以出现误判。设计过程必须严格按照流程图进行设计,因为有些器件对时序的要求是非常严格的,若时序出现紊乱,则控
47、制效果就大打折扣。编写软件程序的时候,一定要先写出系统的软件流程图,只有在各个子模块功能实现之后,才能整机调试,这样才能增加程序的可行性和有效性。这款音乐演奏器的设计耗时4个星期,花费了很多时间。而且完成老师所要求的任务:设计一个基于单片机的智能音乐播放器,能够实现音乐播放的基本功能。该播放器可以存储多首歌曲,可选择性播放歌曲,通过音频电路驱动喇叭播放。设置相应按键来控制选歌、播放和暂停,同时在LCD液晶屏上显示正在播放的歌名,伴随音乐播放有流水灯闪烁效果。我所设计的播放器有六首歌曲,六首英文歌曲都能在液晶显示屏上显示各自的歌曲名字。并伴随着流水灯闪烁效果。本次设计虽然很累,时间很长,但是当我
48、完成的那一刹那,我所有的痛苦所有的负面情绪都化身为我的精神财富,让我明白以后的道路也是很有挑战性的,我坚信自己的能力,也会像做这次毕业设计一样对待以后的工作生活。这次设计我投入很大的激情,因为这毕竟是自己人生中比较重要的自己独立完成的作品,给自己的人生增添一些色彩,我很期待,很喜欢自己的作品。大学所学的知识的完美结合,能够实现基本的操作功能。如果说之前学的知识是死板的毫无生机的肉体的话,那这次音乐演奏器的设计一定是有思想的活的灵魂。可以发现既能得到听觉的享受又能得到听觉的享受播放器,在市场上一定很受欢迎。我一定会继续奋斗,进入社会好好钻研,争取早日设计出更加完善,功能更加齐全的播放器。让人们能
49、在闲暇之余,享受一丝惬意。正如我们社会所发展的,信息时代的步伐是越走越快的。通过学习与设计,我设计出了下面的播放器。实物图1 欢迎界面实物图2 放歌界面实物图3 电源关闭界面参 考 文 献1 赵勇,郑培臣,张欢欢.Cortex- M3的音频播放器设计J.单片机与嵌入式系统应用,2012,12:78-79.2 田嫒.单片机音乐播放器功能多样性的研究J.金华职业技术学院学报,2013,13:65-69.3 黄振杰,卢小冰.基于AT89S52单片机的多功能音乐播放器J.电子设计工程,2009,17:17-21.4 颜锐,谭周文.基于STM32的多功能MP3设计J.湖南人文科技学院学报,2013:10
50、7-110.5 张冬云,吴凌云,杨三青.基于TMS 3 2 0 DM 6 4 4 6的嵌入式流媒体播放器的设计J.自动化与仪器仪表,2009:17-18.6 罗 芬,赵新业,梁小流.多功能音乐演奏器的设计J.大众科技,2010(11):36-37.7 詹文超.基于单片机的智能音量控制系统J.中国科技投资,2013(22):176.8 陶康,杨顺,程刘胜.基于51单片机的可变调音乐演奏系统J.四川理工学院学报(自然科学版),2008,21(3):89-90.9 谢少伟.基于MCS一5 1单片机功能完善的音乐播放程序设计J.电子技术,2007,36(11):36-39.10 马志强,王建刚,孙少林,胡明.基于STM32的PWM 音乐播放器应用设计J.单片机与嵌入式系统应用,2012,12(11):63-64.11 Jesu´ s L.Alvaro,BeatrizBarros. A new cloud computing archite
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建体育职业技术学院《高等艺术院校文学教程》2025-2026学年期末试卷
- 广西艺术概论考试试题及答案
- 管理会计自考试题及答案
- 福建江夏学院《锅炉原理资料》2025-2026学年期末试卷
- 安徽涉外经济职业学院《播音学概论》2025-2026学年期末试卷
- 机动车鉴定评估师常识能力考核试卷含答案
- 玻璃微珠成型工改进评优考核试卷含答案
- 园艺教育专业实习心得体会
- 光伏晶硅组件制造工安全检查评优考核试卷含答案
- 半导体辅料制备工常识测试考核试卷含答案
- AQ 3026-2026《化工企业设备检修作业安全规范》全面解读
- 【新教材】人教版(2024)八年级下册英语 Unit 4 Grammar Focus 4a-4d 教案
- 2026年江苏南京市高三二模高考物理试卷试题(含答案详解)
- 真分数与假分数练习题
- 2026陕西君保融数字产业有限公司招聘(47人)考试参考试题及答案解析
- 江苏省南京市鼓楼区2024-2025学年七年级下学期期中语文试卷
- 2026年医疗保障基金使用监督管理条例实施细则题库及答案
- 中级注册安全工程师《安全生产专业实务-其他安全》真题及答案
- GB/T 46941-2025中医眼保健通用技术要求
- 2026年热交换器故障及维修案例分析
- 2025-2026学年上海市杨浦区八年级(上)期末英语试卷
评论
0/150
提交评论