电子琴微机原理与接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.实验总结:
开始的时候,我们所有人都只是门外汉,心理面一点底都没有。但是通过这次的实验设计,我们学会了如何实现电子琴的功能,虽然只是一个简略版的电子琴功能,每一行代码都是我们辛苦的成果。这次试验,相信我们除了在学习
方面得到了很大的提高以外,还学会了如何进行团体的工作,对各个芯片的功能有了更深刻的认识和体会,熟悉并掌握了汇编如何实现一些功能,一些中断的调用。做到了理论和实际的相结合,相信我们会在以后的工作中能够做的更好。
教师签名:
年月日