基于单片机的数字音乐盒的设计.docx

上传人:b****9 文档编号:23386798 上传时间:2023-05-16 格式:DOCX 页数:45 大小:559.03KB
下载 相关 举报
基于单片机的数字音乐盒的设计.docx_第1页
第1页 / 共45页
基于单片机的数字音乐盒的设计.docx_第2页
第2页 / 共45页
基于单片机的数字音乐盒的设计.docx_第3页
第3页 / 共45页
基于单片机的数字音乐盒的设计.docx_第4页
第4页 / 共45页
基于单片机的数字音乐盒的设计.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

基于单片机的数字音乐盒的设计.docx

《基于单片机的数字音乐盒的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字音乐盒的设计.docx(45页珍藏版)》请在冰豆网上搜索。

基于单片机的数字音乐盒的设计.docx

基于单片机的数字音乐盒的设计

基于单片机的数字音乐盒的设计

摘要这次的数字音乐盒是建立在At89C51单片机程序上设计的,利用一系列单片机智能化设计的多功能实体。

用Proteus软件对所有系统进行仿真制作,而音乐盒源程序的C语言编译部分则是利用Keil软件来实现的。

本系统设计的音乐盒能产生不同的频率波形,主要是通过单片机控制定时器,使喇叭发出不同的音阶音律。

喇叭发出的音调定时常数被转化为乐谱,从而使音乐设备能够演唱出非常动听的音乐节律。

关键词:

数字音乐盒;数码管;单片机;Proteus;Keil

 

TheDesignationOfControllableDigitalMusicBox

BasedOn51Scm

ABSTRACTDigitalmusicboxthatisbuiltinAt89C51chipdesignprocedure,usingaseriesofsingle-chipdesignofintelligentmultifunctionentity.ForallthesystemsimulationusingProteussoftware,andthemusicboxsourceprogramofClanguagecompileristouseKeilsoftwaretoimplement.Themusicboxdesignofthesystemcanproducedifferentfrequencywaveform,ismainlycontrolledbysinglechipmicrocomputertimer,thehornofdifferentscaletemperament.Timingconstantpitchhornwastransformedintothemusic,whichmakesmusicequipmentcansingverypleasantmusicrhythm.

Keywords:

Digitalmusicbox;Digitaltube;AT89C51;PROTEUS;KEIL

 

 

第1章前言

1.1课题背景

21世纪的科技是属于单片机的科技时代,现在单片机应用极其普遍,技术也愈来愈成熟,基本上现如今各行各业都能看到单片机的存在。

所以必然的,单片机起着不可磨灭的功用[1]

单片机是一种集成在一个小型的硅电路芯片上,进而形成一个小小的控制计算机系统。

该集成的电路具有微处理器,程序存储器,数据存储器,串、并行输入/输出接口,定时器/计数器等结构功能。

另外,还可以集成在模数转换电路,多谐震荡电路,显示屏驱动电路等多种控制系统。

伴随着经济水平社会文化的不断提高与建设,人们的对精神文明提出了更高要求,尤其是对视听方面的饥渴更有待拔高。

而最传统的音乐盒是机械的类型,大小,和重,发音单调,不甜,没有大规模生产的实现,因此很难满足当代人的需求。

包括本人也是个对音乐有很高依赖的人。

这次设计的数字音乐盒就是要依靠单片机来作为核心来驱动。

单片机的主要优点是体积小、能耗低、易控制、深扩展、微型化。

因此,数字音乐盒还具有体积小,重量轻的优点,可以播放所有类型的音乐,功能多,外观美,使用方便等优点。

而且具有一定的开发价值。

1.2课题研究的目的及意义

音乐是现代人们休闲娱乐必不可少的方式之一,它是一种听觉的享受,而各种播放音乐的设备层出不重,如何做出更好的不损坏音乐本质的优良设备是当今的发展方向。

而传统的VCD、DVD等已不符合时代的发展需要,不能满足人们的听觉需求。

急需要一种更先进的制作设备来更方面,更快捷,更智能化的享受音乐带来的乐趣。

