基于单片机的简易电子琴制作课程设计.docx

上传人:b****9 文档编号:23322970 上传时间:2023-05-16 格式:DOCX 页数:17 大小:59.82KB
下载 相关 举报
基于单片机的简易电子琴制作课程设计.docx_第1页
第1页 / 共17页
基于单片机的简易电子琴制作课程设计.docx_第2页
第2页 / 共17页
基于单片机的简易电子琴制作课程设计.docx_第3页
第3页 / 共17页
基于单片机的简易电子琴制作课程设计.docx_第4页
第4页 / 共17页
基于单片机的简易电子琴制作课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于单片机的简易电子琴制作课程设计.docx

《基于单片机的简易电子琴制作课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的简易电子琴制作课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

基于单片机的简易电子琴制作课程设计.docx

基于单片机的简易电子琴制作课程设计

目录

1、设计名称------------------------------------------------------3

2、选题依据-----------------------------------3

3、设计目的------------------------------------------------------3

4、设计任务指标-------------------------------------------------3

(1)电子琴发音原理-------------------------------------3

(2)硬件电路结构设计----------------------4

(3)软件设计:

----------------------------5

(4)设计程系------------------------------7

5、设计的主要流程-----------------------------11

6、软硬件调试---------------------------------11

7、设计总结-----------------------------------12

一、设计名称:

基于单片机的电子琴制作

二、选题依据

电子琴作为一种综合性乐器,已经被越来越多的人所接受和喜爱,电子琴的教学也以很快的速度在普及和发展。

有音乐专家称,电子琴是艺术与现代电子技术融合的产物,是新时代乐器的骄子,是当前普及音乐教育、开发儿童智力最理想的乐器。

它具有音准精确,容纳多种乐器音色,节奏功能丰富,易入门、易学习,便于体教学等超越其他乐器的特点。

电子琴的设计方法种类繁多,所需核心芯片不一,有单片机、LDQ852集成块、CPLD、FPGA等,但各种设计方法的实现方式及过程各有不同。

单片机因其体积小、功能强、价格低廉而得到广泛应用,同时随着我国经济的飞速发展,单片机在越来越多的领域中得到了很好的应用。

观察几年以来各家厂商的销售地区比重,可以发现中国大陆市场比重逐渐提升,而在国内单片机多应用于电话、CallerID、玩具与LCD等产品,预计在未来,销货至大陆的比重仍将持续增加。

在中国产品应用领域十分广泛,也与人民生活越来越密切。

作为一名电子信息工程的学生来说,理解和掌握单片机的工作原理和使用技巧是必备的技能。

三、设计目的

(1)熟悉单片机芯片的结构和指令系统;

(2)熟悉单片机的编程方法;

(3)熟悉键盘的设计方法;

(4)熟悉定时器/计数器的使用方法;

(5)需要列出音阶与单片机定时器输出频率关系表格,再考虑某个键与发出的声音的频率关系

四、设计任务指标:

(1)一个(4×4)的键盘,并将16个键设计成16个音;

(2)按键时数码管可对应显示1――f--0(低音到高音的显示);

(3)可弹奏想要表达的音乐;

(4)该电子琴包含2首示例音乐,接通M1或M2即可播放示例音乐。

五、设计的主要流程:

(一).电子琴发音原理:

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们就是利用单片机在P1.0脚上输出方波周期信号,产生乐音。

根据不同的按键,调节T1的溢出时间,可输出不同频率的乐音,这样就做出了一台微型电子琴。

每个乐音的音高(频率)是固定的,下表列出了一个8度以及其上下共16个音的音名、频率及定时器T1初值对照(设晶体频率为12MHz)

高中低音符与单片机定时/计数器的计数值关系表

音符

频率(HZ)

简谱码(T值)

音符

频率(HZ)

简谱码(T值)

低1 DO

262

63628

#4FA#

740

64860

#1 DO#

277

63731

中5SO

784

64898

低2 RE

294

63835

#5SO#

831

64934

#2RE#

311

63928

中6LA

880

64968

低3M

330

64021

#6

932

64994

低4FA

349

64103

中7SI

988

65030

#4FA#

370

64185

高1DO

1046

65058

低5SO

392

64260

#1DO#

1109

65085

#5SO#

415

64331

高2RE

1175

65110

低6LA

440

64400

#2RE#

1245

65134

#6

466

64463

高3M

1318

65157

低7SI

494

64524

高4FA

1397

65178

中1DO

523

64580

#4FA#

1480

65198

#1DO#

554

64633

高5SO

1568

65217

中2RE

587

64684

#5SO#

1661

65235

#2RE#

622

64732

高6LA

1760

65252

中3M

659

64777

#6

1865

65268

中4FA

698

64820

高7SI

1967

65283

