简单音乐发生器.doc_第1页
简单音乐发生器.doc_第2页
简单音乐发生器.doc_第3页
简单音乐发生器.doc_第4页
简单音乐发生器.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

潍 坊 学 院单片机原理与应用课程设计说明书 题 目: 系 部: 信息与控制工程学院 专 业: 班 级: 学生姓名: 学 号: 指导教师: 王文成 2009年12月15日 单片机实现简单音乐发生器目录1 设计任务与要求12设计方案12.1 音乐相关知识12.2如何用单片机产生音频脉冲22.3如何用单片机实现音乐的节拍32.4音频功放43 硬件设计43.1结构框图43.2主要器件533 电路原理图及说明64 软件设计65 小结15主要参考文献1616单片机实现简单音乐发生器1 设计任务与要求本例将实现一种由单片机控制的简单音乐发生器,它具有16个音的键盘,我们可以根据乐谱在键盘上进行演奏,通过扬声器将音乐播放出来。本次课程设计的任务是,设计一种由单片机控制的简单音乐发生器,要求键盘有16个键,能过用51单片机C语言编写程序来实现音乐发生器的发音。要求:1.设计思路切明确;2.对各个芯片的功能要有所了解;3.对设计中的各个电路图能够要有所说明;。4.对设计的、中的源程序要有所注释。5.在按音乐发生器的16个键的同时能够听到不同的音乐。2设计方案 进行本例的设计之前,首先需要了解音乐的一些相关知识。2.1 音乐相关知识在人类还没有产生语言时,就已经知道利用声音的高低、强弱来表达自己的思想和感情。声带、琴眩等物体震动时会发出声波,声波通过空气传播进入人耳,人们就听到了声音。声音有噪音和乐音之分,振动由规律的声音是乐音,如人声带发出的歌声、由琴眩发出的琴音等。音乐中所有的声音主要是乐音。乐音听起来有的高,有的低,这就叫音高。音高是由发音物体震动频率的高低决定的,频率高声音就高,频率低声音就低。比如,女人唱歌时声带频率振动高,男人唱歌时声带振动频率低,所以男生比女生低。音乐中所有音乐的范围从每秒中振动16次的最低到每秒中振动4186次 的最高音,大约97个。现在最大的钢琴可以奏出其中 的88音,是音乐范围最大的乐器,人唱歌时因受生理限制,所能唱出 的乐音仅是乐音范围的一小部分。不同音高的乐音是用C,D,E,F,G,A,G来表示的,这7个字母就是乐音的音名,他们一般唱成DO,RE,MI,FA,SO,LA,SI,即唱成简谱的1,2,3,4,5,6,7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫唱名,把C,D,E,F,G,A,B这一组音的距离分成12个等份,每一个等份叫一个“半音”。两个音之间的距离有两个“半音”的,就叫“全音”。在钢琴等键盘乐器上,C-D,D-E,F-G,G-A,A-B两音之间隔着一个黑键,他们之间的距离就是全音;E-F,B-C两音之间没有黑键相隔,他们之间的距离就叫半音。通俗地说,那些唱成1,2,3,4,5,6,7的音就叫自然音,那些在他们的左上角加上#号(如#4,#1)或者b号(如b7,b3)的叫变化音。#叫升记号,表示把音在原来基础上升高半音;b叫降记号,表示把音在原来基础上降低半音。音持续时间的长短叫时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,每个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。2.2如何用单片机产生音频脉冲了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐。对于单片机而言,产生不同频率的脉冲非常方便,可以利用他的定时计数器来产生这样方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。本例中,单片机工作在12MHz时钟,使用其定时计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。在此情况下,C调的各音符频率与计数值T的对照表如表所示。T的值决定了TH0和TL0的值,其关系如下。TH0=T/256,TL0=T%256。C调各音符频率T(12MHz单片机,T0工作模式1)对照表音符频率简谱码(T值)音符频率简谱码(T值)低1D026263628#4FA#74064860低#1DO#27763731中5SO784648982RE29463835中#5SO#8314934#2RE#311639286LA88064968低3MI33064021693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085音符频率简谱码(T值)音符频率简谱码(T值)#5SO41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#1480651981DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3MI65964777#6186565268中4FA69864820高7SI1967652832.3如何用单片机实现音乐的节拍除了音符以外,节拍也是音乐的关键组成部分。节拍实际上是音持续时间的长短,在单片机系统中可以用延时来实现。如果1/4拍的延时设为0.4秒,则1拍的延时是0.4秒。只要知道1/4拍的延时时间,其余的节拍延时时间就是它的倍数。表1-2所示的为1/4节拍和1/8节拍的延时时间设定。表1-2各调1/4节拍和1/8节拍的延时时间设定曲调值(1/4节拍)延时DELAY曲调值(1/8节拍)延时DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制民。2.4音频功放在一定频率范围内,具有固定频率的振动就能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。本例使用国家半导体公司的低压音频功率放大器LM386实现音频功放电路。LM386具有以下功能特性。l 适合于电池工作;l 使用外部元件少;l 供电范围宽:412V或者518V;l 低静态电流消耗:4mA;l 电压增益范围:20200V。LM386的增益可调,它广泛用于各种音频电路中。3 硬件设计本例的硬件电路较为简单,主要由键盘、单片机、音频功在放及扬声器构成。3.1结构框图系统硬件的结构框图如图1-1所示。51单片机44键盘音频功放扬声器本例依然采用44键盘。3.2主要器件显然,本例的核心器件是单片机芯片和音频功放芯片。单片机采用Atmel公司的51单片机芯片AT89C52,完全可以满足本例的功能需求,而且使用方便,价格便宜,易于获取。音频功放芯片选用半导体公司的LM386,其内部电路如图1-2所示。4GND+Vout6VsBYPASS7+IN3-IN2 15k8GAIN 1GAINV7V2R715k1.35k15k15k50k50k图1-2 LM386内部电路图图1-2中,如果1脚,8脚均悬空,则1.35K 电阻设置电路增益为20V.LM386的引脚分布如图1-3所示.LM3868GAIN1GAIN 7BYPASS2-IN6Vs3+IN5Vout4GND图1-3 LM386 引脚分部图 其引脚功能说明如下. GAIN(1脚,8脚):增益控制引脚.如果此两脚悬空,则增益为20V;如果两脚之间接一个大的极性电容,则增益可达到200V;如果在和电容串联一个电阻,增益可设置为20 200V之间. -IN(2脚):负极性输入脚.在单极性输入时,此引脚接地. +IN(3脚):正极性输入脚.在单极性输入时,此引脚接输入信号. GND(4脚):接地端。 V out(5脚):电压输出端。此引脚为音频攻放电路的输出。 Vs(6脚):电源脚。供电范围:412V或者518V。 BYPASS(7脚):旁路端。此引脚可悬空或者旁接一个大电容到地。33 电路原理图及说明 电路原理图分为两部分:一是由Atmel公司的AT89C52实现的单片机及键盘电路原理图,如图1-4所示:二是由LM386芯片实现的音频攻放电路原理图,如图1-5所示。 图1-4中,单片机工作时钟为12MH z,其P 1口为键盘接口,P2.0为音频脉冲的输出脚。 本例的 4*4键盘,这包含了主要的音符键。键盘电路在上一章中已经作过详细的介绍,此处不在赘述。图1-5为音频功放电路,可参考LM386的芯片资料设计。本例使用+5V供电,LM386的增益脚与旁路脚均悬空,增益设置为20V。4 软件设计 软件设计包括两个部分。(1) 键盘输入识别:(2) 产生不同频率的输出脉冲。由于本例的功能是由用户通过键盘弹奏乐曲,所以对于节拍的控制由用户自己掌握,不在程序设计考虑之内。L1L2L3L4C1C2C3C4+5V876543211234567812131415+5V31C122pFC222pF+5VC3+10uFS118199161729301011C40.1uF20402827262524232221 IN3938373635343332R210KR510KR310KR210KKEYP1.0(T2) P0.0P1.1(T2EX) P0.1P1.2 P0.2P1.3 P0.3P1.4 P0.4P1.5 P0.5P1.6 P0.6P1.7 P0.7 89C52P3.2( INT0) P2.0P3.3(INT1) P2.1 P2.2P3.4(T0) P2.3P3.5(T1) P2.4 P2.5EA/VPP P2.6 P2.7XTAL0 XTAL1 VSS VCCRESET (RXD)P3.0P3.6(WR) (TXD)P3.1P3.7(RD) ALE(PROG) PSEN图1-4 简单音乐发生器单片机及键盘电路原理图GAIN GAIN-IN BYPASS+IN VsGND VoutU21234R610KINR74108765+5VC810uF+C70.1uFC647uF+SPEAKERR810KC50.0047uF图1-5 简单音乐发生器音频功放电路原理图34566712345671234列1列2列3列4行1行4行3行2本例的44键盘布局程序流程图本例的程序流程图较为简单,如下图所示。 开始初始化按键按下?获取键值设置T0并启动按键释放?关闭T0定时器0服务子程序重设定时器P2.0反相, 产生输出脉冲结束程序说明主要程序代码及其说明(见注释语句)如下。/* 音符与计数值对应表 */uint code tab =64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178;sbit p20 = p20 ; /此引脚输出脉冲uchar STH0;uchar STL0;/* 键消抖延时函数 */void delay(void) uchar i ; for (i=300;i0;i-);/* 键扫描函数 */ uchar getkey(void) uchar scancode ,tmpcode; if ( (p1&0xf0)= =0xf0) return (0);scancode = 0xfe;while (scancode&0xf10) ! =0) / 逐行扫描 p1 = scancode ; /输出行扫描码 if (p1&0xf0) ! =0xf0) /本行有键按下 tmpcode = (p1&0xf0) | 0x0f ; /* 返回特征字节码,为1的位即对应于行和列 */ return (scancode) +(tmpcode) ; else scancode = (scancode1) | 0x01 ; /行扫描码左移一位 /* 定时器0中断服务子程序 */void time0-int (void) interrupt 1 using 0 /* 设置计数初值 */ TH0 = STH0 ; TL0 = STL0 ; P20=P20 ; / 反相,产生输出脉冲/*主程序 */void main( ) uchar key ,k ; TMOD = 0x01 ; /T0, 工作方式1 ET0=1;EA=1;While(1)P1=0xf0; /发全0行扫描码If (P1&0xf0)!=0xf0) /若有键按下 delay(); /延时去抖动 if (P1&0xf0)!=0xf0) /延时后再判断一次,去除抖动影响 key=getkey(); /调用键盘扫描函数 /根据7获取的按键位置得到K值 switch(key) case 0x11; /1行1列 k=0;break;case 0x21; /1行2列k=1;break;case 0x41; /1行3列k=2;break;case 0x81; /1行4列k=3;break;case 0x12; /2行1列k=4;break;case 0x22; /2行2列k=5;break;cade 0x42; /2行3列k=6;break;case 0x82; /2行4列k=7;break;case 0x14; /3行1列k=8;break;case 0x24; /3行2列k=9;break;case 0x44; /3行3列k=10;break;case 0x84; /3行4列k=11;break;case 0x18; /3行4列k=12;break;case 0x28; /3行4列k=13;break;case 0x48; /3行4列k=14;br

温馨提示

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

评论

0/150

提交评论