我想编程操作扬声器,谁能帮我?

BernardShaw 2001-09-06 08:05:33
汇编语言的书上有一个这种程序,不过用不起,搞不懂了。
谁有这方面的源代码么?谢谢
...全文
110 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamshuke 2001-09-10
  • 打赏
  • 举报
回复
不好意思,是《致爱丽丝》,我又专门编译了一下,把delay(800*d[i])改成delay(20000*d[i])才正常了.毕竟写这段程序时,我用的是Cyrix 486DLC 40,只有区区的40MHZ,而且只有1M内存,64k显存的大力神显卡. 而现在是PIII800了.
BernardShaw 2001-09-10
  • 打赏
  • 举报
回复
你的速度设置太快,我把它调慢后听出来了,是《致爱丽丝》
iamshuke 2001-09-10
  • 打赏
  • 举报
回复
S中的数据是频率(1 2 3 3 4 5 6 7),d中的数据是延时(1/2 1 拍等).具体的时间太长了,想不起来了.另外,那首歌好像是什么"大风歌".
BernardShaw 2001-09-10
  • 打赏
  • 举报
回复
RE:iamshuke() 
非常成功,不过我听不出是什么歌,呵呵。另外,给点注释好吗?
fsb_12345 2001-09-07
  • 打赏
  • 举报
回复
楼上的那样详细,我没说的了
iamshuke 2001-09-06
  • 打赏
  • 举报
回复
这是我以前编的利用扬声器演奏一首歌的程序,致于是哪首歌,我忘了.
win()
{
unsigned s[250]={329,311,329,311,329,246,293,261,220,-1,130,165,220,
247,-1,165,207,248,262,-1,165,330,311,330,311,330,247,
294,262,220,-1,131,165,220,247,-1,165,262,247,220,-1,
329,311,329,311,329,246,293,261,220,-1,130,165,220,
247,-1,165,207,248,262,-1,165,330,311,330,311,330,247,
294,262,220,-1,131,165,220,247,-1,165,262,247,220,-1,
247,262,293,329,-1,196,349,330,294,-1,175,330,294,
262,-1,165,294,262,247,330,70,165,165,330,165,330,311,
165,165,155,165,311,
329,311,329,311,329,246,293,261,220,-1,130,165,220,
247,-1,165,207,248,262,-1,165,330,311,330,311,330,247,
294,262,220,-1,131,165,220,247,-1,165,262,247,220,-1,
247,262,293,329,-1,196,349,330,294,-1,175,330,294,
262,-1,165,294,262,247,330,70,165,165,330,165,330,311,
165,165,155,165,311,
329,311,329,311,329,246,293,261,220,-1,130,165,220,
247,-1,165,207,248,262,-1,165,330,311,330,311,330,247,
294,262,220,-1,131,165,220,247,-1,165,262,247,220,-1
};
unsigned d[250]={1,1,1,1,1,1,1,1,2,1,1,1,1,
2,1,1,1,1,2,1,1,1,1,1,1,1,1,
1,1,2,1,1,1,1,2,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,2,1,1,1,1,
2,1,1,1,1,2,1,1,1,1,1,1,1,1,
1,1,2,1,1,1,1,2,1,1,1,1,2,1,
1,1,1,2,1,1,1,1,2,1,1,1,1,
2,1,1,1,1,2,1,1,1,1,2,1,1,1,
1,1,1,1,1,
1,1,1,1,1,1,1,1,2,1,1,1,1,
2,1,1,1,1,2,1,1,1,1,1,1,1,1,
1,1,2,1,1,1,1,2,1,1,1,1,2,1,
1,1,1,2,1,1,1,1,2,1,1,1,1,
2,1,1,1,1,2,1,1,1,1,2,1,1,1,
1,1,1,1,1,
1,1,1,1,1,1,1,1,2,1,1,1,1,
2,1,1,1,1,2,1,1,1,1,1,1,1,1,
1,1,2,1,1,1,1,2,1,1,1,1,6,2
};
int i;
for(i=0;i<=250;i++)
{ keylight(s[i]);
while(kbhit())
{ nosound(); keylight(50);return; }
if(i==250) i=0;
sound((int)(2.4*s[i]));
delay(800*d[i]);
}
}
keylight(int hz)
{ int far *p=0x417;
if(hz<20)*p=0x80;
if(hz>=20&&hz<180)*p=0xa0;
if(hz>=180&hz<312)*p=0xe0;
if(hz>312)*p=0xf0;
}
imickey 2001-09-06
  • 打赏
  • 举报
回复
具体的呢?
Nepton 2001-09-06
  • 打赏
  • 举报
回复
用sound()函数

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