而单片机正好处在当今时代发展的大潮中,我们有理由把单片机的作用最大化,让它服务于我们的日常生活,相信它的独一无二一定能够带来传统播放模式的飞越转变。

同时结合最新的LED技术,又是另外一种视觉盛宴,只要几个I\O端口,数码管,多种播放模式,多种播放选择,比传统的按部就班的播放模式有着革命性的提升。

仅仅只需要两三个软件控制,而且不易受干扰。

1.3论文的主要任务和所做的工作

这次课题主要是设计一个由晶振复位电路提供一定频率的方波,驱动蜂鸣器发出最后音乐效果的数字音乐盒系统,另外增加了数码管显示部分,而且为了达到视觉效果加入了LED灯闪光器件。

总体来说是一种性价比很高,功能相对不错的单片机控制播放音乐的理论设计,包括硬件电路和主要程序,采用我们之前接触过的KEIL、PROTEUS来完成设计,C语言编写程序。

整个设计完成后会有暂停,前进,后退,播放这些基本功能。

准备过程中查阅相关资料,编写时钟定时响应程序,编写音乐播放程序,最后要对整个系统进行仿真,不断的查缺补漏,反复分析修改。

第2章单片机和音乐盒硬件的功能

单片机经过50多年的快速发展,功能是愈来愈强大,而我们这里设计选用的到的AT89C51单片机,是一款性价比十分高的单片机。

2.1AT89C51芯片的功能

AT89C51是一种低电压的4K字节的闪存可编程只读存储器,高性能CMOS8微处理器。

俗称单片机。

如图:

图2-189C51单片机引脚图

图2-2At89C51单片机实物

AT89C51是一种高性能CMOS8位处理器,有4K字节的闪存存储器,可擦除、可编程,简称单片机。

AT89C2051有2K字节的闪存编程只读存储器[6],可重复擦写存储器是ATMEL公司的制造技术,命令集和输出管脚兼容MCS和标准功能8位单片机CPU功能组合,FLASH存储器,和AT89C2051、AT89C51相比,AT89C51是一个简洁版本的单片机。

AT89C单片微型计算机做出了一个计划,是灵活性高,嵌入式控制体系并且价钱很便宜。

主要特性:

.闪烁存储器为4K字节可编程

.能够和MCS-51相兼容

.使用寿命:

1000写/擦循环

.可以保留的数据时间:

10年

.三级程序存储器锁定

.全静态工作:

0Hz-24MHz

.中断源有5个

.内部RAM为128×8位

.定时器/计数器有两个16位

.串行通道是可编程的

.可编程I/O线为32位

.时钟电路与片内振荡器

.闲置和掉电模式是低功耗的

管脚说明:

GND:

接地。

VCC:

供电电压。

P0口:

P0口是一个双向I/O口,含有8位TTL门电流、漏级开路,各个管脚能够汲取。

高阻输入为P1口的管脚第一次写1。

P0端口可以使用外部程序数据存储器,为数据/地址的第八位使用。

P0口输入作为原始代码编程快闪,检查闪光,P0口输出图元,然后P0外部必须被拉。

P1口:

P1口是一个8位双向I/O口,在里面有上拉电阻,起到缓冲器的功用。

里面拉高是因为P1口引脚写1,能够用作输入,外部拉低P1口,由于里面上拉,可以输出电流。

在FLASH编程和校验的时,可作第八位地址。

P2口:

P2端口是一个8位双向I/O端口与上拉电阻,接收机,输出电流是4TTL门P2口缓冲区,P2写“1”,电阻已上拉,用作输入[]。

输出电流是因为P2口作为输入引脚是外部拉低。

因为内部上拉[]。

外部程序、数据存储器地址在P2端口地址高8位输出。

写“1”时,由于内部上拉的优点,当外部数据存储器读写8个地址,P2口输出的特殊功能寄存器的内容。

收到高八地址信号和控制信号时,P2端口FLASH编程和验证。

P3口:

双向I/OP3端口引脚内部上拉电阻是8口,可接收4个TTL大门的输出电流。

作为时间的输入,“1”是写在P3口在里面,然后拉到较高水平作为输入,由于外部拉低,因为P3引起出口将输出电流。

