版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子琴实验报告电子琴实验报告一,实验目的1.学习使用AT89S52单片机的功能,进行单片机编程,实现键盘演奏音乐的功能,进一步加深对于单片机功能实现过程的理解,强化单片机编程的能力。2.设计实现各种功能,包括对音乐的录音以及回访放能,要求能实现各种不同音调,在编程过程中必须考虑到各种细节,例如按键的干扰问题以及滞键。二,实验要求基本要求:1:能够通过键盘演奏音符。2:能够保存演奏的音乐,并实现回放。3:有音调调整功能(如:C调,G调)。4:自由发挥其他功能.5:要求有单片机硬件系统框图,电路原理图,软件流程图。三,实验基本原理在单片机的设计中,电子琴是一个典型的例子,电子琴的实现需要用到单片机AT89S52、蜂鸣器等模块。而在本次的实验中,我们利用简单的模块,实现了一个简单的电子琴功能,使用单片机可以驱动蜂鸣器发出声音,还可以里面,我们只需要给蜂鸣器输入因此,我们只需要弄明白音阶对应的脉冲就中,每个按键对应不同的音阶,按键按下的时候,单片机程一次程序判断是否有前一次的按键被按下,按键按下以后会控制单片机对蜂鸣器输出是有不同的音阶构成,从而就实控制其发出不同的音调,在一首歌曲里面,不同的音阶对应着不同的频率,在蜂鸣器的发音原理不同的脉冲,蜂鸣器就会发出对应的声音,可以了。在键盘控制序里面都会执行不同频率的方波,每种情况对应不同的音阶或者音调。一首歌曲就现了电子琴的功能。四,实验设计分析针对要实现的功能,采用AT89S52单片机进行设计,AT89S52单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储1电子琴实验报告器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。在设计程序的时候,分析道电子的功能有三个模块构成,分别是单片机本身,键盘按键输入和蜂鸣器的功能响应。首先应该把程序分开成三个主要部分,分别为按键输入程序、高低音的发生程序和主程序。需要注意的是设计程序的时候,需要把各个程序兼容起来,综合匹配的时候,还要注意各种单片机编程的小细节。在进行编程之前,需要安装各种必须的软件,包括编程用的ukeil软件、模程拟序运行要的是电脑必须安装正确的单片机驱动程序。硬件部分需要我们学生制,在焊制的时候一定要保证原件的完好连接,从而保证在运行程序的过程中不会出现硬件问题的影响。编程之前,需要先学习理解C语言编程的方法,再根据设计的硬件电路进行分块的编程调试,最终完的Progisp软件,最重自己动手焊成程序设计。五,实验要求实现A.电路设计1.整体设计此次设计主要是应用用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路电路的总体设计框架如下:蜂鸣器AT89S52单片机行列键盘2电子琴实验报告B.程序总体设计本实验用汇编程序完成.程序总的流程图如下:主程序开始判断是否有键按下是按按按按按按按按按按12345678911变调响响响响响响响发出录自带音声音DoReiMiFaSuoLaXi回主程序回主程序按1按2按3按4按5按6按7记录记录记录记录记录记录记录DoReiMiFaSuoLaXi回主程序3电子琴实验报告结合电路图,程序设计的整体思路为:接通电源,执行程序,在程序至此那个过程中各个按键代表不同的功能,下面是不同状态下各个按键的实现目标方式:在程序执行开始时,先判断之前是否有按键按下,若之前没有按键按下:按1键--蜂鸣器发出Do的声音;按2键--蜂鸣器发出Rei的声音;按3键--蜂鸣器发出Mi的声音;按4键--蜂鸣器发出Fa的声音;按5键--蜂鸣器发出Suo的声音;按6键--蜂鸣器发出La的声音;按7键--蜂鸣器发出Xi的声音;按8键--蜂鸣器发出程序里本来自带的的声音;按9键--系统执行录音功能,开始录音;按10键--蜂鸣器发出录音功能执行时所录下的声音;按11键—系统进入调音的功能,改变输出声音的音调。盘里的1——7键的其中一个,回放录音的10键的以后,系重新播放出来。在执行录音功能的时候,当你按下录音键以后,每按下键系统就会以数组的形式记录下这一按键代表的数字,在你按下统就会从数组里一次取出值,把录下的声音B.2.3主程序//按键1-7分别代表"DO"~"XI",第八个键保存一首歌曲,第九个键控制录音开始和停止,第十个键播放录音,第十一个键调节音调#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintuchari,j,x=0,y=0,k,u=0,temp=0;ucharm[100];sbitsound=P0^1;voidkeyscan();voidmusicH(uchar);voidmusicL(uchar);ucharcodec[]={3,3,4,5,5,4,3,2,1,1,2,3,3,2,2,0,3,3,4,5,5,4,3,2,1,1,2,3,2,1,1,0,2,2,3,1,2,3,4,3,1,2,4电子琴实验报告3,4,3,1,1,2,5,0,3,3,4,5,5,4,3,2,1,1,2,3,2,1,1};voiddelay(uinta){while(a--);}voidmain(){while(1){sound=1;keyscan();}}voidkeyscan(){unsignedcharX,Y,Z;P3=0x0f;if(P3!=0x0f)//判断是否有键按下{delay(10);//延时,软件去干扰if(P3!=0x0f)//确认按键按下{X=P3;//保存行扫描时有键按下时状态P3=0xf0;Y=P3;Z=X|Y;switch(Z){case0xee:if(u==0)musicL(1);else5电子琴实验报告musicH(1);if(y==1){m[x]=1;x++;}break;case0xed:if(u==0)musicL(2);elsemusicH(2);if(y==1){m[x]=2;x++;}break;case0xeb:if(u==0)musicL(3);elsemusicH(3);if(y==1){m[x]=3;x++;}break;case0xe7:if(u==0)musicL(4);elsemusicH(4);if(y==1){m[x]=4;x++;}break;case0xde:if(u==0)musicL(5);elsemusicH(5);if(y==1){m[x]=5;x++;}break;case0xdd:if(u==0)musicL(6);elsemusicH(6);if(y==1){m[x]=6;x++;}break;case0xdb:if(u==0)musicL(7);elsemusicH(7);if(y==1){m[x]=7;x++;}break;case0xd7:for(j=0;j<66;j++){musicL(c[j]);sound=1;delay(6000);}//播放break;case0xbe:if(y==0){y=1;x=0;}else{y=0;}//准备录音break;case0xbd:for(j=0;j<(x+1);j++){musicL(m[j]);sound=1;delay(6000);}//播放录音break;case0xbb:if(temp==0){u=1;temp++;}else{u=0;temp=0;}//调音break;6电子琴实验报告}}}}voidmusicL(ucharb)//低音{switch(b){case1:for(i=0;i<66;i++){sound=1;delay(140);sound=0;delay(140);}break;case2:for(i=0;i<74;i++){sound=1;delay(123);sound=0;delay(123);}break;case3:for(i=0;i<82;i++){sound=1;delay(111);sound=0;delay(111);}break;case4:for(i=0;i<88;i++){sound=1;delay(103);sound=0;delay(103);}break;case5:for(i=0;i<99;i++){sound=1;delay(92);sound=0;delay(92);}break;case6:for(i=0;i<110;i++){sound=1;delay(83);sound=0;delay(83);}break;case7:for(i=0;i<122;i++){sound=1;delay(74);sound=0;delay(75);}break;}}voidmusicH(ucharb)//高音{switch(b){7电子琴实验报告case1:for(i=0;i<131;i++){sound=1;delay(68);sound=0;delay(68);}break;case2:for(i=0;i<147;i++){sound=1;delay(61);sound=0;delay(61);}break;case3:for(i=0;i<165;i++){sound=1;delay(54);sound=0;delay(54);}break;case4:for(i=0;i<175;i++){sound=1;delay(51);sound=0;delay(51);}break;case5:for(i=0;i<196;i++){sound=1;delay(45);sound=0;delay(45);}break;case6:for(i=0;i<220;i++){sound=1;delay(40);sound=0;delay(40);}break;case7:for(i=0;i<245;i++){sound=1;delay(35);sound=0;delay(35);}break;}}C.程序调试及仿真本程序通过Keil单片机开发平台实现程序的编译,链接,生成HEX文件。程序再编译过程中可以发现错位,并及时改正,在设计时非常重要,使错误被扼杀在摇篮中。通过Keil和硬件仿真平台的的改变设计,优化程序。Proteus的联合,可以将设计效果仿真出来,根据效果,有目c.1利用Keil软件实验过程截图:8五.实验总结及感想在这个小学期中,我们进行了一系列的创新训练,其中就包括这个电子琴的设计。刚开9电子琴实验报告始的时候,我们所有人都只是门外汉,面对着这一堆从来没有面对过的题目,都是不知所措,心理面一点底都没有。只知道我们只有将近一个月的时间去完成所有的设计,最困难的是我们以前根本就没有学习过单片机编程。所谓动力的来源就是压力,面对着这巨大的压力,我们一组13个人开始了紧张的学习工作。在组长的带领下,我们首先开始了对单片机编程的学习,学习怎么使用ukeil软件编程。对于这个编程软件,我们都是一无所知,只能慢慢的摸索着前进。另外,我们也开始了解AT89S52单片机的各种功能,了解到单片机有诸如定时器/计时器、控制四个不同管脚的输出模块,例如4X4键盘、跑马灯、并行数码管和蜂鸣器等。同组合能够实现各种功能,例如十字交通灯、计算器、电子琴等等。经过了十多天的自主学习有还参加各种讲座,我们对这终于有了一定的认识了,开始走上了程序员的道路。等功能。跟它配套的有还各个功能每个模块的不在编程的过程中,遇到了1,在执行程序时,按下键盘里的时候,往往得不到想要的声音,每次按下去以至于根本就听不清按下的效果到底是一次还是多次,开始一直以为是蜂鸣硬件问题,就没有去可是换了多个蜂鸣后,情况并没有改善,开始怀疑是不是程序的问题。后来通过小组成员之间的讨论得知,是由于按键的滞键问题,每次按下去以后,按键在弹回来的过程中会出现多接触的情况,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浅谈我国精密仪器与装备的现状和发展
- 肠道微生态行业发展趋势
- 石河子大学《医药数理统计》2022-2023学年第一学期期末试卷
- 石河子大学《试验设计与数据分析》2023-2024学年第一学期期末试卷
- 石河子大学《解析几何》2021-2022学年第一学期期末试卷
- 石河子大学《健康评估》2022-2023学年第一学期期末试卷
- 石河子大学《阿拉伯国家历史与文化常识》2023-2024学年第一学期期末试卷
- 沈阳理工大学《室外空间设计方法》2022-2023学年第一学期期末试卷
- 沈阳理工大学《矩阵分析》2021-2022学年第一学期期末试卷
- 父亲的病阅读题
- 珠宝销货登记表Excel模板
- 深基坑开挖施工风险源辨识与评价及应对措施
- 唯美手绘风花艺插花基础培训PPT模板课件
- 《现代汉语语法》PPT课件(完整版)
- 5G智慧农业建设方案
- 航海学天文定位第四篇天文航海第1、2章
- 浙江大学学生社团手册(08)
- 水利水电工程专业毕业设计(共98页)
- 公司内部审批权限一览表
- 人教版统编高中语文“文学阅读与写作”学习任务群编写简介
- 六年级语文命题比赛一等奖作品
评论
0/150
提交评论