做完接口实验的课程设计之后,我当然对微机接口这门课有了更深的认识,但是远远不止如此,还发现了自己的不足,比如到现在为止还不会弄图形界面。
也不止如此,最重要的,对控制扬声器感兴趣了,扬声器输入的数值频率不同,就会产生不同的音调。在接口试验中,这是可以用过8253来控制发音长短的,
还可以通过8255的一个输出共同来控制频率什么的,当然也不是很清楚。。可是,笔记本内部怎么实现,先不管,大概就是那些原理吧,我更关心的是
可不可以控制扬声器发音呢,有的,找到了Beep函数,在windows.h里,所以小试了一下,效果不错呢
控制扬声器唱歌的程序:
#include<stdio.h>
#include <windows.h>}
制作自己的电子琴的程序:
/*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);
}
}