- 26
- 0
- 约1.13万字
- 约 19页
- 2018-09-19 发布于贵州
- 举报
音乐乐曲演奏程序
PAGE
PAGE 10
2.2通用发声程序设计原理
PC机发声系统以8254的2号计数器为核心。系统初始化时,2号计数器I作在“方波发生器”方式,初值为二进制数,,写入顺序为先低后高,CLK2为1.MHz,当计数初值为533H时,OUT2输出的方波大约为900Hz,经过简单的滤波之后,送至扬声器。改变1.4号计数器的计数初值就可以使扬声器发出不同频率的音响。
ROM BIOS 中有个BEEP子程序,这能根据BL中组出的时间计数值控制8254定时器,产生持续时间为1个或几个0.5秒,频率为896HZ的声音,我们可以利用并修改BEEP,使其产生任一频率的声音。为此我们需要做两点修改,首先,BEEP程序只能产生896HZ的声音,我们的通用发声程序应能产生任一频率的声音。其次,BEEP产生声音的持续时间(音长)只能是0.5秒的倍数,我们希望声音的持续时间更易于调整,例如可以是10ms的倍数。
我们知道BEEP能将计数值533H送给定时器2产生896HZ的声音的,那么产生其它频率声音的时间计数值应为:
533H×896÷给定频率=H÷给定频率
发声程序包括3个步骤:
(1)在8253中的42端口送一个控制字0B6H(B),该控制字对定时器2进行初始化,使定时器2准备接收计数初值。
(2)在8253中的42H端口(Timer2)装入一个16位的计数值(533H×895/频率),以建立将要产生的声音频率。
(3)把输出端口61H的PB0、PB1两位置1,发出声音。
对于发音部分。PC机上的大多数输入/输出(I/O)都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的。PPI包括3个8位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的I/O端口号为60H和62H,输出寄存器分配的I/O端口号为61H。由PPI输出寄存器中的0、1两位来选择扬声器的驱动方式。
连接到扬声器上的是定时器2,从上图可以看到,GATE2与端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3(方波)下工作。定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。当PB1=1时,允许OUT2的输出信号到达扬声器电路。因此,只有PB0和PB1同时为“1”时,才能驱动扬声器地声。通过以下指令实现:
IN AL,61H
OR AL,3
OUT 61H,AL
上面的指令用以打开扬声器,如要关闭扬声器时则为:
AND AL,0FCH
OUT 61H,AL
当从8255中采集到输入的数据时,需要确定相应的频率,所以在软件编程时要建立一个数据表:
TABLE DW 493,440,392,349,329,293,261
把相应的频率送到一个寄存器上,通过公式:
计数值=533H×896÷ f=1234DCH÷ f
算出计数值,再把算得的计数值送给8253,就可产生所要频率的方波。在把计数值送8253前,必须先把8253进行初始化:
MOV AL,0B6H
OUT 43H,AL
使其选用通道2,工作在方式3下。
就整个电路而言,接好电路后,通过软件编程不断地采集从8255口中输入的信号,而8个开关都接在8255的A口上,只要有开关按下,就会采集到一个数据,根据这个数据与事先编好的表对应,得到一个计数值,把这个计数值送给8253的通道2,8253的通道2工作的方式3下,这样就可以产生满足频率要求的发声方波。这个方波经驱动放大就可以使扬声器发出相应的声音。 所以8255在这里完成两个任务,它不仅从A口中采集到数据,而且B口的PB1和PB0两个位要控制发声。8253的主要任务就是产生所要求发声的不同频率的方波。
3、详细设计
3.1主要的宏和过程的实现
3.1.1DISPLAY显示宏
为将事先定义的数据段字符串显示在屏幕上,定一个参数为b的宏。将b的地址传到DX。随后调用DOS09号功能调用。将字符串显示到屏幕。调用DISPLAY的实例为:
DISPLAY INFO1
DISPLAY INFO2
DISPLAY INFO3
DISPLAY MUSLIST
在此段代码中,程序显示提示作用的字符串和歌曲列表。
DISPLAY宏具体实现如下:
DISPLAY MACRO b
LEA DX,b
MOV AH,9
INT 21H
ENDM
3.1.2ADDRESS音乐地址宏
歌曲包含节拍和频率。此处定义的音乐地址宏包含两个参数,将歌曲频率地址导入SI将歌曲节拍导入BP。当选择不同的歌曲时,主
您可能关注的文档
最近下载
- 2025年会计职称考试《初级会计实务》内部控制与审计基础理论与模拟试题及答案.docx VIP
- 2022年欧洲新生儿呼吸窘迫综合征管理指南更新要点解读.pptx VIP
- 四川省成都市重点中学高一上学期期末物理试卷.docx VIP
- SY∕T 7018-2014 控压钻井系统.pdf VIP
- 四渡赤水战役中的红军情报工作.doc VIP
- 湘教版(2024)八年级上册地理第二章第二节《中国的气候》教学课件.ppt
- 2024-2025学年江苏省天一中学高一上学期期末数学试题及答案.pdf VIP
- 课题申报书:少先队活动与思政教育一体化建设研究.docx VIP
- 2025年信息系统安全专家单点登录系统中的权限提升漏洞分析专题试卷及解析.pdf VIP
- 2025年信息系统安全专家CA人员管理与安全意识专题试卷及解析.pdf VIP
原创力文档

文档评论(0)