1,关闭扬声器,停止发声:
IN AL 61H
OR AL 0FCH
OUT 61H AL
2,声音开关:
由8255的PB口控制,PB0=PB1=1,开;(PB0=0或PB1=0),关
IN AL,61H
AND AL,0FCH
OUT 61H,AL 关闭声音(PB0=PB1=0)
其中一个是 OR AL 0FCH
一个是 AND AL,0FCH
显然会的倒不一样的结果,照2中关闭声音(PB0=PB1=0)条件的话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
您可以在系统内尝试以下方法解决电脑没声音的问题:
1. 确认输出设备状态设定
a. 请在Windows搜寻栏输入[声音设置](1),并点选[打开](2)。
小提醒: 型号不同的笔记本电脑内建喇叭设备的名称可能会有不同。
c. 确认喇叭音量是否设定为静音。于声音设置中点选[声音控制面板](4)。
d. 点选[播放](5),点选[内建喇叭设备](6)后并点击[属性](7)。
e. 点选[级别](8),使用滑杆调整喇叭音量并确认喇叭设定为[非静音模式](9),点击[确定](10)储存设定。
2. 在设备管理器中启用并重新安装驱动程序
a. 请在Windows搜寻栏输入[设备管理器](1),并点选[打开](2)。
b. 点击[音频输入和输出]设备类型旁边的三角形(3)。于[内建喇叭]点击鼠标右键(4),并点选[启用设备](5)。
若是未显示[启用设备]选项,表示您的内建喇叭已启用,并请继续下一步骤。
c. 于[内建喇叭]点击鼠标右键(6),并点选[更新驱动程序](7)。
小提醒: 由于需透过网络搜寻更新,请确保您所在的区域有可用的网络并将笔记本电脑连上因特网。
d. 点选[自动搜索更新的驱动程序软件](8)。
e. 此时笔记本电脑将开始自动在线搜寻并安装驱动程序。
f. 自动更新驱动程序已完成,请点击[关闭](9)。
g. 若是无法通过设备管理器自动更新内建喇叭的驱动程序,请手动下载并安装[声卡]驱动程序
3. 执行Windows内建的疑难解答
a. 请在Windows搜寻栏输入[声音设置](1),并点选[打开](2)。
b. 点击输出设备的[疑难解答](3)。
c. 依照疑难解答员提供的说明完成故障排除过程。
4. 系统还原
如果所有的故障排除步骤已完成,但问题仍然存在,请在备份后,进行系统还原
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)