• 回答数

    4

  • 浏览数

    269

DPWX遁遁
首页 > 毕业论文 > 基于gui电子琴设计毕业论文

4个回答 默认排序
  • 默认排序
  • 按时间排序

晴朗天空85

已采纳

用AT89C51单片机做比较简单配上按键键盘,三极管驱动一个喇叭就能实现,下面是我调试过的单片机程序供参考;DIANnbsp;ZInbsp;QINnbsp;电子琴nbsp;SPKnbsp;EQUnbsp;;FKEYnbsp;EQUnbsp;;DInbsp;EQUnbsp;71Hnbsp;GAOnbsp;EQUnbsp;72Hnbsp;KEY_NOnbsp;EQUnbsp;73Hnbsp;NOnbsp;EQUnbsp;74Hnbsp;TCnbsp;EQUnbsp;75Hnbsp;OUTBITnbsp;EQUnbsp;08002Hnbsp;OUTSEGnbsp;EQUnbsp;08004Hnbsp;INnbsp;EQUnbsp;08001Hnbsp;ORGnbsp;0000Hnbsp;JMPnbsp;BEGINnbsp;ORGnbsp;0BHnbsp;JMPnbsp;TO_INTnbsp;BEGIN:nbsp;MOVnbsp;TMOD,#00000000Bnbsp;MOVnbsp;IEnbsp;,#10000010Bnbsp;MOVnbsp;R4,#1nbsp;MOVnbsp;R3,#1nbsp;CALLnbsp;PLAYnbsp;MOVnbsp;R4,#2nbsp;MOVnbsp;R3,#1nbsp;CALLnbsp;PLAYnbsp;JMPnbsp;RUNnbsp;JMPnbsp;$nbsp;PLAY:nbsp;CALLnbsp;LOAD_VALUEnbsp;CALLnbsp;SOUND_ONnbsp;PL1:nbsp;MOVnbsp;R5,#30nbsp;CALLnbsp;DELAYnbsp;DJNZnbsp;R3,PL1nbsp;CALLnbsp;SOUND_OFFnbsp;MOVnbsp;R5,#3nbsp;CALLnbsp;DELAYnbsp;RETnbsp;PLAY_SONG1:nbsp;MOVnbsp;TC,#0nbsp;PA0:nbsp;MOVnbsp;DPTR,#SONG1nbsp;MOVnbsp;A,TCnbsp;MOVCnbsp;A,@A+DPTRnbsp;MOVnbsp;R4,Anbsp;CJNEnbsp;A,#0FFH,PA1nbsp;RETnbsp;PA1:nbsp;MOVnbsp;DPTR,#LENnbsp;MOVnbsp;A,TCnbsp;MOVCnbsp;A,@A+DPTRnbsp;MOVnbsp;R3,Anbsp;CALLnbsp;PLAYnbsp;INCnbsp;TCnbsp;JMPnbsp;PA0nbsp;RETnbsp;PLAY_SONG2:nbsp;MOVnbsp;TC,#0nbsp;PB0:nbsp;MOVnbsp;DPTR,#SONG2nbsp;MOVnbsp;A,TCnbsp;MOVCnbsp;A,@A+DPTRnbsp;MOVnbsp;R4,Anbsp;CJNEnbsp;A,#0FFH,PB1nbsp;RETnbsp;PB1:nbsp;MOVnbsp;DPTR,#LENnbsp;MOVnbsp;A,TCnbsp;MOVCnbsp;A,@A+DPTRnbsp;MOVnbsp;R3,Anbsp;CALLnbsp;PLAYnbsp;INCnbsp;TCnbsp;JMPnbsp;PB0nbsp;RETnbsp;SOUND_ON:nbsp;SETBnbsp;TR0nbsp;RETnbsp;SOUND_OFF:nbsp;CLRnbsp;TR0nbsp;RETnbsp;LOAD_VALUE:nbsp;MOVnbsp;DPTR,#HI_LISTnbsp;MOVnbsp;A,R4nbsp;MOVCnbsp;A,@A+DPTRnbsp;MOVnbsp;GAO,Anbsp;MOVnbsp;DPTR,#LO_LISTnbsp;MOVnbsp;A,R4nbsp;MOVCnbsp;A,@A+DPTRnbsp;MOVnbsp;DI,Anbsp;RETnbsp;TO_INT:nbsp;MOVnbsp;TL0,DInbsp;MOVnbsp;TH0,GAOnbsp;CPLnbsp;SPKnbsp;RETInbsp;HI_LIST:nbsp;DBnbsp;0,226,229,232,233,236,238,240nbsp;LO_LIST:nbsp;DBnbsp;0,4,13,10,20,3,8,6nbsp;SONG1:nbsp;DBnbsp;1,2,3,4,5,6,7,0FFHnbsp;SONG2:nbsp;DBnbsp;7,6,5,4,3,2,1,0FFHnbsp;LEN:nbsp;DBnbsp;2,2,2,2,2,2,2,0FFHnbsp;DELAY:nbsp;MOVnbsp;R6,#50nbsp;D1:MOVnbsp;R7,#50nbsp;DJNZnbsp;R7,$nbsp;DJNZnbsp;R6,D1nbsp;DJNZnbsp;R5,DELAYnbsp;RETnbsp;TABLE_DIG:nbsp;DBnbsp;16H,15H,14H,0FFHnbsp;DBnbsp;13H,12H,11H,10Hnbsp;DBnbsp;0DH,0CH,09H,0AHnbsp;DBnbsp;0EH,03H,06H,0FHnbsp;DBnbsp;08H,02H,05H,0BHnbsp;DBnbsp;00H,01H,04H,07Hnbsp;SCAN:nbsp;MOVnbsp;DPTRnbsp;,#OUTBITnbsp;MOVnbsp;A,#0nbsp;MOVXnbsp;@DPTR,Anbsp;MOVnbsp;DPTR,#INnbsp;MOVXnbsp;A,@DPTRnbsp;CPLnbsp;Anbsp;ANLnbsp;A,#0FHnbsp;RETnbsp;GET_KEY:nbsp;MOVnbsp;DPTR,#OUTBITnbsp;MOVnbsp;P2,DPHnbsp;MOVnbsp;R0,#LOW(IN)nbsp;MOVnbsp;R1,#00100000Bnbsp;MOVnbsp;R2,#6nbsp;KLOOP:nbsp;MOVnbsp;A,R1nbsp;CPLnbsp;Anbsp;MOVXnbsp;@DPTR,Anbsp;CPLnbsp;Anbsp;RRnbsp;Anbsp;MOVnbsp;R1,A

