版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的电子琴设计【摘要】电子琴是现代电子科技与音乐结合的产物。电子琴是一种新型的键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响.由音色,自动伴奏,自动和弦三大部分组成.它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有9个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。关键词
2、:单片机,键盘,扬声器,电子琴【Abstract】:Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modern people'
3、s lives, become an irreplaceable part. The main content is AT89C52 control of the core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 9 keys and a speaker. The system is steady, its simple hardwar
4、e circuits, software functions, reliability of control system and high cost performance is its advantages. It also has certain practical and reference value.Key words : SCM keyboard speaker electronic organ目 录第一章绪论11.1电子琴的研究背景11.2电子琴的现状及前景1第二章 总设计方案22.1系统框图22.2模拟电子琴音乐键的设计说明22.3音乐控制方案2第三章 硬件设计53.1电子琴
5、的电路原理53.2 AT89C52 单片机的简介53.3 AT89C52单片机的附属电路63.4 电原理图73.4.1单片机电路73.4.2显示电路83.4.3按键电路93.4.4电源电路10第四章 软件编程114.1软件流程图11第五章 PCB印制板195.1 PCB板的设计19结束语21参考文献22致谢23附录24扬州工业职业技术学院毕业设计第一章 绪论1.1电子琴的研究背景在电子音乐领域,自从20世纪末期MIDI(乐器数字化接口)推出和逐步规范化后,各种乐器及众多数码音视频产品中采用MIDI技术已逐渐成为一种潮流。但是当前各厂商的电子琴产品通常使用自己设计的专用音源,并且软硬件均不对外公
6、开,阻碍了MIDI技术的交流。作者在开发基于MIDI模块的音乐发生器的过程中,进行了用单片机控制通用MIDI音源模块的相关功能制作电子琴的实践,制作出具有8个按键的 MIDI电子琴,该琴支持单音和复音弹奏,单片机以标准的MIDI波特率传送信息,通过串口连接蜂鸣器,从而获得优美的乐音。1.2电子琴的现状及前景键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。发音音量可以自由调节。音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。它还可模仿多种音色,甚至可以奏出常规乐器所无法发出的声音(如人声,风雨声等)。另外,电子琴在独奏时,还可随意配上类似打击乐音响的节
7、拍伴奏,适合于演奏节奏性较强的现代音乐。另外,电子琴还安装有混响、回声、延长音、震音和颤音等多项功能装置,表达各种情绪时运用自如。电子琴是电声乐队的中坚力量,常用于独奏主旋律并伴以丰富的和声。还常作为独奏乐器出现,具有鲜明时代特色。但电子琴的局限性也十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类管、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。电子琴的演奏有较大一部分是通过自动和弦伴奏来配合完成的,在音乐中和弦的连接推动了旋律地进行,不同的和声连接,形成了不同的音乐色彩。 24第二章 总设计方案2.1系统框图本次设计音乐电子琴主要以AT89C52为
8、核心,同时包含了按键电路,晶振电路复位电路,及采用三极管放大,扬声器(喇叭)播放,下面是本次设计的主要框图如图2.1:播放模块 喇叭中心控制模块 AT89C52按键控制模块按键状态图2.1系统框图2.2模拟电子琴音乐键的设计说明音节是由不同的频率的方波产生,音节与频率的关系。方波的频率由定时器控制,定时器溢出后,产生中断,将P1.0接口取反即得周期方波,每个音节相应的定时器初值X可按下法计算:(1/2)*(1/f)=(12/fosc)*(216-X)即X=216-(fosc/24f)当晶振fosc=11.0592时,音节1相应的定时器初值为X,则可得X=63777D=F921H,其他的可同样求
9、取。音节的节拍由延时子程序来实现。延时子程序实现基本延时时间,节拍值只能是它的整倍数。2.3音乐控制方案本系统主要完成世上只有妈妈好的播放功能,因此用定时器T1中断方式产生200ms基准时间,再根据音乐的音拍的时间的长短对基准时间用软件计时。可以用查表方式取得计数参数,计时到后将播放子程序地址送DPTR,转入播放子程序。(1)若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。 (2)利用AT89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生
10、不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式是: Nfi÷2÷fr 式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 其计数初值T的求法如下: T65536N65536fi÷2÷fr 例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。 T65536N65536fi
11、247;2÷fr655361000000÷2÷fr65536500000/fr 低音DO的T65536500000/26263627 中音DO的T65536500000/52364580 高音DO的T65536500000/104665059 C调各音符频率与计数初值T对照如表2.1所示。表2.1简谱码对应的T值简谱发音简谱码T值3低音M1640214低音FA2641035低音SO3642606低音LA4644007低音TI5645241中音DO6645802中音RE7646843中音MI8647774中音FA9648205中音SOA648986中音LAB6496
12、87中音TIC65030高音DOD650592高音REE651103高音MIF65157不发音065110下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:TABLE1: DB 64260,64400,64524,64580DB 64684,64777,64820,64898DB 64968,65030,65058,65110DB 65157,65178,65217(3)音乐的音拍,一个节拍为单位(C调)如表2.2所示。表2.2各调1/4节拍的时间设定曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250m
13、s调2/4125ms第三章 硬件设计3.1电子琴的电路原理此次设计的是一个9按键的音乐电子程序,我们由电路的框图而知,按键P1.0-P1.7分别模拟音乐电子琴的7个按键和P3.4为功能键,P2.1通过一个音频放大器接到一个喇叭上,P3.4键模拟音乐电子琴的控制键。我们可以通过判别按下控制键P3.4的次数来判别是可以按电子琴的8个按键还是播放音乐,比如,当我们按下控制键的次数为奇次,这时我们可以分别按下P1.0-P1.7键,这样就可以清楚的听到从喇叭处发出的DO、RE、MI、FA、SO、LA、XI、DO(中) 8个不同的音调,当按下P3.4键的次数为2次,这时单片机内部程序就会自动转到音乐程序处
14、顺序播放出好听的世上只有妈妈好。我们如果再按下模拟键盘时不会发出任何的声音,同理,当我们再次按下控制键P3.4,此时它为1次,音乐的程序就会关闭,转去执行模拟键盘的程序。如此重复,就会达到设计所提出的要求。3.2 AT89C52 单片机的简介AT89C52是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的
15、微型计算机的AT89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C52具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位
16、。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3.3 AT89C52单片机的附属电路(1)振荡电路石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。 本设计所用的晶体振荡电路如图3.0所示。图3.1 晶体振荡电路此晶振电路所选用的石英晶振频率为12MHZ。时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是(1/12 us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时
17、钟频率,则时钟周期为250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。设计中使用到的单片机的时钟范围是12MHz或11.0592MHz。(2)复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以必须弄清楚AT8
18、9C52型单片机复位的条件、复位电路和复位后状态。单片机复位的条件是:必须使RST/Vpd或RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常用的复位电路如图3.2所示。图3.2上电复位电路图3.1为上电复位电路也是本次设计所用的复位电路,其复位方法为只要单片机一上电REST为高电平单片机即复位。除此之外我们所学的电路还有手动复位电路和自动复位电路。 3.4 电原理图3.4.1单片机电路本课题设计的电子琴的单片机应用电路如图3-3所示:图3.
19、3 STC89C52单片机电路3.4.2显示电路图3.4 LCD1602液晶显示1602引脚功能介绍:1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714
20、脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.4.3按键电路在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键接在一根I/O接口线上,这种方式的连接称为独立式键盘。每个独立式按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O接口线,I/O接口线浪费较大。本次设计只需要8个独立式按键就可以实现。因此,本次设计按键电路采用独立式键盘按键电路,如图3.4所示图3.5 按键电路在此电路中,按键输入都采用低电平有效。上拉电阻保
21、证了按键断开时,I/O接口线有确定的高电平。当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。独立式键盘的编程:独立式键盘的编程常采用查询式结构。先逐位查询每根I/O接口线的输入状态,如某一根I/O接口线输入为低电平,则可确定该I/O接口线所对应的按键以按下,然后,再转向按键的功能处理程序。在本次设计中我使用P1.0P1.7接按键,P1.0-P2.7按键分别接8个电子琴的键盘,P3.4为控制按键,判断按它的次数是奇次还是偶次来分别调用电子琴键盘或音乐。3.4.4电源电路本设计采用USB接口供电。同时,USB接口通过转换电路对单片机进行程序编写。其电路原理如图所示。图3.6 电源电路第四章
22、 软件编程4.1软件流程图主程序主要包含对定时器T0、和T1的初始化,及重复调用其它的子程序来工作的。其程序的流程图如图4.1:调控制子程序T1初始化T0初始化中断入口开始关闭T0产生波形重载定时器T0允许中断返回图4.1 主程序流程图 图4.2 T0中断程序流程图中断程序是在判断完按键并且有键按下之后关闭T0,将P1.0取反,从而形成一个正脉冲驱动扬声器发音。如图4.2所示。4.2主程序#include<reg52.h>#define uchar unsigned char#define uint unsigned int #define KeyPort P1#define co
23、mm 0#define dat 1uchar High,Low; /定时器预装值的高8位和低8位sbit SPK=P21; /定义喇叭接口sbit tab=P34; /功能键sbit RS=P25;/液晶数据命令选择sbit RW=P26;/液晶读写选择sbit EN=P27;/液晶使能端uchar code freq2= 0xD8,0xF7,/00440HZ 1 0xBD,0xF8,/00494HZ 2 0x87,0xF9,/00554HZ 3 0xE4,0xF9,/00587HZ 4 0x90,0xFA,/00659HZ 5 0x29,0xFB,/00740HZ 6 0xB1,0xFB,/
24、00831HZ 7 0xEF,0xFB,/00880HZ 1;uchar Time; uchar code YINFU91=' ','1','2','3','4','5','6','7','8' /世上只有妈妈好数据表uchar code MUSIC= 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
25、,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 ; / 音阶频率表 高八位uchar code 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,0
26、xFE,0xFE,0xFE,0xFE,0xFE,0xFF, ; / 音阶频率表 低八位uchar code 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, ;uchar code dis1210="ELECTRONIC","ORGAN"void Init_Timer
27、0(void);/定时器初始化void delay2xus(uchar z) while(z-);void delayms(uchar x) while(x-) delay2xus(245); delay2xus(245); void lcd_wr(uchar comm_dat,uchar xdat) RS=comm_dat; RW=0; delay2xus(10); P0=xdat; EN=1; delayms(1); EN=0;void lcd_string(uchar add,uchar mun,uchar *pstring) lcd_wr(comm,0x80+add); while(m
28、un-) lcd_wr(dat,*(pstring+);void lcd_init() P0=0x00; EN=0; lcd_wr(comm,0x38); delayms(2); lcd_wr(comm,0x0c); delayms(1); lcd_wr(comm,0x06); delayms(1); lcd_wr(comm,0x01);void delayjie(uchar t) uchar i;for(i=0;i<t;i+) delayms(250); TR0=0; void Song() TH0=High;/赋值定时器时间,决定频率 TL0=Low; TR0=1; /打开定时器 d
29、elayjie(Time); /延时所需要的节拍 void main (void) uchar num,k,i; lcd_init(); lcd_string(0,10,dis10);/ 开机画面 lcd_string(11,5,dis11);/开机画面 Init_Timer0(); /初始化定时器0,主要用于数码管动态扫描 SPK=0;/在未按键时,喇叭低电平,防止长期高电平损坏喇叭 lcd_string(0x40+0,5,"NOTE:"); while (1) switch(KeyPort) case 0xfe:num= 1;break; case 0xfd:num=
30、2;break; case 0xfb:num= 3;break; case 0xf7:num= 4;break; case 0xef:num= 5;break; case 0xdf:num= 6;break; case 0xbf:num= 7;break; case 0x7f:num= 8;break; default:num= 0;break; lcd_string(0x40+7,1,YINFUnum); if(num=0) TR0=0; SPK=0; /在未按键时,喇叭低电平,防止长期高电平损坏喇叭 else High=freqnum-11; Low =freqnum-10;TR0=1;
31、if(tab=0) delayms(10); if(tab=0) i=0; while(i<100) k=MUSICi+7*MUSICi+1-1;/去音符振荡频率所需数据 High=FREQHk; Low=FREQLk; Time=MUSICi+2; /节拍时长 i=i+3;if(P1!=0xff)/长按任意8音键退出播放 delayms(10); if(P1!=0xff) i=101; Song(); TR0=0; void Init_Timer0(void) TMOD |= 0x01; /使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 EA
32、=1; /总中断打开 ET0=1; /定时器中断打开void Timer0_isr(void) interrupt 1 TH0=High; TL0=Low; SPK=!SPK;第五章 PCB印制板5.1 PCB板的设计PCB板如下图所示:图5.1 PCB板首先在设计电路板之前,要对电路板有个初步的规划,主要包括电路板的选择,采用几层电路板、板材的物理尺寸、各元件的封装形式等,这是一项相当重要的工作,是电路板设计的框架。根据设计要求设计电路原理图,并绘制原理图,然后由该原理图文件生成相应的网络表。对于相当简单的电路图,也可以直接进行印制电路板设计。设置参数包括设置元件的布置参数、板层参数和布线参
33、数等。大多数情况下,可以直接使用系统的默认值,参数设置是一次性完成的,在后续的设计工作中很少需要修改。网络表是自动布线的基础,是连接原理图和印制电路板的纽带。只有加载了网络表和元件封装后,电路板的自动布线才能完成。规划电路板并导入网络表后,通过执行命令,系统将自动装入元件并将元件布置在电路板边框内。元件布局可以由系统自动完成,然后进行手工调整布局,布局合理后才能进行下一步的布线工作。元件布局是印制电路板设计中比较花费精力的一个步骤,需要设计者有足够的耐心。Protel DXP 2004中自动布线的功能相当强大,只要把有关参数设置得适当,元件布局合理,系统就会根据设置的规则选择最佳的布线策略进行自动布线,成功率几乎100%。自动布线虽然成功率很高,但往往存在不满意的地方,这时就需要进行手工调整,以满足设计要求。布
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 范本新学期学习计划范文集锦5篇
- 专业技术工作总结范文
- 个人年度述职报告范文
- DB12T 545-2014 南水北调工程现场项目管理规范
- 中级财务实训工作心得
- 个人试用期转正述职报告
- 探究实验遵循的一般原则
- 防伪油墨 第2部分:磁性防伪油墨 征求意见稿
- 戒子规课件教学课件
- 义乌市七校七年级上学期语文11月期中联考试卷
- 机场跑道施工组织设计-最终版内容
- 钉钉直播课使用教程
- 八年级历史半期试卷
- 特种作业电工上岗证低压电工作业(培训课件)
- SYB创业培训课件完整版
- 一手试题烘焙面销培训
- 初中语文人教七年级下册冉玥《驿路梨花》微课教案设计
- 中国农业科学院科研道德规范
- 认识计算机系统的组成
- 人教版版中国历史八年级上册知识点归纳梳理
- 国家职业技术技能标准 3-02-03-01 消防员(2022年版)
评论
0/150
提交评论