《实验五(指导书实验20)电子琴》由会员分享,可在线阅读,更多相关《实验五(指导书实验20)电子琴(6页珍藏版)》请在金锄头文库上搜索。
1、一、实验目的,1、通过8253产生不同的频率信号,使PC机成为简易电子琴。 2、了解利用8255和8253产生音乐的基本方法。,二、实验内容,实验电路如图16-1,8253的CLK0接1MHZ时钟,GATE0接8255的PA1,OUT0和8255的PA0接到与门的两个输入端,K8跳线连接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。,三、编程提示:,1、利用8255的PA0口来施加控制信号给与门,用来控制扬声器的开关状态。再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达到类似与音阶的高低音变换。对于音乐,每个音阶都
2、有确定的频率。 各音阶标称频率值:,四、参考流程图 (见图16-2),五、参考程序: DZQ.ASM,data segment io8255a equ 288h Io8255ctl equ 28bh io8253a equ 280h io8253ctl 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 code segment assum
3、e cs:code,ds:data start:mov ax,datamov ds,ax,sing: mov ah,7int 21h cmp al,1bhje finish cmp al,1jl singcmp al,8jg sing,mov ax,4240H mov dx,0FH div word ptrtable+bx mov bx,ax,mov dx,io8253ctl mov al,00110110Bout dx,almov dx,io8253a mov ax,bxout dx,al mov al,ahout dx,al,mov dx,io8255ctl mov al,10000000
4、Bout dx,almov dx,io8255a mov al,03hout dx,al call delay mov al,0hout dx,al,mov dx,offset msg mov ah,9 int 21h,Press 1,2,3,4,5,6,7,8,ESC,循环条件: 是否按键是ESC还是1-7,若是 1-7中任一按键,则形成音频表的地址 bx,sub al,31h shl al,1 mov bl,al mov bh,0,据输入频率1MHZ及输出音频计算出需写入8253A的初值,初始化8253,初始化8255并使PA0 、PA1输出一定宽度高电平启动8253A工作(SPEAKER)发声,jmp sing,finish: mov ax,4c00hint 21h,继续按键使speaker发声,若按ESC退出,delay proc near push cxpush axmov ax,15 x1: mov cx,0ffffh x2: dec cxjnz x2dec axjnz x1pop axpop cxret delay endp code ends end start,8255 PA0 、PA1输出高电平宽度时间,