欢迎来到天天文库
浏览记录
ID:20031984
大小:332.00 KB
页数:13页
时间:2018-10-09
《基于单片机的电子琴课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本科课程设计课程名称:单片机原理与接口技术设计项目:简易电子琴设计实验地点:跨越机房专业班级:通信0901学号:2009001330学生姓名:田野同组人:李刚瑛梁邦爽指导教师:武娟萍2012年05月26日一、设计目的本设计以AT89C51单片机为核心,采用常用电子器件设计。要求最少8个按键,每个按键对应一种音调,按下按键发声,松开按键后声音延迟一段时间后停止,即带余音的电子琴,延时时间可以设置,要求最少8个不同音调,可以采用标准的音调设计。本次课程设计主要研究基于AT89C51单片机的简易电子琴设计二、设计器材AT89C51,蜂鸣器,PNP型三极管,晶振,独立按键三、总
2、体设计方案1.设计思路此次设计硬件电路分四大模块较为简单,主要由独立按键、单片机AT89C51、音频功放及扬声器构成。以AT89C51为主控器件,对其进行编译,达到我们的设计要求。对于软件部分下面有详细介绍。2.电路总设计框图如图1:单片机AT89C51按键功率放大电路扬声器图1电路总设计框图3.音频放大电路在一定频率范围内,具有固定频率的振动就能产生音乐,但是单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为他没有足够的驱动能力,需要音频功率放大电路。这里选用PNP型三极管来驱动蜂鸣器,是音响效果更为理想,音频功放电路接口如图2所示:图2音频放大电路4.
3、音乐播放电路对于播放一首固定音乐,不仅要知道音符也要知道节拍,对应节拍延时时间设定表,对单片机进行编程就可以实现功能。放歌产生电路如图3,其中单片机的P3.0口控制音乐开始播放控制端口,P3.2口是控制音乐停止播放的控制端口,当小按键S10按下时P3.0口获得低电平,音乐开始重复播放,当小按键S9按下时,P3.2口获得低电平,经过单片机的处理,音乐停止播放,单片机回到最初工作状态。而P2口的每个端口都连接一个按键,分别控制1,2,3,4,5,6,7,˙1八个不同的音符。图3音乐播放电图5.总体电路图如下图:图4总体电路图,四、设计原理分析1.产生声音的方法:只要让扬声器
4、通过产生大小变化的电流(脉动电流或交流),就能使扬声器发出声音,因此若以程序不断的输出1—0—1—0—1……就可以令扬声器发出声音,由于MCS—51系列的输出端口输出电流不够大,所以必须加上晶体管把电流放大后再驱动扬声器,如图2所示。图6则是产生声音的基本流程图,只要改变半周期t的时间,即可改变输出频率。开始P3.7=0延时tP3.7=1延时t图6产生声音的基本流程图2.决定程序中参数的方法:C调各音阶的参数及代码如表1所示,根据此表中的频率可计算出程序中所需的延时参数,现在以中音DO说明如下:表1C调各音阶的参数及代码音阶DOREMIFASOLASI音符高音1高音2高
5、音3高音4高音5高音6高音7频率/HZ522587659700780880988延时参数63565047423733音长参数6573828898110124音阶代码21222324252627音符中音1中音2中音3中音4中音5中音6中音7频率/HZ262294330349392440494延时参数12611310095857567音长参数33374144495562音阶代码11121314151617音符低音1低音2低音3低音4低音5低音6低音7频率/HZ131147165175196220247延时参数254226201190170150134音长参数16182122
6、252831音阶代码01020304050607特殊功能休止符重复演奏停止演奏简谱0音阶代码0040255(1)DO的频率为262HZ,所以周期T=1/f=1/262s=3816μs半周期t=T/2=1908μs(2)若以程序:MOVR6,#DATA;1周ACALLDELAY;2周共需耗时3个机器周期,即耗时1μs×3=3μsDELAY:MOVB,R6;2周需耗时2个机器周期,即耗时1μs×2=2μsDL:MOVR7,#6;1周DJNZR7,$;2周DJNZR6,DL;2周此循环部分,每执行一次共需耗时15个机器周期,即耗时1μs×15=15μsMOVR6,B;2周RE
7、T;2周共需耗时4机器周期,即耗时1μs×4=4μs来达成延时t的目的,则因t=1908μs,且MOVR6,#DATAACALLDELAYMOVB,R6MOVR6,BRET这5个指令共耗时9μs,所以在DELAY子程序中,循环的部分只能是:1908μs-9μs=1899μs(3)循环的部分每执行一次耗时15μs,故要延时1899μs需要执行126次,即R6=126就可产生所需DO音调。其他音调所需的R6值,算法相同。(4)实际上,做电子琴时,程序必须不断地判断是哪一个键被按下,所以程序中还有其他的指令在消耗时间。因此实际采用的R6的值应该
此文档下载收益归作者所有