基于单片机的音乐节拍灯光显示系统.docx
- 文档编号:5551338
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:23
- 大小:38.76KB
基于单片机的音乐节拍灯光显示系统.docx
《基于单片机的音乐节拍灯光显示系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的音乐节拍灯光显示系统.docx(23页珍藏版)》请在冰豆网上搜索。
基于单片机的音乐节拍灯光显示系统
基于单片机的音乐灯光节拍显示系统
2009-05-2016:
31:
00阅读487评论2 字号:
大中小 订阅
基于单片机的音乐灯光节拍显示系统
摘要:
本文通过使用单片机和数字信号处理技术,实现了单片机控制的音乐节拍显示系统。
本系统分为,声音采集单元,声音处理单元和显示单元。
其中声音采集单元包括声音接收和A/D转换系统。
声音接收单元接收到的音频模拟信号,经过A/D转换为数字信号,送给下一级处理单元处理。
声音处理单元采用C52单片机进行FFT处理。
显示单元接收处理后的信号,控制5组共35个小灯泡进行显示。
软件方面使用单片机进行DFT,进而判断出该时间段音频信号的主谱,从而控制灯泡的颜色和亮度跟随着音乐节拍和强弱的变化而做出相应的实时变化,实现音乐的频谱分析并加以灯光显示。
关键词:
单片机;数字信号处理;傅里叶变换;源程序;仿真与调试
MusicBasedonSingle-ChipLightDisplaySystem
MaXian
Abstrac:
Inthispaper,throughtheuseofsingle-chipanddigitalsignalprocessingtechnology,therealizationofasingle-chipmicrocomputertocontrolthebeatofthemusicdisplaysystem.Thesystemisdividedintovoiceacquisitionunit,thevoiceprocessingunitanddisplayunit.VoiceacquisitionunitwhichincludesthevoicesofreceivingandA/Dconversionsystem.Soundreceiverunittoreceivetheaudioanalogsignal,afterA/Dconversionfordigitalsignalprocessingunittothenextlevelofprocessing.VoiceprocessingunitC52single-chipmicrocomputerusedforFFTprocessing.Displayunitafterreceivingthesignal,controlatotalof5groupsfor35showsasmalllightbulb.Softwarefortheuseofsingle-chipDFT,andthendeterminethetimeperiodofthemainaudiosignalspectrum,soastocontrolthecolorandbrightnessoflightbulbswiththemusicbeatsandthestrengthtomakethecorrespondingchangesinreal-timechangesintherealizationofthemusicspectrumanalysisandlightshow.
Keywords:
SCM;DigitalProcessingTechnology;FourierTransformProtelschematic;Simulation
前言
本系统仅是对设计思想的简单验证,仅仅是一个模型,不能直接投入使用。
但是本系统的成功说明这种设计是可以实现的,并且只要对软硬件进行适当的修改可以应用于很多领域。
譬如,可以设计LED显示屏、LED灯光装饰系列产品等。
LED显示屏系列可以有:
LED可变信息标志、LED可变限速标志、LED车道控制器、交通信号灯、费额显示牌、倒记时牌、雨棚信号灯、及各种系列的室内外LED显示屏。
LED灯光装饰系列可以有:
应用于酒吧、舞厅、夜总会、俱乐部、休闲中心等娱乐场所的LED彩显幕墙、LED彩显天花、LED彩显地面、建筑物外墙(或轮廓)的夜景灯光装饰和外墙显示屏等。
下面就以酒吧 显示屏幕为例分析如何将本系统进行改进后应用于实际。
1系统的应用与发展
1.1系统的发展前景
当显示部分用全彩LED来代替单色的LED时,用单片机控制的全彩LED显示屏幕将会成为目前高档DISCO酒吧、舞台等夜场最先进的背景灯光产品。
由于它应用了单片机技术和数字信号处理技术,所以既不同于普通的灯光装饰,也不同于传统的激光舞台灯。
它的出现对夜场传统的灯光装饰提出了极大的挑战,同时也使夜场的灯光装饰步入了一个完全崭新的时代。
通过适当的控制,它能根据音乐的旋律、节奏而产生明暗及色彩的变化并能形成各种动态画面效果,烘托出一种梦幻密离、炫目神秘、华丽斑斓的背景灯光。
从而迎合了高档的DISCO酒吧、舞台等夜场对灯光背景的特殊要求,将成为目前夜场装饰的最新亮点。
单片机控制的全彩LED彩显屏的优势有:
1、 变化多端的色彩,256级灰度、1670多万种颜色任由你凃鸭;
2、 真正音乐控制、通过麦克风可根据DJ打碟的现场音乐控制LED彩显墙的变化,与音乐实现无缝连接、让声与光容于一体;
3、精心设计的控制软件,友善的操作界面,加上多窗口多页面显示、快捷键操作,让DJ轻松调配声与光,展现奇妙的梦幻般变化;这样的应用系统与时代的发展相适应,若与各项先进技术的发展保持同步,将来会有更大的发展前景。
1.2系统的应用
在自动化技术控制系统中,单片机的使用实现音乐灯光控制的自动化、智能化,再不需要人为干预的情况下自动用灯光的变换调剂出更好的音乐感觉,实现声光一体化。
随着单片机技术的日益成熟,单片机的发展趋势将是向大容量、高性能化,外围电路内装化等方面发展。
对于单片机控制实现的音乐节拍显示器随着单片机的发展其性能也要求越来越高,效果也需要越来越好。
可以采用双CPU结构的单片机,以提高处理能力,增加显示与音乐的同步性能;通过串口驱动显示电路,减少占用的I/O口;外围电路内装化,降低功耗;采用大存储量的单片机和高采样速率的A/D转换器增加处理的点数,以提高处理精度。
随着单片机技术的日趋成熟,有可能采用含有内置A/D转换器的单片机。
由于单片机的存储空间有限,限制了采样的点数,这样处理后显示的精度就不是很高。
这要求在以后的发展中采用存储容量更大的单片机来完成系统,这样对单片机也提出了更高更新的要求。
由于输入的音频信号一般为模拟形式的,首先要通过A/D转换器进行模数转换和采样,所以转换器的速度和采样频率都会影响显示的精度。
显示是要对一段时间内信号进行傅立叶变换提取频率和最大幅度,所以傅立叶变换的时间也会影响显示的实时性。
要求傅立叶变换和单片机对信号的处理都要相当快。
对傅立叶变换的算法也提出了新的更高的要求,需要开发新的更快的算法。
2音乐灯光节拍的设计
2.1音乐灯光节拍显示系统的原理设计
2.1.1需求分析
设计一个系统时,首先要了解它的市场需求,确定有没有必要做这样的系统;其次要了解这种系统的现状,最近的科研成果等以保证自己设计的系统具有实用性和超前性,这些在前面第一章的绪论中已经给出了详细地介绍,这里不再累述。
2.1.2系统功能的分析
对于任何一个系统我们首先都要先知道它的目的和用途。
音乐灯光节拍显示,顾名思义就是说要求外部灯光随着音乐的节拍有节奏的显示。
对于这样的应用系统本设计分为三部分:
输入部分、单片机的处理和输出显示部分。
输入部分是指音乐从外部输入到单片机的过程。
单片机的处理是指单片机内的CPU对输入的数据进行适当的处理给输出显示部分提供必要的数据或是显示所需的依据。
输出显示部分是指外部灯光随音乐节拍的闪烁,这种闪烁或是动态的或是静态的,或是彩色的或是单色的都是由设计者决定的。
下面我分别对这三个部分进行具体的设计:
2.1.3输入部分的设计
由于单片机只能处理离散的数字信号,而现实生活中更多的是模拟信号尤其是音乐信号多为200Hz~15KHz的模拟信号,这就是对系统的实用性提出的要求。
为了解决这样的问题,在系统的输入部分要实现对模拟信号的离散化。
这对于目前越来越成熟的模数转换技术实现起来是轻而易举的。
也就是说我们要通过模数转换器(ADC)将输入的模拟音乐信号数字化,然后再送入单片机。
而目前的模数转换器无论是种类还是数量都已经相当多,从技术上讲也已经相当成熟。
目前所用的模数转换器从转换输出的有效位数来说有4位、8位、10位、12位14位等,从原理上分有直接A/D转换器和间接A/D转换器。
在直接型A/D转换器中,输入的模拟电压被直接转换成数字代码,不经任何中间变量;在间接型A/D转换器中,首先把输入的模拟电压转换成某种中间变量,然后再把这个中间变量转换成数字代码输出。
每一种转换器又都有若干不同的种类。
但是A/D转换器有它的技术指标,主要有:
转换时间和转换速率、分辨率、转换精度。
转换时间是指A/D完成一次转换所需要的时间,转换时间的倒数是转换速率。
分辨率习惯用输出的二进制位数或BCD码位数表示。
转换精度是指一个实际的A/D转换器于一个理想的A/D转换器在量化之上的差值。
由于A/D转换器的种类很多,不同的A/D转换器的各种指标、性能和总体的性价比都不一样,因此对于输入部分的关键是如何选择合适的A/D转换器使输入单片机的信号的各个性能都达到要求。
这部分内容将在下面器件的选择部分进行讲解。
2.1.4单片机的处理
输入到单片机内的数据首先被存储在单片机的数据存储区内。
由于显示部分要求灯光随音乐节拍进行,而音乐属于音频信号,音乐的节拍和音频信号的频率所对应,因此要想实现显示与节拍统一,就要对输入的离散化的数字信号进行数字信号处理,与音频信号频率有关的数字信号处理技术目前最常用的是离散傅立叶变换。
离散博里叶变换(Discrete FourierTransform,简称DFT),其实质是有限长序列傅里叶变换的有限点离散采样,从而开辟了频域离散化的道路,使数字信号处理可以在频域采用数字运算的方法进行,这样就大大增加了数字信号处理的灵活性。
更重要的是DFT有多种快速算法,统称为快速傅里叶变换(FastFourierTransform),从而使信号的实时处理和设备的简化得以实现。
因此,采用时域离散系统代替传统的连续时间系统。
在单片机处理部分要完成的任务就是对存储区内的数字信号进行离散傅立叶变换(DFT),并在变换后选择最大幅度所对应的离散的K值(根据采样频率得每一个K值都与一个模拟频率相对应),将最大幅度值和频率通过单片机的I/O口输出以控制显示。
对于DFT也有许多要注意的问题,譬如进行DFT的点数,软件实现DFT时的代码及其优化问题等。
由于DFT的运算量很大,点数的选择很重要,这又涉及到与所选的单片机的各种性能之间能不能实现很好的结合的问题。
对于这些将在下面的软件设计中结合硬件进行具体分析。
2.1.5输出显示部分
对输出显示部分的设计思想比较简单直接,这便于实现。
考虑到实际的音乐信号的频率范围为200Hz~15KHz,通过A/D转换器的采样及经过DFT后,模拟的频率就会与数字频率K相对应,即K有一定的取值范围(其中K的最大值也就是所进行的DFT的点数)。
本文设计的系统是通过用不同颜色的二极管组成一个5×7的点阵实现的。
用7种不同颜色的二极管来代表不同的频率,这通过将数字频率K值等分为7份实现,每一段K值用一种颜色的二极管代表。
每种颜色的二极管有5个用来表示幅度的大小,通过将幅度等分为不同的5段实现。
由于单片机输出的信号幅度最大为5V,故当幅度为0~1V时,所对应频率的二极管亮一个;为1~2V时,亮两个二极管;为2~3V时,亮三个二极管;为3~4V时,亮四个二极管;为4~5V时,亮五个二极管。
当然这种设计对于精度的要求是比较低的,如果想提高精度可以通过增加点阵的大小了实现即将频率和幅度划分得更细,但这样会增加硬件电路的复杂程度,这个问题可以通过采用集成化的液晶点阵显示屏来解决,对此的具体讨论会在设计方案的改进部分给出。
以上是本课题的总体思路,下面将具体介绍基于的单片机的音乐灯光节拍显示系统的设计。
2.2音乐灯光节拍显示系统的硬件设计
单片机应用系统是指以单片机为核心,配以一定的外围电路和软件,能实现某种或几种功能的应用系统。
通常由软件和硬件两部分组成。
对于本文课题——音乐灯光节拍显示是一种基于单片机的应用系统,故它也应该有两部分组成即硬件部分和软件部分。
所以对这个系统的设计就可分为两部分:
软件设计和硬件设计。
这两部分是紧密相连不可分割的,下面先分析硬件电路的设计:
2.2.1硬件电路的设计
1)器件的选择。
首先要先选定单片机的类型。
对于不同的单片机它们各方面的性能是不同的,譬如CPU的处理能力和速度,内部存储器的大小,I/O口的多少,定时器的多少,体积重量的差别,抗干扰能力的强弱,价格的不同,灵活性可靠性等多方面的不同。
因此,要根据所设计系统的具体要求来选择性能价格比最高的单片机型号。
本文所设计的音乐灯光节拍显示系统是一小型的应用系统,它对存储容量和处理速度的要求都不是很高,所以选用常用的8位微处理器8051就可以了。
而8051的运算能力和控制方面的能力也是很强的,能够满足处理DFT的所需。
其次是选择A/D转换器的类型。
在输入部分的设计一节中,已经说明A/D转换器的种类相当丰富,要选好A/D转换器,对本文所设计的系统来说相当重要。
整个系统的精度主要有单片机的处理速度和A/D转换器决定。
对于不同原理实现的A/D转换器其转换时间是大不相同的。
总的来说,积分型、电荷平衡型和跟踪比较型A/D转换器的转换速率较慢,转换时间从几毫秒到几十毫秒不等,只能构成低速A/D转换器。
一般适用于对温度、压力、流量等缓变参量的检测与控制。
逐次比较型的A/D转换器的转换时间从几us到100us,属于中速A/D转换器。
转换时间最短的A/D转换器是那些用双极型或CMOS工艺制成全并行型、串并行型和电压转移函数型的A/D转换器。
根据什么来选择不同转换时间的A/D转换器呢?
首先A/D转换器的转换时间相当于对模拟信号的采样频率,这就要求它能够满足奈奎斯特准则,即采样频率要大于输入模拟信号最高频率的两倍。
由于通常的音乐频率范围为200Hz~15KHz,其最高频率(fm)为15KHz,
(
由()应大于等于30KHz,
(
由(,但是考虑到单片机的处理速度、系统的精度要求没有必要对A/D转换器的转换时间有这么高的要求,而且一般音乐频率也不会很高。
另外对A/D转换器转换精度的要求也不很高,综合考虑本系统选用ADC0809进行模拟。
ADC0809是一种逐次逼近式8路模拟输入、8位数字量输出的A/D转换器。
它可对0~5V的模拟信号进行转换,完成一次转换需要100us,即转换速率为10千次/秒。
根据采样定理得一个周期的信号才能采10个点,也就是说ADC0809最高也只能处理1KHz的信号(这就要求注意对音乐芯片的选择)。
对于这样的转换时间对输入信号的最高频率是有一定限制的,如果输入信号的频率过高就会产生失真和较大的延时,但在初步的实验中采用ADC0809进行仿真还是比较合适的。
对于它产生的失真和延时可以作为一个改进的方向。
接下来是显示电路器件的选择。
这一部分根据所设计的方案是比较简单的,只需要选择不同颜色的7种二极管,每种各5个就可以了。
由于参考工作电压为5V,二极管功率要求尽量小一些。
最后是一些外围辅助电路器件的选择。
对于单片机应用系统外围电路也是很重要的,应该适当考虑对它的选择与设计。
ADC0809有8个输入通道,它通常需要通过地址锁存器74LS373与8051相接,但是由于本文设计的系统只需要一个输入,就不需要地址锁存器了,且由于ADC0809的输出具有TTL三态锁存缓冲器可以直接连到8051的数据总线上。
对于显示电路由于单片机的输出电压不能直接驱动二极管所以要通过三极管对输出电压进行放大后来驱动,需要选择合适的三极管。
2)硬件电路的连接。
器件选择好后就要进行电路的连接。
ADC0809的8位数字量输出直接和8051的P0口相接,ADC0809的三根地址线A、B、C与P0口的低三位相连。
8051的WR和P2.7引脚通过或非门与ADC0809的START和ALE引脚相连。
8051的RD和P2.7引脚也通过一或非门与ADC0809的OE引脚相连。
ADC0809的EOC引脚通过一非门与8051的INT1(P3.3)引脚相连。
8051的ALE引脚通过两个D触发器与0809的CLK引脚相连,提供0809工作时的时钟频率。
8051的P1口用来驱动显示电路,为了节约单片机的I/O口我通过一译码器(74138)实现频率行的选择。
P1.0,P1.1,P1.2分别于74138的三个输入端连接,选741388个输出端中的7个作为点阵行驱动口线,剩余的5个P1口用作幅度选择的口线。
这样单片机就有更多的I/O口线去干其它的事情。
对于连接以后的硬件总体电路原理图,见附录1。
2.2.2软件部分的设计
对于一个单片机应用系统只有硬件没有软件的驱动,硬件是不能工作的;同样只有软件没有硬件,工作也是无法完成的,软件和硬件是紧密相连的,二者缺一不可。
首先是要使ADC0809工作。
ADC0809由两种工作方式,一种是查询方式,一种是中断控制法。
查询法是在单片机把启动命令送到ADC之后,CPU对ADC的状态一直进行查询,以检查ADC变换是否已经结束,如查询到变换已结束,则读入转换完毕的数据。
中断控制法是在启动信号送到ADC之后,单片机执行别的程序。
当ADC转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换数据,并进行必要的数据处理,然后返回到原程序。
本设计采用的是中断控制法,这种方法不需要单片机进行转换时间的管理,CPU效率高,适用于转换时间较长的ADC0809。
在所设计的系统中把ADC0809作为外部数据存储器,给定通道0的地址[0x7FF8],通过地址来控制是对哪一通道进行转换。
确定ADC0809的工作方式后开始设计软件部分的工作流程。
在主程序中首先进行初始化,确定外部中断为低优先级,时钟中断为高优先级;开中断;对定时器0进行工作方式、初始值的设定;启动ADC0809开始工作。
这时8051开始等待或去做其它的事情,在这里由于单片机的任务是单一的所以就用空循环语句让单片机等待中断的发生,然后进中断子程序进行处理。
外部中断子程序的功能是当ADC0809转换完成向8051发出中断请求,读取ADC0809通道0的转换结果并把结果存储到8051的外部数据存储器内,等待CPU的处理。
时钟中断子程序是在定时时间到后对数据进行处理,它是整个程序的核心,其中包括最重要的部分DFT。
由于DFT的运算量很大,运算时间很长,故在降低精度的情况下进行16点DFT,又因为ADC0809的转换时间大约是100us,因此将时钟0的初始值设为0xF9C0,实现1600us的定时,在这段时间内单片机大约采样16点(实际上小于16)。
通过信号产生子程序将采软件部分工作流程图
图2-1系统流程图
取到的信号补足16点,并产生进行DFT所需的信号的虚部。
由于DFT技术已经很成熟,而它也有专门的快速算法FFT,所以对于DFT部分采用已有的程序。
利用已有的DFT程序最后输出的是每一点所对应的实部和虚部的幅度值,而最终要用到的是信号幅度值,所以通过另一子程序来产生各个数字频率值K所对应的幅度,并取出最大幅度和它所对应的频率值K。
最后通过显示子程序将幅度值和频率值所代表的信息显示出来。
2.3傅立叶变换的原理与算法
2.3.1DFT的定义
设x(n)是一个长度为M的有限长序列,则定义x(n)的N点离散傅里叶变换为
, (
X(k)的离散傅里叶逆变换IDFT(Inverse Discrete FourierTransform,简称IDFT)为
, (
式中,,N称为DFT变换区间长度,N≥M。
通常称(
把(,有
由于
所以,在变换区间上满足下式:
由此可见,(
x(n)的离散傅里叶变换结果与变换区间长度N的取值有关。
下面介绍DFT的物理意义。
由[19]可得,序列x(n)的n点DFT是z变换在单位圆上的n点等间隔采样。
X(k)为x(n)的傅里叶变换X(ejw)在区间[0,2π]上的N点等间隔采样。
这就是DFT的物理意义。
2.3.2DFT的隐含周期
前面定义的DFT变换对中,x(n)与X(k)均为有限长序列,但由于的周期性,使(,且周期均为N。
对任意整数m,总有
所以(,满足:
(
同理可证明(,x(n+mN)=x(n)
实际上,任何周期为的周期序列都可以看作长度为的有限长序列的周期延拓序列,而则是的一个周期,即
(
(
一般定义周期序列中从到的第一个周期为的主值区间,而主值区间上的序列称为的主值序列。
因此和的关系可叙述为:
是的周期延拓序列;是的主值序列。
如果的长度为,且,则可写出的离散傅里叶级数表示式
(
(
式中, 为的主值序列。
将(,有限长序列x(n)的离散傅里叶变换X(k),正好是x(n)的周期延拓序列x((n))n的离散傅里叶级数系数的主值序列,即。
2.3.3离散傅里叶变换的基本性质
1.线性性质 如果x1(n)和x2(n)是两个有限长序列,长度分别为N1和N2,而式中,a、b为常数,取N=max[N1,N2],若y[n]=ax1(n)+bx2(n),则y(n)的N点DFT为
, (
其中和分别为和的点DFT。
2.循环移位性质
1)序列的循环移位 设x(n)为有限长序列,长度为N,则x(n)的循环移位定义为
(
(,将x(n)以N为周期进行周期延拓得到,在将左移m位得到的主值序列则得到有限长序列x(n)的循环移位序列y(n)。
循环移位的实质是将x(n)左移m位,而移出主值区间(0≤n≤N-1)的序列值又一次从右侧进入主值区。
“循环移位”就是由此而来的。
2)时域循环移位定理 设x(n)是长度为N的有限长序列,y(n)为x(n)的循环移位,即
(
则
(
其中, 。
3)频域循环移位定理 如果
,
则 (
3.循环卷积定理 有限长序列x1(n)与x2(n),长度分别为N1和N2,N=max[N1,N2]。
x1(n)和x2(n)的点DFT分别为:
如果
则 或
(
一般称(
2.3.4用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 音乐 节拍 灯光 显示 系统