电子琴微机原理与接口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机学院综合性、设计性实验报告

一、实验目的

1.通过8253产生不同的频率信号,使PC机成为简易电子琴。

2.了解利用8255和8253产生音乐的基本方法。

二、实验仪器或设备

微机原理与接口技术实验板、PC机

三、总体设计(设计原理、设计方案及流程等)

(1)设计原理:

利用8255的PA0口来施加控制信号给与门,用来控制扬声器的开关状态。再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达到类似与音阶的高低音变换。对于音乐,每个音阶都有确定的频率。

各音阶标称频率值:

(2)设计方案及流程

实验电路如图1,8253的CLK0接1MHZ时钟,GATE0接8255的PA1,OUT0和8255的PA0接到与门的两个输入端,K8跳线连接喇叭,编程使计算机的数字键1、2、

3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。

图一实验电路图

图二实验流程图

四、实验步骤(包括主要步骤、代码分析等)

;*******************************;

;* 电子琴实验 *;

;*******************************;

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,'$'

music db 5,5,6,5,1,7,5,5,6,5,2,1,5,5,5,3,1,7,6,4,4,3,1,2,1,'$' count dw 0

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov dx,offset msg

mov ah,9

int 21h ;显示提示信息

fi:

mov count,0

sing:

mov bx,count

mov al,music[bx]

inc bx

mov count,bx

cmp bx,01eh

je fi ;若为ESC键,则转finish

sub al,01h

shl al,1 ;转为查表偏移量

mov bl,al ;保存偏移到bx

mov bh,0

mov ax,0240H ;计数初值 = 1000000 / 频率, 保存到AX

mov dx,0FH

div word ptr[table+bx]

mov bx,ax

mov dx,io8253b ;设置8253计时器0方式3, 先读写低字节, 再读写高字节 mov al,00110110B

out dx,al

mov dx,io8253a

mov ax,bx

out dx,al ;写计数初值低字节

mov al,ah

out dx,al ;写计数初值高字节

mov dx,io8255b ;设置8255 A口输出

mov al,10000000B

out dx,al

mov dx,io8255a

mov al,03h

out dx,al ;置PA1PA0 = 11(开扬声器)

call delay ;延时

mov al,0h

out dx,al ;置PA1PA0 = 00(关扬声器)

mov ah,06 ;是否有键按下

mov dl,0ffh

int 21h

jnz finish

jmp sing

finish:

mov ax,4c00h

int 21h

delay proc near ;延时子程序

push cx

push ax

mov ax,50

x1: mov cx,0ffffh

x2: dec cx

jnz x2

dec ax

jnz x1

pop ax

pop cx

ret

delay endp

code ends

end start

五、结果分析与总结

1.实验结果:

程序运行成功后(在程序中可以分别定义高音节和低音节),当从键盘上敲击数字1-7时,音响发出哆、唻、咪、发、嗦、啦、唏、唗的音节。按照歌曲乐谱敲击数字键则发出相应的音乐,本实验以ABCD歌为例进行了设计。

2.实验总结:

开始的时候,我们所有人都只是门外汉,心理面一点底都没有。但是通过这次的实验设计,我们学会了如何实现电子琴的功能,虽然只是一个简略版的电子琴功能,每一行代码都是我们辛苦的成果。这次试验,相信我们除了在学习

方面得到了很大的提高以外,还学会了如何进行团体的工作,对各个芯片的功能有了更深刻的认识和体会,熟悉并掌握了汇编如何实现一些功能,一些中断的调用。做到了理论和实际的相结合,相信我们会在以后的工作中能够做的更好。

教师签名:

年月日

相关文档
最新文档