x86主板蜂鸣器操作

x86架构上蜂鸣器控制原理图如下:

由上图可知,我们要控制蜂鸣器,那么首先通过定时器2产生一个驱动方波信号,然后控制io使能信号,驱动蜂鸣器工作。
通常计算机系统提供了三个定时器,其中定时器0用于产生操作系统的心跳时钟;
定时器1用于产生SDRAM的周期性刷新信号(20ms左右);
定时器2用于驱动蜂鸣器,产生报警信号。
Intel的8254芯片就提供了三路可编程定时器,一直沿用至今。
8254控制该芯片的IO端口为IO_BASE + 0x40 ~ IO_BASE + 0x43,
其中0x40、0x41、0x42分别为三路定时器的16位定时值寄存器,0x43为控制命令寄存器。
控制命令寄存器的格式定义如下:

        1. bit[7:6]——定时器选择位。选择对哪个计数器进行操作。“00”表示选择Counter 0,“01”表示选择Counter 1,“10”表示选择Counter 2,“11”表示Read-Back Command(仅对于8254,对于8253无效)。

        2. bit[5:4]——Read/Write/Latch格式位。“00”表示锁存(Latch)当前计数器的值;“01”只读写计数器的高字节(MSB);“10”只读写计数器的低字节(LSB);“11”表示先读写计数器的LSB,再读写MSB。
3. bit[3:1]——Mode bits,控制各通道的工作模式。“000”对应Mode 0;“001”对应Mode 1;“010”对应Mode 2;“011”对应Mode 3(方波信号发生器);“100”对应Mode 4;“101”对应Mode 5。
4. bit[0]——控制计数器的存储模式。0表示以二进制格式存储,1表示计数器中的值以BCD格式存储。
知道如何控制定时器2之后,剩下的一个问题就需要了解speaker使能的IO端口了。
这个端口就是0x61,0x61是8255的一个端口,这个端口的低两位用来控制蜂鸣器,位信息描述如下:
1、bit0用来使能counter2,当bit0==0时,禁止counter2,否则使能counter2。
2、bit1用来控制counter2输出的方波信号,当为1时输出使能,否则禁止输出。

控制函数如下:

#include   <sys/io.h>   
#include   <unistd.h>   
int   speaker(unsigned   int   freq,unsigned   int   delay)   
{   	
		static   int  bit;    
           iopl(3);   
          outb(0xb6,0x43);   //设置控制命令字
          outb((freq   &   0xff),0x42);  //设置定时器2的低8位 
          outb((freq   >>   8),0x42);   //设置定时器2的高8位
          bit=inb(0x61);   
          outb(3   |   bit,0x61);  //11使能峰鸣器输出 
          sleep(delay);   
          outb(0xfc&bit,0x61);   //00禁止峰鸣器输出
 }  

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: x86参考设计手册是一本详细介绍如何设计和构建x86架构的手册。这本手册对于电子工程师和计算机硬件设计师来说非常重要,因为它提供了构建高性能计算机系统所需的所有必要信息。 首先,x86参考设计手册详细介绍了如何选择和集成处理器和芯片组。它解释了不同处理器和芯片组之间的兼容性和性能差异,并提供了一些建议和指导,帮助设计师选择最适合其设计需求的处理器和芯片组。 其次,手册提供了关于电源和电路设计方面的详细信息。它介绍了如何设计的电源部分,确保电源稳定和高效,并保证所有电子设备在工作中得到合适的供电。 此外,x86参考设计手册还涵盖了设备接口和扩展插槽的设计。它详细介绍了如何设计和集成各种设备接口,如USB、SATA、PCI-E等,并提供了关于扩展插槽设计的准则。这对于设计师来说非常重要,因为他们可以根据自己的需求选择和配置适当的接口和插槽,以满足用户的需求。 此外,手册还包含了有关布局和物理连接的详细说明。它指导设计师如何在上安排各个组件,以使其布局紧凑且易于维修。它还提供了有关电路制造和组装过程的建议,以确保设计在生产过程中的可实施性和效率。 总之,x86参考设计手册为设计师提供了设计和构建高性能x86所需的所有信息和指导。它对于构建可靠和高效的计算机系统至关重要,并对于电子工程师和计算机硬件设计师来说是一本不可或缺的参考工具。 ### 回答2: x86参考设计手册是一本详细描述x86设计原理和技术规范的手册。是计算机的核心部件之一,负责将各个组件连接在一起,并提供电源、信号传输等功能。x86是一种兼容x86架构的,通常用于个人电脑和服务器等设备。 该手册涵盖了x86设计的方方面面,包括硬件框图、电路原理图、组件布局、信号线连接等内容。它提供了设计者所需的技术规格、指导和建议,帮助设计者根据自己的需求和目标进行设计。 x86参考设计手册具有以下重要作用: 首先,它为设计者提供了一个全面和系统的设计参考。设计者可以通过阅读手册了解x86的各个组成部分,以及它们之间的关系和交互方式。这为设计者提供了指导,使他们能够更好地理解设计的原理和方法。 其次,手册中提供了各种技术规范和建议,帮助设计者选择适合自己项目的硬件组件。这些规范包括尺寸、电源要求、连线接口等方面的要求,可以帮助设计者进行合理的选型和配置,以满足项目的需求。 此外,x86参考设计手册还提供了一些示例和实例,帮助设计者更好地理解和应用所学知识。通过这些示例,设计者可以学习到各种设计技巧和经验,从而更好地完成自己的设计工作。 总之,x86参考设计手册是设计者进行x86设计的重要参考文献。它为设计者提供了全面和系统的设计指南,帮助他们更好地理解和应用设计原理和技术规范,以实现高质量和高性能的x86设计。 ### 回答3: x86参考设计手册是一份专门为开发者和工程师提供指导的手册,用于设计和开发x86架构的。这个手册包含了各种技术规范、电路图、布局图、信号定义以及接口等重要信息。通过阅读和运用这份手册,开发者可以理解和掌握x86的设计原理和工作机制,从而能够根据自己的需求进行设计和改进。 该手册涵盖了许多关键的题,包括处理器和芯片组的选择、电源供应设计、内存和存储器接口设计、扩展插槽和接口设计、外部设备连接以及BIOS和固件开发等。通过学习这些内容,开发者可以了解不同组件之间的连接方式和工作原理,并能够根据产品的需求进行相应的选择和配置。 此外,x86参考设计手册还提供了许多实用的技术指南和建议,帮助开发者解决设计过程中可能遇到的问题。这些指南和建议涵盖了电磁干扰(EMI)的抑制、散热设计、噪音过滤、信号完整性以及接地和防静电等方面。这些内容对于确保设计的稳定性、可靠性和性能至关重要。 总之,x86参考设计手册对于那些希望设计和开发x86的工程师来说是一个宝贵的资源。通过仔细阅读和研究这份手册,开发者可以掌握必要的知识和技能,设计出功能强大、稳定可靠的x86产品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值