汇编语言 两只老虎 实验报告.docVIP

  • 246
  • 0
  • 约7.58千字
  • 约 19页
  • 2017-04-11 发布于贵州
  • 举报
汇编语言两只老虎实验报告汇编语言两只老虎实验报告

第 三 次 实 验 报 告 姓名:陈柯吉 学号:2012141441338 第三次实验 8253定时器/计数器与接口实验 ------乐曲程序 计算机是如何产生音乐和声响的呢?原来在计算机中有一个可编程时间间隔定时器8253,它能根据程序提供的计数值和工作模式,产生各种形状和各种频率的计数/定时脉冲,提供给系统的各个部件使用。它还可以产生不同频率的脉冲作为扬声器的声源。 在8253定时器内部有3个独立工作的计数器:Counter0, Counter1, Countre2,每个计数器都分配有一个端口地址,分别是40H,41H,42H。8253内部还有一个公用的控制寄存器,端口地址为43H,端口地址输入到8253的CS,A1,A0端,分别对三个计数器和控制器寻址。 对8253编程时,先要设定控制字,以选择计数器,确定工作模式和计数值的格式,每个计数器由三个引脚与外部联系,CLK为时钟输入端,GATA为门控制信号输入端,OUT为计数/定时信号输入端。每个计数器是以倒计数的方式计数,也就是说,从计数初值开始逐次减1,直到减为0为止。 端口地址与计数器的关系: 40H 选中计数器0:作为定时器为系统日时钟提供计时基准 41H 选中计数器1:作为定时器使用 42H 选中计数器2:用来控制扬声器发声 43H 公用的控制器:分别对三个寄存器和控制器寻址 那么,如何触动扬声器发出声音呢?原来PC机的主音箱上装有一只小喇叭,由定时器8253和并行接口芯片8255(可编程外围接口芯片)控制其发声,8255包括三个8位寄存器,两个用于输入功能,一个用于输出功能。输入寄存器分配的I/O端口地址为60H和62H,输出寄存器分配的I/O端口地址为61H。8253定时器计数器2连接到扬声器,其电路如下: 8253 DRIVER 1.9318MHZ CLK 喇叭 OUT2 8255 PB0 GATE2 PB1 装入计数器2的计数初值为533H(1.19318MHz/896Hz=1331=533H),这样,得到的控制字=0B6H,即选中计数器2,读/写,工作方式三(方波发声器),二进制。 计数器2的初始化程序为: MOV AL,0B6H OUT 43H,AL 计算计数值程序段: MOV DI, 给定频率 MOV DX, 12H MOV AX, 34DCH DIV DI AX中即为计数值。 打开扬声器发声,8255PB0,PBI送出高电平: IN AL , 61H OR AL , 3 OUT 61H , AL 3)关闭扬声器,停止发声: IN AL ,61H AND AL , 0FCH OUT 61H, AL 两只老虎的音频表定义在数据段中,如下: STACK SEGMENT DW 100 DUP(?) STACK ENDS DATA SEGMENT MUSIC DW 2 DUP(262,294,330,262) ; 频率表,1231;1231 DW 2 DUP(330,349,392) ;345;345; DW 2 DUP(392,440,392,349,330,262) ;565431;565431 dw 2 dup(294,196,262),0 ;251;251,0表示结束 TIME DW 10 DUP(250*50),500*50,250*50,250*50,500*50 ;节拍表 DW 2 DUP(120*50,120*50,120*50,120*50,250*50,250*50) DW 2 DUP(250*50,250*50,500*50) N

文档评论(0)

1亿VIP精品文档

相关文档