null实验三五 电子琴实验三五 电子琴二、实验原理与内容一、实验目的
1、通过8253产生不同的频率信号,使PC机成为简易电子琴。
2、了解利用8255和8253产生音乐的基本方法 利用8253的方式3降频,把线路版的系统频率降为各音符的频率。八度的频率已给出,系统频率为1MHZ,根据公式
计数初值*系统周期=输出周期(即各音符的周期)
利用8255的A口作为输出口,来控制计数器和扬声器与门的开启。
要求:编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。nullnull三、提示三、提示1、设置8255A口输出。给A口送数据开扬声器,调延时,关扬声器。
2、8253CLK0接1MHZ时钟信号,工作于方式3,二进制格式计数。先读低字节再读高字节,计数初值=时钟频率/音阶频率,
3、八个频率的音阶采用字方式,在屏幕上提示按键数字1-8。null3、参考
图null;*******************************;
;* 电子琴实验 *;
;*******************************;
初始化设置
data segment
io8255a equ 288h
io8255b equ 28bh
io8253a equ 280h
io8253b equ 283h
table dw 524,588,660,698,784,880,988,1048;高音的
;table dw 262,294,330,347,392,440,494,524;低音的
msg db 'Press 1,2,3,4,5,6,7,8,ESC:',0dh,0ah,'$'
data ends
mov ax,4240H ;计数初值 = 1000000 / 频率, 保存到AX
mov dx,0FH
div word ptr[table+bx]
mov bx,axnulldelay proc near ;延时子程序
push cx
push ax
mov ax,15
x1: mov cx,0ffffh
x2: dec cx
jnz x2
dec ax
jnz x1
pop ax
pop cx
ret
delay endpnull