电子琴设计.docx

上传人:b****1 文档编号:1168590 上传时间:2023-04-30 格式:DOCX 页数:21 大小:121.91KB
下载 相关 举报
电子琴设计.docx_第1页
第1页 / 共21页
电子琴设计.docx_第2页
第2页 / 共21页
电子琴设计.docx_第3页
第3页 / 共21页
电子琴设计.docx_第4页
第4页 / 共21页
电子琴设计.docx_第5页
第5页 / 共21页
电子琴设计.docx_第6页
第6页 / 共21页
电子琴设计.docx_第7页
第7页 / 共21页
电子琴设计.docx_第8页
第8页 / 共21页
电子琴设计.docx_第9页
第9页 / 共21页
电子琴设计.docx_第10页
第10页 / 共21页
电子琴设计.docx_第11页
第11页 / 共21页
电子琴设计.docx_第12页
第12页 / 共21页
电子琴设计.docx_第13页
第13页 / 共21页
电子琴设计.docx_第14页
第14页 / 共21页
电子琴设计.docx_第15页
第15页 / 共21页
电子琴设计.docx_第16页
第16页 / 共21页
电子琴设计.docx_第17页
第17页 / 共21页
电子琴设计.docx_第18页
第18页 / 共21页
电子琴设计.docx_第19页
第19页 / 共21页
电子琴设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电子琴设计.docx

《电子琴设计.docx》由会员分享,可在线阅读,更多相关《电子琴设计.docx(21页珍藏版)》请在冰点文库上搜索。

电子琴设计.docx

电子琴设计

摘要

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

该设计主要由键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器的简易电子琴。

本设计采用AT89S51单片机为核心控制元件,利用定时器,发出不同频率的脉冲,脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调,利用不同的频率的组合,可构成我们想要的音乐。

该系统通过调试运行、仿真验证,基本实现了设计目标。

关键词:

单片机;按键;电子琴;音阶

1课题描述

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们所想要的音乐了,对于单片机,可以利用定时器,发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调,利用不同的频率的组合,从而设计成一个与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器的简易电子琴。

本次设计主要应用AT89C51单片机为核心控制元件,与键盘、扬声器等模块组成核心主控制模块,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴,通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现用户自编歌曲。

 

开发环境:

DICE-51仿真开发系统,Proteus仿真软件,Keil环境

2问题分析和任务定义

2.1问题分析

本次设计主要通过对AT89C51的基本认识,利用定时器,发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调,利用不同的频率的组合,从而设计成一个与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器的简易电子琴。

在设计时应用4*4行列式键盘扫描,由P3口实现,其中P3.0-P3.3接C0-C3,P3.4-P3.7接L0-L3。

如图2.1所示:

图2.14*4行列式键盘扫描

利用AT89S51的内部定时器使其工作在计数器模式下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,计数脉冲值与频率的关系式是:

N=fi÷2÷fr。

关系式中N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。

其计数初值T的求法如下:

T=65536-N=65536-fi÷2÷fr。

单片机12MHZ晶振高、中、低音符与单片机计数T0相关的计数值如表2.2所示:

音符

