基于单片机的音乐播放器设计 毕业设计_第1页
基于单片机的音乐播放器设计 毕业设计_第2页
基于单片机的音乐播放器设计 毕业设计_第3页
基于单片机的音乐播放器设计 毕业设计_第4页
基于单片机的音乐播放器设计 毕业设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、2012 届毕业设计(论文)论文题目:基于单片机的音乐播放器设计 系 别: 机电系专 业: 应用电子技术班 级: 09 应电 32学生姓名: 方荣祥学 号: 090103223指导老师: 曹双兰 提交时间: 2012 年 1 月基于单片机的音乐播放器设计2摘 要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。本设计是以单片机at89c51为核心数据处理器件,由lcd液晶显示屏lm016

2、l显示歌曲的曲号、播放时间、开机画面及键号,开机画面为交替显示welcomhere和作者姓名,采用4*4行形式键盘实现曲号的选择,其中1a号按键用来选择曲号,c键控制下一曲,d键控制上一曲,e键控制播放/暂停,f键为开机画面显示,元件以低消耗、高能、耐用、精确、易于操作等为优先考虑因素。采用键盘有键按下时,判断键值,启动计数器t0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器t1,显示乐曲播放的时间,并驱动lcd,显示歌曲号及播放时间。at89c51单片机的内存小,就用了一个74ls373锁存器和27512外部扩展芯片对该单片机进行了内存的扩充,增大了它的存储空间,让他可以存储足够

3、多的歌曲。本论文详细介绍了其硬件结构和设计方法,整个设计简单实用,功能完整。关键词关键词: 音乐播放 单片机 液晶显示基于单片机的音乐播放器设计3目录前言.5第一章 系统的方案论证与分析.6第二章 硬件设计.9 2.1 电路组成及工作原理 .92.1.1 电路组成.92.1.2 电路工作原理 .9 2.2 at89c51 的简介.9 2.2.1 at89c51 功能概述.9 2.2.2 at89c51 的管脚图.10 2.2.3 at89c51 单片机的引脚介绍.10 2.3 晶振电路.11 2.4 扬声器电路.11 2.5 显示电路.12 2.6 更换歌曲电路.13 2.7 复位电路.13

4、2.8 程序存储外部扩展电路.14 2.9 液晶显示原理及分类 .15 2.9.1 液晶显示原理 .15 2.9.2 液晶显示器的分类 .15 2.9.3 液晶显示器各种图形的显示原理及 lcd1602 简介.15第三章 软件系统设计.18 3.1 软件流程设计.18基于单片机的音乐播放器设计4 3.2 性能分析 .20第四章 音乐播放器的仿真及分析.21 4.1 keil uvision 2 软件简介.21 4.2 keil 的调试.22 4.3 proteus 仿真图及过程.22结论.24参考文献.25谢辞.26附录一 protel 原理图 .27附录二 protel 仿真图.28附录三

5、程序清单 .29基于单片机的音乐播放器设计5前 言 电子音乐是现代音乐的一种形式,是一种与古典截然不同的音乐形式。而今,越来越多钟情于电子音乐的音乐家们相信,通过电流产生的声音打破音乐的结构及人们习惯的听觉经验,人与人之间的情感是可以沟通的。电子音乐是一种科技的见证。也就是说,借助电子音乐,技术可以见证音乐,音乐可以见证技术。电子音乐是对传统音乐的延承和背叛,它紧密地依偎着这个“科技与信息”的时代。音乐电声的一个重要内容就是电子音乐。电子琴的出现,开辟了音乐的一个新天地。但是自从电子合成器问世以来,电子音乐就又进入了一个更高的阶段。 目前,由于电子音乐的普及,电子合成器(合成器实际上是一台声音

6、的频率合成仪,可以制作各种声音,改变各种音色)可以解决相当一部分的歌唱及舞厅的伴奏问题。可以事先制作伴奏音乐或背景音乐,而不需要乐队,或者部分代替乐队。由于音乐合成器制作和修改方便,成本低,音乐丰满,所以市场需求量很大,因此,世界许多国家的厂商都不断地在发展并推出新的型号,每年都要更新换代。当前的发展趋势是不断的采用先进技术,例如有的合成器有“跟随”功能,即经预置,每一个音后可以跟随一个二度或三度音, “重叠”功能,轻奏或重奏时可以发不同音调或音色;另外,合成器还向轻便、使用操作方便等方向发展。熟练的运用 89c51 单片机定时器产生固定频率的方波信号,推动喇叭发出旋律,按下单键可以演奏预先设

7、置的歌曲旋律,最重要的是自己还可以通过程序设计输入自己喜欢的歌曲来演奏中,本设计采用简易音阶编码直觉式输入法方便设计音乐旋律,可以扩充其功能如下:(1)可以显示歌曲的名称;(2)可以设置睡眠关机时间;(3)可以设置歌曲的播放模式,单曲循环还是顺序播放;(4)可以存储多首歌曲。基于单片机的音乐播放器设计6第一章 系统的方案论证与分析方案一利用 at89c51、74ls373 锁存器和 27512 外部扩展组成的音乐播放器(1)硬件设计 扬声电路数码管晶振电路更换歌曲电路(2)软件设计程序中根据音选取的是 c 调三个 8 度内的音符,共 24 个音阶。每个音符对应频率由定时器 t0 产生。为了程序

