1、河北工业大学计算机硬件技术基础设计报告简易电子琴的设计一、题目:简易电子琴的设计二、问题的提出问题描述:设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等音符。三、总体设计(1) 所实现的功能描述通过电路图连接电路,按下键就可以发出所设定频率的相应的音调,即1,2,3,4,5,6,7等音符.(2) 设计方案的描述。因为不同音调是由许多不同音阶组成,每个音阶对应不同的频率,这样我们可用不同频率组合,即可构成我们想要的音乐了.我们可用单片机的定时/计数器0来产生这样的方波频率信号,根据计算得出相应的十进制数值.利用查表方式来响应,得出不同的声音。(3) 设计过程本次实验是由我们一组俩人共同
2、完成,我们俩人共同努力商讨,不会的地方就互帮互助,也会去请教别人的指导,最终完成了程序的设计四、详细设计:(1)所需设备为 8031单片机,蜂鸣器,开关 等(2)硬件系统电路如下:3、设计中的主要困难及解决方案对于晶振频率为11.0592MHz的单片机,定时器假如选择工作方式1,那T值便为T216-5*105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值。建立这样一个数据表,然后采用查表程序即可。用导线将A2的P3.3 (INT1)与 B5区的BUZZ接口相连,用排线将D1区的 J53 与 A2区的J61相连,如上图所示。五.程序的流程图六.程序清单ORG 8000HLJMP M
3、AINORG 800BHLJMP TC0SVMAIN:MOV TH0,#0FFH ;送高八位定时器/计数器初值MOV TL0,#0FFH ;送低八位定时器/计数器初值MOV TMOD,#01H ;置T/CO的工作方式1SETB EA ;CPU开中断SETB ET0 ;T/CO允许中断MOV P1,#0FFHAA:MOV A,P1 CJNE A,#0FFH,BB ;判断键是否闭合MOV TH0,#0FFHMOV TL0,#0FFHCLR TR0 ;停止T/CO计数LJMP AABB:MOV R2,#00HCC:JNB ACC.0,DDINC R2RR ALJMP CCDD:MOV A,R2RL
4、AMOV DPTR, #TABLE ;查表MOVC A,A+DPTRMOV 31H,AMOV A,R2RL AINC AMOVC A,A+DPTRMOV 30H,ASETB TR0 ;启动T/CO计数LJMP AATC0SV: MOV TL0,30H ;将查询的结果赋给高八位定时器/计数器MOV TH0,31H ;将查询的结果赋给低八位定时器/计数器CPL P3.3 ;蜂鸣器发声RETITABLE:DW 64580,64684,64777,64820,64898,64968,65030,65058END七.调试程序的方法调试方法:把程序编译成功后,在硬件机板上按指定的硬件图的要求把线连好运行,
5、分别在键盘上按下,对应的相应的声音响起,表示调试运行成功不足之处: 虽然该程序发出的音调很准确,但是不能唱一首完整的歌曲.不能达到只按开关就能控制全部音节.只能按一键响一声.八.收获及心得体会电子琴这个试验用到了课本上软件与硬件知识,它的模拟过程也使程序更加的形象化,这种有趣的现象也激发了我学习单片机的兴趣,经过两个星期的设计,让我大概的了解了单片机的基础知识,也到了学习方法,最后虽然运行出了比较理想的结果,但是在细节上还有比较多的问题,而且我们在创新上也没有大胆的尝试,我们还有很多需要学习,单片机在生活中运用的很广泛,我们有必要对它有个整体的认识和初步的了解,我认为本次试验达到了这个目的。在
6、每次的上课过程中,我对单片机的学习只是对软件的知识部分了解,不能在实际过程中进行应用.开放性实验让我们了解到了单片机对现实生活的影响.利用简单的程序是我们的生活变的方便,美化我们的生活.这次实验的学习是我和我的同学共同完成的,在操作过程中,我们体会到了成功的来之不易,分享快乐.通过这次单片机设计,我知道了将课本知识与实际结合的重要性。这次实验是综合性、设计性、开放性、探索性的,极大地激发我学习单片机的兴趣,并锻炼了我解决问题,分析问题的能力,也正是此次设计,让我发现了自己学习中的不足,编程过程中,一句有错误,就不可能得到正确的结果,需要联系上下反复琢磨和修正,直到编译没有错误为止。还有,硬件连接必须和软件设计结合在一起,由于硬件实验室设施的有限,此次课题遇到了点儿困难,但是通过学习和努力,我们克服了难题。此次单片机设计真是受益匪浅。日期: 2007年 12 月 28 日