打印

[自学实验][五]单片机播放乐谱

[复制链接]
340|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
想问下有没有人知道这个U2(AUDIO)怎么接,怎么用的嘛



#include<reg51.h>
sbit BEEP=P3^7;
unsigned char 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};
unsigned char 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};
void DelayMS(unsigned int x){
        unsigned char t;
        while(x--) for(t=0;t<120;t++);
}
//播放函数
void PlayMusic(){
        unsigned int i=0,j,k;
        while(SONG_LONG!=0||SONG_TONE!=0){
                for(j=0;j<SONG_LONG*20;j++){//播放各个音符,SONG_LONG为拍子长度
                        BEEP=~BEEP;
                        //SONG_TONE延时表决定了每个音符的频率
                        for(k=0;k<SONG_TONE/2;k++);
                }
                DelayMS(10);
                i++;               
        }
}
void main(){
        BEEP=0;
        while(1)
        {
                PlayMusic();        //播放生日快乐
                DelayMS(1000);        //播放完后暂停一段时间
        }
}


使用特权

评论回复
评论
liziride 2020-11-7 19:31 回复TA
@dirtwillfly :音乐部分我不太懂,我只知道原理,不知道怎么转换曲谱,,,数模转换,原理就是:SONG_LONG表示节拍长度,SONG_TONE表示声调. 
dirtwillfly 2020-11-7 18:17 回复TA
感谢分享 

相关帖子

沙发
airwill| | 2020-11-22 19:42 | 只看该作者
能否实现两个按键同时按下的 和弦乐声?

使用特权

评论回复
评论
liziride 2020-11-23 21:20 回复TA
理论上是可以的,但是我不懂乐理. 就好比录音再播放一样,录音录下的是什么声音,播放就是什么声音.应该是一种叠加的频率. 
板凳
liziride|  楼主 | 2020-11-23 21:19 | 只看该作者
airwill 发表于 2020-11-22 19:42
能否实现两个按键同时按下的 和弦乐声?

理论上是可以的,但是我不懂乐理.  就好比录音再播放一样,录音录下的是什么声音,播放就是什么声音.应该是一种叠加的频率.

使用特权

评论回复
地板
airwill| | 2020-11-24 10:08 | 只看该作者
liziride 发表于 2020-11-23 21:19
理论上是可以的,但是我不懂乐理.  就好比录音再播放一样,录音录下的是什么声音,播放就是什么声音.应该是 ...

你可是想简单了,   需要两个频率的声音同时发声哦

使用特权

评论回复
评论
liziride 2020-11-25 12:11 回复TA
@airwill :嗯,我也是这么认为的,只是我不懂乐理,但是我知道录音播放就可以,所以它是第一个叠加波 
airwill 2020-11-24 23:03 回复TA
@liziride :用 1个喇叭, 肯定是可以的, 只是放的就不是简单的基波了 
liziride 2020-11-24 10:58 回复TA
如果只是玩玩,还有一个更简单的办法,你用两个管脚接两个喇叭,一起放不同的声音,直接物理模拟 
liziride 2020-11-24 10:55 回复TA
物理发生的确是两个同时发声,但是录音再播放是一个喇叭,所以有对应的频率,两个声波干扰之后的。这是我的思路,你好好想想 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

38

帖子

0

粉丝