




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子琴实验报告一, 实验目的1.进一步巩固和加深理论课基本知识的理解,提高综合运用所学知识的能力。 2.能根据需要选择参考书,查阅资料,通过独立思考,深入钻研有关问题。3.学会自己独立分析问题、解决问题。4.学习按键扫描及蜂鸣器应用和单片机设计方法。5. 设计任务及要求 利用实验平台上矩阵键盘和蜂鸣器及单片机设计实现要求的电子琴。二,实验要求 A.基本要求:1:能够通过键盘演奏音符。2:能够保存演奏的音乐,并实现回放。3:有音调调整功能(如:C调,G调)。三,实验基本原理1.键盘接口必须具有去抖动、按键识别基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。 2. 利用键盘扫描原理分别设44矩阵键盘组成17数字键演奏音符,蜂鸣器发声,高电平发声,低电平不发声,并通过延迟程序控制输入的频率,不同的频率发出不同的音符,四,实验设计分析针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 52指令系统及80C52引脚结构。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为键盘演奏程序、音乐播放程序、音调调整程序,保存音乐程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!五,实验要求实现A.电路设计1. 整体设计 复位电路 按键控制模块 键盘弹奏按键发声 蜂鸣器单片机模块 AT89S52录音键 播放键 音乐播放 蜂鸣器2. 分块设计模块电路主要分为:键盘输入部分、播放部分、复位电路。2.1键盘输入模块键盘接入单片机P3接口,2.2播放模块播放模块是蜂鸣器构成。蜂鸣器是一种一体化结构的电子讯响器,采用直流图2-3 发声模块电路图电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。2.3 复位电路AT89S52复位模块 AT89S52晶振模块各模块拼接组合,电路总体设计图如下:B.程序设计B.1 程序总体设计本实验用C程序完成.流程图如下:主程序开始程序初始化开始键蜂鸣器发声开始演奏录音键播放键音乐播放NNYYN结合电路图,程序设计的整体思路为:电子琴按键方式:1. 按1键发声音符为1。2. 按2键发声音符为2。3. 按3键发声音符为3。4. 按4键发声音符为4。5. 按5键发声音符为5。6. 按6键发声音符为6。 7. 按7键发声音符为7。8. 按8键播放保存的音乐。9. 按9键开始录音。10. 按10键播放录音。11. 按11键调整音调。B.2 程序主要模块主程序:#include#define uchar unsigned char#define uint unsigned intuchar i,j,x=0,y=0,temp=0,u=0; uchar code c=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,3,4,3,1,1,2,5,0,3,3,4,5,5,4,3,2,1,1,2,3,2,1,1;uchar m100;void delay(uint a)while(a-);void music(uchar b)switch(b)case(1):for(i=0;i66;i+)P2=0xff;delay(140);P2=0x00;delay(140);break;case(2):for(i=0;i74;i+)P2=0xff;delay(123);P2=0x00;delay(123);break;case(3):for(i=0;i82;i+)P2=0xff;delay(111);P2=0x00;delay(111);break;case(4):for(i=0;i88;i+)P2=0xff;delay(103);P2=0x00;delay(103);break;case(5):for(i=0;i99;i+)P2=0xff;delay(92);P2=0x00;delay(92);break;case(6):for(i=0;i110;i+)P2=0xff;delay(83);P2=0x00;delay(83);break;case(7):for(i=0;i122;i+)P2=0xff;delay(74);P2=0x00;delay(75);break;void musicH(uchar b)switch(b)case(1):for(i=0;i131;i+)P2=0xff;delay(68);P2=0x00;delay(68);break;case(2):for(i=0;i147;i+)P2=0xff;delay(61);P2=0x00;delay(61);break;case(3):for(i=0;i165;i+)P2=0xff;delay(54);P2=0x00;delay(54);break;case(4):for(i=0;i175;i+)P2=0xff;delay(51);P2=0x00;delay(51);break;case(5):for(i=0;i196;i+)P2=0xff;delay(45);P2=0x00;delay(45);break;case(6):for(i=0;i220;i+)P2=0xff;delay(40);P2=0x00;delay(40);break;case(7):for(i=0;i245;i+)P2=0xff;delay(35);P2=0x00;delay(35);break;void scan() P3=0x0f; if(P3=0x0e)P3=0xf0;switch(P3)case(0x70):if(u=0)music(1); else musicH(1);if(y=1)mx=1;x+;break;case(0xb0):if(u=0)music(2); else musicH(2);if(y=1)mx=2;x+;break;case(0xd0):if(u=0)music(3); else musicH(3);if(y=1)mx=3;x+;break;case(0xe0):if(u=0)music(4); else musicH(4);if(y=1)mx=4;x+;break;else if(P3=0x0d)P3=0xf0;switch(P3)case(0x70):if(u=0)music(5); else musicH(5);if(y=1)mx=5;x+;break;case(0xb0):if(u=0)music(6); else musicH(6);if(y=1)mx=6;x+;break;case(0xd0):if(u=0)music(7); else musicH(7);if(y=1)mx=7;x+;break;case(0xe0):for(j=0;j66;j+)music(cj);P2=0xff;delay(6000);break;/保存一首歌else if(P3=0x0b)P3=0xf0;switch(P3)case(0x70):if(y=0)y=1;x=0;music(1);else y=0;music(1);break;/录音开始和停止case(0xb0):for(j=0;j(x+1);j+)music(mj);P2=0xff;delay(6000);break;/播放录音case(0xd0):if(temp=0)u=1;temp+; else u=0;temp=0;break;/调节音调 void main()while(1)P2=0xff;scan();C. 程序调试及仿真本程序通过Keil单片机开发平台实现程序的编译,链接,生成HEX文件。程序再编译过程中可以发现错位,并及时改正,在设计时非常重要,使错误被扼杀在摇篮中。通过Keil和硬件仿真平台Proteus的联合,可以将设计效果仿真出来,根据效果,有目的的改变设计,优化程序。c.1 利用Keil软件实验过程截图:1,建一个工程,并设定与Proteus仿真相关的参数2,编译程序,并生成HEX文件c.2利用Proteus仿真实验过程截图:五.实验总结及感想本次实验制作简易电子琴,虽然花费了我们很多精力,但收获颇丰,一方面,将自己的理论知识与实践相结合起来,进一步巩固了专业基础知识和相关专业课程知识;另一方面,也培养了自己独立自主、综合分析的思维与创新能力,更让我知道了团队的力量是巨大的。 实验中将程序烧入芯片,调试成功后,可任意弹奏自己想要的旋律。本研究通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模块来确知自己所弹的音符。思考:可弹奏的音符数较少,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其复杂度。音色不可调,只有一种波形的频率输出。可以在外围电路设计滤波电路,接在不同的输出口,通过软件实现不同端口的输出,从而接入不同的滤波电路,输出不同的波形,从而获得不一样的音色。不能以和弦形式演奏,只能单个键按下输出单个的音阶。设计的过程不是一帆风顺,遇到过各种各样的问题。特别是设计软件时,一些很细小的问题都可能导致功能性的错误,修改了多次才通过仿真。在设计过程中我发现自己对以前所学过的知识理解得不够深刻,掌握得不够牢固,所以也利用图书馆、网络资源查阅了大量文献资料,也请教了老师和同学。同时在具体的制作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级化学上册 第1单元《课题1 物质的变化和性质》教学设计 (新版)新人教版
- 五年级信息技术上册 孙悟空变变变教学设计 冀教版
- 上册教案(教案)-2024-2025学年三年级上册劳动浙教版
- 人教部编版九年级下册12 词四首综合与测试教学设计
- 初中主题班会“文明礼仪伴我行”教学设计
- 防性侵安全教育主题
- 五年级品德与社会上册 请你相信我 1教学设计 人教新课标版
- 财务咨询公司业务培训
- 2024中铝智能科技发展有限公司面向社会公开招聘5人(第十五批)笔试参考题库附带答案详解
- 2024中铁大桥局集团武汉置业发展有限公司春季校园招聘笔试参考题库附带答案详解
- 人防工程施工常见质量问题及质量通病案例
- 好书推荐——《青铜葵花》PPT课件
- 景区防火应急预案
- 压疮的预防措施及护理
- 国家开放大学《病理生理学》形考任务1-4参考答案
- lNG-CNG加气站土建施工组织设计
- 诊断试验和筛检试验的评价
- (修正版)压实度自动计算表
- 平凡之路歌词
- 气柜施工方案
- 《膀胱结石的护理》PPT课件.ppt
评论
0/150
提交评论