微机课程设计电子琴PC电子琴
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机课程设计电子琴PC电子琴
一.设计的目的与意义 (2)
二.设计的内容与要求 (2)
三.系统的硬件设计 (3)
3.1所用芯片的功能介绍 (3)
3.2系统原理与硬件电路 (5)
四.系统的软件设计 (6)
4.1软件操纵流程 (6)
4.2程序清单 (7)
五.系统调试与运行 (16)
六.设计收成 (16)
七.要紧参考文献 (17)
一.设计的目的与意义
本课程设计要紧是通过汇编语言用软件编程的方法实现简单的PC仿真电子琴。
通过在«微机原理与接口技术»课程上所学的汇编知识和相关芯片知识,来完成本课程设计。
学习和把握运算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锤炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和明白得,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二. 设计内容与要求
设计一个利用DAC0832的输出数字声音的接口电路〔可参考实验台原理图〕,DAC0832的输出接至有源音箱,编程实现如下功能:
1、按键发声:
〔1〕当从键盘上敲击Q ~ U键时,音箱发出1 ~ 7的高音阶;
〔2〕当从键盘上敲击A ~ J键时,音箱发出1 ~ 7的中音阶;
〔3〕当从键盘上敲击Z ~ M键时,音箱发出1 ~ 7的低音阶;
〔4〕按ESC键,程序终止。
2、屏幕上方显示课程设计题目、使用方法、作者姓名、单位及版权等信息
3、屏幕下方显示钢琴键盘形状,当按动不同音阶的键时,相应的乐键要出现被按下的形状。
三. 系统的硬件设计
3.1所用芯片的功能介绍
1.DAC0832芯片介绍
DAC0832是由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成,采纳二次缓冲方式,如此能够在输出的同时,输入下一个数据,以提高转换速度。
更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。
其内部逻辑结构如下图。
DAC0832为20引脚芯片,各引脚功能如下:
DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存承诺操纵信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送操纵信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。
当输入全为1时Iout1最大。
Iout2: 电流输出线。
其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻.
Vcc:电源输入线 (+5v~+15v)
Vref:基准电压输入线 (-10v~+10v)
AGND:模拟地,摸拟信号和基准电源的参考地. DGND:数字地,两种地线在基准电源处共地比较好.
2.DAC0832工作原理
当输入锁存信号ILE为高电平常,而与同时为低电平常,由图可知=1,输入锁存器的内容随数据总线DI0~DI7而变化。
当变为高电平常,=0,8位输入数据被锁存在输入寄存器中。
当与同时为低电平常,=1,8位DAC寄存器内容随输入锁存器而变化。
现在假设变为高电平,=0,那么将输入锁存器中数据锁存在8位DAC寄存器中,并开始D/A转换。
关于要求多片DAC0832同时转换的系统,鉴于各芯片的片选信号不同,可用片选信号与分时地将数据分别输入到每个芯片的输入锁存器中。
各芯片的与分别连接在一起,共用一组信号。
与同时为低电平常,数据将在同一时刻由8位输入寄存器传送到对应的8位DAC寄存器中,在上升沿将数据锁存到DAC寄存器中。
与此同时,多个DAC0832芯片开始同时进行D/A转换,因此能够达到多路模拟量同时输出的目的。
3.DAC0832的要紧技术指标
电流稳固时刻:1s
辨论率:8位
线性误差:0.2%
功耗:20mw
3.2 设计原理与硬件电路
采纳DAC0832作PC仿真电子琴的电路如下图,运算放大器LF351的输出接至有源音箱,当按动键盘上的数字键1~7时音箱能发出音阶1~7。
要求依照接口电路编程〔设端口地址为228H〕。
音箱发音的高低与DAC0832输出方波频率的高低有关,故每个按键应与不同的频率建立关系,方法是按动不同的键时输出方波〔模拟量〕,方波高低电平的连续时刻代表频率高低,该值由循环程序实现不同次数的循环完成。
DAC0832输出电压值的高低与音调无关,但与音量高低有关。
图采纳DAC0832作音乐发声器
采纳DAC0832做PC仿真电子琴
四.系统的软件设计
4.1 软件操纵流程
4.2 程序清单
DATA SEGMENT
;MODE DB ?
MIU_F DW 1140,1020,920,880,780,690,600
DW 570,510,460,440,390,345,300
DW 285,255,230,220,195,173,150
MODE DB ?
MESS6DB '****************************************' MESS7DB ' TITLE: THE PC PIANO',0DH,0AH
MESS8DB ' STUDENT: Zhang Liyan',0DH,0AH
MESS9DB ' TEACHER: WANG YUEXIAO',0DH,0AH
MESS10DB 'THE COMPUTER OF WEIFANG COLLEGE',0DH,0AH MESS1DB ' WELCOME TO USE THE PIANO',0DH,0AH
MESS2DB 'HIGH [1-7]: KEY Q-U',0DH,0AH
MESS3DB 'NOMAL [1-7]: KEY A-J',0DH,0AH
MESS4DB 'LOW [1-7]: KEY Z-M',0DH,0AH
MESS5DB 'PRESS ESC TO QUIT',0DH,0AH
MESS12DB '****************************************' LL DW 144H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV BH,0
MOV AH,0FH
INT 10H
MOV MODE,AL ;储存当前界面
MOV AH,0 ;设置新界面
MOV AL,13H
INT 10H
MOV BP,SEG MESS6
MOV ES,BP
MOV BP,OFFSET MESS6
MOV CX,LL
MOV DX,1
MOV BL,44H
MOV AL,0
MOV AH,13H
INT 10H
MOV CX,21 ;展现21个键
MOV BX,2
NEXT: CALL DISPLAY
ADD BX,15
LOOP NEXT
MOV BX,2
LL0:
MOV DI,OFFSET MIU_F
MOV AH,00H
INT 16H
CALL DISPLAY
CALL UPPER
CMP AL,1BH
JZ EXIT0
JMP GOON
EXIT0: JMP EXIT
GOON: CMP AL,'Z'
JNZ QQQ
ADD DI,0
CALL CHANGE
JMP MUSI
QQQ: CMP AL,'X'
JNZ WWW
ADD DI,2
CALL CHANGE
JMP MUSI
WWW: CMP AL,'C'
JNZ EEE
ADD DI,4
CALL CHANGE
JMP MUSI
EEE: CMP AL,'V'
JNZ RRR
ADD DI,6
CALL CHANGE
JMP MUSI
RRR: CMP AL,'B'
JNZ TTT
ADD DI,8
CALL CHANGE
JMP MUSI
TTT: CMP AL,'N'
JNZ YYY
ADD DI,10
CALL CHANGE
JMP MUSI
YYY: CMP AL,'M'
JNZ UUU
ADD DI,12
CALL CHANGE
JMP MUSI
UUU: CMP AL,'A'
JNZ AAAA
ADD DI,14
CALL CHANGE
JMP MUSI
AAAA: CMP AL,'S'
JNZ SSS
ADD DI,16
CALL CHANGE
JMP MUSI
SSS: CMP AL,'D'
JNZ DDD
ADD DI,18
CALL CHANGE
JMP MUSI
DDD: CMP AL,'F'
JNZ FFF
ADD DI,20
CALL CHANGE
JMP MUSI
FFF: CMP AL,'G'
JNZ GGG
ADD DI,22
CALL CHANGE
JMP MUSI
GGG: CMP AL,'H'
JNZ HHH
ADD DI,24
CALL CHANGE
JMP MUSI
HHH: CMP AL,'J'
JNZ JJJ
ADD DI,26
CALL CHANGE
JMP MUSI
JJJ: CMP AL,'Q'
JNZ ZZZ
ADD DI,28
CALL CHANGE
JMP MUSI
ZZZ: CMP AL,'W'
JNZ XXX
ADD DI,30
CALL CHANGE
JMP MUSI
XXX: CMP AL,'E'
JNZ CCC
ADD DI,32
CALL CHANGE
JMP MUSI
CCC: CMP AL,'R'
JNZ VVV
ADD DI,34
CALL CHANGE
JMP MUSI
VVV: CMP AL,'T'
JNZ BBB
ADD DI,36
CALL CHANGE
JMP MUSI
BBB: CMP AL,'Y'
JNZ NNN
ADD DI,38
CALL CHANGE
JMP MUSI
NNN: CMP AL,'U'
JNZ COO
ADD DI,40
CALL CHANGE MUSI: CALL MUSIC COO: JMP LL0 EXIT: MOV AL,MODE
MOV AH,0
INT 10H
MOV AH,4CH
INT 21H UPPER PROC NEAR
CMP AL,'a'
JB OVER
CMP AL,'z'
JA OVER
SUB AL,20H OVER: RET
UPPER ENDP
MUSIC PROC NEAR
PUSH SI
PUSH CX
PUSH AX
PUSH DX
MOV SI,0FH PPP: INC SI
MOV CX,[DI]
MOV DX,228H LLL: MOV AL,20H
OUT DX,AL
INC DX
OUT DX,AL
DEC DX
LOOP LLL
MOV CX,[DI]
MOV DX,228H LLL1: MOV AL,00H
OUT DX,AL
INC DX
OUT DX,AL
DEC DX
LOOP LLL1
CMP SI,5FH
JNZ PPP
POP DX
POP AX
POP CX
POP SI
RET
MUSIC ENDP
DISPLAY PROC NEAR
PUSH DX
PUSH DI
PUSH AX
PUSH CX
PUSH SI
MOV DX,140
MOV DI,40
MOV AL,80 NEXT1:
MOV CX,BX
MOV SI,14
MOV AH,0CH NEXT2: INT 10H
INC CX
DEC SI
JNZ NEXT2
INC DX
DEC DI
JNZ NEXT1
POP SI
POP CX
POP AX
POP DI
POP DX
RET
DISPLAY ENDP
DISPLAY0 PROC NEAR
PUSH DX
PUSH DI
PUSH AX
PUSH CX
PUSH SI
MOV DX,140
MOV DI,40
MOV AL,68 NEXT10:
MOV CX,BX
MOV SI,14
MOV AH,0CH NEXT20: INT 10H
INC CX
DEC SI
JNZ NEXT20
INC DX
DEC DI
JNZ NEXT10
POP SI
POP CX
POP AX
POP DI
POP DX
RET
DISPLAY0 ENDP
CHANGE PROC NEAR
PUSH DX
PUSH AX
SHR DI,1
MOV AX,DI
MOV BX,15
MUL BL
MOV BX,AX
ADD BX,2
CALL DISPLAY0
POP AX
POP DX
RET
CHANGE ENDP
CODE ENDS
END START
五.系统调试与运行
在本次程序设计过程中,按照设计要求,在界面上显示课程设计题目、使用方法、作者姓名、单位及版权等信息,并在屏幕下方显示键盘形状,当安不同的音阶时,相应的乐键将出现黄色。
当从键盘上敲击Q ~ U键时,音箱发出1 ~ 7的高音阶;敲击A ~ J键时,音箱发出1 ~ 7的中音阶;敲击Z ~ M键时,音箱发出1 ~ 7的低音阶
设计界面
六.设计收成
通过两个周的编程和查资料,我完成了微机原理和接口技术的课程设计。
设计过程中碰到了专门多的难题和障碍,我认识到平常基础知识的重要性,只有能够熟练的把握才能在实验过程中
得心应手,否那么一步错那么整个试验都会陷入逆境,因而,严谨的态度是试验成功的重要保证!
通过这次课程设计,我对各个芯片的功能有了更深刻的认识和体会,平常上课的理论知识只是停留在理论的层面,只有通过了如此的试验才能更好的体会到,做到了理论和实际的相结合,使理论知识真正运用到了实践中去。
七.要紧参考文献
1.李长青. 微机原理与接口技术. 徐州:中国矿业大学出版社,2006
2.沈美明. 汇编语言程序设计实验教程. 北京:清华大学出版社,2002年
3.周明德. 微机原理与接口技术. 北京:人民邮电出版社,2002年。