P3口还有其他功能,如下表所示:

口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

应该保持RST脚两个机器周期的高电平时间在振荡器复位器件时。

ALE/PROG:

访问外部存储器,存储器地址锁状态字节地址锁存输出级存储器允许。

在这个引脚输入编程脉冲,FLASH编程。

通常,具有稳定的输出正脉冲信号端,是六分之一频振荡器。

因此,它可以用于定时目的。

这个引脚会被拉高。

无效的由于外部执行ALE禁止微处理器。

/PSEN:

外部程序内存闪光灯。

它有两次有效的外部程序存储器进行存取。

他们不会呈现在可以访问外部数据存储器。

/EA/VPP:

保持在/EA的一个较低的水平,在外部程序存储器(0000h-ffffh),带或不带内部程序存储器。

当加密方法1,/EA将内部锁复位;当/EA端一直停留在高电平,那么会出现在内部程序存储器中。

振荡器特性:

XTAL1、XTAL2分别代表反向放大器的输入和输出。

同时也可做片内振荡器。

陶瓷振荡和振荡可以通过在石井。

XTAL2不应满足,如果一个外部时钟源驱动装置。

陶瓷振荡和振荡可以通过在石井。

XTAL2不应满足,如果一个外部时钟源驱动装置。

2.2音乐盒的硬件及其功能

这次制作的数字音乐盒,用到的硬件有:

AT89C51芯片:

主控制器;

LED灯:

闪光灯,LED灯P1.0—P1.7控制八路LED彩灯;

数码管:

主要用于显示音乐序号,在实物中单片机P0.0-P0.6口接数码管的端口控制;

晶振:

11.0592M赫兹的晶振频率提供电路稳定的时钟信号,电路中电容C1、C2容值均为22PF。

电容:

保持一个恒定的偏执电压供给;

喇叭:

播放音乐,由P3.7控制;

电源:

给系统电路供电;

电阻:

控制电路;

开关:

控制播放停止音乐按钮,通过端口P3.2来控制LED灯进行各种各样的颜色变换。

芯片端口P3.3控制程序中音乐的切换,即播放下一首歌。

第3章数字音乐盒的主体设计方案

3.1音乐盒的主体结构

要想使喇叭播放出不同的音符调,产生不同的音乐,通过单片机定时器控制时间频率,产生不同音调的频率波形。

控制音乐电路图

图3-1音乐盒结构框图

单片机程序中放置了五首《劳动最光荣》、《唯一》、《同桌的你》、《小小葫芦娃》、《旗开得胜》不同流行的歌曲风格,同时八个LED颜色不同的灯随着播放歌曲不同的音调变化而变化,另外,数码管将显示该播放歌曲是第几首歌,以P3.3口来切换下一首歌曲。

八个LED灯在不演奏的时候可以随意变化三种模式,带来不一样的享受。

3.2主设计软件的介绍

本设计主要采用两种软件,一种是用以C语言源代码,KEIL软件,另一个是用来模拟的PROTEUS软件。

3.2.1编程软件KEIL的简介

Keil软件是美国公司生产的以C语言开发软件平台系统,C语言的可移植性,灵活应用、可读性的优势,所以很适合初级者学习和使用的软件。

本设计的软件程序使用C语言编写,并在开发环境为KeiluVision4下进行编译、调试。

KeiluVision4和同类发展环境相比包含下列优势:

(1)窗口管理系统的柔和,可以任意拖动视图中的任何地方,包括支持多窗口显示;

(2)增加了众多强大软硬件调试手段,在keiluvision3IDE的基础上,增加了更多大众化的功能;

(3)新的使用界面能够更加方便的使用界面空间构建其余多个窗口,提供清洁,高效的环境来研制需要使用的程序语言。

(4)此款新版本支持更多最新的嵌入式系统的芯片,并且又新添了一些其他的新功能,使得该软件的应用范围更加宽广。

(5)新的版本支持触屏操作,如若想要观察变化中的值,则可以直接触屏操作就可以了,使得用户使用起来更加舒适,既方便又快捷;

