pc机发音原理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pc机发音原理

在没有配置多媒体的微机上,扬声器是PC机唯一可以发声的设备。这里,我们讨论PC机扬 声器发声的原理及有关音乐程序设计。 1.PC机发声原理: @@42L20100.GIF;图1@@ 从图中可以看出,扬声器接受两个发声信号:一个来自定时器芯片(8253)的通道2的输出 信号OUT2;另一个来自外围设备接口芯片(8255)端口B的第一位发出的信号(注:在386微机中 采用与8255和8253芯片功能兼容的类8255和类8253芯片)。 8255芯片通过I/O端口61H的PB1和PBO两位来选择扬声器的驱动。当PBO为1时,控制825 33定时器发出脉冲;当PB1为1时,扬声器的与门电路接通并一直保持到PB1变到)时关闭;在此 期间,由8253芯片通道2以及选通扬声器的作用。 8253芯片有三个相同且各自独立的通道,其通道2的输出OUT2在初始化后发出一定频率 的脉冲信号。此脉冲信号可以通过对通道的编程而进行改变,这样,就使得扬声器能发出各 种频率的声音。我们用程序设定通道2输出波形的频率和延续时间,就能控制扬声器的单调 和发声的长短。 2.发声软件设计及实例 根据发声电路,我们知道要使扬声器发出一定频率的声音,需要完成以下几项工作: 根据已知的声音频率,求送8253芯片通道2的计数时间常数TIME; 往8253指令寄存器(43H)送指令码oB6H,使通道2输出脉冲信号; 把时间常数TIME送入8253的通道2; 把8255芯片的PB1、PBO置为1,开启扬声器; 持续若干时间。 所有发声软件设计都基于上述工作进行,这里我们给出一个用PC机键盘模拟钢琴的程序 ,作为发声软件设计实例。 DATA SEGMENT TABLE DW 524,588,660,698,784,880,988,1048 ;音符1,2,3,4,5,6,7,i频率 MESS DB ’Press CTRL-C to return to DOS!, 0dh, 0ah, $ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV AB,09H MOV DX,OFFSET MESS INT 21H SING: MOV AB,01H INT 21H ;接收键入字符 CMP AL,03H ;是否是CTRL-C ? JZ FINISH SUB AL,31H SHL AL,01H ;转换为查表偏移量 MOV BL,AL MOV AX,0 MOV DX,12H ;常数120000H作为被除数 MOV BH,00 DIV WORD PTR[TABLE+BX] MOV BX,AX ;求得频率值→BX MOV AL OUT 43H,AL ;设置8253计数器的控制字 MOV AX,BX OUT 42H,AL ;设置计数器2 计数初值低位 MOV AL,AH OUR 42H,AL ;设置计数初值高位 IN AL,61H OR AL,03H OUT 61H,AL ;打开与门 CALL DELAY IN AL,61H AND AL,OFCH OUT 61H,AL ;关闭与门 JMP SING FINESH:MOV AX,4C00H INT 21H ;返回DOS DELAY PROC NEAR ;延时子程序 PUSH CX PUSH AX MOV CX,OAH X2: MOV AX,OFFFFH X1: DEC AX JNZ X1 LOOP X2 POP AX POP OX RET DELAY ENDP CODE ENDS 3.后台演奏音乐软件设计 在PC机前台工作的同时,进行后台音匀演奏是带点技巧性的程序设计,这实际上是 中断服务程序设计。定时中断服务程序挂接在BIOS计时中断上,每秒激活18.2次。后台音乐 程序开始发一个音,然后,每次定时激活时,检查是否该停止当前音和开始新的音。 通常,当调用中断服务程序时,只执行几行程序、就足以确定是否需要对发音作某些变 动。每个音符的持续期,我们用BIOS时钟的滴答次数来计量。每次从一个音符换到另一个音 符,新音符的持续期计算为BIOS日历钟计数的脉冲数,并把该值加到当前计数的读数上。每 次调用该程序时,检查日历钟值,当最后出现所等待的值时,程序查找下个音符,把其频率编 程进计时芯片8253的通道2,并设置新持续期计数。这就是后台音乐软件设计的基本原理和 方法。

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档