音乐喷泉课题报告.docx
《音乐喷泉课题报告.docx》由会员分享,可在线阅读,更多相关《音乐喷泉课题报告.docx(30页珍藏版)》请在冰豆网上搜索。
音乐喷泉课题报告
课程设计报告
设计题目:
音乐喷泉
院系:
物理与机电工程学院
专业:
10电信
(2)班
日期:
摘要
音乐喷泉是近几年来出现的一种园林建筑与音乐欣赏相结合的产物。
随着计算机软件硬件技术的飞速发展,新型喷泉与计算机的交互应用越来越广泛,音控喷泉也越来越复杂,越来越精密,使得越来越多的控制部分需要计算机来完成。
因此,计算机控制音控喷泉成为必然趋势。
但喷泉工程还存在一些技术难题,主要表现为明显的水声滞后效应。
本文采用PWM变频调速、预处理、预测补偿控制和基于数据库的软件信号提前控制方法,提出了一种新的先进的音乐喷泉设计方案和控制途径,并与传统设计方案进行了分析比较,用面向对象的编程方法完成了对当今较为流行的MP3音频格式的解码,同时实时提取了音频信号。
仿真分析证明该设计方案改善了传统控制方法的水声滞后效应,改善了喷泉系统的控制品质,从而真正达到了实时控制的要求.为了同时加强实际动手能力及创新能力的培养,巩固学到的理论知识所开拓的视野,弥补课堂不足的目的,同时在实习过程中熟悉单片机的使用或者制作流程,为这次进行毕业设计搜集了所需的资料,增强了这次作业的责任心和对作业的严谨要求的态度。
设计的内容主要是用单片机制作一个声控喷泉,对象为直流机控制的一个水泵。
应能进行喷泉的喷水高度进行动态的设定,或按音量高低进行同步的变化。
能更早的适应于社会。
开发我们的创新能力。
引言
单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。
对于计算机专业的学生来说,即使暂时没有从事单片机的应用与开发,学习单片机也有很重要的意义。
学习它,不仅为将来可能从事该方面的开发打下基础,另一方面,由于单片机作为微型计算机的一个种类,麻雀虽小,五脏俱全,可以把它当作微型计算机的一个简化模型来看待,学习单片机可以加深对微型计算机工作原理的理解,更加清楚计算机的脉络。
同时,提供了一个实际应用手段。
音乐喷泉是利用播放或现场演奏或按照预先编辑的程序变换喷水造型和灯光色彩强弱变化的喷泉。
音乐喷泉控制系统可以使喷水造型变化和灯光的变化随音乐的节奏、旋律的起伏变化而变化,美妙动人;编辑程序是利用单片机进行的,一般可以随时修改,也可储存多种程序,随意调用。
音乐喷泉到了编码阶段必然涉及到音乐要素的数据格式,MIDI(音乐设备数字接口)提取音乐要素、音乐模式识别、音乐情感信息库建立、3D动画显示音乐喷泉等,而这些都要与音乐喷泉要素数据打交道。
因此对各部分所需要的数据格式、这些数据不同形式的表示的相似性和差异性的研究就变得十分迫切
1.2STC12C5A60S2系列管脚简介---------------------8
2.1喷泉技术发展----------------------------------------------------9第三章.课题简介
3.1课题简介----------------------------------------10
3.2研究的问题-----------------------------------------------------------------------------10
3.3研究的意义---------------------------------------------------------10
第四章课题的设计
4.1原理图---------------------------------------------------------------11
4.2实物图----------------------------------------------------------------13
4.3流程图----------------------------------------------------------------13
第五章课题的程序
5.1主程序---------------------------------------------------------------14
5.2片内延时子函数-------------------------------------------------18
5.3片内A/D函数及A/D转化--------------------------------------18
结论及观点----------------------------------------------------------------------20
第一章单片机的介绍
1.1STC12C5A60S2系列单片机简介
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,
是高速/低功耗/超�抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12
倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25��/�),�
对电机控制,�干扰场合。
1.增�型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051
2.工作电压:
STC12C5A60S2系列工作电压:
5.5V-3.5V(5V单片机)
STC12LE5A60S2系列工作电压:
3.6V-2.2V(3V单片机)
3.工作频率范围:
0~35MHz,相当于普通8051的0~420MHz
4.用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节......
5.片上集成1280字节RAM
6.通用I/O口(36/40/44个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)
可设置成四种模式:
准双向口/弱上拉,�推挽/�上拉,仅为输入/高阻,开漏
每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器
可通过串口(P3.0/P3.1)直接下载用户程序,数�即可完成一片
8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)
9.看门狗
10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)
11.外部掉电检测电路:
在P4.6口有一个低压门槛比较器
5V单片机为1.33V,误差为±5%,3.3V单片机为1.31V,误差为±3%
12.时钟源:
外部高精度晶体/时钟,内部R/C振荡器(温漂为±5%到±10%以内)
用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟
常温下内部R/C振荡器频率为:
5.0V单片机为:
11MHz~17MHz
3.3V单片机为:
8MHz~12MHz
精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准
13.共4个16位定时器
两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立
波特率发生器做串行通讯的波特率发生器,再�上2路PCA模块可再实现2个16位定时器
14.3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独
立波特率发生器可以在P1.0口输出时钟
15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模
块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,
CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,
是高速/低功耗/超�抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12
倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25��/�),�
1.2STC12C5A60S2系列管�说明
管脚
管脚编号
说明
LQFP44
LQFP48
PDIP40
PLCC44
QFN40
P0.0~P0.7
37-30
40~33
39-32
43~36
34~27
P0:
P0口既可作为输入/输出口,也可作为地
址/数据复用总线使用。
当P0口作为输入/输出
口时,P0是一个8位准双向口,内部有弱上拉电
阻,无需外接上拉电阻。
当P0作为地址/数据复
用总线使用时,是低8位地址线[A0~A7],数据线
的[D0~D7]。
P1.0/ADC0/CLKOUT2
40
43
1
2
36
P1.0
标准I/O口PORT1[0]
ADC0
ADC输入通道-0
CLKOUT2
独立波特率发生器的时钟输出
可通过设置WAKE_CLKO[2]位/BRT-
CLKO将该管脚配置为CLKOUT2
P1.1/ADC1
41
44
2
3
37
P1.1
标准I/O口PORT1[1]
ADC1
ADC输入通道-1
P1.2/ADC2/ECI/RxD2
42
45
3
4
38
P1.2
标准I/O口PORT1[2]
ADC2
ADC输入通道-2
ECI
PCA计数器的外部脉冲输入脚
RxD2
第二串口数据接收端
P1.3/ADC3/CCP0/TxD2
43
46
4
5
39
P1.3
标准I/O口PORT1[3]
ADC3
ADC输入通道-3
CCP0
外部信号捕获(频率测量或当外部中
断使用)、高速脉冲输出及脉宽调制
输出
TxD2
第二串口数据发送端
P1.4/ADC4/CCP1/SS
44
47
5
6
40
P1.4
标准I/O口PORT1[4]
ADC4
ADC输入通道-4
CCP1
外部信号捕获(频率测量或当外部中
断使用)、高速脉冲输出及脉宽调制
输出
SS
SPI同步串行接口的从机选择信号
P1.5/ADC5/MOSI
1
2
6
7
1
P1.5
标准I/O口PORT1[5]
ADC5
ADC输入通道-5
MOSI
SPI同步串行接口的主出从入(主器件
的输出和从器件的输入)
P1.6/ADC6/MISO
2
3
7
8
2
P1.6
标准I/O口PORT1[6]
ADC5
ADC输入通道-6
MISO
SPI同步串行接口的主入从出(主器件
的输入和从器件的输出)
P1.7/ADC7/SCLK
3
4
8
9
3
P1.7
标准I/O口PORT1[7]
ADC7
ADC输入通道-7
SCLK
SPI同步串行接口的时钟信号
管脚
管脚编号
说明
LQFP44
LQFP48
PDIP40
PLCC44
QFN40
P2.0~P2.7
18-25
19-23
21-28
24~31
16~23
Port2:
P2口内部有上拉电阻,既可作为输入/输出
口,也可作为高8位地址总线使用(A8~A15)。
当P2口作为输入/输出口时,P2是一个8位准双向
口。
26-28
P3.0/RxD
5
6
10
11
5
P3.0
标准I/O口PORT3[0]
RxD
串口1数据接收端
P3.1/TxD
7
8
11
13
6
P3.1
标准I/O口PORT3[1]
TxD
串口1数据发送端
P3.2/INT0
8
9
12
14
7
P3.2
标准I/O口PORT3[2]
INT0
外部中断0,下降沿中断或低电平中断
P3.3/INT1
9
10
13
15
8
P3.3
标准I/O口PORT3[3]
INT1
外部中断1,下降沿中断或低电平中断
P3.4/T0/INT/CLKOUT0
10
11
14
16
9
P3.4
标准I/O口PORT3[4]
T0
定时器/计数器0的外部输入
INT
定时器0下降沿中断
CLKOUT0
定时器/计数器0的时钟输出
可通过设置WAKE_CLKO[0]位
/T0CLKO将该管脚配置为CLKOUT0
P3.5/T1/INT/CLKOUT
11
12
15
17
10
P3.5
标准I/O口PORT3[5]
T1
定时器/计数器1的外部输入
INT
定时器1下降沿中断
CLKOUT1
定时器/计数器1的时钟输出
可通过设置WAKE_CLKO[1]位
/T1CLKO将该管脚配置为CLKOUT1
P3.6/WR
12
13
16
18
11
P3.6
标准I/O口PORT3[6]
WR
外部数据存储器写脉冲
P3.7/RD
13
14
17
19
12
P3.7
标准I/O口PORT3[7]
RD
外部数据存储器读脉冲
P4.0/SS
17
18
23
P4.0
标准I/O口PORT4[0]
SS
SPI同步串行接口的从机选择信号
P4.1/ECI/MOSI
28
31
34
P4.1
标准I/O口PORT4[1]
ECI
PCA计数器的外部脉冲输入脚
MOSI
SPI同步串行接口的主出从入(主器件
的输出和从器件的输入)
P4.2/CCP0/MISO
39
42
1
P4.2
标准I/O口PORT4[2]
CCP0
外部信号捕获(频率测量或当外部中断
使用)、高速脉冲输出及脉宽调制输出
MISO
SPI同步串行接口的主入从出(主器件
的输入和从器件的输出)
第二章.喷泉技术发展
改革开放以来,水景工程在我国得到了迅速发展。
以往园林工程中常见的镜池、溪流、假山瀑布等,已不能满足人们的需求。
各种新型水景工程,从微型喷泉小品、室内喷泉、庭院喷泉、广场喷泉、各种趣味性游乐喷泉、程控喷泉、音乐喷泉、激光喷泉、水幕电影、超高喷泉、超大瀑布等,都在我国相继出现,产品走向国际市场。
为适应喷泉工程建设需要,喷泉设备依赖进口的局面彻底打破各地喷泉设备厂,专业公司一个接一个成立起来。
据不完全统计,到1997年底全国已有200多个厂家,其中年产值1000万元以上的厂家已有10来家,年总产值估计达到3亿元以上,尤其是在江苏省和全国各大城市喷泉设备厂星罗棋布。
一些大学院校(如人民大学、清华大学、北京林业大学、北京机械工业学院、同济大学、武汉水电学院、青岛建工学院等),科研设计单位(如中科院计算所、中科院自动化所、中国建筑技术研究院、中国建筑西北设计院、北京有色冶金设计研究总院等)也投入了的研究开发,为我国喷泉技术的发展做出了一定的贡献,其中一些技术力量雄厚的专业公司的半产品,开始向美国、西欧等发达国家出口。
在建设形势推动下,我国行政主管和技术监督部门、学术团体和出版界等也为推动喷泉技术的发展做出不少工作。
1989年出版的<<给水排水设计手册>>第一次将“水景设计”以专章列入设计手册;1991年开始施行的<<建筑给水排水设计规范>>第一次将“喷泉设计”以专节列入国家设计规范;1990年出版了第一本专门著作<<喷泉设计>>,1991年在中国土木工程学会建筑给水排水委员会和中国标准化协会建筑给水排水委员会的大力推动下,成立了第一届“喷泉研讨会”,有关喷泉的专门设计规程和术语标准等也公开发布执行。
第三章课题简介
3.1课题简介
目前国内的水上乐园或者公园都会有喷泉,音乐喷泉作为一种新兴的喷泉得到了普遍的应用。
音乐喷泉与普通的喷泉相比,附加了音乐的节奏,使得喷泉像具有了灵魂一样,无论从视觉和听觉上都能给观看者以美得享受。
音乐喷泉的形成是将音乐的节奏和强度转变为控制信号,此信号再控制一个电压控制器件,电源经过这个电压控制器件后,输出电压也随音乐的变化而改变,然后控制水泵电机,改变频率就改变了电机的转速,也就改变了水泵的压力,音乐的不同频率经单片机处理送到变频电机的控制端,使电机转速随音乐的音调,节奏,和强弱变化,水泵的压力随之变化,喷岀的水就有了高低变化。
3.2研究的问题
利用单片机是如何实践控制彩灯亮灭以及亮灭的程度,通过彩灯亮灭的情况来判定音频输入的高低。
如何利用单片机来控制直流电机的转速以此来控制水柱的高低?
3.3研究的意义
(1)可以通过这次课题来培养对单片机的兴趣;
(2)本课题是双人一组完成的,可以培养两者之间的合作默契明确分工任务;
(3)通过本次课题,我们更加的了解单片机,而且也产生了浓厚的兴趣;
(4)完成了本次课题,我们明白了是如何通过控制单片机来实现音乐的输入转换,如何通过采集音频来控制彩灯,如何控制电机转速来控制水柱。
第四章课题的设计
4.1原理图
4.2实物图
4.3流程图
主程序代码
#include
#include
#defineLED_OFFP2
sbitled1=P2^0;
sbitled2=P2^1;
sbitled3=P2^2;
sbitled4=P2^3;
sbitled5=P2^4;
sbitled6=P2^5;
sbitled7=P2^6;
sbitled8=P2^7;
//********************位定义*****************************************
sbitPWM_OUT=P1^7;//PWM输出端
//********************本地变量声明***********************************
//-------------------------------PWM相关
uintZKB=0;//决定正脉冲宽度
uintPL=10;//决定PWM频率
//计算公式为:
频率=1000000(us)/初始值(us)*PL;
//------------------------------
uintdat;
voidTM_PWM_INIT();
voidRead_init(ucharCHA);
uintADC_Read();
voidinit();
voidmain()
{
init();
while
(1)
{
dat=TM_ADC_read
(1);
dat/=5;
if(dat<3)
{
led1=0;
ZKB=3;
}
if(dat>3&&dat<9)
{
led1=0;
led2=0;
ZKB=4;
}
if(dat>9&&dat<15)
{
led1=0;
led2=0;
led3=0;
ZKB=5;
}
if(dat>15&&dat<21)
{
led1=0;
led2=0;
led3=0;
led4=0;
ZKB=6;
}
if(dat>21&&dat<27)
{
led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
ZKB=7;
}
if(dat>27&&dat<33)
{
led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
ZKB=8;
}
if(dat>33&&dat<39)
{
led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
ZKB=9;
}
if(dat>39&&dat<45)
{
led1=0;
led2=0;
led3=0;
led4=0;
led5=0;
led6=0;
led7=0;
led8=0;
ZKB=10;
}
ysms(5);
LED_OFF=0XFF;
}
}
voidinit()
{
ysms(100);
P1M1=0X02;//00000010
P1M0=0X80;//10000000
ZKB=2;//
TM_PWM_INIT();
EA=1;
}
/********************************TM_PWM********************************/
voidTM_PWM_INIT()
{
TMOD|=0X10;
TH1=0XF8;//12MHZ2mS
TL1=0X30;
ET1=1;
TR1=1;
}
voidTM_PWM_TIME1()interrupt3
{
staticuinttt1;
TH1=0XF8;//12MHZ2mS
TL1=0X30;
tt1++;
if(tt1>=ZKB)
{
PWM_OUT=0;
}
if(tt1>=PL)//PL=10时,周期为20ms,频率是50HZ
{
tt1=0;
if(ZKB>0)PWM_OUT=1;//解决ZKB为0时PWM_OUT彻底关闭不了
}
}
延时子函数
voidysms(uintz)
{
uinti;
while(--z!
=0)
{
for(i=0;i<600;i++);
}
}
片内AD采集程序头文件
#ifndefAD_10_H
#defineAD_10_H
#include
voidRead_init(ucharCHA);
uintADC_Read();
uintTM_ADC_read(uchari);
#endif
片内AD采集程序
#include
voidRead_init(ucharCHA)
{
ucharAD_FIN=0;
CHA&=0x07;
ADC_CONTR=0x40;
_nop_();
A