基于STC89C52单片机的简易电子琴设计院系:通信与信息工程系班级:电子信息1班姓名:沈加龙学号:14080119设计方案:目录:1、首先将介绍基于单片机电子琴硬件组成。2、分析电路原理图3、元器件作用的简单介绍4、软件设计5、硬件及软件的调试6、总结多音阶电子琴的主要电路主要由4X4按键矩阵电路、功率放大电路、扬声器、复位电路、晶振电路、电源电路几部分组成。电子琴硬件电路部分设计系统硬件原理图STC89C52单片机及其引脚的简单说明STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。管脚说明VCC:供电电压GND:接地P0口:P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。系统实现原理主要分成两部分:(1)4X4行列式键盘识别;键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均有软件完成。每个按键有它的行列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需要变成数字量0和1,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字0实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。在两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同行成键编码而识别按键,通过软件查表,查处该案件的功能。2)音乐产生的方法:一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来说产生不同的频率非常方便,我们可以利用单片机的定时计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。硬件调试硬件的调试主要是把电路各种参数调整到符合设计要求。具体步骤如下:(1)先排除硬件电路故障,包括设计性错误和工艺性故障。一般原则是先静态后动态。(2)利用万用表,检查电路中的各器件以及引脚是否连接正确,是否有短路故障。(3)先要将单片机STC89C52芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压。软件调试软件调试是利用仿真工具进行在线仿真调试。我们用Keil软件编写需要的单片机程序,通过Proteus的仿真,验证电路功能,除发现和解决程序错误外也可以发现硬件故障。单片机STC89C52是系统的核心,利用万用表检测单片机电源VCC是否为(40脚)+5V、晶振是否正常工作(可用示波器测试,用万用表检测时,两引脚一般为1.8~2.3V之间),检查无误后单片机就能正常工作了。心得体会在这短暂而又充实的几周电子设计过程中,我感到平时我们学习的理论知识,一旦应用到实际,才发现自己的不足。这次我们主要的设计是一个简易型的电子琴,采用16个按键分别代表16个音,通过对按键的随意按击从而产生不同的音乐,主要是通过每个按键所产生的频率不同来使得发出的各个音不同,从而产生音乐,虽然显得很单一,但是至少我们学会了如何焊接。根据赵文深老师给我们的焊接原理图,并针对这个设计的原理和程序进行编写。虽然我们现在并不能完全创新,程序也很长,我们也不可能完全靠自己编出来,但是我们以弄懂原理为基础,根据每个程序的功能各不相同来使程序简化。在此过程中,我们不仅对学过知识进行了巩固,也学会了把理论运用到实际中去的能力。结束语在此期间,我所收获的不仅是学习知识方面,更多的是生活方面。在生活中,我们应该学会与别人分享,分享知识;分享快乐;分享“问题”,这样有助于我们的交流和共同进步。俗话说读万卷书不如行万里路。整个过程我也犯了一些低级的错误,但是很快我们从错误中走出来,并开辟出一条清晰的道路,获益匪浅。