微机接口课程设计---电子琴和实验报告.doc
题 目 名 称 简易电子琴设计 小 组 成 员 院 系 班 级 信息工程学院计科085 指 导 教 师 2012 年 5 月 18日目 录第一章 电子琴的设计要求和使用器件 1.1 初始条件 1.2 电子琴要完成的主要任务 1.3 电子琴课设的使用器件 1.4 设计方案的确定 第二章 电子琴的硬件设计 2.1 电子琴的硬件框图第三章 电子琴的软件设计 3.1 程序流程图3.2 整体的软件汇编程序第四章 电子琴的调试和设计体会4.1 硬件调试4.2 软件调试4.3 设计体会第五章 附录5.1 参考文献第一章 电子琴的设计要求和使用器件1.1 初始条件1.运用所学的微机原理和接口技术知识; 2. 微机原理和接口技术实验室的实验箱设备; 1.2 电子琴要完成的主要任务使用汇编语言设计一个能够用键盘运行的电子琴, 1.弹奏:用户每按一个键盘琴键就弹奏相应的音符;2.演奏:按下键盘上某一个指定的建后自动弹奏预存琴谱功能;1.3 电子琴课设的使用器件1.唐都实验箱TDN-MD 1.4 设计方案的确定 1.用试验箱上的晶振输出一个高频的信号,接入8253,用软件给8253和敏感键区进行初始化,敏感键控制不同的频率,并送此分频数给8253,从8253输出相应的音频后,接一个非门,再接入硬件扬声器,扬声器接受到不同频率的波后发出不同的声音。 2.用敏感键触发中断服务子程序来判断是给出了哪一个频率。 3.用一个ESC按键来控制是自动演奏,其他7个键分别控制da,ri,mi,fa,sa,la,si。 4.其中用一个延时程序,使得发一个音有一定的延时时间。从而能使得可以被听见。 5.有个停止程序,使得晶振不能使得扬声器发声。第二章 电子琴的硬件设计2.1 电子琴的硬件框图和硬件连接图图 1 硬件框图图 2 电路连接图 从8088的敏感键触发中断,然后根据8088的程序,将不同的分频数与敏感键的中断服务子程序的每一个一一对应,通过程序从8086给8253赋个初值(即不同的分频数),晶振给8253一个固定的频率,在不同的分频数下得到不同的频率,将频率通过8253的2计数器送给一个非门,(加非门的原因:因为8253的out2原始状态时一个高点平,若直接与扬声器相连,一经连接扬声器就会发音,接个非门后使得它的初始状态为低电平,就能消除困扰。)非门出来接扬声器。不同的频率使得扬声器发出不同音色的声音。第三章 电子琴的软件设计3.1 程序流程图 图 十 程序流程图3.2 整体的软件汇编程序1.主程序:A 2000MOV AX,3000MOV 00A8,AXMOV AX,0000MOV 00AA,AX/表示ESC键的中断向量地址,自动播放音乐MOV AX,3100MOV 00AC,AXMOV AX,0000MOV 00AE,AX/表示键的中断向量地址,发音1/*其它热键亦是如此*/2.自动播放曲子程序:A3000MOV BX,5100/曲子的地址MOV AL,BXMOV AH,00A1: MOV DL,25MUL DLPUSH AXMOV AL,B6OUT 43,AL/8253初始化POP AXOUT 42,ALMOV AL,AHOUT 42,ALINC BXMOV AH,00MOV AL,BXTEST AL,FFH/唱完一段自动停止JZ A4/唱完MOV CX,77FFA2:PUSH AX/延时POP AXLOOP A2JMP A1A3:MOV AL,BAH/改变8253的控制字,使其工作在方式5,不发声MOV DX,0043HOUT DX,ALJMP 2000A4:PUSH AX/延时POP AXLOOP A4JMP A33.发音1 子程序A3100MOV BX,5000/表示17个音符的频率存放在5000单元CALL 4000/调用发音子程序CALL 4500/调用延时子程序JMP 2000/跳到主程序4.发音2子程序A3200MOV BX,5000INC BXCALL 4000CALL 4500JMP 20005. 发音3子程序A3300MOV BX,5000ADD BX,02HCALL 4000CALL 4500JMP 20006. 发音4子程序A3400MOV BX,5000ADD BX,03HCALL 4000CALL 4500JMP 20007. 发音5子程序A3500MOV BX,5000ADD BX,04HCALL 4000CALL 4500JMP 20008. 发音6子程序A3600MOV BX,5000ADD BX,05HCALL 4000CALL 4500JMP 20009. 发音7子程序A3700MOV BX,5000ADD BX,06HCALL 4000CALL 4500JMP 200010.发声子程序A4000MOV AL,B6 /对8253进行初始化OUT 43,ALMOV AL,BXMOV AH,00MOV DL,25MUL DLOUT 42,ALMOV AL,AHOUT 42,AL11.延时子程序A4500PUSH CXMOV CX,77FFHA4:PUSH AXPOP AXLOOP A4POP CXMOV AL,BAHMOV DX,0043HOUT DX,AL12.内存单元内容E5000:43 3C 35 33 61 52 48 00E5100:33 33 3D 33 26 26 26 26 2D 26 2D 33 33 33 33 33 33 4D 45 3D 3D3D 45 4D 45 00E0457:1B 60 2D 5C 3B 27 2E 2F第四章 电子琴的调试和设计体会4.1 硬件调试1.开始时直接将8253的输出端out2与扬声器相连,连接好硬件后打开电源,发现喇叭一直不停的叫。分析原因:发现是由于8253的输出端(即OUT2)初状态为高电平,所以当输入扬声器时扬声器就即刻发声。所以将8253的输出端(OUT2)出来接一个非门,再接到扬声器上,使得初始时扬声器为低电平,所以不发声。4.2 软件调试 1.先编写了弹奏程序,发现按按键后,扬声器不会停止发音,会一直以一个特定的(即晶振产生的)频率在发声。为了使它的所有键在低电平时停止发音,我们在发音延时后改变8253的方式控制字,是其工作在方式5下,停止了他的发音。再次发音时即又一次对8253进行初始化。2.对于一个特定的/转换接口电路,CPU执行一条输出指令将数据送入/, 即可在其输出端得到一定的电压输出。给/转换器输入按正弦规律变化的数据, 在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。 各音阶标称频率值和8253的计数初值: 音阶低音5低音6低音7中音1中音2中音3中音4中音5中音6中音7高音1频率(HZ)452535607647722817847977110712451311计数初值61H52H48H43H3CH35H33H2CH27H23H21H不同频率的区别,可通过调节向转换器输出数据的时间间隔,例如:发""频率为647HZ,周期为1/647=1.55ms,由于实验箱中的晶振可产生一个为1.8432MHZ的频率。1.625MHZ/647HZ=2511,即分频数。转化为十六进制的数为:9CFH,在经过频率处理,除以25H得到8253的计数初值:43H。其它的初值的计算同理。3.编写完自动播放程序后发现无法用开关控制它的随时播放和停止,一定要唱完一遍后遇到终止符号才能停止。 分析后发现自动播放中应该在每个音播放完后作个开关的判断,决定是否继续自动播放,从而跳转到不同的情况下,继续执行程序。4.3 设计体会经过这个课程设计,虽然时间比较短,但让我们在课本的基础上,更深入的了解了各种8253芯片的用法和程序的完成过程,调试方法及技巧。在这次课程设计中我们一直都是在循序渐进中完成的,一步步的在最简单程序中加深和完善,慢慢的实现要求的功能。每一步的设计和成功都给了我们很大的鼓励和勇气,让我们不断了继续设计和完善。这一个星期的课程设计最大的体会是:只要敢大胆的想,努力的做,再坚持不懈就一定能有所成就。第五章 附录5.1 参考资料微机计算机技术及应用(第4版) 清华大学出版社微机原理与接口技术实验指导书 河南科技学院信息工程学院8253,敏感键的功能和应用 电子资料