(二)硬件电路结构设计:

上图即为此次设计中的电子琴的硬件结构图,我们运用单片机的最小系统,用P1口的高四位和P3口的高四位作16按键接口,用P2口作数码管的接口,用P1.0作信号输出口。

(三)软件设计:

软件的设计符合模块化设计,主程序由初始化程序、播放程序、键盘扫描程序、按键处理程序(定时器1中断服务程序)和延时去抖程序组成。

具体流程图如下:

(1)主程系流程图

(2)键盘扫描程系流程图

(3)音乐播放程系流程图

(4)按键处理子程系流程图

 

(四)设计程序:

ORG0000H

JMPSTART;转初始化程序

ORG000BH

CPLP1.0;取反P1.0

MOVTH0,R2

MOVTL0,R3

RETI

ORG001BH

INC20h

MOVTH1,#3CH

MOVTL1,#0B0H

RETI

ORG0030H

START:

MOVP2,#00H

MOVSP,#05FH;设堆栈地址

MOVTMOD,#11H;启动定时器方式1

SETBET0;置定时器0溢出允午中断

SETBEA;开中断

SETBET1;;置定时器1溢出允午中断

MOV20h,#00H

;下面是TEST检测程序(键盘扫描)

TEST:

CLRP1.7;送P1.7扫描字00H,扫描第0列

JNBP3.6,RESET;P3.6=0,转RESET

JNBP3.5,BMUSIC;P3.5=0,转BMUSIC

JNBP3.7,B2MUSIC;P3.7=0,转B2MUSIC

SETBP1.7;置P1.7为1

CLRP1.6;对P1.6清零,扫描第1列

JNBP3.4,B1;P3.4=0,转B1

JNBP3.6,B5

JNBP3.5,B9

JNBP3.7,B13

SETBP1.6;置P1.6为1

CLRP1.5;对P1.5清零,扫描第2列

JNBP3.4,B2;P3.4=0,转B2

JNBP3.6,B6

JNBP3.5,B10

JNBP3.7,B14

SETBP1.5;置P1.5为1

CLRP1.4;对P1.4清零,扫描第3列

JNBP3.4,B3;P3.4=0,转B3

JNBP3.6,B7

JNBP3.5,B11

JNBP3.7,B15

SETBP1.4;置P1.4为1

CLRP1.3;对P1.3清零,扫描第4列

JNBP3.4,B4;P3.4=0,转B4

JNBP3.6,B8

JNBP3.5,B12

JNBP3.7,B16

SETBP1.3;置P1.3为1

JMPTEST;跳转TEST,重新扫描

;下面是跳转的子程序

RESET:

CLRP1.0

JMPTEST

BMUSIC:

;示例音乐1

MOVDPTR,#M1

JMPMUSIC

B2MUSIC:

MOVDPTR,#M2;示例音乐2

JMPMUSIC

B1:

MOVDPTR,#Y1;键1

JMPMUSIC

B2:

MOVDPTR,#Y2;键2

JMPMUSIC

B3:

MOVDPTR,#Y3;键3

JMPMUSIC

B4:

MOVDPTR,#Y4;键4

JMPMUSIC

B5:

MOVDPTR,#Y5;键5

JMPMUSIC

B6:

MOVDPTR,#Y6;键6

JMPMUSIC

B7:

MOVDPTR,#Y7;键7

JMPMUSIC

B8:

MOVDPTR,#Y8;键8

JMPMUSIC

B9:

MOVDPTR,#Y9;键9

JMPMUSIC

B10:

MOVDPTR,#Y10;键10

JMPMUSIC

B11:

MOVDPTR,#Y11;键11

JMPMUSIC

B12:

MOVDPTR,#Y12;键12

JMPMUSIC

B13:

MOVDPTR,#Y13;键13

JMPMUSIC

B14:

MOVDPTR,#Y14;键14

JMPMUSIC

B15:

MOVDPTR,#Y15;键15

JMPMUSIC

B16:

MOVDPTR,#Y16;键16

JMPMUSIC

;音乐模块子程序

MUSIC:

MOV20h,#00H

CLRA

MOVCA,@A+DPTR;查表

MOVR0,A

INCDPTR

CLRA

MOVCA,@A+DPTR;查表

MOVR1,A

CJNEA,#00H,GO

JMPJIE_SHU

GO:

CJNEA,#0FFH,GGO

JMPZAN_TING

GGO:

CJNEA,#0EEH,YY

JMPTAN_ZOU

YY:

LCALLQYF

MOVA,R1

SETBTR0

SETBTR1

MOVA,R1

AM:

MOVP2,R0

CJNEA,20h,AM

CLRTR0

CLRTR1

INCDPTR

LJMPMUSIC

JIE_SHU:

;结束音乐播放,停止发声

