汇编:输入输出

本文介绍了PC机扬声器发声的基本原理,涉及8253定时器和8255并行接口芯片的工作方式。通过汇编指令控制8255的B口,设置8254的2号定时器来产生指定频率的声音,并利用BIOS的延时功能实现指定时间的持续发声。最后提出了一个设计任务,要求用键盘模拟钢琴发音。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预备知识

  1. 乐曲简谱中的每个音符及其节拍,在微机中对应了扬声器的发声频率和持续时间。其中简谱音符与扬声器的发声频率的对应关系见下表:

  2. 如何使 PC 机的扬声器发出指定频率和指定时间长度的声音?下面简单介绍一下 PC 机的发声原理:
    IBM-PC 系列机的主机箱装有一个小扬声器,系统板上的定时器 8253(或 8254)利用工作方式3 产生一定频率信号,通过可编程的并行外围接口芯片 8255(或 8255A)控制其发音。扬声器的控制驱动电路如下图所示。

  • 可编程的并行接口芯片 8255 有三个 8 位的并行端口:A 口、B 口和 C 口。在 IBM 系列微机中,BIOS 在开机自检后已将 8255 初始化为 A 口和 C 口用于输入,B 口用于输出。B 口的 I/O 端口地址
    为 61H。
  • 由图可见, 8255 的 B 口的低两位用来控制扬声器驱动,当 61H 端口的 D0 位为“1”时,控制 8254定时器产生驱动扬声器发声的音频信号,该位为“0”则不发信号。8254 有三个定时器,分为 0 号、1号和 2 号定时器,驱动扬声器的是 2 号定时器,该定时器工作在方式 3,是一个频率发生器,它负责向扬声器发送指定频率的脉冲信号。
  • 输出端口 61H 的 D1 位为“1”或为“0”时,将使控制驱动器的与门电路接通或关闭,使 8254 所发出的音频信号能到达驱动器或被阻断。这样通过控制 D1 位的变化,可使扬声器接通和断开,控制扬声器是否能发出声音。此外,通过控制 D1 位的通断时间,就能发出不同的音长。
  • 故当 8255 输出端口 61H 的 D1 位为
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值