基于51单片机的电子琴按下每个键盘的按键应听到喇叭发出不同的声调的代码
时间: 2023-06-17 21:02:32 浏览: 104
以下是基于51单片机的电子琴按键代码,可以根据需要进行修改:
```c
#include <reg51.h>
sbit SPEAKER = P2^0; // 喇叭控制引脚
void delay(int time) // 延时函数
{
int i, j;
for(i=0;i<time;i++)
for(j=0;j<1275;j++);
}
void main()
{
while(1)
{
if(P1 != 0xff) // 检测按键是否按下
{
if(P1 == 0xfe) // 第一个按键
{
SPEAKER = 0; // 喇叭发声
delay(100); // 延时
SPEAKER = 1; // 停止发声
}
else if(P1 == 0xfd) // 第二个按键
{
SPEAKER = 0; // 喇叭发声
delay(200); // 延时
SPEAKER = 1; // 停止发声
}
else if(P1 == 0xfb) // 第三个按键
{
SPEAKER = 0; // 喇叭发声
delay(300); // 延时
SPEAKER = 1; // 停止发声
}
else if(P1 == 0xf7) // 第四个按键
{
SPEAKER = 0; // 喇叭发声
delay(400); // 延时
SPEAKER = 1; // 停止发声
}
else if(P1 == 0xef) // 第五个按键
{
SPEAKER = 0; // 喇叭发声
delay(500); // 延时
SPEAKER = 1; // 停止发声
}
else if(P1 == 0xdf) // 第六个按键
{
SPEAKER = 0; // 喇叭发声
delay(600); // 延时
SPEAKER = 1; // 停止发声
}
else if(P1 == 0xbf) // 第七个按键
{
SPEAKER = 0; // 喇叭发声
delay(700); // 延时
SPEAKER = 1; // 停止发声
}
else if(P1 == 0x7f) // 第八个按键
{
SPEAKER = 0; // 喇叭发声
delay(800); // 延时
SPEAKER = 1; // 停止发声
}
}
}
}
```
上述代码中,我们将喇叭控制引脚定义为P2.0,并根据不同的按键进行不同时间的延时来产生不同的声音。当按键按下时,检测到按键的值并根据不同值来判断是哪个按键,然后根据不同按键产生不同的延时时间,最终控制喇叭发声。注意,喇叭发声需要将控制引脚设置为低电平,停止发声需要将控制引脚设置为高电平。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)