电子琴设计和制作.docx

上传人:wux****ua 文档编号:8794255 上传时间:2020-04-01 格式:DOCX 页数:14 大小:2.47MB
返回 下载 相关 举报
电子琴设计和制作.docx_第1页
第1页 / 共14页
电子琴设计和制作.docx_第2页
第2页 / 共14页
电子琴设计和制作.docx_第3页
第3页 / 共14页
点击查看更多>>
资源描述
电子琴设计与制作1.1项目描述或许你从小就想拥有一台属于自己的电子琴,或许你在音乐方面有很高的天赋,但却一直苦于没工具玩弄。让我们来通过这个项目做一个属于自己的电子琴,你肯定满意通过单片机主机和功放产生的音乐效果。1.2项目分析通过思考我们得知这样一个信息:要想电子琴发出音乐的效果,我们就必须先知道音乐的组成元素。简单的来说音乐乐谱包含两个基本的参数:“音调”和“节拍”。音调:表示一个音符的高低即频率的高低。节拍:表示一个音符持续的时间。弄懂这些问题之后我们可以开始这手这个项目了。下面先从几个简单的任务开始。下图为本项目的图片:1.3 任务一 中断控制发音实验 1.3.1任务分析本实验主机中的晶振为11.0592MHZ,利用单片机主机的定时器中断定时,计时到后就将输出脉冲的I/O反相,从而控制输出口按照一定时间比例取反就达到中断发音的效果。1.3.2硬件电路设计中断控制发音实验电路由单片机主机、LM386功放组成。具体电路如下:1.3.3软件编程程序流程图如下图所示。任务程序如下:#include#define uint unsigned int #define uchar unsigned charsbit P3_7=P37;sbit P2_0=P20;char temp1,temp2;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void init()ET0=1; EA=1;TMOD=0x01;TR0=0;void main()init();while(1)P3_7=1;if(P2_0=0)while(P2_0=0);TR0=1;temp1=0Xfb;temp2=0Xe9;TH0=temp1;TL0=temp2;delay(250);TR0=0;void time0() interrupt 1P3_7=P3_7;TH0=temp1;TL0=temp2;1.4 任务二 音乐盒开发实验 1.4.1任务分析在前面中断控制功放发音的基础上,让我们从中体会到了原来单片机是可以发出音乐的。现在先来了解一下想要单片机自动播放一首优美的音乐到底需要怎样做。前面已经说过了,音乐乐谱包含两个基本的参数:“音调”和“节拍”。音调:表示一个音符的高低即频率的高低。节拍:表示一个音符持续的时间。先来分析一下音乐中的音调,该任务中我们采用的是标准的C调。例如C调中的DO的频率是523Hz。然后单片机的内部定时器使其工作计数器模式(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以下为音符频率表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO262F921# 4 FA#739FD90#1DO#277F980中 5 SO784FDB3低2RE294F9DB# 5 SO#830FDD4#2 RE#311FA36中 6 LA879FDF3低 3 M330FA87# 6931FE11低 4 FA349FAD7中 7 SI987FE2D# 4 FA#370FB22高 1 DO1045FE47低 5 SO392FB68# 1 DO#1106FE5F# 5 SO#415FBA9高 2 RE1171FE76低 6 LA440FBE8# 2 RE#1241FE8C# 6466FC23高 3 M1316FEA1低 7 SI494FC5B高 4 FA1393FEB5中 1 DO523FC8E# 4 FA#1476FEC7# 1 DO#554FCBE高 5 SO1563FED9中 2 RE587FCED# 5 SO#1658FEEA# 2 RE#621FD19高 6 LA1755FEF9中 3 M658FD43# 61860FF08中 4 FA697FD6A高 7 SI1971FF16现在我们再来分析一下音乐中的节拍,通俗的来讲节拍就是每个音调的延时的长短。每个节拍有1/4节拍,2/4节拍,3/4节拍,4/4节拍。在这里我们定义最小节拍1/4节拍延时100ms为基准吧。1.4.2硬件电路设计1.4.3软件编程程序流程图如图所示,具体程序如下。#includesbit speak=P30;unsigned int code table9=0xfc5b,0xfc8e,0xfced,0xfd43,0xfd6a,0xfdb3,0xfdf3,0xfe2d,0xfb68;unsigned char code music2=1,4,2,4,3,4,1,4,3,4,2,4,3,4,1,4,3,4,4,4,5,8,3,4,4,4,5,8,5,3,6,1,5,3,4,1,3,4,1,4,5,3,6,1,5,3,4,1,3,4,1,4,1,4,8,4,1,8,1,4,8,4,1,8,OXFF,OXFF;unsigned char n=0;void timer0() interrupt 1TH0=tablemusicn0/256;TL0=tablemusicn0%256;speak=!speak;void init()TMOD=0X01;ET0=1;EA=1;void delay100ms(unsigned char z)unsigned int i;z+;while(-z)for(i=11502;i;i-);void main()init();while(1)TH0=tablemusicn0/256;TL0=tablemusicn0%256;TR0=1;delay100ms(musicn1);n+;if(musicn0=0xff)n=0;TR0=0;1.5 项目设计经过前面几个任务的训练下,现在来做一个电子琴应该来说更加简单了。从前面我们可以看到音符表上一共有21个音调。在这里我们只做了中音的7个调,如果想要扩展成21个调的,实训台上的其他模组中提取按键组成功能比较完整的电子琴。1.5.1项目设计分析1.5.2项目硬件设计整个项目的硬件电路主要由单片机主机、功放电路、按键电路组成,具体电路如下图所示。1.5.3项目软件设计程序流程图如图所示,具体程序如下。#include#define uint unsigned int #define uchar unsigned charsbit P3_7=P37;sbit P2_0=P20;sbit P2_1=P21;sbit P2_2=P22;sbit P2_3=P23;sbit P2_4=P24;sbit P2_5=P25;sbit P2_6=P26; sbit P1_7=P17;char temp1,temp2;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void main()ET0=1; EA=1;TMOD=0x01;TR0=0;P1_7=0;while(1)P3_7=1;if(P2_0=0)TR0=1;temp1=0Xfb;temp2=0Xe9;TH0=temp1;TL0=temp2;while(P2_0=0);delay(250);if(P2_1=0)TR0=1;temp1=0Xfc;temp2=0X51;TH0=temp1;TL0=temp2;while(P2_1=0);delay(250);if(P2_2=0)TR0=1;temp1=0X0fc;temp2=0X0c1;TH0=temp1;TL0=temp2;while(P2_2=0);delay(250);if(P2_3=0)TR0=1;temp1=0Xfc;temp2=0Xef;TH0=temp1;TL0=temp2;while(P2_3=0);delay(250);if(P2_4=0)TR0=1;temp1=0Xfd;temp2=0X5f;TH0=temp1;TL0=temp2;while(P2_4=0);delay(250);if(P2_5=0)TR0=1;temp1=0Xfd;temp2=0X92;TH0=temp1;TL0=temp2;while(P2_5=0);delay(250);if(P2_6=0)TR0=1;temp1=0Xfd;temp2=0Xd6;TH0=temp1;TL0=temp2;while(P2_6=0);delay(250);TR0=0;void time0() interrupt 1P3_7=P3_7;TH0=temp1;TL0=temp2;1.6 项目要点该项目涉及到的知识点相对来说比较基础,但是该项目涉及到的知识点还是比较重要的。该项目主要考擦的是思维以及对单片机定时中断的熟练程度。1.7 项目总结1.8 知识点扩展1.8.1 LM386功放芯片的介绍LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。一、LM386内部电路LM386内部电路原理图如图所示。与通用型集成运放相类似,它是一个三级放大电路。第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。二、LM386的引脚图LM386的外形和引脚的排列如右图所示。引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10F。1.9 思考与练习
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!