基于AT98C51的简易电子琴设计.doc_第1页
基于AT98C51的简易电子琴设计.doc_第2页
基于AT98C51的简易电子琴设计.doc_第3页
基于AT98C51的简易电子琴设计.doc_第4页
基于AT98C51的简易电子琴设计.doc_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于AT98C51的简易电子琴设计 基于AT98C51的简易电子琴设计Simply Electronic Organ Based on AT89C511 功能简介电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本简易电子琴的设计可实现的功能如下:程序中预存了一首音乐世上只有妈妈好,通过一个独立键盘可以实现对该音乐的播放和停止操作的控制。4*4矩阵键盘的16个按键分别对应着16个不同的音符,分为高、低两个八度,当按下某一按键,会发出相应的音调。按下按键时,扬声器会发出声音,松开按键后,扬声器停止发声,按键的时间越长,发声时间越久。连续按下不同的按键,可以实现乐曲的演奏。2 功能的实现功能的实现部分分为软件和硬件两部分来简介。2.1 软件部分程序主流程图如图2.4。2.1.1 音乐产生原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,只需将一首歌的音阶和频率相对应即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式(如式2-1所示)是: Nfi2fr 2-1式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下: T65536N65536fi2fr 2-2 例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。 T65536N65536fi2fr6553610000002fr65536500000/fr 低音DO的T65536500000/26263627 中音DO的T65536500000/52364580 高音DO的T65536500000/104665059我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据,音符表见附录一。 音乐的音拍,一个节拍为单位(C调)(如表2-1所示) 表2-1 曲调值表曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms 对于不同的曲调我们也可以用单片机的定时/计数器来完成。程序流程图如图2.1。2.1.2 矩阵键盘原理4*4矩阵键盘是由CPU控制I/O口来实现扫描的。具体程序见附录二主程序键盘扫描部分。键盘扫描程序流程图如图2.2。程序首先给P3口赋值,然后读取P3的状态,将读取的状态值同所赋值相比较,如果二者不相同,则说明有键按下,子程序将按键值返回主程序;否则,说明没有键按下,程序继续进行下一次扫描。图2.1 音乐发声程序流程图图2.2 键盘扫描程序流程图图2.3 程序主流程图2.2 硬件部分本设计使用Protues仿真软件进行仿真。电路共由以下几部分构成:矩阵键盘部分;扬声器部分;AT89c51主控电路部分;独立按键部分。主电路见图2.4。2.2.1 矩阵键盘部分设计中采用AT89S51的并行口P3接44矩阵键盘,以P3.0P3.3作输入线,以P3.4P3.7作输出线。每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能,在本程序中,当程序检测到有键按下时,将查表使按键值与预存数据表中数据对应,并调用发声程序。2.2.2 扬声器接口电路部分仿真中的扬声器一段接CPU的P24口,另一端接高电平。当P24口有电平变化时,扬声器被驱动发声。而在实物制作中,这样是难以实现功能的,需要增加模拟电路以除去多余的干扰信号。也可选用集成芯片LM386作为扬声器的驱动芯片。若使用LM386驱动扬声器,通过相应的模拟电路的设计,还可以实现音量的调节。图2.4 主电路Protues仿真图3 小结将程序烧入芯片,调试成功后,可任意弹奏自己想要的旋律。本设计通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模块来确知自己所弹的音符。 不足之处有: 1.可弹奏的音符数较少,只能在一定范围内满足需要。可通过改进键盘识别模块和发声模块来增加其复杂度。 2.音量不可调。可通过增加功放电路,使用LM386芯片来做扬声器的驱动芯片,并对该芯片进行一定得设置,即可实现音量的调节。3. 本设计还有可提高之处,可以在程序头处,设置一个空的数组,用来保存键盘输入的信息,当执行另外的播放程序时,可以将键盘读入的信息转换为相应的音符播放。参考文献:1 康年光.电子技术基础(数字部分).高等教育出版社.2005.07 2 刘乐喜.微机计算机接口技术及应用.华中科技大学出版社.2005.083 谢嘉奎.电子线路(线性部分).高等教育出版社.2004.044 潭浩强.C语言程序设计.清华大学出版社.2005.07 5 李群芳,肖看.单片机原理、接口及应用嵌入式系统技术基础.清华大学出版社.2005.03附录1 音符频率表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283 附录二 程序#include#define uchar unsigned char#define uint unsigned intuint key,i,j,time,m,k;uchar temp;uchar STH0,STL0,STH1,STL1;sbit sw=P27;sbit speaker=P24;sbit P37=P37;sbit P36=P36;sbit P35=P35;sbit P34=P34;/世上只有妈妈好数据表code unsigned char sszymmh= 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 ;/ 音阶频率表高八位code unsigned char FREQH= 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, /1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, ;/ 音阶频率表低八位code unsigned char FREQL= 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, /1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, ;unsigned int code tab=64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178;void key_music()P3=0xff;P34=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)for(i=50;i0;i-) for(j=200;j0;j-); temp=P3;temp=temp&0x0f;if(temp!=0x0f)temp=P3;temp=temp&0x0f;switch(temp)case 0x0e: key=0; break; case 0x0d: key=1; break; case 0x0b: key=2; break; case 0x07: key=3; break;speaker=speaker;STH1=tabkey/256;STL1=tabkey%256;TR0=1;temp=P3;temp=temp & 0x0f; while(temp!=0x0f) temp=P3; temp=temp & 0x0f; TR0=0;P3=0xff;P35=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)for(i=50;i0;i-) for(j=200;j0;j-); temp=P3;temp=temp&0x0f;if(temp!=0x0f)temp=P3;temp=temp&0x0f;switch(temp)case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=7; break;speaker=speaker;STH1=tabkey/256;STL1=tabkey%256;TR0=1;temp=P3;temp=temp & 0x0f; while(temp!=0x0f) temp=P3; temp=temp & 0x0f; TR0=0;P3=0xff;P36=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)for(i=50;i0;i-) for(j=200;j0;j-); temp=P3;temp=temp&0x0f;if(temp!=0x0f)temp=P3;temp=temp&0x0f;switch(temp)case 0x0e: key=8; break; case 0x0d: key=9; break; case 0x0b: key=10; break; case 0x07: key=11; break;speaker=speaker;STH1=tabkey/256;STL1=tabkey%256;TR0=1;temp=P3;temp=temp & 0x0f; while(temp!=0x0f) temp=P3; temp=temp & 0x0f; TR0=0;P3=0xff;P37=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)for(i=50;i0;i-) for(j=200;j0;j-); temp=P3;temp=temp & 0x0f;if(temp!=0x0f)temp=P3;temp=temp&0x0f;switch(temp)case 0x0e: key=12; break; case 0x0d: key=13; break; case 0x0b: key=14; break; ca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论