简介
在学习51单片机的过程中无意发现了蜂鸣器调节不同频率居然可以产生不同的声音!!!!!
具体改的是如下这个地方:
于是我突发奇想是不是我能用蜂鸣器不同的音调来弹一首曲子呢♪(^∀^●)ノシ (●´∀`)♪~~~~
钢琴音频对照表
于是我在网上搜索到了有关钢琴音调频率的图片,如下:
具体可以看如下链接:https://wenku.baidu.com/view/5da784fd844769eae109ed63.html
仿真测试
根据音频,我制作了proteus的电路图,并用keil编写代码运行出了钢琴音调的效果(依次是A调的1、2、3、4、5、6、7、1)。
仿真电路图
仿真电路图如下:
代码
代码如下:
#include<reg51.h>
void delay();
sbit beer1=P3^0;
sbit beer2=P3^1;
sbit beer3=P3^2;
sbit beer4=P3^3;
sbit beer5=P3^4;
sbit beer6=P3^5;
sbit beer7=P3^6;
sbit beer8=P3^7;
int main()
{
beer1=0;
delay();
beer1=1;
beer2=0;
delay();
beer1=1;
beer2=1;
beer3=0;
delay();
beer1=1;
beer2=1;
beer3=1;
beer4=0;
delay();
beer1=1;
beer2=1;
beer3=1;
beer4=1;
beer5=0;
delay();
beer1=1;
beer2=1;
beer3=1;
beer4=1;
beer5=1;
beer6=0;
delay();
beer1=1;
beer2=1;
beer3=1;
beer4=1;
beer5=1;
beer6=1;
beer7=0;
delay();
beer1=1;
beer2=1;
beer3=1;
beer4=1;
beer5=1;
beer6=1;
beer7=1;
beer8=0;
delay();
beer1=1;
beer2=1;
beer3=1;
beer4=1;
beer5=1;
beer6=1;
beer7=1;
beer8=1;
delay();
while(1);
}
void delay()
{
int i,j;
for(i=100;i>0;i--)
for(j=500;j>0;j--);
}