8、调用方便,每个音符都对应一个编码,占用一个字节。在程序中以查表的方式加载计数初值。当值为 00h 时表示空拍,与节拍码配合完成节拍发音。节拍码也占一个字节,每个音符的时间长度等于基本时间乘以节拍码的值,由定时器产生。当节拍码值为 01h 时,表示当前乐曲结束,为 00h 时,表示全部乐曲结束。为了编码简单,一般节拍码高半字节表示整拍,低半字节表示分数,只要基本延时设定恰当即可并且在按开始按钮后,可以播放歌曲。在播放程序中设置三个变量,分别用于用于存放时、分、秒,每次定时中断发生时,对基准时间计数,当达到一秒时,把秒加一,达到一分时,将分加一同时调用数码管显示子程序,将时分秒分别拆分为个位、十位

9、进行显示。利用外部中断 1、2 实现上一曲、下一曲以及暂停功能,设置一个计数变量,检测到上一曲或下一曲按下时,分别对计数变量加一或减一,检测到暂停被按下时,等待按键再一次按下后,继续播放,方案中歌曲的循环模式为列表循环。方案二(1)硬件设计电路以 at89c51 为主控制器,74ls373 和 27512 进行外部程序存储器的扩展,采用利用 4x4 组成的 16 个按钮矩阵键盘来实现对播放的控制,其中包括下一曲、上一曲、暂停按钮(分别为 c、d、e 键) ,当按下 1a 其中的一个时,跳到相应的曲谱进行演奏,显示电路采用六个共阴极数码管进行显示,晶振采用 12mhz,音乐信号由 p30 口输出

10、,经喇叭发声而播放歌曲,如图 2-2 所示。at89c51 单片机复位电路存储器扩展电路图 2-1 方案一框架图基于单片机的音乐播放器设计7(2)软件设计程序中音选取的是 c 调三个 8 度内的音符,共 24 个音阶。每个音符对应频率由定时器 t0 产生。为了程序调用方便,演奏时时每个音符都对应一个编码,占用一个字节。在程序中以查表的方式加载计数初值,为了编码简单,一般节拍高半字节表示整拍,低半字节表示分数,只要基本延时设定恰当即可,为了及时响应键盘操作,程序的编写以键盘扫描为主线编写(即主程序循环扫描按键,在按键模块中调用其他功能模块),按键每按下一次,按键扫描模块计算出键值,并储存键值,根

11、据键值跳转至响应的标号执行程序,播放相应的歌曲,歌曲循环模式为单曲循环,其他功能的实现与方案一类同。方案三(1)硬件设计电路以 at89c51 为主控制器,采用利用 4x4 组成的 16 个按钮矩阵键盘来上实现对播放的控制,其中 c、d、e 分别为功能键上一曲、下一曲以及暂停。f 键为开机画面显示,1a 号按键中每按一个键,跳到相应的曲谱进行演奏,显示电路采用液晶显示器 lm016l 进行显示,晶振采用 12mhz,音乐信号由 p30 口输出,经喇叭发声而播放歌曲,如图 2-3 所示。晶振电路4*4 矩阵键盘扬声器电路复位电路数码管存储器扩展电路at89c51 单片机图 2-2 方案二框架图基

12、于单片机的音乐播放器设计8(2)软件设计程序中音选取的是 c 调一个 8 度内的音符,共 7 个音阶。根据十二平均律, (即将八度定义为 1200 音分,其中全因音符占 200 音分,半音占 100 音分,共十二个半音)每个音符对应频率由定时器 t0 产生。为了程序调用方便,将十二个半音的定时器初值放于表中,演奏时无需计算定时器初值,在程序中以查表的方式加载计数初值,每个音符都对应一个编码,占用一个字节。由于人耳的分辨力有限,为了编程简单,曲谱中的节拍码用延时来代替,每个音符发音 30ms。由于采用的是矩阵式键盘,为了及时响应按键,程序的编写以键盘扫描为主线编写(即主程序循环扫描按键,在按键模

13、块中调用其他功能模块) 。按键每按下一次,按键扫描模块计算出键值,并储存键值,跳转至响应的标号执行程序,并调用液晶显示子程序,将键值在液晶显示器制定位置显示,如果检测到 f 键被按下,调用液晶显示模块,显英文字符欢迎,以及作者信息,本程序中,由于音符的长度是固定的 30ms,t1 用于更新剩余时间。剩余时间的显示同上。方案比较从以上三种方案,方案一采用的是独立式按键,按键太少,不能实现歌曲的快速选择,几乎没有拓展功能的可能,而方案二虽然采用的是矩阵式键盘,无论从扩展功能上将还是快速选择都优于方案一,但数码管显示不稳定,编程以及困难,占用 cpu 时序太多,方案三显然不存在方案一、方案二的缺点,

