1、目录一 设计的目的与意义2二 设计的内容与要求2三 系统的硬件设计33.1所用芯片的功能介绍33.2系统原理与硬件电路5四 系统的软件设计64.1软件控制流程64.2程序清单7五 系统调试与运行 16六 设计收获 16七 主要参考文献 17一设计的目的与意义本课程设计主要是通过汇编语言用软件编程的方法实现简单的PC仿真电子琴。通过在微机原理与接口技术课程上所学的汇编知识和相关芯片知识,来完成本课程设计。学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和
2、理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。二. 设计内容与要求 设计一个利用DAC0832的输出数字声音的接口电路(可参考实验台原理图),DAC0832的输出接至有源音箱,编程实现如下功能:1、按键发声:(1)当从键盘上敲击Q U键时,音箱发出1 7的高音阶;(2)当从键盘上敲击A J键时,音箱发出1 7的中音阶;(3)当从键盘上敲击Z M键时,音箱发出1 7的低音阶;(4)按ESC键,程序结束。2、屏幕上方显示课程设计题目、使用方法、作者姓名、单位及版权等信息3、屏幕下方显示钢琴键盘形状,当按动不同音阶的键时,相应的乐键要呈现被按下的形态。三. 系
3、统的硬件设计 3.1所用芯片的功能介绍 1.DAC0832芯片介绍DAC0832是由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成,采用二次缓冲方式,这样可以在输出的同时,输入下一个数据,以提高转换速度。更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。其内部逻辑结构如图所示。DAC0832为20引脚芯片,各引脚功能如下:DI0DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存器的写选通信号。XFER:数据传送控制信号输入线,低电平有效。WR2:为DAC寄存器写选通输入线。Iout1:电流输出
4、线。当输入全为1时Iout1最大。Iout2: 电流输出线。其值与Iout1之和为一常数。Rfb:反馈信号输入线,芯片内部有反馈电阻.Vcc:电源输入线 (+5v+15v)Vref:基准电压输入线 (-10v+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好.2DAC0832工作原理 当输入锁存信号ILE为高电平时,而 与 同时为低电平时,由图可知 =1,输入锁存器的内容随数据总线DI0DI7而变化。当 变为高电平时, =0,8位输入数据被锁存在输入寄存器中。当 与 同时为低电平时, =1,8位DAC寄存器内容随输入锁存器而变化。此时若 变
5、为高电平, =0,则将输入锁存器中数据锁存在8位DAC寄存器中,并开始D/A转换。对于要求多片DAC0832同时转换的系统,鉴于各芯片的片选信号不同,可用片选信号 与 分时地将数据分别输入到每个芯片的输入锁存器中。各芯片的 与 分别连接在一起,共用一组信号。 与 同时为低电平时,数据将在同一时刻由8位输入寄存器传送到对应的8位DAC寄存器中,在 上升沿将数据锁存到DAC寄存器中。与此同时,多个DAC0832芯片开始同时进行D/A转换,因此可以达到多路模拟量同时输出的目的。3DAC0832的主要技术指标 电流稳定时间:1 s分辨率:8位线性误差:0.2%功耗:20mw 3.2 设计原理与硬件电路
6、采用DAC0832作PC仿真电子琴的电路如图所示,运算放大器LF351的输出接至有源音箱,当按动键盘上的数字键17时音箱能发出音阶17。要求根据接口电路编程(设端口地址为228H)。音箱发音的高低与DAC0832输出方波频率的高低有关,故每个按键应与不同的频率建立关系,方法是按动不同的键时输出方波(模拟量),方波高低电平的持续时间代表频率高低,该值由循环程序实现不同次数的循环完成。DAC0832输出电压值的高低与音调无关,但与音量高低有关。图 采用DAC0832作音乐发声器 采用DAC0832做PC仿真电子琴四系统的软件设计4.1 软件控制流程开始键盘读入一个字符是ESC键吗?YN返回DOSN
7、是QU,AJ,ZM键吗?Y求出音阶值保存赋相应频率值延时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,150MODE DB ?MESS6 DB *MESS7 DB TITLE: THE PC PIANO,0DH,0AHMESS8 DB STUDENT: Zhang Liyan,0DH,0AHMESS9 DB TEACHER: WANG YUEXIAO,0DH,0AHMESS10 DB T
8、HE COMPUTER OF WEIFANG COLLEGE,0DH,0AHMESS1 DB WELCOME TO USE THE PIANO,0DH,0AHMESS2 DB HIGH 1-7: KEY Q-U,0DH,0AHMESS3 DB NOMAL 1-7: KEY A-J,0DH,0AHMESS4 DB LOW 1-7: KEY Z-M,0DH,0AHMESS5 DB PRESS ESC TO QUIT,0DH,0AHMESS12 DB *LL DW 144HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA M
9、OV 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,2NEXT: CALL DISPLAY ADD BX,15 LOOP NEXT MOV BX,2LL0: MOV DI,OFFSET M
10、IU_F MOV AH,00H INT 16H CALL DISPLAY CALL UPPER CMP AL,1BH JZ EXIT0 JMP GOONEXIT0: JMP EXITGOON: CMP AL,Z JNZ QQQ ADD DI,0 CALL CHANGE JMP MUSIQQQ: CMP AL,X JNZ WWW ADD DI,2 CALL CHANGE JMP MUSIWWW: CMP AL,C JNZ EEE ADD DI,4 CALL CHANGE JMP MUSIEEE: CMP AL,V JNZ RRR ADD DI,6 CALL CHANGE JMP MUSIRRR:
11、 CMP AL,B JNZ TTT ADD DI,8 CALL CHANGE JMP MUSITTT: CMP AL,N JNZ YYY ADD DI,10 CALL CHANGE JMP MUSIYYY: CMP AL,M JNZ UUU ADD DI,12 CALL CHANGE JMP MUSIUUU: CMP AL,A JNZ AAAA ADD DI,14 CALL CHANGE JMP MUSIAAAA: CMP AL,S JNZ SSS ADD DI,16 CALL CHANGE JMP MUSISSS: CMP AL,D JNZ DDD ADD DI,18 CALL CHANGE
12、 JMP MUSIDDD: CMP AL,F JNZ FFF ADD DI,20 CALL CHANGE JMP MUSIFFF: CMP AL,G JNZ GGG ADD DI,22 CALL CHANGE JMP MUSIGGG: CMP AL,H JNZ HHH ADD DI,24 CALL CHANGE JMP MUSIHHH: CMP AL,J JNZ JJJ ADD DI,26 CALL CHANGE JMP MUSIJJJ: CMP AL,Q JNZ ZZZ ADD DI,28 CALL CHANGE JMP MUSIZZZ: CMP AL,W JNZ XXX ADD DI,30
13、 CALL CHANGE JMP MUSIXXX: CMP AL,E JNZ CCC ADD DI,32 CALL CHANGE JMP MUSICCC: CMP AL,R JNZ VVV ADD DI,34 CALL CHANGE JMP MUSIVVV: CMP AL,T JNZ BBB ADD DI,36 CALL CHANGE JMP MUSIBBB: CMP AL,Y JNZ NNN ADD DI,38 CALL CHANGE JMP MUSINNN: CMP AL,U JNZ COO ADD DI,40 CALL CHANGEMUSI: CALL MUSICCOO: JMP LL0
14、EXIT: MOV AL,MODE MOV AH,0 INT 10H MOV AH,4CH INT 21HUPPER PROC NEAR CMP AL,a JB OVER CMP AL,z JA OVER SUB AL,20HOVER: RETUPPER ENDPMUSIC PROC NEAR PUSH SI PUSH CX PUSH AX PUSH DX MOV SI,0FHPPP: INC SI MOV CX,DI MOV DX,228HLLL: MOV AL,20H OUT DX,AL INC DX OUT DX,AL DEC DX LOOP LLL MOV CX,DI MOV DX,2
15、28HLLL1: 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 RETMUSIC ENDPDISPLAY PROC NEAR PUSH DX PUSH DI PUSH AX PUSH CX PUSH SI MOV DX,140 MOV DI,40 MOV AL,80NEXT1: MOV CX,BX MOV SI,14 MOV AH,0CHNEXT2: INT 10H INC CX DEC SI JNZ NEXT2 INC DX DEC D
16、I JNZ NEXT1 POP SI POP CX POP AX POP DI POP DX RETDISPLAY ENDPDISPLAY0 PROC NEAR PUSH DX PUSH DI PUSH AX PUSH CX PUSH SI MOV DX,140 MOV DI,40 MOV AL,68NEXT10: MOV CX,BX MOV SI,14 MOV AH,0CHNEXT20: INT 10H INC CX DEC SI JNZ NEXT20 INC DX DEC DI JNZ NEXT10 POP SI POP CX POP AX POP DI POP DX RETDISPLAY
17、0 ENDPCHANGE 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 RETCHANGE ENDPCODE ENDS END START五系统调试与运行 在本次程序设计过程中,按照设计要求,在界面上显示课程设计题目、使用方法、作者姓名、单位及版权等信息,并在屏幕下方显示键盘形状,当安不同的音阶时,相应的乐键将呈现黄色。当从键盘上敲击Q U键时,音箱发出1 7的高音阶;敲击A J键时,音箱发出1 7的中音阶; 敲击Z M键时
18、,音箱发出1 7的低音阶设计界面六设计收获 通过两个周的编程和查资料,我完成了微机原理和接口技术的课程设计。设计过程中碰到了很多的难题和障碍,我认识到平时基础知识的重要性,只有能够熟练的掌握才能在实验过程中得心应手,否则一步错则整个试验都会陷入困境,因而,严谨的态度是试验成功的重要保障!通过这次课程设计,我对各个芯片的功能有了更深刻的认识和体会,平时上课的理论知识只是停留在理论的层面,只有通过了这样的试验才能更好的体会到,做到了理论和实际的相结合,使理论知识真正运用到了实践中去。七主要参考文献1李长青. 微机原理与接口技术. 徐州:中国矿业大学出版社,20062沈美明. 汇编语言程序设计实验教程. 北京:清华大学出版社,2002年3周明德. 微机原理与接口技术. 北京:人民邮电出版社,2002年