windows.beep(dwFreq:integer;dwDuration:integer);dwFreq: 声音频率; dwDuration;持续时间.-------------------------------------------------messagebeep()-------------------------------------------------procedure pcSound(dFreq:Double;wLong:Word);//第一个为频率,第二个为持续时间 var wFreq:word; begin wFreq := round(1192576/dFreq); asm //读写60,61端口发声 push ax push bx push cx push dx push di mov al,0B6H out 43H,al mov dx,12H mov ax,wFreq out 42H,al mov al,ah out 42H,al in al,61H mov ah,al or al,3 out 61H,al @wait1: mov cx,wLong @delay: dec cx jnz @delay dec bx jnz @wait1 mov al,0B6H out 43H,al mov al,ah out 61H,al pop di pop dx pop cx pop bx pop ax end; end; {--------------------------- 261.7 c 293.7 d 329.6 e 349.2 f 392.0 g 440.0 a 493.9 b ---------------------------}
dwDuration;持续时间.-------------------------------------------------messagebeep()-------------------------------------------------procedure pcSound(dFreq:Double;wLong:Word);//第一个为频率,第二个为持续时间
var
wFreq:word;
begin
wFreq := round(1192576/dFreq);
asm //读写60,61端口发声
push ax
push bx
push cx
push dx
push di
mov al,0B6H
out 43H,al
mov dx,12H
mov ax,wFreq
out 42H,al
mov al,ah
out 42H,al
in al,61H
mov ah,al
or al,3
out 61H,al
@wait1:
mov cx,wLong
@delay:
dec cx
jnz @delay
dec bx
jnz @wait1
mov al,0B6H
out 43H,al
mov al,ah
out 61H,al
pop di
pop dx
pop cx
pop bx
pop ax
end;
end;
{---------------------------
261.7 c
293.7 d
329.6 e
349.2 f
392.0 g
440.0 a
493.9 b
---------------------------}
windows.Beep( 293 ,1000);
windows.Beep( 329 ,1000);
windows.Beep( 349 ,1000);
windows.Beep( 392 ,1000);
windows.Beep( 440 ,1000);
windows.Beep( 493 ,1000);