C语言编程中使主板喇叭鸣叫的方法?

C语言编程中使主板喇叭鸣叫的方法?,第1张

我看到过一下两种方法,看看哪种是对的。

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)。

b. 确认[选择输出设备]是否设定为内建喇叭(3)。

小提醒: 型号不同的笔记本电脑内建喇叭设备的名称可能会有不同。

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. 系统还原

如果所有的故障排除步骤已完成,但问题仍然存在,请在备份后,进行系统还原


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8175893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存