图形和发声程序

上传人:cn****1 文档编号:584523858 上传时间:2024-08-31 格式:PPT 页数:18 大小:167KB
返回 下载 相关 举报
图形和发声程序_第1页
第1页 / 共18页
图形和发声程序_第2页
第2页 / 共18页
图形和发声程序_第3页
第3页 / 共18页
图形和发声程序_第4页
第4页 / 共18页
图形和发声程序_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《图形和发声程序》由会员分享,可在线阅读,更多相关《图形和发声程序(18页珍藏版)》请在金锄头文库上搜索。

1、第九章第九章 图形和发声程序图形和发声程序10.1 显示方式10.2 BIOS图形显示中断10.3 图形方式下的文本显示10.4 动画显示技术10.5 发声程序设计10.6 乐曲程序 本章我们主要要掌握图形、动画、本章我们主要要掌握图形、动画、乐曲的汇编语言程序设计。乐曲的汇编语言程序设计。10.1 显示方式显示方式 ROM BIOS显示例程支持多种显示例程支持多种文本方式文本方式和和图形方式图形方式,每种,每种方式适合于特定适配器。在不同的显示方式下,屏幕显示的方式适合于特定适配器。在不同的显示方式下,屏幕显示的分辨率、颜色数和视频显示存储器的组织方式都不同。分辨率、颜色数和视频显示存储器的

2、组织方式都不同。10.1.1 分辨率分辨率 显示分辨率包括字符分辨率和像素分辨率,分别表示显示显示分辨率包括字符分辨率和像素分辨率,分别表示显示器在水平和垂直方向上所能显示的字符数和像素数。显示分器在水平和垂直方向上所能显示的字符数和像素数。显示分辨率和色彩决定了显示器的显示质量,分辨率越高所显示的辨率和色彩决定了显示器的显示质量,分辨率越高所显示的字符和图像就越清晰,但是需要更多的处理时间和更大的存字符和图像就越清晰,但是需要更多的处理时间和更大的存储空间,而速度和成本也是不容忽视的问题。储空间,而速度和成本也是不容忽视的问题。10.1 显示方式显示方式10.1.2 BIOS设置显示方式设置

3、显示方式 显示方式分为两类:显示方式分为两类:文本方式文本方式和和图形方式图形方式。文本方式主。文本方式主要用于字符文本处理,图形方式又称为所有点可寻址方式。要用于字符文本处理,图形方式又称为所有点可寻址方式。在图形方式下,可通过读写屏幕上各个点的映像,显示出单在图形方式下,可通过读写屏幕上各个点的映像,显示出单色或彩色图形。色或彩色图形。 BIOS显示中断提供了设置各种文本和图形显示方式的显示中断提供了设置各种文本和图形显示方式的功能,程序只要给出调用参数,使用功能,程序只要给出调用参数,使用BIOS INT 10H即可建即可建立某种显示方式。立某种显示方式。0 AL=00 40*25 文本

4、文本16级灰度级灰度 CGA MCGA EGA VGA =03 80*25 文本文本16色或色或8色色 CGA MCGA EGA VGA =04 300*200 图形图形4色色 CGA MCGA EGA VGA =06 640*200 图形黑白显示图形黑白显示 CGA MCGA EGA VGA =07 80*25 文本黑白显示文本黑白显示 MDA EGA VGA =0D 320*200 图形图形16色色 EGA VGA =10 640*350 图形图形4色或色或16色色 EGA VGA =12 640*480 图形图形16色色 VGA =13 320*200 图形图形256色色 MCGA VG

5、AAHAH 调用参数调用参数 显示方式显示方式 适合显示器适配器适合显示器适配器BIOS设置显示方式设置显示方式 INT 10H常用的显示方式常用的显示方式:例:设置例:设置320*200 图形图形256色显示方式。色显示方式。 MOV AH,00H MOV AL,13H INT 10H 注意注意:在为未知的显示器编写程序时在为未知的显示器编写程序时,首先应该判断首先应该判断PC机配置的显示适配器并选择与之相适应的最佳显示方机配置的显示适配器并选择与之相适应的最佳显示方式。式。BIOS INT 11H有确定系统配置的功能。这个操作实有确定系统配置的功能。这个操作实际上是把设备标志的值回送给际上

