- 论坛徽章:
- 0
|
老问题,如何让电脑蜂鸣器发声音?
这是精简后的,一声长,两声短,我只需要这个功能就行了,如果有人需要复杂的功能还是看楼上的代码。
- #include <sys/io.h>;
- #include <unistd.h>;
- int main(void)
- {
- int freq=523;//这里是控制音高,但是没找到规律,只能自己试,看哪种比较好听
- int time=20;//这里是控制音长
- speaker(freq, 50);
- usleep (700);
- speaker(freq, time);
- usleep (700);
- speaker(freq, time);
- return (0);
- }
- int speaker(int freq,int delay)
- {
- static int flag=0,bit;
- if(flag==0)
- {
- flag=1;
- iopl(3);
- }
- outb(0xb6,0x43);
- outb((freq & 0xff),0x42);
- outb((freq & 0x8), 0x42);//这里一行,楼上的代码是一个表情符号,所以我是猜的,发现去掉的话也没关系
- bit=inb(0x61);
- outb(3 | bit,0x61);
- usleep(10000*delay);
- outb(0xfc | bit,0x61);
- }
复制代码 |
|