14、使用了液晶显示屏,编程简单,显示稳定,占用 cpu 时序少,并且可以实现许多方案一、方案二无法实现的功能,无论是矩阵式键盘,还是液晶显示器,都有许多可扩展的功能,并且在播放音乐时简单实用,在使用上及其功能的实现上都优于前两种方案。更重要的是液晶显示器是当今电子设计的主流,通过这次设计,我能够学习到许多东西。通过方案对比,最终选择方案三,音乐发生器电路原理图见附录所示。at89c51 单片机晶振电路4*4 矩阵键盘扬声器电路图 2-3 方案三框架图复位电路液晶显示屏存储器扩展电路基于单片机的音乐播放器设计9第二章 硬件设计2.1 电路组成及工作原理2.1.1 电路组成音乐发生器的电路设计方框图如

15、上图方案三所示,电路原理图见附录 1 所示,主要由单片机控制系统、行列式键盘、液晶显示屏、内存外部扩充电路、复位电路等组成。单片机 at89c51 是本系统的核心,它主要负责控制各个部分协调工作。在其外围接上:复位电路、液晶显示屏、按钮及扬声器。元件为:晶振 x1、电容、电阻、扬声器、4*4 行列式键盘、74ls373 锁存器、27512 外部程序存储器扩展、lm016l 液晶显示屏。硬件电路中用 p1.0p1.7 控制按键,其中 p1.0p1.3 扫描行,p1.4p1.7扫描列,用,p2.0p2.2 作为 lcd 的 rs,r/w,e 的控制信号。用 p0.0p0.7 作为 lcd的 d0d

16、7 的控制信号。用 p3.7 口控制蜂鸣器,电路为 12mhz 晶振频率工作,起振电路中 c1,c2 均为 30pf。将 p0 口作为 74ls373 锁存器的输入以及 27c512 的数据输入口,锁存器输出至 27c512 的低八位地址口,将 p2 口作为 27c512 高八位地址口,27c512 的控制信号 oe/vpp 接至单片机的 psen,实现片外 rom 的读写控制。2.1.2 电路工作原理本音乐发生器是用单片机来设计制作完成,其功能的实现主要通过软件编程来完成, at89c51 单片机片内带有 4kb 和外部程序存储器扩展的 256k 的内存,并且允许在系统内改写或用编程器编程。

17、该音乐发生器的效率较高,其误差主要由晶振自身的误差所造成。存储歌曲是采用的外部扩展,4*4 行列式键盘来实现的,按键将单片机 i/0 口的电平拉低,单片机检测到 i/o 口电平为 0 时,判断并存储键值。并自动跳转至相应曲号的标号处执行代码。显示采用的是液晶显示屏 lm016l,显示稳定清晰,并且能显示多个信息,当片内 4k 的程序存储器存满后,自动跳转到片外256k 程序存储器继续存储。2.2 at89c51 的简介2.2.1 at89c51 功能概述自从 1971 年微型计算机问世以来,随着大规模集成电路技术的进一步发展,导致微型计算机正向两个主要方向发展:一是高速度、高性能、大容量的高档

18、微型机及其系列化向大、中型计算机的挑战;另一个是稳定可靠、小而廉、能适应各种控制领域需要的单片机。mcs51 系列是 intel 公司在 1980 年推出的高档 8 位单片机,具有性能价格比高、品种多、兼容性强、开发用的仿真机较完善等优点,所以在国际上和国内的占有率相当高。它拥有 8 位微处理器和控制器,内含一个一位布尔运算处理器,可直接对数据的位进行操作和运算,特别适用于逻辑控制。内部含有 4kb 的程序 rom 并且在外部扩展了 256k 的存储空间,2 个 16 位的计数/定时器。本次采用的是at89c51 单片机,其电路如 3-1 所示,它的中断功能比较强,有 5 个中断源,即外部中断

19、 2 个,定时器中断 2 个,串行中断 1 个,有 2 个中断优先级。中断控制电路主要包括用于中断控制的四个寄存器:定时器控制寄存器 tcon,串行口控制寄存器scon,中断允许控制寄存器 ie,中断优先级控制寄存器 ip 等。内部时钟振荡器,全双工方式的串行接口(uart) ,两极中断优先权的 6 个中断源/5 个中断矢量的中断逻辑。哈佛结构的存储器组织,支持高达 64k 为单周期指令,支持六种寻址方式。基于单片机的音乐播放器设计10最高时钟振荡频率可达 12mhz,大部分指令执行时间为 1s,乘、除指令为 4s。2.2.2 at89c51 的管脚图mcs-51 系列单片机采用 40 引脚双

