基于单片机的电子琴.docx

上传人:b****0 文档编号:10087422 上传时间:2023-05-23 格式:DOCX 页数:20 大小:106.84KB
下载 相关 举报
基于单片机的电子琴.docx_第1页
第1页 / 共20页
基于单片机的电子琴.docx_第2页
第2页 / 共20页
基于单片机的电子琴.docx_第3页
第3页 / 共20页
基于单片机的电子琴.docx_第4页
第4页 / 共20页
基于单片机的电子琴.docx_第5页
第5页 / 共20页
基于单片机的电子琴.docx_第6页
第6页 / 共20页
基于单片机的电子琴.docx_第7页
第7页 / 共20页
基于单片机的电子琴.docx_第8页
第8页 / 共20页
基于单片机的电子琴.docx_第9页
第9页 / 共20页
基于单片机的电子琴.docx_第10页
第10页 / 共20页
基于单片机的电子琴.docx_第11页
第11页 / 共20页
基于单片机的电子琴.docx_第12页
第12页 / 共20页
基于单片机的电子琴.docx_第13页
第13页 / 共20页
基于单片机的电子琴.docx_第14页
第14页 / 共20页
基于单片机的电子琴.docx_第15页
第15页 / 共20页
基于单片机的电子琴.docx_第16页
第16页 / 共20页
基于单片机的电子琴.docx_第17页
第17页 / 共20页
基于单片机的电子琴.docx_第18页
第18页 / 共20页
基于单片机的电子琴.docx_第19页
第19页 / 共20页
基于单片机的电子琴.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的电子琴.docx

《基于单片机的电子琴.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子琴.docx(20页珍藏版)》请在冰点文库上搜索。

基于单片机的电子琴.docx

基于单片机的电子琴

目录

第1节引言……………………………………………………………………1

1.1电子琴概述………………………………………………………………1

1.2本设计任务………………………………………………………………1

1.3系统主要功能……………………………………………………………1

第2节电子秒表硬件设计………………………………………………………2

2.1系统的硬件构成及功能…………………………………………………2

2.2AT89S51单片机及其引脚说明…………………………………………3

2.3电子琴实现原理…………………………………………………………5

第3节系统软件设计……………………………………………………………8

3.1系统主程序设计…………………………………………………………8

第4节结束语……………………………………………………………………9

参考文献……………………………………………………………………………10

附录…………………………………………………………………………………11

 

电子琴

数理与信息工程学院05计算机专升本石晓军

指导教师:

余水宝张胜

第1节引言

虽然当前市场上的电子琴很完备,也很精美,但是毕竟由于价格原因无法进入平常百姓家,而且庞大的身体也让人的携带变得异常麻烦。

所以这里我们可以用单片机芯片实现简单的一个电子琴,虽然功能比不上市场上的,但是至少体积小,便于携带,而且价格便宜。

用16个按钮可以表示16个不同的音,互相混全就可以形成不同的音乐,且可以随便弹奏想要表达的音乐。

这种电子琴可以作为玩具供小孩子使用,至少让买不起市场上电子琴的人也可以有一个小小的接触。

1.1电子琴概述

这次的电子琴是由4*4组成16个按钮矩阵,设计成16个音。

然后再用一个音频放大模块来使音乐播出的声音变大。

用户可通过这16个键的随意组合来产生不再不音乐。

所以使用很简单。

1.2本设计任务

(1)   由4X4组成16个按钮矩阵,设计成16个音。

(2)   可随意弹奏想要表达的音乐。

1.3系统主要功能

这次的电子琴是由4*4组成16个按钮矩阵,设计成16个音。

然后再用一个音频放大模块来使音乐播出的声音变大。

用户可通过这16个键的随意组合来产生不再不音乐。

所以使用很简单。

 

第2节电子琴硬件设计

2.1系统的硬件构成及功能

电脑钟的原理框图如图2所示。

它由以下几个部件组成:

单片机89C2051、电源、4*4的16个按钮矩阵、音频放大模块。

电源部分:

电源部分有二部分组成。

一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常走时。

正常情况下电池是不提供电能的,以保证电池的寿命。

图2电子钟系统原理框图

 

系统板硬件连线

(1) 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上;

(2) 把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;

2.2AT89S51单片机及其引脚说明

AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

    AT89S51具有如下特点:

40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

 1.主要特性:

· 8031CPU与MCS-51兼容

·4K字节可编程FLASH存储器(寿命:

1000写/擦循环)

·全静态工作:

0Hz-24KHz

·三级程序存储器保密锁定

·128*8位内部RAM

·32条可编程I/O线

·两个16位定时器/计数器

· 6个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

2.管脚说明:

VCC:

供电电压

    GND:

接地。

    P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

    P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

    P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

    P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3口引脚

特殊功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4

T0(定时器0外部输入)

P3.5

T1(定时器1外部输入)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读先通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

2.3电子琴实现原理

主要分为二个部分:

(1)      4X4行列式键盘识别;

(2)      音乐产生的方法;

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

现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示:

音符

频率(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)音乐的音拍,一个节拍为单位(C调)

曲调值

DELAY

 

曲调值

DELAY

调4/4

125ms

 

调4/4

62ms

调3/4

187ms

 

调3/4

94ms

调2/4

250ms

 

调2/4

125ms

对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。

在这个程序中用到了两个定时/计数器来完成的。

其中T0用来产生音符频率,T1

用来产生音拍。

 

第3节系统的软件设计

本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整或定闹设置程序三大模块。

在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模块作介绍。

3.1系统主程序设计

 

图8系统主程序流程图

结束语

这次的单片机应用系统设计对我们来说真的好难哦,只上了一个学期的课,只学了理论,从未接触任何实践,程序也还没完全得心应手,甚至可以说一些小的程序编写可能还要花费我们很多时间。

突然说要自己亲手设计一个应用系统,一下子感觉实在难啊,根本不知道从何下手。

后来实在没办法,只有去网上查找相关的设计或者到书上去找例子,从而来让自己有个如何去做的思路。

通过在网上和书上很多例子的参考,基本了解了设计报告的结构和写法,同时也让我知道了单片机的功能真的是如此的大,几乎应用于我们身边的每时每刻。

这次我主要的设计是一个游戏型的电子琴,采用16个键分别代表16个音,通过对按键的随意按击从而产生不同的音乐,主要是通过每个按键所产生的频率不同来使得发出的各个音不同,从而产一音乐,虽然显得单一,但是至少很简单。

这次主要参考了网上的一个实例,再加上了一些自己的补充。

我主要针对了这个设计的原理和程序的编写,从而来更好的会习设计的方法和创新。

虽然现在讲创新很难,但是相信对设计看多了,也安全熟悉了,讲创新肯定也就不会再难。

程序也实在很长,对于现在的我来说肯定编不出来,所以主要的还是以看懂为主。

根据每个程序的功能各不相同来使程序简化。

最后,通过这次的自主完成单片机的应用系统设计,虽说不完全是自己完成,但是至少有一点,让我们学会了如何去完成一个设计报告,相信对以后的毕业设计也会有很大的帮助。

参考文献

[1]谢自美.《电子线路设计·实验·测试》[M].武汉:

华中理工大学出版社,1992

[2]何立民.《单片机应用系统设计》[M].北京:

北京航空航天大学出版社,1993

 

附录

1.电路原理图

4.全部源程序

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

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

当前位置:首页 > 医药卫生 > 基础医学

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

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