基于单片机的电子琴课程设计.doc





《基于单片机的电子琴课程设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子琴课程设计.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本科课程设计课程名称: 单片机原理与接口技术 设计项目: 简易电子琴设计 实验地点: 跨越机房 专业班级:通信0901 学号: 学生姓名: 田 野 同组人: 李刚瑛 梁邦爽 指导教师: 武 娟 萍 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、使扬声器发出声音,因此若以程序不断的输出10101就可以令扬声器发出声音,由于MCS51系列的输出端口输出电流不够大,所以必须加上晶体管把电流放大后再驱动扬声器,如图2所示。图6则是产生声音的基本流程图,只要改变半周期t的时间,即可改变输出频率。开始P3.7=0延时tP3.7=1延时t图6 产生声音的基本流程图2决定程序中参数的方法:C调各音阶的参数及代码如表1所示,根据此表中的频率可计算出程序中所需的延时参数,现在以中音DO说明如下:表1 C调各音阶的参数及代码音阶DOREMIFASOLASI音符高音1高音2高音3高音4高音5高音6高音7频率/HZ522587659700780880988延
5、时参数63565047423733音长参数6573828898110124音阶代码21222324252627音符中音1中音2中音3中音4中音5中音6中音7频率/HZ262294330349392440494延时参数12611310095857567音长参数33374144495562音阶代码11121314151617音符低音1低音2低音3低音4低音5低音6低音7频率/HZ131147165175196220247延时参数254226201190170150134音长参数16182122252831音阶代码01020304050607特殊功能休止符重复演奏停止演奏简谱0音阶代码0040255
6、(1) DO的频率为262HZ,所以周期T=1/f=1/262s=3816s半周期t=T/2=1908s(2) 若以程序:MOV R6,#DATA ;1周ACALL DELAY ;2周共需耗时3个机器周期,即耗时1s3=3sDELAY:MOV B,R6 ;2周需耗时2个机器周期,即耗时1s2=2sDL:MOV R7,#6 ;1周DJNZ R7,$ ;2周DJNZ R6,DL ;2周此循环部分,每执行一次共需耗时15个机器周期,即耗时1s15=15sMOV R6,B ;2周 RET ;2周共需耗时4机器周期,即耗时1s4=4s来达成延时t的目的,则因t=1908s,且MOV R6,#DATAAC
7、ALL DELAYMOV B,R6MOV R6,B RET 这5个指令共耗时9s,所以在DELAY子程序中,循环的部分只能是:1908s-9s=1899s(3) 循环的部分每执行一次耗时15s,故要延时1899s需要执行126次,即R6=126就可产生所需DO音调。其他音调所需的R6值,算法相同。(4)实际上,做电子琴时,程序必须不断地判断是哪一个键被按下,所以程序中还有其他的指令在消耗时间。因此实际采用的R6的值应该比上述计算值少一点点,音阶才会正确。但是要把R6的值计算很准确,实在很费时间,况且判断按键的状态所耗时间与周期T比起来实在微不足道,所以在设计程序时只采用上述计算方法计算R6的值
8、即可,程序在判断是哪个键被按下所耗费的时间可忽略不计。3.音乐产生的原理:由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的延时时间产生这样的方波频率信号。除了音符以外,节拍也是音乐的关键组成部分,节拍实际上就是音持续时间的长短,在单片机系统中可以用延时时间的长短来实现,如果1/4拍的延时时间是0.4秒,则1拍的延时时间就是1.6秒,只要知道1/4拍的延时时间,其余的节拍就是它的倍数。如果单片机要自己播放音乐,那么就必须在程序中考虑到节拍的设置。为了编写计算机
9、乐谱的方便,所以我们自己定义了音阶代码,例如用01代表低音DO,用11代表中音DO,用21代表高音DO,如表1所列。另外,我们用40代表重复演奏,用255代表停止演奏。在程序中编写计算机乐谱时,就是用这些音阶代码来代替各音阶。音阶代码可岁曲子的节奏快慢有自己决定,例如1拍定位04(就是音长的4倍),半拍就是02,2拍就是08,以此类推。各音拍的音拍代码如表2所列。表2 各音拍的音拍代码音拍1/4拍1/2拍3/4拍1拍1 1/4拍1 1/2拍1 3/4拍2拍音拍代码0102030405060708音拍2 1/4拍2 1/2拍2 3/4拍3拍3 1/4拍3 1/2拍3 3/4拍4拍音拍代码0910
10、111213141516音拍4 1/4拍4 1/2拍4 3/4拍5拍5 1/4拍5 1/2拍5 3/4拍6拍音拍代码1718192021222324把乐谱改编为程序中的计算机乐谱时,必须按照“音阶代码在前,音拍代码在后”的规则排列,乐谱结束时,必须以40(表示重复演奏)或255(表示只演奏一遍就停止)作结尾。4程序流程图:开始是音符键按下吗是功能键按下吗?否设定相应的延时参数R6的值令扬声器通电延时半周期令扬声器断电延时半周期DPTR指向乐谱的开头读取音乐代码,并存入A中音节代码等于40吗音节代码等255吗把DPTR加1读取音拍代码,并存入R4中设定与A内音阶代码相对应的参数发出R4个音长的声
11、音静音把DPTR加1停止播放是否是否否是是5程序:ORG 0000HMOV P2,#B MOV P3,#BTEST:JNB P2.0,DO1 ;P2.0 = 0吗? JNB P2.1,RE1 ;P2.1 = 0吗? JNB P2.2,MI1 ;P2.2 = 0吗? JNB P2.3,FA1 ;P2.3 = 0吗? JNB P2.4,SO1 ;P2.4 = 0吗? JNB P2.5,LA1 ;P2.5 = 0吗? JNB P2.6,SI1 ;P2.6 = 0吗? JNB P2.7,DOH1 ;P2.7 = 0吗? JNB P3.0,START ;P3.0 = 0吗? AJMP TESTDO1:M
12、OV R6,#126 AJMP OUTPUT1RE1:MOV R6,#113 AJMP OUTPUT1MI1:MOV R6,#100 AJMP OUTPUT1FA1:MOV R6,#95 AJMP OUTPUT1SO1:MOV R6,#85 AJMP OUTPUT1LA1:MOV R6,#75 AJMP OUTPUT1SI1:MOV R6,#67 AJMP OUTPUT1DOH1:MOV R6,#63AJMP OUTPUT1OUTPUT1:CLR P3.7 ;令扬声器通电 ACALL DELAY ;延时半周期t SETB P3.7 ;令扬声器断电 ACALL DELAY ;延时半周期t AJM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子琴 课程设计

限制150内