6、是把设备标志的值回送给AX,其中,其中4位和位和5位表示显位表示显示器的配置及初始的显示方式,如下图所示:示器的配置及初始的显示方式,如下图所示:01=彩色适配板(40*25彩色)10=彩色适配板(80*25彩色)11=黑白适配板(80*25彩色)01234567 设备标志字提供的信息是相当原始的,一般只能区分出是设备标志字提供的信息是相当原始的,一般只能区分出是单色还是彩色显示。另一种确定适配器的方法是调用单色还是彩色显示。另一种确定适配器的方法是调用BIOS INT 10H。 确定是否装配确定是否装配VGA适配器。适配器。 MOV AH,1AH MOV AL,0 INT 10H ;AL=1

7、AH ,有装配,有装配VGA适配器,否则没有。适配器,否则没有。 相关代码相关代码 运行结果运行结果 确定是否装配确定是否装配EGA适配器。适配器。 MOV AH,12H MOV BL,10H INT 10H ;BL=10H ,有装配,有装配EGA适配器,否则没有。适配器,否则没有。10.2 BIOS图形显示(INT 10H)AHAH 功能功能 调用参数调用参数 返回参数返回参数0CH 将一个点写至像素位置将一个点写至像素位置 AL=像素颜色,像素颜色,取决于显示方式取决于显示方式 合适的视频显示方式下,合适的视频显示方式下,BH=显示页号显示页号 还可以指定颜色。还可以指定颜色。 DX=像素

8、列,取决于显示方式像素列,取决于显示方式 CX=像素行,取决于显示方式像素行,取决于显示方式0DH 读取指定像素位置的颜色。读取指定像素位置的颜色。BH=显示页号显示页号 AL=颜色值颜色值 DX=像素列,取决于显示方式像素列,取决于显示方式 CX=像素行,取决于显示方式像素行,取决于显示方式例:从坐标(例:从坐标(50,0)到()到(50,320)画一条直线。)画一条直线。代码代码 运行效果运行效果例:画一个高例:画一个高50,宽,宽100的矩形。的矩形。代码代码 运行效果运行效果例:读取坐标为(例:读取坐标为(50,12)像素位置的颜色。)像素位置的颜色。代码代码 debug9 10.3

9、图形方式下的文本显示图形方式下的文本显示 大多数图形程序都需要以某种形式显示文本,最简单的一大多数图形程序都需要以某种形式显示文本,最简单的一种方法是使用种方法是使用BIOS字符显示功能。许多图形程序还通过使用字符显示功能。许多图形程序还通过使用ASCII码扩展字符集中的图形符号来组成大号的显示字符。例码扩展字符集中的图形符号来组成大号的显示字符。例如利用如利用ASCII码为码为0DBH ,0DCH ,0DDH ,0DEH ,0DFH 等方块来设计大号字母或文章中的方块标记。等方块来设计大号字母或文章中的方块标记。 例:利用方块符号来组成例:利用方块符号来组成G字符,背景用品红色,方块符号用字

10、符,背景用品红色,方块符号用浅绿色。浅绿色。 代码代码 运行结果运行结果10.4动画显示技术动画显示技术 计算机动画是利用计算机图形显示技术来模仿物体活动的效果,一般分为两计算机动画是利用计算机图形显示技术来模仿物体活动的效果,一般分为两种类型:逐帧动画和实时动画。逐帧动画技术的最重要的用途是设计图形系列以建种类型:逐帧动画和实时动画。逐帧动画技术的最重要的用途是设计图形系列以建立用不同介质表现的动画图象。例如,利用图形系统来制作卡通电影的图片,当把立用不同介质表现的动画图象。例如,利用图形系统来制作卡通电影的图片,当把这些图片以适当的速度投影时,就会产生运动的影像。设计这种逐帧动画的图片,这

