基于单片机技术的音乐灯光控制系统设计
摘 要 本文研究的内容为音乐灯光控制系统。本系统所要实现的功能是随着音乐声音强度的变化灯光强度随之变化,同时灯光造型亦跟随变换。实现本系统的方式是采用以驻极体话筒为主的声音采集模块采集声音,经过由LM386放大器等组成的信号放大模块,再由以AT89S52为主控芯片去控制ADC0804进行模数转换,最后由单片机产生相应的电平信号去控制发光电路,从而控制灯的亮度和灯光造型的变换。
【关键词】音乐控制 AT89S52单片机 光强变换 造型变换
1 灯光控制系统分析
1.1 系统的可行性分析
单片机由于体积小、重量轻、价格便宜、功能强大等特点,被广泛应用于工业控制领域和一些其他的生活领域中。本文应用单片机89S52芯片作为主控芯片,通过驻极体话筒采集声音,由LM386放大器组成的放大电路来进行信号的放大,放大后的信号送入ADC0804进行模数转换,转换成数字量,再通过单片机89S52芯片的控制去驱动由LED彩灯组成的发光电路来实现强度的变化和所亮灯的队形。
1.2 系统的需求分析
电视事业不的断发展和舞台演出市场的日益活跃对于灯光控制系统的功能提出了更高的要求,人们不再满足于简单的调光,而是需要随着音乐的变换更加色彩绚烂的舞台灯光的变换,为了满足对于舞台艺术效果的需求,本系统的研究便有了其重要的现实研究意义。
2 系统控制核心及开发平台
系统的开发工具本系统所使用开发工具分为软件和硬件开发工具,软件开发工具为Keil软件,硬件开发工具为Proteus软件。本系统使用Keil软件进行软件编程和调试得到正确的源程序代码,使用Proteus软件进行硬件电路的设计,得到正确的电路图,并将Keil软件中的源程序导入进Preteus中进行仿真模拟,以达到验证本系统功能的目的。
3 系统的总体规划、详细设计与实现
3.1 系统的总体规划
如图3.1所示,系统通过声音采集与放大模块进行声音的采集与模拟信号的放大,模数转换模块在主控芯片的控制下将接收到的模拟信号转换成数字信号,接着在主控芯的处理与控制下将电平信号传送给灯光控制模块来控制灯光的强弱及队形变换。
3.2 系统的详细设计与实现
3.2.1 系统硬件设计
本设计采用了LM386放大器,因为LM386电压增益可调且外围元件较少,利于焊接;进行模数转换所选用的器件是ADC0804,因它的转换速度较快、分辨率较高、价钱便宜;灯光控制模块选用LED彩灯来实现灯光变换的效果,更贴合实际舞台等场所所用的大型灯光设备产生的效果。
下面详细介绍系统2个模块的硬件设计及电路。
(1) 模数转换模块。ADC0804的引脚/CS、/RD、/WR在单片机的控制下根据其高低电平的变化来控制模数转换的进行,DB0—DB7是数据输出端,将转换完成后的数字信号送入单片机。
(2) 灯光控制模块。灯光控制模块由8个LED彩灯组成,分别每个LED灯上都加有1K的上拉电阻,根据单片机的控制改变PWM波的占空比显示灯光强弱及队形的变化。
3.2.2 系统软件设计
(1) 程序设计思路。因为采集的声音是模拟量,所以要先进行模数转换,故主程序在进行了初始化后要先进行模数的转换;转换完成后要根据数字量的大小去判断来达到控制灯光强弱的变化及队形的改变,那么接着便要调用判断子程序,在判断子程序中根据数字量的范围分成四档逐一去判断来为控制亮灯的队形作标志位,在判断子程序里接着再去调用控制灯光强弱的子程序,根据数字量的大小来决定PWM波的定时高电平的时间以达到控制灯光强弱的目的,在这里将灯光的强弱分为十个档;同时要用到中断,根据灯光强弱的档数决定高电平的时间从而去控制PWM波的占空比来控制灯光的强弱。
(2)程序实现过程。在主程序中,先进行数值的初始化,给8个LED赋值1使其上电处于不亮状态,接着选通AD使其进行模数的转换,得到数字量信号后调用判断子程序去控制灯光亮弱和队形的变换。
void main() // 主程序
{uint a;
TMOD |=0x01; //定时器设置 0.1ms
TH0=(65536-100)/256;
TL0=(65536-100)%256;//定时0.1mS
IE= 0x82; //打开中断
out1=1; //上电灭灯
out2=1;
out3=1;
out4=1;
out5=1;
out6=1;
out7=1;
out8=1;
while(1) //AD转换
{
P0=0; //选通ADCS
wr=0; //AD写入(启动AD转换)
_nop_();
wr=1;
P0=0xff; //关闭ADCS
delay(1);
delay(1);
P1=0xff; //读取P1口之前先给其写全1
P0=0; //选通ADCS
rd=0; //AD读使能
adval=P1; //AD数据读取赋给P1口
rd=1;
P0=0xff; //关闭ADCS
wr=0;
for(a=600;a>0;a--) //ADC0804在写和读之间的时间要足够长
{
pwm(adval);//调用判断子程序
}
}
}
4 结语
本文设计的系统能够实现所要求的功能,具有一定的使用价值,但是由于系统只是一个小型的模拟性质的,它的性能还不是太好,但是基于单片机的音乐系统的设计是当前大部分娱乐场灯光设计的首选,不仅是在音乐设计上,在其他其实生活中单片机的应用也会越来越广泛。
参考文献
[1]何宏.微型计算机原理与接口技术[M].天津:天津大学出版社.2005.
作者单位
天津师范大学计算机与信息工程学院 天津市 300387