实验三 8253定时器/计数器接口
一,原理
PC机的主机箱上装有一只小喇叭,由定时器8253和并行接口芯片8255控制其发音,其电路如下:
8253 DRIVER
CLK
OUT2
8255
PB0 GATE2
PB1
8253用定时器2来产生896Hz的音频信号使喇叭发声,我们可以改变定时器2的计数值来改变声音频率,通过发声的延时程序来获得时间长短不同的声音,于是就可以通过编程;来获得声调(频率)和节奏(延时长短),使计算机演奏出乐曲来。
以下给出有关资料:
1, 2, 3, 4 ,5 ,6, 7, 1, 2, 3, 4, 5, 6, 7, ⅰ
频率 131 147 165 175 196 220 247 262 294 330 349 392 440 494 523
计数值=(时钟频率)/ 给定频率
=1234DCH / 给定频率
8253道地地定时器通道2的端口地址:42H(存放计数值,先送低位字节,后送高位字节)
命令寄存器地址:43H
:
计算计数值程序段:
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
:
学习8253计数器2输出方波信号用以驱动扬声器发声的原理,通过程序设置计数器2的输出波形的频率和延续时间,控制扬声器的音调和发生长短。
:
。
,两遍以及数遍这段两只老虎的乐曲,并修改程序实现。
:
整理出运行正确的源程序清单(加以中文注释),并给出详细程序流程图。
附:“两只老虎”程序设计
STACK SEGMENT
DW 100 DUP(?)
STACK ENDS
DATA SEGMENT
BG DB 0AH,0DH,"TWO TIGER:$"
FREQ DW 2 DUP(262,294,330,262)
DW 2 DUP(330,349,392)
DW 2 DUP(392,440,392,349,330,262)
DW 2 DUP(294,196,262),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)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
STAT PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BG
MO
两只老虎 来自淘豆网m.daumloan.com转载请标明出处.