11、些图片以适当的速度投影时,就会产生运动的影像。设计这种逐帧动画的图片,对计算机系统的性能没有严格的要求。对计算机系统的性能没有严格的要求。 对实时动画来说,因为直接在终端上显示动画程序执行的结果,所以计算机对实时动画来说,因为直接在终端上显示动画程序执行的结果,所以计算机系统的性能的优劣直接影响动画生成的速度和图象的质量,此时计算机的性能就显系统的性能的优劣直接影响动画生成的速度和图象的质量,此时计算机的性能就显得非常重要了。屏幕物体的动画效果,经常通过几何变换来产生,最简单的几何变得非常重要了。屏幕物体的动画效果,经常通过几何变换来产生,最简单的几何变换有平移、旋转和比例变换,复杂的动画通过

12、组合两个或更多的变换来完成。在所换有平移、旋转和比例变换,复杂的动画通过组合两个或更多的变换来完成。在所有情况下,变换都是以一个新的图象代替先前的图象来实现。在动画软件中,不仅有情况下,变换都是以一个新的图象代替先前的图象来实现。在动画软件中,不仅要能画出一系列连续的图象,而且要能从屏幕上擦除先前的图象,否则,运动的物要能画出一系列连续的图象,而且要能从屏幕上擦除先前的图象,否则,运动的物体就会在屏幕上留下痕迹。体就会在屏幕上留下痕迹。 擦除和重画屏幕物体有几种实现的方法,最直接的一种方法是在显示图形之前,擦除和重画屏幕物体有几种实现的方法,最直接的一种方法是在显示图形之前,把图形将要占据的屏

13、幕部分的背景图象保存下来,当要擦出图形时,再把保存的背把图形将要占据的屏幕部分的背景图象保存下来,当要擦出图形时,再把保存的背景图象重新显示出来。另一种擦除屏幕图象的方法是基于景图象重新显示出来。另一种擦除屏幕图象的方法是基于XOR操作的方法。操作的方法。 移动案例演示代码变形案例演示代码可编程时间间隔定时器可编程时间间隔定时器8253/54CLK时钟输入端时钟输入端GATE门控信号输入端门控信号输入端OUT计数计数/定时输入端定时输入端控制寄存器(控制寄存器(8位)位)端口号端口号 43H计数器计数器0 (16位)位)计数器计数器1计数器计数器2端口号端口号40h端口号端口号41h端口号端口

14、号42h其中CLK输入频率为1.1931817MHz(12348ChHZ)计数器0为系统日时钟提供时基准计数器1用作DRAM刷新的定时信号计数器2用来控制扬声器发声10.5 发声程序设计发声程序设计计数初值格式操作模式读写指示选择计数器控制寄存器(控制寄存器(8位)位)端口号端口号 43H例例 将计数器将计数器0设定为模式设定为模式3,计数初值为,计数初值为4282(BCD) MOV AL,00110111B OUT 43H,AL MOV AX,4282H OUT 40H,AL MOV AL,AH OUT 40H,AL 计数器的输出频率计数器的输出频率=1.19318MHz/装入计数器的计数初

15、值。装入计数器的计数初值。计数器计数器0作为定时器为系统提供计时基准,计时器作为定时器为系统提供计时基准,计时器0的输出端的输出端OUT与中与中断控制器断控制器8259A的中断请求端的中断请求端IRQ0相连,为相连,为IRQ0提供每秒提供每秒18.2次的次的中断信号。中断信号。计数器计数器1作为定时器使用,其输出脉冲用作作为定时器使用,其输出脉冲用作DRAM刷新的定时信号。刷新的定时信号。DRAM要求每隔要求每隔15s刷新一次,这样,刷新一次,这样,OUT1的输出脉冲的平率是的输出脉冲的平率是66.2KHz。计数器计数器2用来控制扬声器的发声频率。用来控制扬声器的发声频率。10.5 发声程序设