20、列直插式封装(dip) ,其引脚排列和逻辑符号如图 2-2 所示,4 个并行口共有 32 根引脚,可分别作地址线、数据线和 i/o 线;2 根电源线;2 根时钟振荡电路引脚和 4 根控制线。2.2.3 at89c51 单片机的引脚介绍at89c51 单片机是高性能单片机,因为受引脚数目的限制,所以有许多引脚具有第二功能,各引脚功能说明如下:(1)输入/输出口线a0 . 0p 7 . 0p 0p口 8 位双向口线b0 . 1p 7 . 1p 1p口 8 位双向口线c0 . 2p 7 . 2p 2p口 8 位双向口线d0 . 3p 7 . 3p 3p口 8 位双向口线(2)ale 地址锁存控制信号

21、在系统扩展时,ale 用于控制把0p口输出的底 8 位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于 ale 是以六分之一晶振频率的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。ea/v xtal1xtal2rst/v rdwrint0int1t0t1p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7p0.0p0.1p0.2p0.3p0.4p0.5p0.6p0.7p2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7psenale/progtxdrxdpppd803180518751ea/v xtal1xtal2rst/v p3.7/rd

22、p3.6/wrp3.2/int0p3.3/int1p3.4/t0p3.5/t1p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7p0.0p0.1p0.2p0.3p0.4p0.5p0.6p0.7p2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7psenale/progp3.1/txdp3.0/rxdvssvcc12345678910111213141516171819202122232425262728293031323334353637383940pdpp803180518751a)b)图 2-2 at89c51 芯片引脚图基于单片机的音乐播放器设计11(3)pse

23、n外部程序存储器读选通信号在读外部 rom 时psen有效(低电平) ,以实现外部 rom 单元的读操作。(4)ea访问程序存储器控制信号当ea信号为低电平时,对 rom 的读操作限定在外部程序存储器;而当ea信号为高电平时,对 rom 的读操作是从内部程序存储器开始,并可延续至外部程序存储器。(5)rst 复位信号当输入的复位信号延续 2 个机器周期以上高电平时即为有效,用以完成单片机的复位操作。(6)xtal1 和 xtal2 外接晶体引线端当使用芯片内部时钟时,这两个引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。(7)电源、地线 gndvcc、gnd。vcc

24、 一般接+5v 电源,gnd 接地。2.3 晶振电路mcs-51 片内有一个高增益的反相放大器,其输入端为引脚 xtal1 和输出端为引脚为 xtal2,用于外接石英晶体振荡器和微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路,如图 2-3 所示。电容 c1 和 c2 对频率有微调作用,电容一般取 20pf 左右。晶体振荡频率范围是 12mz12mhz,一般情况下,选用振荡频率为 12mhz 的石英晶体。振荡脉冲信号经过内部时钟发生器进行二分频之后,才成为单片机的时钟信号。2.4 扬声器电路本设计是采用蜂鸣器用来发出声音,由于在实际应用中,单片机输出的标准高电平为 5 伏,

25、输出功率很有限,所以本设计中,理论联系实际,用一个 pnp 型三极管驱动蜂鸣器,由于三极管具有放大作用,在实际应用中,输出功率将会提高很多。 图 2-3 晶振电路基于单片机的音乐播放器设计12 2.5 显示电路本设计显示是采用液晶显示器 lm016l 进行显示, lm016l 的功能、显示原理以及使用方法将会在后文中介绍,p0 口是一个地址/数据复用的双向 i/o 口,当使用p0 口访问外部存储器和数据存储器时,p0 口内部已有上拉电阻,当 p0 口作程序检验,输出指令字节时,必须外接上拉电阻。lm016l 的控制信号 rs、rw、e 分别接到单片机的 p2.0、p2.1、p2.2。本设计中主

26、要用 lm016l 显示开机画面、作者信息、播放剩余时间、歌曲号/键号。电路如图 2-5 所示图 2-5 显示电路图 2-4 扬声器电路基于单片机的音乐播放器设计132.6 更换歌曲电路采用 4*4 行列式键盘来实现选择歌曲播放,以及对歌曲号做基本的操作,即上一曲、下一曲以及暂停/播放。在本设计中 1-a 号按键用于选择歌曲的曲号播放,c、d、e 分别为下一曲、上一曲、播放/暂停按钮,此外 f 键用于开机画面显示,0号按键在本设计中未使用,留作扩展功能使用。用 p1.0p1.7 控制按键,其中p1.0p1.3 扫描行,p1.4p1.7 扫描列。电路如图 2-6 所示。 2.7 复位电路at89

27、c51 的复位是由外部的复位电路来实现的。复位引脚 rst 通过一个施密特触发器用来抑制噪声,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。本设计是采用上电自动复位,上电自动复位是通过外部复位电路的电容充电来实现的。只要 vcc 的上升时间不超过 1ms,就可以实现自动上电复位。时钟频率用12mhz 时 c 取 20pf。2.8 程序存储器外部扩展电路本设计是采用了一个 74ls373 锁存器和一个 27512 程序存储器外部扩展组成,其主要的功能就是为了在外部扩展单片机内存,使它有足够的空间存放系统中的程图 2-6 选择及更换歌曲电路图 2-7 复位电路基于

