课程设计报告-电子琴

课程设计报告-电子琴

ID:47383606

大小:307.93 KB

页数:14页

时间:2019-07-14

课程设计报告-电子琴_第1页
课程设计报告-电子琴_第2页
课程设计报告-电子琴_第3页
课程设计报告-电子琴_第4页
课程设计报告-电子琴_第5页
资源描述:

《课程设计报告-电子琴》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、合肥工业大学计算机学院创新设计报告设计题目:电子琴音乐发生器专业:电子信息科学与技术班级:10-01班组长:副组长:组员:2012年6月18日—2012年7月15日摘要:本系统采用Atmel89s52单片机控制,主要利用了键盘矩阵模块和蜂鸣器模块来对电子琴进行设计,通过键盘扫描程序的识别,使用单片机的定时/计数器延时。可以大致准确的来发出所需的音调(即1,2,3,4,5,6,7这7个音符)。关键字:Atmel89s52,键盘扫描,定时器设计题目及要求:1:能够通过键盘演奏音符。2:能够保存演奏的音乐,并实现回放。3:有音调调整功能(如:C调,G调)。4:可以自由选

2、择高音、中音、低音。5:要求有单片机硬件系统框图,电路原理图,软件流程图。一、系统方案:总体方案的方框图如下:定时器控制TH0与TL0蜂鸣器频率选择声调选择键盘扫描Atmel89S52控制模块二、单元电路:1.电路原理图:Proteus软件制作的原理图矩阵键盘原理图:单片机最小系统原理图:三、控制算法:对于电子琴来说,其主要原理是利用单片机某个口线不断的输出“高”“低”电平,则在该口在线就能产生一定频率的方波,将该方波接上喇叭就能发出一定频率的声音,若再利用过程控制“高”“低”电平的持续时间,就能改变输出波形的频率,从而改变音调。对于AT89C2051单片机来说要

3、产生一定频率的方波大致是先将某口线输出高电平然后延时一段时间再输出低电平,如此循环的输出就会产生一定频率的方波,通过改变延时的时间就可以改变输出方波的频率,而单片机延时主要有两种方法:1.使用循环语句来实现延时,让单片机循环的执行某条指令然后根据单片机每条指令运行的时间以及循环的次数来计算延时时间。2.使用单片机的定时/计数器延时。AT89S52单片机内部有两个16位的定时/计数器T0和T1,当对单片机的内部晶振驱动时钟计数时,每个机器周期定时/计数器的计数值就加1,当计数值达到计数最大值时计数完毕并通知单片机的CPU;对外部输入的时钟信号计数时,外部时钟的每个时

4、钟上升沿定时/计数器的计数值就加1,当计数值达到计数最大值时计数完毕并通知单片机的CPU。因此,如果知道单片机的机器周期或者外部输入时钟信号的周期,单片机就可以根据定时器的计数值计算出定时的时间。本实验采用第二种方式:计数初值的计算方法:用最大计数量减去需要的计数次数即可。例:如果T0运行于定时状态,单片机的晶振是12MHz,要求定时lOOus,那么定时器要计100个机器周期,当TO工作在工作方式O时计数初值应该是8192—100=8092;工作在方式1时的计数初值应该是65536-100=65436;工作在方式2,3时的计数初值应该是256—100=156。当然

5、,此次实验使用的是T1工作方式。设音符的频率为f,则计数初值=65336一各个音符的周期=65536-四、软件控制程序流程图:开始T0初始化并开中断允许放T0中断按键按下成功否?N按键释放成功否?启动T1工作根据按键功能,装入音符初始值到T1中识别按键功能YN停止T1工作附录:1.参考文献:[1]大学生电子实验室WWW.CEET.HBNU.EDU.CN/BBS/[2]电子工程世界WWW.EEWORLD.COM[3]元器件交易网WWW.CECB2B.COM[4]中国知网WWW.CNKI.COM.CN程序代码:/****************************

6、**********************共有7种音符有三种音调可选择C调1234567(doraimifasolaxi)g调1234567(fasolaxidoraimi)5=1,6=2,7=3,1=4,2=5,3=6,4=7可保存音乐**************************************************/#include#defineuintunsignedint#defineucharunsignedcharuintcodetable2[]={//G音0,65178,65217,65252,65283,650

7、58,65110,65157};uintcodetable3[]={//C调0,65058,65110,65157,65178,65217,65252,65283};uinttable[12]={0};sbitbeep=P2^3;uintnum,CTH0,CTL0,i,j,m;uchartemp,flag;voiddelay(uint);voidkeyscan();voidplay(uint);voidinit();voidreplay();voidmain(){init();while(1){keyscan();}}voiddelay(uintz){uinta;

8、uchar

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。