微机原理课程设计-电子琴设计.docx
*t本试验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等疑件设备,设计简易电子琴。首先利用了编程程序,编辑了8255芯片限制字,对其进行初始化,使其工作在方式0,即基本输入输出状态,将8255的八端口设置为输出,C湍口进行,经CPI:运算后,输出到8254芯片的A端口中,由此实现对其的初始化。将8254芯片设置为工作在方式3,即输出对称方波状态/端口为输入,“OUT”指令可将输出对应肯定频率的方波送到扬声器中,由此实现发声.本武验通过频率大小限制发出声音的凹凸,通过对延时程序的调用限制发出声音的长短。并通过所编程序实现对键盘的重更扫描,重而可以师奏多个音符的试验目的。关健字:编程、工作方式、运算一、设计题目I简易电子琴设计二、设计内容:试验电路如图16-1.8253的C1.KO接IMHZ时钟,GATEO接8255的PAI.O1.TO和8255的PAO接到与门的两个输入端,K8跳线连接咧叭,编程使计算机的数字键I、2、3、4、5、6、7作为电子琴按键,按卜.即发出相应的音阶。三、设计目的:1、通过8253产生.不同的频率信号,使PC机成为简易电子琴。2、了解利用8255和8253产生音乐的基本方法。3、通过课程设计使学生更进一步驾驭微机原理及应用课程的有关学问,提高应用微机解决问题的实力,加深对微机应用的理解。通过查阅资料,结合所学学问进行软、硬件的设计,使学生初步驾驭应用微机解决问题的步骤及方法,为以后学生结合专业从事微机应用设计奠定堪础。四、设计要求:1 .可以弹出7个音阶。2 .弹奏简短音乐。3 .通过变更键盘输入来变更8254输出频率,实现扬声器发音五、编程提示:1、利用8255的PAO口来施加限制信号给与门,用来限制扬声器的开关状态。再利用设置不同的计数值,使8253产生不同族率的波形,使扬声器产生不同孩率的音调,达到类似与音阶的凹凸音变换。对于音乐,每个音阶都有确定的频率。各音阶标称频率值:音阶12345671*低频率(单位:HZ)262294330347392440194524高频率(单位:HZ)5245886606987848809881048六、设计原程序及注解:*;:*电子琴试验*;DC*;datasegmentio8255aequ288hio8255bequ28bhio8253aequ280hio8253bequ283htab1.edw524,588,660,698,784,880,988,1048;高音的;tab1.edw262,294,330,347,392,440,494,524;低音的msgdb'Press1,2,3,4,5,6,7,8,ESC:',Odh,0ah,'S'dataendscodesegmentassumecszcode,dszdatastart:iDovax,datamov<1.s,axiDovdx,offsetmsgmovah,9ini21hsing:;显示提示信息movah,7int21hcnipa1.,Ibhjefinishcmpa1.,j1.singcmpa1.,8'jgsing:从键盘接收字符,不回显;若为ESC键,则转finish;若不在1'-8'之间转Singsuba1.,31hsh1.a1.,1movb1.,a1.movbh,0;转为隹表偏移量;保存偏移到bx11>vax,42401.1.movdx,OF1.i;计数初值=1000000/频率,保存到AXdivwordptrtab1.e+bxmovbx,axmovdx,io8253b读写高字节mova1.,OO1.IO1.1.OBout<1.x,a1.:设置8253计时器。方式3,先读写低字节,再movdx,io8253amovax,bxout<1.x,a1.;写计数初值低字节mova1.,ahoutdx,a1.:写计数初值高字节movdx,io8255bmovai.100oooooboutdx,a1.;设置8255A口输出movdx,io8255amova1.,03houtdx,a1.ca1.1.de1.aymova1.,Ohoutdx,a1.;SPA1.PAO=11(开扬声器);延时:SPA1.PAO=00(关扬声器)jmpsingfinish:11x>vax,4c00hint21h;延时子程序de1.ayprocnearpushexpushaxmovax,15x1.:movex,Offffhx2:decexjnzx2decaxjnzx1.popaxpopexretde1.ayendpcodeendsendstart七、程序流程图】八、硬件连线图IIHZ九、试验结果连接完线路后启动电路开关,然后运行程序,就会出现提示界面,然后健盘输入数字即可有相应音阶音乐从喇叭处播放。十、试验中遇到了的问题及解决方法在试验中遇到了许多问题其主要是代码的编译类错误,在通过网上杳阅相关资料以及在老师同学楮助卜这些困难都迎刃而解了。才使程序完备运行。这是一次胜利的实训,也是应值得远记住的一次实训,在这次实训中我充分感受到了集体的力气,在我组组员的共同努力下,我们的电子学程序从无到有、功能从弱到强,一步步的走向胜利,同时也感谢陈老师绐我这样一次熬炼的机会,让我的人生经验有丰富了些并I1.这段经验将成为我生活中段珍贵的精神财宝。参考文献:R<8O88/8O86汇编语言程序设计中心广播电视高校出版社2、微机原理与接口技术3北京航空航天高校出版社3、微型计兑机原理与汇编语言电子工业出版社4、微机原理与应用大连理工高校出版社5、现代微机原理与接口技术电了工业出版社