《微机原理课程设计的报告--电子琴设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计的报告--电子琴设计.docx(6页珍藏版)》请在优知文库上搜索。
1、本实验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等硬件设备,设计简易电子琴。首先利用了编程程序,编辑了8255芯片控制字,对其进展初始化,使其工作在方式0,即基本输入输出状态,将8255的A端口设置为输出,C端口进展,经CPU运算后,输出到8254芯片的A端口中,由此实现对其的初始化。将8254芯片设置为工作在方式3,即输出对称方波状态。A端口为输入,0U指令可将输出对应一定频率的方波送到扬声器中,由此实现发声。本实验通过频率大小控制发出声音的上下,通过对延时程序的调用控制发出声音的长短。并通过所编程序实现对键盘的重复扫描,重而可以弹奏多个音符的试验目的。关键字:编程、工作
2、方式、运算一、设计题目:简易电子琴设计二、设计内容:实验电路如图16-L8253的CLKO接IMHZ时钟,GATEO接8255的PALOUTo和8255的PAO接到与门的两个输入端,K8跳线连接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。三、设计目的:1、通过8253产生不同的频率信号,使PC机成为简易电子琴。2、了解利用8255和8253产生音乐的基本方法。3、通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进展软、硬件的设计,使学生初步掌握应用微机解决问题的
3、步骤及方法。为以后学生结合专业从事微机应用设计奠定根基。四、设计要求:1 .可以弹出7个音阶。2 .弹奏简短音乐。3 .通过改变键盘输入来改变8254输出频率,实现扬声器发音五、编程提示:1、利用8255的PAO口来施加控制信号给与门,用来控制扬声器的开关状态。再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,到达类似与音阶的上下音变换。对于音乐,每个音阶都有确定的频率。各音阶标称频率值:音阶12345671*低频率(单位:Hz)262294330347392440494524高频率(单位:Hz)5245886606987848809881048六、设计原程序及
4、注解;*电子琴实验*;datasegmentio8255aequ288hio8255bequ28bhio8253aequ280hio8253bequ283htabledw524,588,660,698,784,880,988,1048;高音的;tabledw262,294,330,347,392,440,494,524;低音的msgdb,Press1,2,3,4,5,6,7,8,ESC:,Odh,0ah,$dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,offsetmsgmovah,9int21hsin
5、g:;显示提示信息movah,7int21hcmpal,Ibh;从键盘接收字符,不回显jefinish;假设为ESC键,那么转finishcmpal,1,jlsingcmpal,8,jgsingsubal,31hshlal,1movbl,almovbh,0movax,4240Hmovdx,OFH;假设不在1-8之间转Sing;转为查表偏移量;保存偏移到bx;计数初值=1000000/频率,保存到AXdivwordptrtable+bxmovbx,axmovdx,io8253b;设置8253计时器0方式3,先读写低字节,再读写高字节moval,00110110Boutdx,almovdx,io8
6、253amovax,bxoutdx,al;写计数初值低字节moval,ahoutdx,al;写计数初值高字节movdx,io8255b;设置8255A口输出movai,100oooooboutdx,almovdx,io8255amoval,03houtdx,al;置PAlPAo=11(开扬声器)calldelay;延时moval,Ohoutdx,al;置PAIPAo=00(关扬声器)jmpsingfinish:movax,4c00hint21hdelayprocnear;延时子程序pushexpushaxmovax,15xl:movex,Offffhx2:decexjnzx2decaxjnzx
7、lpopaxpopCXretdelayendpcodeendsendstart七、程序流程图:八、硬件连线图九、实验结果连接完线路后启动电路开关,然后运行程序,就会出现提示界面,然后键盘输入数字即可有相应音阶音乐从喇叭处播放。十、实验中遇到了的问题及解决方法在实验中遇到了很多问题其主要是代码的编译类错误,在通过网上查阅相关资料以及在教师同学帮助下这些困难都迎刃而解了。才使程序完美运行。总结这是一次成功的实训,也是应值得远记住的一次实训,在这次实训中我充分感受到了集体的力量,在我组组员的共同努力下,我们的电子琴程序从无到有、功能从弱到强,一步步的走向成功,同时也感谢陈教师给我这样一次锻炼的时机,让我的人生经历有丰富了一些并且这段经历将成为我生活中一段珍贵的精神财富。参考文献:1.?8O88/8O86汇编语言程序设计?中央播送电视大学出版社2、?微机原理与接口技术?北京航空航天大学出版社3、?微型计算机原理与汇编语言?电子工业出版社4、?微机原理与应用?大连理工大学出版社5、?现代微机原理与接口技术?电子工业出版社