欢迎来到天天文库
浏览记录
ID:39896615
大小:652.00 KB
页数:13页
时间:2019-07-14
《电子琴实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、电子琴实验报告一,实验目的1.进一步巩固和加深理论课基本知识的理解,提高综合运用所学知识的能力。2.能根据需要选择参考书,查阅资料,通过独立思考,深入钻研有关问题。3.学会自己独立分析问题、解决问题。4.学习按键扫描及蜂鸣器应用和单片机设计方法。5.设计任务及要求利用实验平台上矩阵键盘和蜂鸣器及单片机设计实现要求的电子琴。二,实验要求A.基本要求:1:能够通过键盘演奏音符。2:能够保存演奏的音乐,并实现回放。3:有音调调整功能(如:C调,G调)。三,实验基本原理1.键盘接口必须具有去抖动、按键识别基本
2、功能。(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。(2)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛
3、使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。2.利用键盘扫描原理分别设4×4矩阵键盘组成1—7数字键演奏音符,蜂鸣器发声,高电平发声,低电平不发声,并通过延迟程序控制输入的频率,不同的频率发出不同的音符,四,实验设计分析针对要实现的功能,采用AT89S52单片机进行设计,AT89S52单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术
4、制造,兼容标准MCS-52指令系统及80C52引脚结构。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为键盘演奏程序、音乐播放程序、音调调整程序,保存音乐程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依
5、据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确
6、的设计基础上,添加额外的功能!五,实验要求实现A.电路设计1.整体设计复位电路按键控制模块键盘弹奏按键发声蜂鸣器单片机模块AT89S52录音键播放键音乐播放蜂鸣器2.分块设计模块电路主要分为:键盘输入部分、播放部分、复位电路。2.1键盘输入模块键盘接入单片机P3接口,2.2播放模块播放模块是蜂鸣器构成。蜂鸣器是一种一体化结构的电子讯响器,采用直流图2-3发声模块电路图电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂
7、鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。2.3复位电路AT89S52复位模块AT89S52晶振模块各模块拼接组合,电路总体设计图如下:B.程序设计B.1程序总体设计本实验用C程序完成.流程图如下:主程序开始程序初始化开始键蜂鸣器发声开始演奏录音键播放键音乐播放NNYYN结合电路图,程序设计的整体思路为:电子琴按键方式:1.按1键——发声音符为‘1’。2.按2键——发声音符为‘
8、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#defineucharunsignedchar#defineuintunsignedintuchari,j,x=0,y=
此文档下载收益归作者所有