汇编语言中如何驱动主板喇叭发声和关闭声音

2024-12-18 20:37:04
推荐回答(2个)
回答1:

别的不多说 给程序啊
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,10
SING: PUSH DX
MOV BX,1000
CALL MIDO
call delay
POP DX
DEC DX
JNZ SING ;JNZ不等于零\不相等 标志位ZF=0
MOV AH,4CH
INT 21H

MIDO PROC
MOV AL,0B6H ;0B6H=10110101 计数器2为方式2 采用十进制计数 先读写低字节 后读写高字节
OUT 43H,AL ;写入方式控制字
MOV AX,34DCH
MOV DX,12H
DIV BX
OUT 42H,AL ;写入低字节计数器
MOV AL,AH
OUT 42H,AL ;写入高字节计数器
IN AL,61H ;PB的端口地址
OR AL,03H ;D1D0=PB1PB0==11 其他为不变 PB=1 表示打开扬声器只有PB0PB1同时为高电平 扬声器才能发声
OUT 61H,AL ;直接控制发声
and AL,00H ;D1D0=PB1PB0==11 其他为不变 PB=0 表示打开扬声器只有PB0PB1同时为高电平 扬声器才能发声
OUT 61H,AL ;关闭发声
RET
MIDO ENDP
DELAY PROC
MOV DX,01FFH

DEL1: MOV CX,0FFFFH
DEL2: LOOP DEL2
DEC DX
JNZ DEL1
RET

DELAY ENDP
CODE ENDS
END START

回答2:

分少了,再多点我直接给你源码