28、单片机的音乐播放器设计14序,而达到使它实现所要得到的功能和应用的领域,其图如图 2-8 所示2.9 液晶显示原理及分类2.9.1 液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、pda 移动通信工具等众多领域。2.9.2 液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(stat

29、ic) 、单纯矩阵驱动(simple matrix)和主动矩阵驱动(active matrix)三种。2.9.3 液晶显示器各种图形的显示原理:(1) 线段的显示点阵图形式液晶由 mn 个显示单元组成,假设 lcd 显示屏有 64 行,每行有128 列,每 8 列对应 1 字节的 8 位,即每行由 16 字节,共 168=128 个点组成,屏上 6416 个显示单元与显示 ram 区 1024 字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 ram 区的 000h00fh 的 16 字节的内容决定,当(000h)=ffh 时,则屏幕的左上角显示一条短亮线,长度为

30、 8 个点;当(3ffh)=ffh 时,则屏幕的右下角显示一条短亮线;当(000h)=ffh, (001h)=00h, (002h)=00h,(00eh)=00h, (00fh)=00h 时,则在屏幕的顶部显示一图 2-8 存储器扩展电路基于单片机的音乐播放器设计15条由 8 段亮线和 8 条暗线组成的虚线。这就是 lcd 显示的基本原理。(2) 字符的显示用 lcd 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,既要找到和显示屏幕上某几个位置对应的显示 ram 区的 8 字节,还要使每字节的不同位为“1” ,其它的为“0” ,为“1”的点亮,为“0”的不亮。这样一来就组成

31、某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 lcd 上开始显示的行列号及每行的列数找出显示 ram 对应的地址,设立光标,在此送上该字符对应的代码即可。(3) 汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件) ,每个汉字占 32b,分左右两半,各占 16b,左边为1、3、5右边为 2、4、6根据在 lcd 上开始显示的行列号及每行的列数可找出显示 ram 对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到 32b 显示完就可以 l

32、cd 上得到一个完整汉字。2.9.3 lcd1602 简介lm016l 与 lcd1602 原理是一样的,只不过 proteus 中 016 没显示调1602lcd 主要技术参数:显示容量:162 个字符芯片工作电压:4.55.5v工作电流:2.0ma(5.0v)模块最佳工作电压:5.0v字符尺寸:2.954.35(wh)mm(1) 引脚功能说明:1602lcd 采用标准的 14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如表 4-1 所示:表 4-1:引脚接口说明表引脚名称omingcheng符号引脚说明引脚名称引脚说明vss电源地d2d2数据vdd电源正极d3d3数据vl液晶显

33、示偏压d4d4数据rsrs数据/命令选择d5d5数据r/w读/写选择d6d6数据e使能信号d7d7数据d0d0数据led+bla背光源正极d1d1数据led-blk背光源负极基于单片机的音乐播放器设计16第 1 脚:vss 为地电源。第 2 脚:vdd 接 5v 正电源。第 3 脚:vl 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10k 的电位器调整对比度。第 4 脚:rs 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:r/w 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 rs和 r

34、/w 共同为低电平时可以写入指令或者显示地址,当 rs 为低电平 r/w为高电平时可以读忙信号,当 rs 为高电平 r/w 为低电平时可以写入数据。第 6 脚:e 端为使能端,当 e 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:d0d7 为 8 位双向数据线。第 15 脚:背光源正极。第 16 脚:背光源负极。(2) 1602lcd 的指令说明及时序1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1 为高电平、0 为低电平)指令 1:清显示,指令码 01h,光标复位到地址 00h 位置。指令 2:光标复位,光标返回到地址 00h。指令 3:光标和

35、显示模式设置 i/d:光标移动方向,高电平右移,低电平左移 s:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令 4:显示开关控制。 d:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 c:控制光标的开与关,高电平表示有光标,低电平表示无光标 b:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 5:光标或显示移位 s/c:高电平时移动显示的文字,低电平时移动光标。指令 6:功能设置命令 dl:高电平时为 4 位总线,低电平时为 8 位总线 n:低电平时为单行显示,高电平时双行显示 f: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符。指令 7

36、:字符发生器 ram 地址设置。指令 8:ddram 地址设置。指令 9:读忙信号和光标地址 bf:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令 10:写数据。指令 11:读数据。基于单片机的音乐播放器设计17第三章 软件系统设计3.1 软件流程设计本设计采用了自定下下的设计流程,即在编制一个程序时,先考虑程序的总体结构而忽略一些细节问题,然后逐步的一步一步的细化,直至用程序语言完全描述每一个细节为止。主要程序流程有:主程序、判断有无按键子程序、键盘扫描子程序、显示键号/歌曲号子程序、开机画面子程序、按键值播放歌曲子程序、播放时间初始化子程序、液晶显示屏写

