本系统通过光敏电阻将光信号转化为电信号,再经由STC89C51单片机进行引脚的数据采集,获得信号后通过LM386放大音频信号,通过控制电路,控制扬声器发出相应频率声音,并将音符信息显示在1602液晶上。
硬件部分主要包含激光发射电路,激光接收电路,音频输出电路,以及液晶显示电路等,软件部分主要包括激光信号采集,液晶显示器的 *** 作,以及发声频率的控制。
51单片机制作的激光竖琴程序主要是:
#include <reg51h>
#define uchar unsigned char
#define uint unsigned int
//数码管 共阳
uchar code DSY_Table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};
//音符对应的延时
uint code Tone_Delay_Table[]={
64021,64103,64260,64400,64524,64580,64684,64777,
64820,64898,64968,65030,65058,65110,65157,65178};
sbit BEEP=P3^2;
uchar KeyNo
//生日快乐歌的音符频率表,不同的频率用延时值来表示
uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,212,212,212,159,169,190,119,119,126,159,142,159,0};
uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,9,3,12,12,12,24,0};
///////delay------
void DelayMS(uint x)
{
uchar i;
while(x--)for(i=0;i<120;i++);
}
void PlayMusic()
{
uint i=0,j,k;
while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
{
for(j=0;j<SONG_LONG[i]20;j++)
{
BEEP=~BEEP;
for(k=0;k<SONG_TONE[i]/3;k++);
}
DelayMS(80); //每个音符之间的时间间隔
i++;
}
}
void Keys_SCAN()
{
uchar k,t,key_state;
P1=0xff;
// while(1)
// {
t=P1;
if(t!=0xff)
{
DelayMS(10);
if(t!=P1)
{
switch(t){
case 0x87: BEEP=159 ; break; //1mie do
case 0x47: BEEP=142 ; break; //2mie re
case 0x27: BEEP=126 ; break; //3mie mi
case 0x17: BEEP=119 ; break; //4mie fa
case 0x0f: BEEP=212 ; break; //5mie sol
default: BEEP=169 ;
} // silu
}
// continue;
// key_state=~t;
// k=0;
// while(key_state!=0)
// {
// k++;
// key_state>>=1;
// }
// KeyNo=k;
// }
//return; //return 语句的加法很重要
}
//return;
//KeyNo=k;
}
void play_Tone() interrupt 1
{
TH0=Tone_Delay_Table[KeyNo]/256;
TL0=Tone_Delay_Table[KeyNo]%256;
BEEP=~BEEP;
}
//////MAIN/////////////////
void main()
{
//BEEP=0;
//while(1)
// P0=0xF0;
P0=0xbf;
PlayMusic();
DelayMS(1000);
DelayMS(1000);
TMOD=0x01;
IE=0x82;
while(1)
{
P1=0xff;
if(P1 != 0xff)
{
Keys_SCAN();
P0=DSY_Table[KeyNo];
TR0=1;
}
else
{
TR0=0;
}
DelayMS(2);
}
}
#include <reg51h>
#define uchar unsigned char
#define uint unsigned int
///数码管 共阳
uchar code DSY_Table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};
///音符对应的延时
uint code Tone_Delay_Table[]={
64021,64103,64260,64400,64524,64580,64684,64777,
64820,64898,64968,65030,65058,65110,65157,65178};
sbit BEEP=P3^0;
uchar KeyNo;
//生日快乐歌的音符频率表,不同的频率用延时值来表示
uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0};
uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0};
///////delay------
void DelayMS(uint x)
{
uchar i;
while(x--)for(i=0;i<120;i++);
}
void PlayMusic()
{
uint i=0,j,k;
while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
{
for(j=0;j<SONG_LONG[i]20;j++)
{
BEEP=~BEEP;
for(k=0;k<SONG_TONE[i]/3;k++);
}
DelayMS(80); //每个音符之间的时间间隔
i++;
}
}
void Keys_SCAN()
{
uchar k,t,key_state;
// P1=0xff;
while(1)
{
t=P1;
if(t!=0xff)
{
DelayMS(10);
if(t!=P1) continue;
key_state=~t;
k=0;
while(key_state!=0)
{
k++;
key_state>>=1;
}
KeyNo=k;
}
return; //return 语句的加法很重要
}
//return;
//KeyNo=k;
}
void play_Tone() interrupt 1
{
TH0=Tone_Delay_Table[KeyNo]/256;
TL0=Tone_Delay_Table[KeyNo]%256;
BEEP=~BEEP;
}
//////MAIN/////////////////
void main()
{
P0=0xbf;
PlayMusic();
DelayMS(1000);
DelayMS(1000);
TMOD=0x01;
IE=0x82;
while(1)
{
P1=0xff;
if(P1 != 0xff)
{
Keys_SCAN();
P0=DSY_Table[KeyNo];
TR0=1;
}
else
{
TR0=0;
}
DelayMS(2);
}
}
电钢琴、电子琴、电吉他、激光竖琴、电贝司。
1、电钢琴
电钢琴(Electronical piano),是一种电声乐器。它是二十世纪六七十年代兴起,八十年代至九十年代早期流行的一种用于在某些场合代替钢琴的乐器。
2、电子琴
电子琴是一种键盘乐器,其实它就是电子合成器。电子琴其实根本不是一个正确叫法,因为它形似钢琴,所以就有人叫它电子琴了。实际上正规的叫法应该是电子合成器。
3、电吉他
电吉他是现代科学技术的产物,从外型到音响都与传统的吉他有着明显的差别。琴体使用新硬木制成,配有音量、音高调节器(琴钮)以及颤音结构(摇杆)等装置。配合效果器的使用,电吉他有很强的表现力,在现代音乐中有很重要的位置。现在多用于歌曲伴奏。
4、激光竖琴
激光竖琴是指一架没有琴弦的竖琴,取而代之的是明亮的光束,使用者只需拨动光束,便如同拨动了琴弦,依然可以演奏一段旋律。
激光竖琴是有创艺国际演艺团队任亿(阿五)先生历时1年多制作而成,八个激光管发出的光束作为琴弦,用透明度和硬度极强的进口亚克力做琴架,用激光系统程序软件及开关控制整个系统的通断。利用单片机控制播动激光琴弦时发出不同频率音调的声音。
用激光当做虚拟琴弦,手拨到琴弦时会发出相应的音调,从而达到模仿竖琴演奏简单乐曲的目的。
5、电贝司
贝司,本为非洲的原始信仰贝斯古神,十二王朝时期进入埃及,是一有胡子且好笑的矮子,被当成音乐之神,且保护那些表演的孩子们。电贝司主要有琴头、琴颈、琴箱、音弦、效果器、拾音器等部分组成,主要用于现代电声乐队中。
作为整个乐队的低声音部,常使用分解和弦伴奏,在乐曲的经过句中,电贝司常奏出过渡性旋律,能大大丰富乐队的音色。电贝司是乐队中一般必不可少的乐器之一,它在爵士乐队中主要担任低音声部,有时也作即兴独奏。
以上就是关于51单片机制作的激光竖琴程序是什么全部的内容,包括:51单片机制作的激光竖琴程序是什么、基于51单片机制作的激光竖琴电路图和气程序、电声乐包括哪些乐器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)