频率(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

下面是为这个音符建的表,可以使单片机通过查表的方式,方便的获得相应的数据,低音0-19之间,中音在20-39之间,高音在40-59之间

TABLE:

DW0,63628,63835,64021,64103,64260,64400,64524,0,0

DW0,63731,63928,0,64185,64331,64463,0,0,0

DW0,64580,64684,64777,64820,64898,64968,65030,0,0

DW0,64633,64732,0,64860,64934,64994,0,0,0

DW0,65058,65110,65157,65178,65217,65252,65283,0,0

DW0,65085,65134,0,65198,65235,65268,0,0,0

DW0

2.2任务定义

(1)在操作过程中应满足以下要求:

①电子琴设有16个按键,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴;

②利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,可以发出不同的音调;

③使数字键1、2、3、4、5、6、7作为电子琴键,按下数字键发出相应的音调,PB0作为定时器门控信号,OUT1发出音频信号,驱动喇叭。

④通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现用户自编歌曲;

(2)该系统在使用过程中,应该实现以下基本功能:

①按要求连接电路图,当按下数字键1、2、3、4、5、6、7时可以发出相应的音调;

②通过不同的数字键组合,可以自编曲目;

③利用protues仿真软件,装载程序,实现对电子琴的仿真。

 

3概要设计

本次课程设计主要采用AT89C51单片机为核心控制元件,与键盘、扬声器等模块组成核心主控制模块,利用定时器可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,可以发出不同的音调。

在操作过程中,通过选择不同的按键,来发出不同的音调,从而实现用户自编曲目。

设计中主要包含以下几个模块:

(1)键盘扫描程序实现

主要采用4*4行列式键盘进行扫描,选择不同的按键,可以发出不同的音调。

实现过程中主要应用下列代码:

MOVR4,#00H;初值赋给R4

ANLA,#0FH;屏蔽行信号

XRLA,#0FH;取出列信号

JZNOKEY2;判断有无按键

LCALLDELY10MS;有按键延时后再扫描

MOVA,P3;读取扫描结果

CPLP1.0;找到按键,计算键值

(2)定时器1中断服务程序实现

定时器主要将从码表中取得的高位和低位字节值分别赋给TH0、TH1,然后通过P1.0口实现输出频率。

实现过程中主要应用以下代码:

MOVDPTR,#TABLE;从TABLE处取相对高位字节值

MOVCA,@A+DPTR;

MOVP0,A

MOVA,KEYBUF;*2操作

MOVB,#2

MULAB

MOVTEMP,A

MOVDPTR,#TABLE1;从TABLE处取相对低位字节值

MOVCA,@A+DPTR;

MOVSTH0,A;将高位字节值赋给STH0和TH0

MOVTH0,A

INCTEMP

MOVA,TEMP

MOVCA,@A+DPTR

MOVSTL0,A;将低位字节值赋给STH0和TH0

MOVTL0,A

SETBTR0;启动TR0

 

4硬件电路设计

电子琴设计硬件电路图,如图4.1所示:

图4.1电子琴设计硬件电路图

 

5程序设计

5.1主程序流程图

本次课程设计实现了一个以AT89C51单片机为核心控制元件,与键盘、扬声器等模块组成核心主控制模块,通过按键,实现用户自编曲目的简易电子琴。

主程序流程图如图5.1所示:

图5.1电子琴设计主程序流程图

5.2子程序流程图

(1)键盘扫描程序流程图

本次设计采用4*4行列式键盘扫描,通过按下不同按键,产生不同的音调,实现用户编曲。

键盘扫描程序流程图如图5.2所示:

图5.2键盘扫描流程图

(2)音频脉冲产生程序流程图

要产生音频脉冲,只要算出某一音频半周期的时间然后利用T0定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相,就可在P1.0引脚上得到此频率的脉冲。

音频脉冲产生程序流程图如图5.3所示:

图5.3音频脉冲产生程序流程图

5.3程序代码

CODE       SEGMENT;DZQ.ASM

           ASSUMECS:

CODE,DS:

CODE

KEYBUFEQU30H

STH0EQU31H

STL0EQU32H

TEMPEQU33H

ORG00H

LJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVTMOD,#01H

SETBET0

SETBEA

WAIT:

MOVP3,#0FFH

CLRP3.4

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY1

LCALLDELY10MS

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY1

MOVA,P3

ANLA,#0FH

CJNEA,#0EH,NK1

MOVKEYBUF,#0

LJMPDK1

NK1:

CJNEA,#0DH,NK2

MOVKEYBUF,#1

LJMPDK1

NK2:

CJNEA,#0BH,NK3

MOVKEYBUF,#2

LJMPDK1

NK3:

CJNEA,#07H,NK4

MOVKEYBUF,#3

LJMPDK1

NK4:

NOP

DK1:

MOVA,KEYBUF

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

MOVA,KEYBUF

MOVB,#2

MULAB

MOVTEMP,A

MOVDPTR,#TABLE1

MOVCA,@A+DPTR

MOVSTH0,A

MOVTH0,A

INCTEMP

MOVA,TEMP

MOVCA,@A+DPTR

MOVSTL0,A

MOVTL0,A

SETBTR0

 

DK1A:

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JNZDK1A

CLRTR0

NOKEY1:

MOVP3,#0FFH

CLRP3.5

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY2

LCALLDELY10MS

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY2

MOVA,P3

ANLA,#0FH

CJNEA,#0EH,NK5

MOVKEYBUF,#4

LJMPDK2

NK5:

CJNEA,#0DH,NK6

MOVKEYBUF,#5

LJMPDK2

NK6:

CJNEA,#0BH,NK7

MOVKEYBUF,#6

LJMPDK2

NK7:

CJNEA,#07H,NK8

MOVKEYBUF,#7

LJMPDK2

NK8:

NOP

DK2:

MOVA,KEYBUF

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

MOVA,KEYBUF

MOVB,#2

MULAB

MOVTEMP,A

MOVDPTR,#TABLE1

MOVCA,@A+DPTR

MOVSTH0,A

MOVTH0,A

INCTEMP

MOVA,TEMP

MOVCA,@A+DPTR

MOVSTL0,A

MOVTL0,A

SETBTR0

DK2A:

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JNZDK2A

CLRTR0

NOKEY2:

MOVP3,#0FFH

CLRP3.6

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY3

LCALLDELY10MS

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY3

MOVA,P3

ANLA,#0FH

CJNEA,#0EH,NK9

MOVKEYBUF,#8

LJMPDK3

NK9:

CJNEA,#0DH,NK10

MOVKEYBUF,#9

LJMPDK3

NK10:

CJNEA,#0BH,NK11

MOVKEYBUF,#10

LJMPDK3

NK11:

CJNEA,#07H,NK12

MOVKEYBUF,#11

LJMPDK3

NK12:

NOP

DK3:

MOVA,KEYBUF

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

MOVA,KEYBUF

MOVB,#2

MULAB

MOVTEMP,A

MOVDPTR,#TABLE1

MOVCA,@A+DPTR

MOVSTH0,A

MOVTH0,A

INCTEMP

MOVA,TEMP

MOVCA,@A+DPTR

MOVSTL0,A

MOVTL0,A

SETBTR0

 

DK3A:

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JNZDK3A

CLRTR0

NOKEY3:

MOVP3,#0FFH

CLRP3.7

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY4

LCALLDELY10MS

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JZNOKEY4

MOVA,P3

ANLA,#0FH

CJNEA,#0EH,NK13

MOVKEYBUF,#12

LJMPDK4

NK13:

CJNEA,#0DH,NK14

MOVKEYBUF,#13

LJMPDK4

NK14:

CJNEA,#0BH,NK15

MOVKEYBUF,#14

LJMPDK4

NK15:

CJNEA,#07H,NK16

MOVKEYBUF,#15

LJMPDK4

NK16:

NOP

DK4:

MOVA,KEYBUF

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

MOVA,KEYBUF

MOVB,#2

MULAB

MOVTEMP,A

MOVDPTR,#TABLE1

MOVCA,@A+DPTR

MOVSTH0,A

MOVTH0,A

INCTEMP

MOVA,TEMP

MOVCA,@A+DPTR

MOVSTL0,A

MOVTL0,A

SETBTR0

DK4A:

MOVA,P3

ANLA,#0FH

XRLA,#0FH

JNZDK4A

CLRTR0

NOKEY4:

LJMPWAIT

DELY10MS:

MOVR6,#10

D1:

MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

INT_T0:

MOVTH0,STH0

MOVTL0,STL0

CPLP1.0

RETI

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

TABLE1:

DW64021,64103,64260,64400

DW64524,64580,64684,64777

DW64820,64898,64968,65030

DW65058,65110,65157,65178

END

6电路仿真

6.1仿真软件

电路仿真中采用Ptotues仿真软件,该软件元器件较为齐全,仿真稳定,功能强大,故采用了此仿真软件。

6.2仿真电路

本次设计中主要采用了Protues仿真软件和Keil软件,在仿真过程中,由于Protues与Keil的连接出现一些问题,导致仿真无法实现。

仿真电路图如图6.1所示:

图6.1电子琴设计仿真电路图

 

7调试、测试与结果分析

7.1调试

根据电子琴设计原理,可以按照以下步骤完成仿真,但由于Protues与Keil在连接时出现问题,导致仿真无法实现:

(1)根据要求在Proteus中选取元器件,设计电路图;

(2)编写代码,实现软件设计;

(3)使用Kiel编译程序,产生相应的Hex文件;

(4)将Hex文件装入Proteus仿真软件中,实现仿真。

7.2测试

测试时可以按照以下步骤完成,但由于在连接Protues与Keil时出现问题,导致无法仿真,测试无法完成:

(1)根据要求选取元器件。

(2)根据所设计电路图连接电路:

(3)编写代码,实现软件设计。

(4)使用Kiel编译程序,产生相应的Hex文件。

(5)将Hex文件装入DICE中,下载到AT89C51中,运行系统。

7.3结果分析

通过按照设计的电路图连接电路,装载、编译并运行程序,可以实现通过键盘,选择不同的按键组合,实现电子琴的基本功能,用户可自编曲目,但是在应用Protues软件与Keil软件实现仿真,连接不上,无法实现对系统的仿真。

8总结

微型计算机的出现和大量使用将人类社会带入一个新的时代,单片微型计算机(简称单片机)在其中扮演着十分重要的角色。

虽然它没有常见的PC那样大的体积和重量,不会在办公桌或控制台上占据一个显要的位置,但它就像小小的螺丝钉一样,镶嵌在人们工作、生活中需要计算、控制、测量等智能活动的各个角落。

单片机以其体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点,在智能仪表、机电一体化、实时控制、分布式多机系统、家用电器等各个领域得到了广泛应用,对各个行业的技术改造和产品的更新换代起着重要的推动作用,对人们生活质量的提高产生了深刻的影响。

这次课程设计主要通过对AT89C51的基本认识,利用定时器发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调,利用不同的频率的组合,从而设计成一个与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器的简易电子琴。

在这次课程设计过程中,不仅将以前学习到的微机原理和单片机相关知识得到了巩固和进一步的提高,而且对汇编语言有了更好的理解和掌握,虽然过程中碰到了很多的问题,但是通过查阅相关书籍、资料,特别是老师的细心教导,不仅给了我思路上的开阔,而且使我认识到自己的不足之处,最终完成了本次课程设计。

通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习过程中,我会不断的完善自我,勤动手,多思考,不断进取,为自己在专业上的深入发展构筑一个好的平台。

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2