(6)此新版本具备功能十分强大的查看窗口,全部的数据类型都能够支持;

(7)新版本中能够对源程序直接进行修改、编译以及调试,还能够对错误编码进行定位。

3.2.2仿真软件PROTEUS的简介

除了编译软件之外,仿真软件PROTEUS也是必不可少的,同样是款非常实用强大的软件,用它可以节省我们不少时间,通过电脑就能模拟我们想要的东西,直到满足我们自己的要求。

PROTEUS软件不仅具有其它EDA工具软件的仿真功能,尤其是能对单片机的仿真效果极佳。

目前已经受到从事单片机相关工作者的青睐。

要完成PCB的设计,就要从原理图布图、然后进行代码调试,再到到单片机与外围电路的协同仿真,这其实是一阵套的从概念到产品的完整设计。

可以说是跨时代的,它可以很好的将电路仿真软件、印刷电路版设计软件和虚拟仿真软件联系到一起的设计平台,其支持8051、PIC、ARM、等多个型号的处理器模型,2010年此软件系统又增添了Cortex和DSP两个系列的处理器模型,相信以后还会持续有其他版本的处理器模型补充。

程序编译上,主要由Keil等编译器支持。

绘制好Proteus原理图后,再双击单片机芯片出现一个对话框,在对话框中点击Keil软件生成的.Hex文件,烧进到芯片中,这时点击Proteus软件播放菜单就可以看到画的原理图仿真状态变化。

PROTEUS是可以被当作课堂单片机教学的优秀典范。

之所以这样说,是因为它的元器件、连接线路等是和单片机所做实验用的是对应的,所以很好的避免的原来单纯的单片机实验的弊端,现在元器件选择、电路连接、软件调试、运行结果等多个中间过程现在都可以仿真监测。

第4章音乐盒硬件设计

4.1总设计框图

经过前文的描述,这次的系统电路实现设计概念已经非常清晰明了,系统设计电路单元总设计框图如下:

图4-1总设计框图

4.2各部分硬件的作用

硬件除了AT89C51芯片外,主要的就是时钟振荡电路、LED彩灯以及数码管的设计。

4.2.1时钟振荡电路

AT89C51包含一个反相放大器的高增益硬件。

引脚XTAL1是放大器的输入端,XTAL2是反相放大器的输出端,此放大器是组成芯片内部电路必不可少的。

外部石英晶体和电容C1,C2连接在反馈回路中的放大器并联振荡电路形式。

一个外部电容C1,C2,电容的大小会对振荡频率有一定的影响,当然,稳定性、振荡振荡器工作的难度和温度稳定性受到影响,所以选择要谨慎些。

如果利用石英晶体,使用容值为15pF到30pF之间容值为22pF的晶体是比较好的选择。

也可以使用外部时钟。

如图所示的外部时钟电路。

从图中看出,内部时钟输入端悬空端子,XTAL2则不连接任何端口。

我们这里产生内部时钟信号通过用一个双分频触发器,然后在连接在外部时钟信号上来完成的。

所以时钟信号的占空比不需要做太多考虑。

振荡器电路图如下:

图4-2单片机各部分振荡电路

4.2.2LED和数码管的设计

(1)8个颜色各异的LED灯,八个端口分别接在P1.0-P1.7,采用共阳极连接在一起,规定当端口都处于低位,LED灯是亮的。

音阶的变化带动发光二极管发生亮或熄的变化,当然是具有一定规律的了。

8个LED颜色灯分别接在单片机P1端口。

LED电路设计如下图:

图4-3LED设计图

(2)数码管连接到P0口,数码管中常用的阴极数码管,数码管和端口连接上拉电阻之间使数码管能正常工作。

如图所示:

图4-4数码管设计图

4.2.3LED发光二极管的优点

发光二极管与其它发光物体相比的优势:

(1)工作需要的电压和电流都比较低这样起到了节约电能源的作用。

(2)可靠性高,抗冲击性能好,不会因为强雷或地震而发生爆破。

(3)寿命长,发光二极管的寿命是家用白炽灯的6—10倍。

