⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdefab.c

📁 用主板上的小喇叭演奏的程序 C实现 挺有意思的
💻 C
字号:
void Sound(int freq)
{
	asm{
	mov   al,   0B6h
	out   43h,  al
	mov   dx,   12h
	mov   ax,   34DEh
	div   freq
	out   42h,  al
	mov   al,   ah
	out   42h,  al
	in    al,   61h
	or    al,   3
	out   61h,  al
	}
}

void Nosound(void)
{
	asm{
	in    al,   61h
	xor   al,   3
	out   61h,  al
	}
}

void Delay(int clicks)
{
unsigned int far *clock=(unsigned int far *)0x0000046CL;
unsigned int now;
now=*clock;
while(abs(*clock-now)<clicks){}
}

void Sound_All(int freq,int clicks)
{
Sound(freq);
Delay(clicks);
Nosound();
}

void main(void)
{
int i,j;
static unsigned n[][12]={{65,69,73,78,82,87,92,98,103,110,116,123},
	{131,139,147,156,165,175,185,196,208,220,233,247},
	{262,277,294,311,330,349,370,392,415,440,466,494},
	{523,554,587,622,659,698,740,784,831,880,932,988},
	{1046,1109,1175,1244,1318,1397,1480,1568,1661,1760,1865,1976},
	{2039,2160,2288,2422,2565,2716,2877,3047,3226,3417,3618,3832},
	{4058,4297,4551,4819,5104,5405,5724,6061,6419,6798,7166,7625}};

for(i=0;i<6;i++)
{
	for(j=0;j<13;j=j+2)
	{
		Sound_All(n[i][j],10);
	}
	getch();
}
for(i=0;i<6;i++)
{
	for(j=0;j<13;j++)
	{
		Sound_All(n[i][j],10);
	}
	getch();
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -