Beep控制扬声器唱歌+制作自己的电子琴

   做完接口实验的课程设计之后,我当然对微机接口这门课有了更深的认识,但是远远不止如此,还发现了自己的不足,比如到现在为止还不会弄图形界面。

也不止如此,最重要的,对控制扬声器感兴趣了,扬声器输入的数值频率不同,就会产生不同的音调。在接口试验中,这是可以用过8253来控制发音长短的,

还可以通过8255的一个输出共同来控制频率什么的,当然也不是很清楚。。可是,笔记本内部怎么实现,先不管,大概就是那些原理吧,我更关心的是

可不可以控制扬声器发音呢,有的,找到了Beep函数,在windows.h里,所以小试了一下,微笑吐舌头效果不错呢

控制扬声器唱歌的程序:

#include<stdio.h>

#include <windows.h>
#define LENGTH 255
int sound[14]={524,588,660,524,524,588,660,524,660,698,784,660,698,784};//两只老虎
int sound2[]={1048,1048,1048,524,1048,524,1048,524,1048,524,1048,524,1048,1048,524,1048,524,1048,524,1048,524,1048,524,1048};//一段报警音
int sound3[]={784,880,784,698,660,524,784,880,784,698,660,524,524,392,524,594,392,524};//一段小音乐
void main()
{
int i;
int x,y;
printf("两只老虎\n");
getchar();
for(i=1;i<14;i++)
{
Beep(sound[i],LENGTH);

}

printf("报警音\n");
getchar();
for(i=1;i<22;i++)
{
Beep(sound2[i],LENGTH);

}
printf("welcome\n");
getchar();
for(i=1;i<18;i++)
{
Beep(sound3[i],LENGTH);

}

}

制作自己的电子琴的程序:

/*C调(低)/*         1  1#    2    2#        3        4      4#   5       5#        6        6#  7
频率Hz       262  277  293   311     329   349     370  392     415     440      466    494
TH/TL   F88B  F8F2  F95B  F9B7  FA14  FA66  FAB9 FB03  FB4A  FB8F  FBCF  FC0B
 
C调(中)       1      1#      2        2#   3            4       4#       5   5#  6       6#           7
频率Hz  523      553    586       621  658        697  739      783  830    879     931      987
TH/TL    FC43  FC78  FCAB  FCDB  FD08  FD33  FD5B  FD81  FDA5  FDC7  FDE7  FE05
 
C调(高)      1         1#      2   2#        3       4   4#         5         5#    6       6#   7
频率Hz  1045    1106   1171   1241   1316   1393  1476    1563    1658   1755    1860 1971
TH/TL    FB21   FE3C  FE55  FE6D  FE84  FE99  FEAD  FEC0  FE02  FEE3  FEF3  FF02
*/

#include<stdio.h>
#include <windows.h>
#define LENGTH 255
int base[]={523,586,658,739,830,931};

void main()
{
int i;
int x;

printf("请输入(1-6)音调.\n");
while(1)
{
scanf("%d",&x);
Beep(base[x-1],500);

}

}

你可能感兴趣的:(Beep控制扬声器唱歌+制作自己的电子琴)