发光二极管LED由于工作电流小、低电压,寿命长、使用方便等特点,被人们在生活中广泛使用。

通过调节电流的变化来改变发光二极管LED发光的强弱。

发光二极管LED经常用做光源或者显示板。

通常还将发光二极管的管心做成条状,以来构成显示0~9的10个阿拉伯数字的LED数码管,或者用来构成A、B、C、D、E、F六个大写字母的数码管和a、b、c、d、e、f六个小写字母的数码管,如图所示:

这是一个七段两位带小数点10引脚的LED数码管

第5章音调和节拍的设计

5.1音调和节拍的设计以及音乐基础知识

单片机设计成的音乐没有谐波控制部分,主要由“音调”和“节拍”来表示,音乐能唱多长时间就是靠这两部分[6]。

人们常说低音,中音,高音,其实在音乐上是用a、b、c、d、e、f、g,就像英文名由26个字母组成,音乐由这7个命的名音乐,就是音谱上do,re、mi、fa、so、la、si于是人们又发明了简谱,用阿拉伯数字1、2、3……。

“哆唻咪发梭啦兮”的读音就是这样来的,“音调”,即乐谱上怎样发音,调高调低。

人们把7个组音在拉开距离,切成12等分,一小等分就叫“半个音”。

所以两个半音就是一个全音了。

有时也把7个音叫作自然音,加上#号,就加半音,变高,属于升记音,当然又有降记音,人们就在左上角加个b字母,降低半音,两者合称变化音。

哆音的最顶音高音频率是1046HZ,中间音中音频率是523HZ,能看出成倍数关系,最下面低音音频率是266HZ。

频周期(1/频率)除以2就等于音乐频率脉冲,单片机定时器此时发挥定下这个时间的作用,准确计下这个时间周期,刻下时间后将输出端立刻要反相,再重复上面的操作,就能记下半个周期的时间,最终我们就可以得到脉冲频率了。

把单片机定时器调到计数模式,不断调th0和tl0记下不同频率。

此外,终结和休息[7]可以由00H和跳频码表示,如果为00H查找结果,说这首歌结束;若是FFH查找结果,就会有停顿出现。

数字一点是8度,两个点代表16度以上,一般表示高的部分在数字上面,表示低的部分在数字下面。

做音乐,不能只有调子,节拍也是很重要的,让音乐有节奏感,可以随时调节音乐的快慢。

“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。

如果1膜是0.5s,然后1/4拍为0.125s。

至于1拍范畴是多少秒,目前还没有统一,如人的心脏,大多数人有72次每分钟,有的人快一点,慢一些,只要悦耳就行了。

声音的持续时间值,就意味着节拍数,休止表示停止发音。

音乐符号是与脉冲频率息息相关的,是对应关系,所以乐谱就是由这些音符构成的。

没选择一个频率,就要对应的数字来产生音乐。

音乐就是要这些脉冲鼓动变化。

我们一直了解单片机有这方面强大的输出脉冲功能,实验室所做的实验都是围绕定时器,计时器来产生方波频率。

因此,明确音符,频率,一级单片机定时器,计数器几者之间的关系尤为重要。

每一个音符划归一个单独字节,高4位为高低音符,低4位为节拍。

现在设置1拍为1秒,1\4拍就是0.25秒,已知延迟时间就能求出节拍时间。

如果1/2拍为2个延迟则1拍应为4个延迟。

5.2音调和节拍的编码

DOREMIFASOLASI被编码为1,2,3,4,5,6,7,现在重级音DO编号为8,重级音RE编为9,重音MI编为A,重级音FA编为B,重级音SO系列编为C,重级音LA编为D,重级音SI编为E,休止自然为0。

播放长度设置为156ms本程序,4音符十六单位,编号为3,其它的播放时间依次而来。

音调编码高4位,播放时间编码低4位,把音调和节拍整合在一个编码中,以0xff作为曲谱的结束标志。

例1:

做为基调,一拍的分音长度,即一个音符,为0x9。

例2:

发音长度为1\4拍,即四分音符,为0x11。

歌曲播放的设计。

将简谱的编码,存储在一个无符号字符里面。