37、指令子程序、液晶显示屏写数据、字符串显示子程序播放时间显示子程序、播放歌曲子程序、播放时间更新子程序。程序中使用了两个定时中断,定时中断 0 用于产生整个音程的频率,以便驱动扬声器。定时器 t1 用于刷新播放时间,当发生一秒定时中断时,将秒加一,达到 60 秒时,将分加一,达到60 分时,将时加一。程序设置了溢出处理,即当时间为 23:59:59 时,自动将时间更新为 00:00:00。程序的总体流程是当 p1 由按键按下时,读键盘,并储存键值,若为 f 键则通过查表的方式,调用字符串显示子程序显示开机画面,同时用查表的方式求出键号的 ascii 值,并调用显示键号/曲号自称序,将键号显示出来

38、。若为 1-a,程序根据储存的键号,将相应歌曲的表头地址赋给 dptr,取出曲谱,判断是否为休止符,通过查表的方式将表中的定时器初值装入定时器 t0,在定时中断 0里面,重装初值,将输出口取反,完成发声。本设计中,每发一个调,调用一个30ms 的延时,一次当做曲谱的节拍码。在此过程中若有功能键按下,将当前歌曲的表头地址加 513/减 513 或等待。于此同时调用播放时间初始化子程序,显示00:00:00,装定时器 t1 的初值,准备更新播放时间。程序流程图如图 4-1 所示:基于单片机的音乐播放器设计18单曲唱完?否是是是否是全部唱完?结束否是是开机画面无否否否开始液晶初始化内存初始化有无按键

39、?判断键值并存储取键值 ascii 码显示有f 键?1-a 键?键?播放时间初始化按键值存储相应曲谱首地址取乐谱进行演奏有无功能键?装 t1 初值刷新播放时间暂停?再一次按下?等待是否是有无下 1 曲曲?乐谱首地址加 513上 1 曲否乐谱首地址减 513基于单片机的音乐播放器设计193.2 性能分析在本设计中,一共设置了 7 首 mid 乐曲,分别是第一首精忠报国 、第二首月亮代表我的心 、第三首看我七十二变 、第四首同一首歌 、第五首大海、第六首两只蝴蝶 、第七首.在本设计中由于对音乐知识欠缺,曲谱为网络下载。采用 lcd 显示,稳定清晰,可靠性高,为了及时响应按键,在每段子程序里面都调用

40、了按键判断子程序,并且主程序是以按键扫描为主线编写的,系统的灵敏度高。除此之外,在按键扫描子程序中还带有延时再判断,软件去抖动功能,大大提高了系统的抗干扰性。采用定时中断更新播放时间,增强了系统的准确性,鉴于于作者水平有限,播放歌曲程序为了简单实用,节拍码被设置为固定的 30ms,演奏也只是在一个八度里面完成,系统适应性有待提高。图 4-1 系统程序流程图基于单片机的音乐播放器设计20第四章 音乐播放器的仿真及分析4.1 keil uvision 2 软件简介keil c51 是美国 k eil software 公司出品的 51 系列兼容单片机 c 语言软件开发系统,与汇编相比,c 语言在功

41、能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用 c 来开发,体会更加深刻。keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。c51 工具包的整体结构,其中 uvision 与 ishell 分别是 c51 for windows 和for dos 的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用

42、ide 本身或其它编辑器编辑 c 或汇编源文件。然后分别由c51 及 a51 编译器编译生成目标文件(.obj)。目标文件可由 lib51 创建生成库文件,也可以与库文件一起经 l51 连接定位生成绝对目标文件(.abs)。abs 文件由 oh51 转换成标准的 hex 文件,以供调试器 dscope51 或 tscope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如 eprom 中。4.2 keil 的调试软件调试页面如下图 4.2.1 所示图 4-2-1基于单片机的音乐播放器设计21调试无错误 如下图 4.2.2 所示。调试完成后生成 hex

43、文件4.3 proteus 仿真及过程在 proteus 软件中,打开此设计电路图后,先点击调试,后执行,则电路通电。此时液晶屏亮起,此时点击“f”按键,则液晶显示开机话面“welcom here”和”f”等。如图 4.3.1按下“1a“号按键扬声器就会发出对应的歌曲,液晶则显示你所播放的歌曲号和歌图 4-2-2图 4-3-1基于单片机的音乐播放器设计22曲播放时间。如图本设计中,每发一个调,调用一个 30ms 的延时,一次当做曲谱的节拍码。在此过程中若有功能键按下,将当前歌曲的表头地址加 513/减 513 或等待。于此同时调用播放时间初始化子程序,显示 00:00:00,装定时器 t1 的

