图形与发声系统的程序设计.ppt
《图形与发声系统的程序设计.ppt》由会员分享,可在线阅读,更多相关《图形与发声系统的程序设计.ppt(62页珍藏版)》请在三一办公上搜索。
1、第十章 图形与发声系统的程序设计,河南师范大学计算机与信息技术学院,2,2023/10/11,本章内容提要,河南师范大学计算机与信息技术学院,3,2023/10/11,10.1 显示方式,河南师范大学计算机与信息技术学院,4,2023/10/11,10.1.1 显示分辨率,河南师范大学计算机与信息技术学院,5,2023/10/11,10.1.2 BIOS设置显示方式,河南师范大学计算机与信息技术学院,6,2023/10/11,10.2 视频显示存储器,河南师范大学计算机与信息技术学院,7,2023/10/11,10.2.1 图形存储器影像,河南师范大学计算机与信息技术学院,8,2023/10/
2、11,10.2.2 数据到颜色的转换,河南师范大学计算机与信息技术学院,9,2023/10/11,10.2.3 直接视频显示,河南师范大学计算机与信息技术学院,10,2023/10/11,10.3 EGA/VGA图形程序设计,河南师范大学计算机与信息技术学院,11,2023/10/11,10.3.1 读写像素,河南师范大学计算机与信息技术学院,12,2023/10/11,10.3.2 图形方式下的文本显示,河南师范大学计算机与信息技术学院,13,2023/10/11,10.3.3 彩色绘图程序,河南师范大学计算机与信息技术学院,14,2023/10/11,10.3.4 动画显示技术,河南师范大
3、学计算机与信息技术学院,15,2023/10/11,10.4 通用发声程序,河南师范大学计算机与信息技术学院,16,2023/10/11,主要内容,可编程时间间隔定时器8253/54(programmable interval timer,PIT),能根据程序提供的计数值和工作模式,产生各种形状和各种频率的技术/定时脉冲,提供给系统的各个部件使用。,例如,它可以产生不同频率的脉冲作为扬声器的声源。,本节先介绍计算机发声的原理,然后在10.5节介绍乐曲的编程方法。,河南师范大学计算机与信息技术学院,17,2023/10/11,10.4.1 可编程时间间隔定时器8253/54,在8253/54定时
4、器内部有:3个独立工作的计数器:Counter0,Counter1,Counter2,每个计数器都分配一个端口地址,分别为40H、41H、42H。一个公用的控制寄存器,端口地址为43H。,端口地址输入到8253/54的CS,A1,A0端,分别对3个计数器和控制器寻址。,如图10.7所示的8253/54的编程结构。,河南师范大学计算机与信息技术学院,18,2023/10/11,对8253/54编程,首先设定控制字,以选择计数器,确定工作模式和计数值的格式。,8253/54的三个计数器是分别编程的,在对任何一个计数器编程时,,首先将控制字节写入控制寄存器。以选择计数器,确定输出什么样的脉冲波形。向
5、选定的计数器送入一个8位或16位的计数初值,由于8253/54的数据总线是8位的,所以要用两条输出指令来写入初值。,河南师范大学计算机与信息技术学院,19,2023/10/11,8253/54的控制器,D0选择计数值的格式。,D3、D2、D1选择操作模式。六种模式决定了输出脉冲的形状。,D5、D4读写指示位。计数器锁存:锁定当前计数值,以便读出;只读/写高字节(MSB);只读/写低字节(LSB);先读/写LSB,紧接着读/写MSB。,D7、D6选择计数器。确定控制字对那一个计数器进行初始化。,河南师范大学计算机与信息技术学院,20,2023/10/11,图10.8 8253/54的控制格式,河
6、南师范大学计算机与信息技术学院,21,2023/10/11,8253/54的初始化程序,例10.12,计数器0初始化程序段,计数器1初始化程序段,计数器2初始化程序段,河南师范大学计算机与信息技术学院,22,2023/10/11,10.4.2 扬声器驱动方式,PC机上大多数I/O都是由主板上的8255(或8255A)可编程外围接口芯片(PPI)管理的。,PPI包括三个8位寄存器:两个输入寄存器,端口地址分别是60H、62H;一个输出寄存器,端口地址为61H。,由PPI输出寄存器中的,也就是61H端口的D0、D1位来控制扬声器的驱动方式。,见图10.9扬声器驱动系统。,河南师范大学计算机与信息技
7、术学院,23,2023/10/11,声音产生方式,位触发方式:直接控制61H的PB1交替为1或为0,以产生一个脉冲电流,经过放大器后控制扬声器交替地接通与断开,从而推动扬声器的纸盆振动,发出不同音高和音长的声音。如例8.1。,利用8253/54定时器来驱动扬声器。连接到扬声器上的是定时器2。,图10.9所示的,Couter2的GATE2与端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使Counter2在模式3下工作。Couter2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连。当PB1=1时,允许OUT2的输出信号到达扬声器。即PB1、PB011时,扬声器发声
8、。,河南师范大学计算机与信息技术学院,24,2023/10/11,10.4.3 通用发声程序,BIOS中的BEEP子程序:只能发出896Hz的声音;产生的音长只能是0.5s的倍数。,编写通用发声程序应该:能发出任意频率的声音,可由1193100给定频率12348C给定频率计算出来。声音的持续时间更易于调整。利用CPU来产生延迟时间是最常用的一种方法。,通用发声程序 例10.13,河南师范大学计算机与信息技术学院,25,2023/10/11,10.4.4 80X86 PC的时间延迟,IBM采用了一种利用硬件产生时间延迟的方法,这种方法产生的时间延迟与处理器无关。,即通过61H端口的PB4,使PB
9、4每15.08微秒触发一次,以产生一个固定不变的时间基准。,在IBM PC AT BIOS中的WAIT子程序,就是一个产生N15.08微秒时间延迟的程序。调用WAIT子程序时,CX必须装入15.08微秒的倍数N。,例10.14 修改后的GENSOUND,河南师范大学计算机与信息技术学院,26,2023/10/11,10.5 乐曲程序,河南师范大学计算机与信息技术学院,27,2023/10/11,10.5.1 音调与频率和时间的关系,组成乐曲的每个音符的频率值和持续时间是乐曲程序发声所需要的两个数据。,音符的频率可从图10.10中查到。,实际送入计数器2的是输入频率1.1931MHz与音符频率相
10、除的值,通用发声程序SOUNDF的前半部分就是完成这个计算,并将计数值送入计数器2的功能。,音符的持续时间是根据乐曲的速度及每个音符的节拍数来确定的。,河南师范大学计算机与信息技术学院,28,2023/10/11,音符的持续时间,在4/4(四四拍)中,四分音符为1拍,每小节4拍,全音符持续4拍,二分音符持续2拍,四分音符持续1拍,八分音符持续半拍等。,如果全音符分配1s(10010ms)的时间,则二分音符的持续时间为0.5s(5010ms),四分音符的持续时间为0.25s(2510ms),八分音符的持续时间为0.125s(12.510ms)。,河南师范大学计算机与信息技术学院,29,2023/
11、10/11,10.5.2 演奏乐曲的程序,编写乐曲程序可分为四个步骤:,为演奏乐曲定义一个频率表和一个节拍时间表。频率表可从图10.10中查到,节拍表中的数据是延迟时间10ms的倍数;分别将两个表的偏移地址放入SI和BP;从表中取出音符的频率放入DI,取出音符的持续时间(实际上是10ms的倍数)放入BX。乐曲的结束符可以用数据0FFFFH表示,也可以用0或其他特定值来代替。调用SOUNDF子程序发出音调。,例10.15 演奏乐曲程序MUSIC,河南师范大学计算机与信息技术学院,30,2023/10/11,10.5.3 键盘控制发声程序,音符和频率之间又一定的对应关系,如果计算机键盘上的某些键和
12、音符、频率形成一种对应关系,则可通过键盘控制扬声器发出各种音符声音,这是就可用计算机键盘弹奏出简单的音乐了。,例10.16是一个八度音程的钢琴程序。,这里让数字键18对应一个音阶的八个音符。,河南师范大学计算机与信息技术学院,31,2023/10/11,练习与作业,练习:10.11、10.13、10.17、10.18,河南师范大学计算机与信息技术学院,32,2023/10/11,图10.7 8253/54的编程结构,每个计数器包含一个16位的、倒计数方式计数的计数寄存器,即从计数初值开始逐次减1,直到减为0为止。,在IBM PC机中,8253/54的:CLK0CLK2的输入频率都是1.1931
13、817MHz;GATE0、GATE1接5V;GATE2与8255(可编程外围接口芯片)的端口PB0相连。,河南师范大学计算机与信息技术学院,33,2023/10/11,例10.12-1,;将计数器0设定为模式3,计数初值为4282(BCD)MOVAL,00110111BOUT43H,ALMOVAX,4282OUT40H,ALMOVAL,AHOUT40H,AL,河南师范大学计算机与信息技术学院,34,2023/10/11,例10.12-2,;将计数器2设定为模式3,计数初值为65536MOVAL,10110110BOUT43H,ALSUBAL,ALOUT42H,ALOUT42H,AL,河南师范大
14、学计算机与信息技术学院,35,2023/10/11,计时器0的初始化程序-1,计数器0作为定时器为系统时钟提供计时基准。计数器0的OUT端与中断控制器8259A的中断请求端IRQ0相连,为IRQ0提供18.2次/秒的中断信号,即OUT0的输出频率应当是 18.2Hz,这正是CLK0的输入频率1.1931817MHz与216相除的结果。计数器0选择Mode3;读/写LSB、MSB。则控制字应为:00110110B36H 在IBM PC BIOS中,计数器0的初始化程序如下:,河南师范大学计算机与信息技术学院,36,2023/10/11,计时器0的初始化程序-2,22TIMEREQU40HE277
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 发声 系统 程序设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6256912.html