程序从多个阵列中读出数,从中选出高4位的音调,把值赋给单片机定时器,定时控制喇叭,就会发出一定的音乐;选出低4位,延时时间,然后调用软件延时。

 

第6章C源程序设计

6.1音乐程序

通过音阶的改变来编写音乐程序,如以用歌曲《回忆的沙漏》为例,编写出的代码(见附录A)

6.2LED花样程序

LED彩灯一共有三种花样:

(1)第一种花样:

先从左到右灯亮、淬火,然后在从右到左灯亮、淬火。

如图:

图6-1LED花样一

程序如下:

ucharcodehuayang1[]=

{0x8d,0x7d,0x7d,0xad,0x9d,0x9d,0xab,0xae,0x9e,0x7e,0x5e,0x6d,0xad,0x77};//花样一

(2)第二种花样:

从左右两边同时亮,淬火,聚向中心,再从中心散到两边亮,淬火。

如图:

图6-2LED花样二

程序如下:

ucharcodehuayang2[]=

{0x81,0x21,0x24,0x18,0x24,0x24,0x81,0x24,0x24,0x18,0x24,0x24,0x81};//花样二

(3)第三种灯亮花样方式:

当奇数灯被点亮时且保持亮不熄灭,到最后一个奇数灯亮后,这些奇数灯全灭。

再然后偶数灯亮也同样的保持亮,到最后一个偶数灯亮后,同奇数灯一样全灭,然后每隔2个LED灯一起亮,并有方向的依次灯亮,再同时灯灭,到最后所有的LED灯一起亮、一起灭。

这种方式的过程如下图:

图6-3LED花样三

程序如下:

ucharcodehuayang3[]=

{0x80,0xa0,0xa8,0xaa,0x40,0x50,0x54,0x55,0xc0,0x30,0x0b,0x03,0xff};//花样三

6.3数码管程序

数码管用来显示正在播放的歌曲序号,如播放第一首歌曲时数码管上有‘1’出现,播放第二首歌曲时数码管上有‘2’出现,同样的,播放第三首歌曲时数码管上有‘3’出现,如此类推。

但当不播放歌曲时数码管只出现‘0’。

如图所示:

图6-4数码管仿真运行图

程序如下:

ucharcodenum[6]={0xc0,0xf9,0xa3,0xa0,0x99,0x94};

switch(count2)

{case0:

P0=num[0];break;

case1:

P0=num[1];break;

case2:

P0=num[2];break;

case3:

P0=num[3];break;

case4:

P0=num[4];break;

case5:

P0=num[5];break;

}

 

 

第7章数字音乐盒总设计图与总程序

7.1仿真总图设计图

图7-1仿真总设计图

7.2音乐播放切歌部分程序

(见附录B)

 

第8章结论

本文中数字音乐盒是建立在At89C51单片机程序上设计的,利用一系列单片机智能化设计的多功能实体。

用Proteus软件对所有系统进行仿真制作,而音乐盒源程序的C语言编译部分则是利用Keil软件来实现的。

本系统设计的音乐盒能产生不同的频率波形,主要是通过单片机控制定时器,使喇叭发出不同的音阶音律。

喇叭发出的音调定时常数被转化为乐谱,从而使音乐设备能够演唱出非常动听的音乐节律。

此外,音乐盒不仅收录了几首歌曲,还设计了LED灯的变化规律。

音乐盒播放音乐的同时,彩灯会随着歌曲音调的变化产生不同花样的闪烁。

歌曲和彩灯花的序号不断跳动,数码管同时变化着数字。

在结束播放歌曲时,彩灯也会产生三种不同的闪烁,而且歌曲与花样之间可以转换。

 

参考文献

[1]王玉凤/刘湘黔/杨欣.51单片机应用从零开始.北京:

清华大学出版社,2008

[2]陈卫兵.单片机技术与应用基础.北京:

人民邮电出版社,2010

[3]张毅刚/彭喜元.单片机原理及接口技术.北京:

人民邮电出版社,2008

[4]杜树春.基于Proteus和KeilC51的单片机设计与仿真.北京:

电子工业出版社,2012

[5]郭

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1