153 评论

一剪寒梅love

22. 电子琴 1. 实验任务 (1. 由4X4组成16个按钮矩阵,设计成16个音。 (2. 可随意弹奏想要表达的音乐。 2. 电路原理图 图 3. 系统板硬件连线 (1. 把“单片机系统”区域中的端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 把“单片机系统“区域中的-端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上; 4. 相关程序内容 (1. 4X4行列式键盘识别; (2. 音乐产生的方法; 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示 音符 频率(HZ) 简谱码(T值) 音符 频率(HZ) 简谱码(T值)低1 DO 262 63628 # 4 FA# 740 64860#1 DO# 277 63731 中 5 SO 784 64898低2 RE 294 63835 # 5 SO# 831 64934#2 RE# 311 63928 中 6 LA 880 64968低 3 M 330 64021 # 6 932 64994低 4 FA 349 64103 中 7 SI 988 65030# 4 FA# 370 64185 高 1 DO 1046 65058低 5 SO 392 64260 # 1 DO# 1109 65085# 5 SO# 415 64331 高 2 RE 1175 65110低 6 LA 440 64400 # 2 RE# 1245 65134# 6 466 64463 高 3 M 1318 65157低 7 SI 494 64524 高 4 FA 1397 65178中 1 DO 523 64580 # 4 FA# 1480 65198# 1 DO# 554 64633 高 5 SO 1568 65217中 2 RE 587 64684 # 5 SO# 1661 65235# 2 RE# 622 64732 高 6 LA 1760 65252中 3 M 659 64777 # 6 1865 65268中 4 FA 698 64820 高 7 SI 1967 65283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据 低音0-19之间,中音在20-39之间,高音在40-59之间 TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0 DW 0,63731,63928,0,64185,64331,64463,0,0,0 DW 0,64580,64684,64777,64820,64898,64968,65030,0,0 DW 0,64633,64732,0,64860,64934,64994,0,0,0 DW 0,65058,65110,65157,65178,65217,65252,65283,0,0 DW 0,65085,65134,0,65198,65235,65268,0,0,0 DW 0 2、音乐的音拍,一个节拍为单位(C调) 曲调值 DELAY 曲调值 DELAY调4/4 125ms 调4/4 62ms调3/4 187ms 调3/4 94ms调2/4 250ms 调2/4 125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。 下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。 在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。 5. 程序框图 图 6. 汇编源程序KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HORG 00HLJMP STARTORG 0BHLJMP INT_T0 ;T0中断入口START: MOV TMOD,#01H ;T0工作方式1SETB ET0 SETB EAWAIT:MOV P3,#0FFH ;输入口置1准备工作CLR A,P3 ;读键盘ANL A,#0FH ;保持低四位XRL A,#0FH ;JZ NOKEY1LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P3ANL A,#0FHCJNE A,#0EH,NK1MOV KEYBUF,#0LJMP DK1NK1: CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2: CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3: CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1NK4: NOPDK1:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK1A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0NOKEY1:MOV P3,#0FFHCLR A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P3ANL A,#0FHCJNE A,#0EH,NK5MOV KEYBUF,#4LJMP DK2NK5: CJNE A,#0DH,NK6MOV KEYBUF,#5LJMP DK2NK6: CJNE A,#0BH,NK7MOV KEYBUF,#6LJMP DK2NK7: CJNE A,#07H,NK8MOV KEYBUF,#7LJMP DK2NK8: NOPDK2:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK2A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK2ACLR TR0NOKEY2:MOV P3,#0FFHCLR A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY3MOV A,P3ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#8LJMP DK3NK9: CJNE A,#0DH,NK10MOV KEYBUF,#9LJMP DK3NK10: CJNE A,#0BH,NK11MOV KEYBUF,#10LJMP DK3NK11: CJNE A,#07H,NK12MOV KEYBUF,#11LJMP DK3NK12: NOPDK3:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK3A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK3ACLR TR0NOKEY3:MOV P3,#0FFHCLR A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY4MOV A,P3ANL A,#0FHCJNE A,#0EH,NK13MOV KEYBUF,#12LJMP DK4NK13: CJNE A,#0DH,NK14MOV KEYBUF,#13LJMP DK4NK14: CJNE A,#0BH,NK15MOV KEYBUF,#14LJMP DK4NK15: CJNE A,#07H,NK16MOV KEYBUF,#15LJMP DK4NK16: NOPDK4:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK4A: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ DK4ACLR TR0NOKEY4:LJMP WAITDELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:MOV TH0,STH0MOV TL0,STL0CPL : DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HTABLE1: DW 64021,64103,64260,64400DW 64524,64580,64684,64777DW 64820,64898,64968,65030DW 65058,65110,65157,65178END7. C语言源程序#include <>unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;unsigned int code tab[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178};void main(void){TMOD=0x01;ET0=1;EA=1;while(1){P3=0xff;P3_4=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;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;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}P3=0xff;P3_5=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;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;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}P3=0xff;P3_6=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;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;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}P3=0xff;P3_7=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;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;case 0x07:key=15;break;}temp=P3;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}}}void t0(void) interrupt 1 using 0{TH0=STH0;TL0=STL0;P1_0=~P1_0;}

114 评论

Huanglingying

简单的说就是按键触发信号发给处理器,再由处理器调用音色库音色通过功放电路输出或者通过数码接口进行数字输出。控制面板上的按钮来选择处理器对音色、音量、输出方式、伴奏的控制。 玩具和简单的老式电子琴就简单得多,按键做为开关接通内部发声单元,进行固定频率的发声。或者由初级的单片机处理发声频率。 电子琴的工作原理一般有FM(调频)模式和PCM(采样)模式。 现在常用的电子琴的常见品牌有YANMAHA 和CASIO,海南的乐手比较喜欢使用YAMAHA的产品,因为它的设置比较合理,现场使用非常 方便;音色比较真实,使用效果更佳。 单独用一具电子琴,就可以现场作出类似一支完整乐队的效果。所以现在一些演出场合中,比较流行一具电子琴(有些会再加上一具合成器)的单人编制(简称单编),或一具电子琴和一把吉他的双人编制(简称双编)。搞单编需要乐手具备较高的电子琴操作和演奏水平。本版中的“啊方十指琴魔”就是这样的单编高手之一。搞单编或双编对电子琴的要求也较高,在YAMAHA的电子琴系列中,一般要PSR 410以上级别的产品才能达到乐手们常说的“能用”的水平。 电振荡乐 器 以电振荡作为激励声源的乐器,称为电振荡乐器 。 目前人们能见到的各种电子琴、电子合成器、电子鼓机等都属于电振荡 乐器。 说明:当演奏者按下键盘中的某一琴键时,琴键下面的电路就将信号传 送给振荡器 1 和振荡器2,产生相应的音高振荡频率;手指触键的力度信号 也会同时传给包络发生器 1 和包络发生器2,并通知滤波器和放大器产生相 应的音量及音色的变化;最后,声音信号通过放大器输出。图中低频振荡器 的作用,是能够根据演奏者的需要,对所有其它部分——振荡器、滤波器和 放大器——进行调制,从而使合成器能够发出颤音的效果。 目前,国外生产的电子合成器以及较高档的电子琴都有MIDI 接口,相互 间可串接使用。目前较流行的使用方法是用一台计算机通过MIDI 接口来控制 所有相关的电子乐器和音响效果发生器,从而能够方便地产生丰富多彩的音 乐音响效果。

192 评论

铭钔釺唫

如果专业方向是软件设计,可以写;否则一般都是用一章大概介绍一下,详细代码都会写在附录里。

135 评论

相关问答

  • 基于gui电子琴设计毕业论文

    用AT89C51单片机做比较简单配上按键键盘,三极管驱动一个喇叭就能实现,下面是我调试过的单片机程序供参考;DIANnbsp;ZInbsp;QINnbsp;电子

    DPWX遁遁 4人参与回答 2023-12-10
  • 基于网页设计毕业论文

    朋友你好,你所要的先从我提供的网址中找几篇参考论文,真心希望能够对你有。若不满意我给你些网址你还可以自己再找,祝你好运!中文免费论文地址集锦一、综合类1、蓝之韵

    yannychan108 4人参与回答 2023-12-09
  • 基于html5的毕业论文设计

    是写了吧,能搬做的。

    流云归晚 4人参与回答 2023-12-10
  • 基于plc电梯设计毕业论文

    PLC的,一百多份,有用的话,加分给我,1. 基于FX2N-48MRPLC的交通灯控制2. 西门子PLC控制的四层电梯毕业设计论文3. PLC电梯控制毕业论文4

    考小拉考小花 7人参与回答 2023-12-07
  • 阿迪诺电子琴毕业论文

    之前也是为论文苦恼了半天,网上的范文和能搜到的资料,大都不全面,一般能有个正文就不错了,而且抄袭的东西肯定不行的,关键是没有数据和分析部分,我好不容易搞出来一篇

    linalingxj 4人参与回答 2023-12-10