16、计发声程序设计例例 使计数器使计数器2在模式在模式3下输出频率为下输出频率为330。 MOV DI,330 MOV AL,0B6H OUT 43H,AL MOV DX,12H MOV AX,348CH DIV DI OUT 42H,AL MOV AL,AH OUT 42H,AL10.5 发声程序设计发声程序设计CLK计数器计数器28255可编程序外围接口芯片GATE扬声器与15.08us触发一次15.08us*33144/2=0.5s下一页下一页例:写一个发声子程序,入口参数为发声频率和延长节拍。例:写一个发声子程序,入口参数为发声频率和延长节拍。设设 入口参数发声的频入口参数发声的频率放在率

17、放在DI中,让计数器中,让计数器3输出频率为输出频率为DI中的值。中的值。mov al,0b6h out 43h,al mov dx,12h mov ax,348ch div di out 42h,al mov al,ah out 42h,al让让61端口产生一个脉冲,端口产生一个脉冲,打开扬声器打开扬声器 ,脉冲的,脉冲的延长时间由入口参数延长时间由入口参数BX决定。决定。 in al,61h mov ah,al or al,3 out 61h,al wait1: mov cx,5602 delay: loop delay dec bx jnz wait1 mov al,ah out 61h

18、,al写一个写一个WAITF子程序,子程序,延长的时间为延长的时间为15.08s*CX的值,的值,CX为入口参数为入口参数waitf proc near push axwaitf1: in al,61h and al,10h cmp al,ah je waitf1 mov ah,al loop waitf1 pop ax retwaitf endp由循环次数决由循环次数决定发声的延长定发声的延长时间的发声程时间的发声程序代码序代码运行结果运行结果由由WAITF子程子程序决定发声的序决定发声的延长时间的发延长时间的发声程序代码声程序代码运行结果运行结果 10.6 乐曲程序的设计乐曲程序的设计 利

19、用计算机控制发声的原理,可以编写演奏乐曲的程序。利用计算机控制发声的原理,可以编写演奏乐曲的程序。乐曲是按照一定的高低、长短和强弱关系组成的音调。在一乐曲是按照一定的高低、长短和强弱关系组成的音调。在一首乐曲中,每个音符的音高和音长和频率和节拍有关。组成首乐曲中,每个音符的音高和音长和频率和节拍有关。组成乐曲的每个音符的频率值和持续时间是乐曲程序发声所需要乐曲的每个音符的频率值和持续时间是乐曲程序发声所需要的两个数据的两个数据 。 编写乐曲程序可以分为编写乐曲程序可以分为4个步骤:个步骤: 1.为演奏的乐曲定义一个频率表和一个节拍时间表。为演奏的乐曲定义一个频率表和一个节拍时间表。 2.分别将

20、来年各个表的偏移地址放入分别将来年各个表的偏移地址放入SI和和BP。 3.从表中取出音符的频率放入从表中取出音符的频率放入DI,取出音符的持续时间放,取出音符的持续时间放 入入BX。太湖船乐曲演奏代码太湖船乐曲演奏代码运行结果运行结果 音符和频率之间有一定的对应关系,如音符和频率之间有一定的对应关系,如果计算机键盘上的某些键和音符、频率也形成果计算机键盘上的某些键和音符、频率也形成一种对应关系,则可通过键盘控制扬声器发出一种对应关系,则可通过键盘控制扬声器发出各种音符声音,这时计算机键盘就变成了钢琴各种音符声音,这时计算机键盘就变成了钢琴键盘,就可以用它弹奏出简单的音乐。钢琴有键盘,就可以用它弹奏出简单的音乐。钢琴有88个音符,为了简单起见,下面编写一个八度个音符,为了简单起见,下面编写一个八度音程的钢琴程序来了解键盘控制发声的原理。音程的钢琴程序来了解键盘控制发声的原理。为了方便弹奏,让数字键为了方便弹奏,让数字键1-8对应一个音阶的对应一个音阶的八个音符。八个音符。八度钢琴程序代码八度钢琴程序代码运行结果运行结果返回返回

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号