CLRP1.0

JMPTEST

ZAN_TING:

SETBTR1;暂停音乐

MOVA,R1

MOVA,05H

CLRP1.0

AN:

CJNEA,20h,AN

CLRTR1

MOV20h,#00H

INCDPTR

JMPMUSIC

TAN_ZOU:

LCALLQYF;弹奏音乐

SETBTR0

SETBTR1

AAA:

MOVP2,R0

MOVA,#0AH

CJNEA,20h,AAA

MOV20h,#00H

JNBP3.5,AAA

JNBP3.7,AAA

CLRTR0

CLRTR1

JMPTEST

 

QYF:

;音符

PUSHDPH;入栈保护

PUSHDPL

MOVA,R0

DECA

MOVB,#02H

MULAB;乘2倍处理

MOVDPTR,#YFC

MOVCA,@A+DPTR;查表

MOVR2,A

MOVTH0,A

INCDPTR

MOVA,R0

DECA

MOVB,#02H

MULAB

MOVCA,@A+DPTR;查表

MOVR3,A

MOVTH0,A

POPDPL;弹出指针

POPDPH

RET

;下面设置的为键盘16个键对应的16个频率,不同频率发出不同的声音。

YFC:

DB0FAH,15H,0FAH,67H,0FBH,04H,0FBH,90H

DB0FCH,0CH,0FCH,44H,0FCH,0ACH,0FDH,09H

DB0FDH,34H,0FDH,82H,0FDH,0C8H,0FEH,06H

DB0FEH,22H,0FEH,56H,0FEH,85H,0FEH,9AH

Y1:

DB01H,0EEH

Y2:

DB02H,0EEH

Y3:

DB03H,0EEH

Y4:

DB04H,0EEH

Y5:

DB05H,0EEH

Y6:

DB06H,0EEH

Y7:

DB07H,0EEH

Y8:

DB08H,0EEH

Y9:

DB09H,0EEH

Y10:

DB0AH,0EEH

Y11:

DB0BH,0EEH

Y12:

DB0CH,0EEH

Y13:

DB0DH,0EEH

Y14:

DB0EH,0EEH

Y15:

DB0FH,0EEH

Y16:

DB10H,0EEH

M1:

;音乐歌谱音阶对应的频率(自己编的歌曲)

DB08H,09H,0AH,0BH,0CH,0BH,0AH,09H,08H,09H,09H,0AH,0BH,0CH,0BH,0AH

DB09H,08H,09H,08H,07H,08H,09H,08H,09H,09H,00

M2:

;音乐代码2,随意设置,体现M2功能。

DB08H,09H,05H,05H,06H,05H,03H,05H,02H,08H,03H,05H,01H,05H,01H,06H

DB08H,05H,0AH,05H,08H,05H,09H,05H,08H,05H,09H,07H,06H,05H,06H,00H

END

六、软硬件调试

本设计中用到单片机开发板和keil软件加上相应的下载线,构成软硬件调试环境,支持对单片机的在线调试功能,这样就能方便快速地调试出相应的程系了。

在KEIL跟PROTEUS上仿真调试取得了成功。

达到了设计初的预期目标,单片机的功能符合要求,在通过不断的调试、纠错后,仿真顺利通过。

七、实验心得与设计总结:

本设计主要是通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。

整个设计利用单片机定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调原理来设计。

首先,利用一个4×4的键盘电路把我所需要发出声音的信号输入单片机;其次通过程序,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的脉冲,本设计中按键一次,就会调用一个延时程序,在延时后继续检测键盘,若此时又有键被按下,若被按下的仍为原键则声音不变,否则键盘会译出被按下的另一个键的音调。

从而实现了一个简易电子琴的功能。

通过软硬件的调试,确认此设计已经达到设计要求,并可以稳定可靠运行。

本次设计提出了用单片机为核心控制元件,设计一个简易的电子琴.本方案以51单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块在主控模块上设有16个按键和扬声器.根据使用者的操作随意弹奏想要表达的音乐。

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

通过本次课程设计让我更充分掌握了单片机的接口、定时/计数与中断系统与及汇编语言的指令系统,编程等。

软件部分用到了protues进行硬件设计,用keil进行程系编译。

在此要感谢我们的指导老师周老师对我们悉心的指导和帮助。

在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学使自己学到了不少知识,也经历了不少艰辛,但收获同样也不少。

在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。

而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。

虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。

参考文献

  [1]周美娟,肖来胜.单片机技术及系统设计.2007.

  [2]潘晓利,陈学煌,刘永志.基于MIDI模块的音乐发生器设计.电子测量技术,2007

(2):

108-110.

  [3]李朝青.单片机原理及接口技术[M].北京:

北京航天航空大学出版色,2001.

  

.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1