44、初值,准备更新播放时间.而“c” 、 “d”两个键分别为”上一曲“和“下一曲” ,e 键表示暂停/播放。图如下: 而扬声器发出的歌曲如下图所示输出信号的颜色蓝色可以看出:分析本设计是以单片机 at89c51 为核心数据处理器件,其储存歌曲容量可以达到 10首,采用 lcd 显示,稳定清晰,可靠性高,为了及时响应按键,在每段子程序里面都调用了按键判断子程序,并且主程序是以按键扫描为主线编写的,系统的灵敏度高。除此之外,在按键扫描子程序中还带有延时再判断,软件去抖动功能,大大提高了系统的抗干扰性。本设计中有 2 个按键没用到,其可以作为扩展功能,可以作为单曲循环/顺序播放,歌曲的名称等功能。仿真过

45、程基本顺利,本身水平有限。基于单片机的音乐播放器设计23结 论本设计报告主要研究了用单片机实现的音乐发生器的设计方法。系统介绍了该路的硬件构成和软件工作过程,系统以 at89c51 为核心,主要采用中断控制系统,结合所学的单片机的知识,实现系统的功能要求。设计中很好的使软、硬件相结合,基本上达到了设计的要求。通过这次毕业设计,对于这次的音乐播放器的研究,我对自己的见解就是音乐表达人与人的感情,我的成果是能够放出比较和谐、圆润的声音出来。经过几个月的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。对于我

46、的主张是我们要对传统音乐进行继承与发展,同时我们也要通的创新,体现科技信息的时代精神。在研究当中很多元器件根本不知道有什么功效,在仿真仪器中是什么代码。有的知识,自己感觉已经掌握得差不多了,但是实际操作起来就有问题出现了。我遇到了不少问题,花费了很多的时间。这让我重新反思我们的学习,深刻领悟到我们这个专业动手实践的重要性。理论不经过实践考验,是没法实施的,就像我们编的程序,很多方面考虑的都不够,几乎没有涉及到实际应用时的防范方法措施。知识是永无止境的,在今后的工作中,我会理论联系实际,不停的去学习,不停的去感悟,以弥补我先天的不足以及后天的差距在毕业设计过程中,很多自己认为万无一失的软件代码或

47、者硬件电路,在调试的过程中都不会是风平浪净的,此次毕业设计经历了从概念到成品的漫长过程,在此过程中我学习了许多以前没有掌握而又是电子类毕业生必须掌握的知识,比如proteus 从设计的第一天起,我就被 proteus 的强大功能所折服,学会了 proteus,就相当于拥有一个电子设计开发平台。基本上我的音乐播放器研究达到老师所给的要求,能够显示歌曲曲号,发出比较和谐的声音。参考文献1 陈大钦主编模拟电子技术基础(第二版) m 高等教育出版社 基于单片机的音乐播放器设计242 阎石主编数字电子技术基础(第五版) m 高等教育出版社 3 谭浩强主编 mcs-51 单片机应用教程m 清华大学出版社

48、4 周复三主编 音乐基础理论教程m 山东大学出版社5 李军主编 单片机高级实例开发指南m 北京航空航天大学出版社 6 欧伟明主编 单片机原理与应用系统设计m 电子工业出版社 7 江世明主编 基于 proteus 的单片机应用技术m 电子工业出版社基于单片机的音乐播放器设计25谢 辞本设计是在曹老师精心指导下完成的,从选题、方案论证、绘制电路原理图、软件编写、调试仿真,直到起稿、排版,每一个环节,我都遇到了我无法独立解决的问题,在此期间,曹老师宁愿牺牲自己的业余时间,也要帮我解决问题,他丰富的专业知识和和蔼的态度让我敬畏。在临近毕业之际,我还要借此机会向在这三年中给予我诸多教诲和帮助的各位老师表

49、示由衷的感谢,感谢他们三年来的辛勤栽培。不积跬步无以至千里,各位任课老师认真负责,在他们的悉心帮助和支持下,我能够很好的掌握和运用专业知识,并在设计中得以体现,顺利完成毕业论文。在此,衷心的感谢曹老师对我毕业论文的指导和修改!同时,向所有关心和帮助过我的老师、同学和朋友表示由衷的谢意!衷心感谢在百忙之中评阅论文和参加答辩的各位老师。现在即将挥别我的学校、老师、同学,还有我三年的大学生活,虽然依依不舍,但是对未来的路,我充满了信心。最后,感谢在大学期间认识我和我认识的所有人,有你们伴随,才有我大学生活的丰富多彩,绚丽多姿,努力奋斗,希望每天快乐,健康生活。祝每个同学有一个好的未来,祝老师们健康快

50、乐。基于单片机的音乐播放器设计26附录 1:proteus 原理图基于单片机的音乐播放器设计27附录 2:proteus 仿真图基于单片机的音乐播放器设计28附录 3:程序清单 rs bit p2.0 ;定义液晶显示端口标号rw bit p2.1e bit p2.2;*l50ms equ 60hl1ms equ 61hl250ms equ 62hsec equ 65hmin equ 64hhou equ 63h;*org 0000hljmp mainorg 000bhljmp tt0org 001bhljmp t1int org 1000hmain;-;液晶初始化mov sp,#70h mov

51、 p0,#01h ;清屏 call enable mov p0,#38h ;8 位,2 行显示 lcall enable mov p0,#0fh ;屏显 on,光标 on,闪烁 on lcall enable mov p0,#06h ;计数地址加 1,显示幕 on基于单片机的音乐播放器设计29 lcall enable;-内存初始化 lcall initil ;-key1: lcall key lcall modd ljmp key1;-键盘扫描key: nop nop lcall ks jnz k1 ;有按键转到 k1 lcall kaiji lcall sopxn: ljmp keyk1:

52、 lcall modd lcall modd lcall ks jnz k2 ljmp keyk2: mov r2,#0feh ;读键盘 mov r4,#00hk3: mov a,r2 mov p1,a mov a,p1 jb acc.4,l1 ;为 1 跳转,第一行无按键 mov a,#00h ljmp lkl1: jb acc.5,l2 mov a,#04h基于单片机的音乐播放器设计30 ljmp lkl2: jb acc.6,l3 mov a,#08h ljmp lkl3: jb acc.7,next1 mov a,#0ch;-lk: add a,r4 push acck4: lcall

53、 delay1 ;若同时有其他按键,则等待 lcall ks jnz k4;- mov r3,#07h clr a mov r0,#30h mov r1,#31hmm1: mov a,r1 mov r0,a inc r0 inc r1 djnz r3,mm1 pop acc mov r0,a ret;-next1: inc r4 ;-列扫描 mov a,r2 jnb acc.3,n2 ljmp n1基于单片机的音乐播放器设计31n2: ljmp keyn1: rl a mov r2,a ljmp k3;-ks: mov a,#0f0h ;判断 p1 口 mov p1,a nop nop mov

54、 a,p1 cpl a anl a,#0f0h ret;-delay1: setb rs0dl: mov r5,#0ahdl2: mov r6,#63dl3: nop nop djnz r6,dl3 djnz r5,dl2 clr rs0 ret;- ;30h-37h 初值为零;-initil: mov r3,#08h mov r0,#30h基于单片机的音乐播放器设计32m1: mov r0,#00h inc r0 djnz r3,m1 ret;-;显示 ;-modd: mov p0,#8eh call enable mov a,37h mov dptr,#table3 movc a,a+dp

55、tr call write2 ret;-;开机提示字;-kaiji: mov a,37h cjne a,#0fh,dff mov p0,#80h ;设光标地址 call enable mov dptr,#table1;写数据 call write1 call delay10 call delay10 call delay10 call delay10 call delay10 mov a,37h基于单片机的音乐播放器设计33 cjne a,#0fh,dff mov p0,#80h ;设光标地址 call enable mov dptr,#table5;写数据 call write1 call

56、delay10 call delay10 call delay10 call delay10 call delay10dff: ret;-;按键值播放歌曲;-sop: mov a,37h cjne a,#01h,a11 lcall modd mov 52h,#high table10 mov 53h,#low table10 lcall initile2 lcall main0a11: cjne a,#02h,a22 lcall modd mov 52h,#high table20 mov 53h,#low table20 lcall initile2 lcall main0a22: cjne

57、 a,#03h,a33 lcall modd mov 52h,#high table30基于单片机的音乐播放器设计34 mov 53h,#low table30 lcall initile2 lcall main0 a33: cjne a,#04h,a44 lcall modd mov 52h,#high table40 mov 53h,#low table40 lcall initile2 lcall main0a44: cjne a,#05h,a55 lcall modd mov 52h,#high table50 mov 53h,#low table50 lcall initile2 l

58、call main0a55: cjne a,#06h,a66 lcall modd mov 52h,#high table60 mov 53h,#low table60 lcall initile2 lcall main0 a66: cjne a,#07h,aaa lcall modd mov 52h,#high table70 mov 53h,#low table70 lcall initile2 lcall main0 aaa: ret ;*initile2:基于单片机的音乐播放器设计35 mov l50ms,#20 mov l1ms,#00h mov l250ms,#00h mov se

59、c,#00h mov min,#00h mov hou,#00h mov a,hou mov b,#10 div ab add a,#30h ;将 bcd 吗转化为 asiic 码 mov p0,#0c8h ;显示小时十位 call enable call write2 mov a,b add a,#30h mov p0,#0c9h ;显示小时个位 call enable call write2 mov a,#3ah mov p0,#0dh ;显示冒号 call enable call write2 mov a,min mov b,#10 div ab add a,#30h mov p0,#0

60、cbh ;显示分十位 call enable call write2 mov a,b基于单片机的音乐播放器设计36 add a,#30h mov p0,#0cch ;显示分个位 call enable call write2 mov a,#3ah mov p0,#0cdh ;显示冒号 call enable call write2 mov a,sec mov b,#10 div ab add a,#30h mov p0,#0ceh ;显示秒十位 call enable call write2 mov a,b add a,#30h mov p0,#0cfh ;显示秒个位 call enable

温馨提示

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

评论

0/150

提交评论