燕山大学简易电子琴的设计学位论文.docx

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

燕山大学简易电子琴的设计学位论文.docx

《燕山大学简易电子琴的设计学位论文.docx》由会员分享,可在线阅读,更多相关《燕山大学简易电子琴的设计学位论文.docx(27页珍藏版)》请在冰点文库上搜索。

燕山大学简易电子琴的设计学位论文.docx

燕山大学简易电子琴的设计学位论文

燕山大学

课程设计说明书

 

题目:

简易电子琴

 

学院(系):

电气工程学院

年级专业:

精仪一班

学号:

100103020115

学生姓名:

王苏杨

指导教师:

孟宗

教师职称:

副教授

燕山大学课程设计(论文)任务书

院(系):

电气工程学院基层教学单位:

仪器科学与工程系

学号

100103020115

学生姓名

王苏杨

专业(班级)

精仪一班

设计题目

简易电子琴

设计一简易电子琴,按下不同按键,能够发出不同的声音。

通过每个按键的控制使单片机系统输出不同频率的脉冲,经过扬声器发出不同频率音调。

演奏一首歌曲。

 

设计电子琴的键盘电路(包括硬件电路);编制相应的程序。

设计的内容满足课程设计的教学目的与要求,设计题目的难度和工作量适合学生的知识和能力状况,工作量饱满。

查阅资料进行设计准备、设计硬件电路、编制程序,编制程序、验证设计、撰写任务书。

单片微型计算机接口技术及其应用张淑清国防工业出版社

单片机应用技术汇编

指导教师签字

基层教学单位主任签字

说明:

此表一式四份,学生、指导教师、基层教学单位、系部各一份。

2013.7.6

目录

摘要………………………………………………………………3

1电子琴的发声原理…………………………………………………5

1.1发声原理……………………………………………………5

1.2单片机实现简易电子琴原理及代码值的计算…………………5

2程序的设计思想及执行流程……………………………………8

2.1主程序的流程………………………………………………8

2.2单发音子程序的执行流程……………………………………11

2.3播放歌曲子程序的执行流程………………………………11

3硬件系统连接…………………………………………………13

3.189c51芯片简介……………………………………………13

3.2蜂鸣器的电路连接及实现…………………………………14

3.34X4矩阵键盘……………………………………………15

4总结………………………………………………………………17

参考文献……………………………………………………………24

 

摘要:

单片机是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠等特点。

单片机的应用相当广泛,从平常的家用电器到航天系统和国防军事、尖端武器都能找到它的身影。

因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分。

本论文设计一个基于单片机的简易电子琴。

我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。

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

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

关键词:

单片机电子琴节拍器自动放音

 

1、电子琴的发声原理

1.1电子琴发声原理

电子琴既可以演奏不同的曲调,又可以发出强弱不同的声音,还可以模仿二胡、笛子、钢琴、黑管以及锣鼓等不同乐器的声音。

那么,电子琴的发音原理是怎样的?

 大家知道,当物体振动时,能够发出声音。

振动的频率不同,声音的音调就不同。

在电子琴里,虽然没有振动的弦、簧、管等物体,却有许多特殊的电装置,每个电装置一工作,就会使喇叭发出一定频率的声音。

当按动某个琴键时,就会使与它对应的电装置工作,从而使喇叭发出某种音调的声音。

电子琴的音量控制器,实质上是一个可调电阻器。

当转动音量控制器旋扭时,可调电阻器的电阻就随着变化。

电阻大小的变化,又会引起喇叭声音强弱的变化。

所以转动音量控制旋扭时,电子琴发声的响度就随之变化。

当乐器发声时,除了发出某一频率的声音──基音以外,还会发出响度较小、频率加倍的辅助音──谐音。

我们听到的乐器的声音是它发出的基音和谐音混合而成的。

不同的乐器发出同一基音时,不仅谐音的数目不同,而且各谐音的响度也不同。

因而使不同的乐器具有不同的音品。

在电子琴里,除了有与基音对应的电装置外,还有与许多谐音对应的电装置,适当地选择不同的谐音电装置,就可以模仿出不同乐器的声音来。

1.2单片机实现简易电子琴原理及代码计算

本课程设计的题目为简易电子琴的设计,通过编程控制蜂鸣器脉冲的频率和有效信号的长度,可实现如下的功能:

一:

4*4矩阵键盘的1~E按键分别对应着个不同的音符,分为高低不同的14个音符,当按下某一按键,会发出相应的音调。

按下按键时,扬声器会发出一定时长的声音。

扬声器发声的时长是无法改变的,由程序设定。

如果连续按动一个乐谱的音符所对应的按键,可以实现乐曲的演奏。

二:

程序中预存了音乐《我的中国心》乐谱对应的编码,通过矩阵键盘中的“0”键触发,当在单片机处于该音乐播放模式时,可以通过按键“F”和“E”对该音乐的播放进行暂停、播放和停止操作等控制。

代码值的计算

不同的音符对应着不同的频率,我们可以利用不同的频率的组合,来实现不同的音符的组合,即可构成我们所想要的音乐了。

假如发生装置为脉冲型的蜂鸣器,将其连接在P1.0上。

按每个音符对应的频率和拍长对P1.0施以有效的脉冲信号,即可实现对应的音乐。

而对于单片机来说产生不同的频率和一定长度的脉冲信号是非常方便,我们可以利用单片机的定时/计数器来产生这样方波频率信号,调用一个可编程的延时函数即可控制声音的长度。

因此,只需将一首歌的音阶和频率即拍长相对应即可。

利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。

就可在P1.0引脚上得到此频率的脉冲。

若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。

利用AT89S52的内部定时器使其工作计数器模式工作方式1下,改变计数初值以产生不同频率的方法产生不同音阶,下面将具体介绍音符频率的计算方法。

计数脉冲值与频率的关系式(如式2-1所示)是:

N=

÷12÷

÷2(式1-1)

式中,N是产生需要脉冲所需的计数值,

是单片机的晶振频率(本实验箱的晶体振荡器为5MHz),

是想要产生的频率;

相应的计数初值T的求法如下:

T=65536-N(式1-2)

以音符DO为例,详述得到对应的频率所需的计数初值:

本次课程设计所使用的实验箱上的单片机晶振为6Hz,对应的每次计数时间间隔为2us,低音DO对应的频率为262Hz,其周期T=1/262=3817μs。

低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536-N=65536-

/12/

/2=65536-6000000/12/

=65536-250000/

低音DO的T=65536-250000/262=64582

中音DO的T=65536-250000/523=65058

高音DO的T=65536-250000/1046=65297

我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据,单片机6MHZ晶振,高中低音符与计数T0相关的计数值如表1所示:

音符

频率(HZ)

代码值(T)

音符

频率(HZ)

代码值(T)

低1 DO

262

64582

中5SO

784

65217

低2 RE

294

64686

中6LA

880

65252

低3M

330

64779

中7SI

988

65283

低4FA

349

64820

高1DO

1046

65297

低5SO

392

64898

高2RE

1175

65323

低6LA

440

64968

高3M

1318

65346

低7SI

494

65030

高4FA

1397

65357

中1DO

523

65058

高5SO

1568

65377

中2RE

587

65110

高6LA

1760

65394

中3M

659

65157

高7SI

1967

65409

中4FA

698

65178

表1-1音符频率表

音乐的音拍为基本的发声时长,一个节拍为单位(C调)相应的时长如表1-2所示:

曲调值

DELAY

曲调值

DELAY

调4/4

125ms

调4/4

62ms

调3/4

187ms

调3/4

94ms

调2/4

250ms

调2/4

125ms

表2-1曲调值表

对于不同的曲调,本课程设计采用的是调用延时子程序的,控制定时器的启动与关闭,进而时长的方法来实现的。

2程序的设计思想及执行流程

2.1主程序的流程

主程序的执行流程如图2-1所示,其中包含的功能及其子程序有:

一、键盘扫描:

检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测;

二、多功能的实现:

对检测到得按键值进行判断,是单独发音按键则跳转至单发音子程序,是歌曲播放键“0”键则跳转连续发音子程序,即开始弹奏《我的中国心》;

单发音子程序:

根据检测到得按键值,查询音律表,给计时器T0赋值,同时调用固定时长的延时子程序,发出相应频率的及时长的声音,之后自动返回至键盘扫描程序,继续等待是否有键按下;

播放歌曲程序:

检测到按键按下的是歌曲播放键“0”键时执行该程序,单片机自动播放事先已经存放好的歌曲,同时每隔一定时间扫描一次键盘,检测是否有暂停键“F”或停止键“E”按下,有则处理相应的子功能。

歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下。

 

 

 

返回键盘扫描程序

图2-1主程序流程图

 

2.2单发音子程序的执行流程

根据检测到得按键值,查询音律表,给计时器T0赋值,同时调用固定时长的延时子程序,发出相应频率的及时长的声音,之后自动返回至键盘扫描程序,继续等待是否有键按下,执行流程如图3-2所示

图2-2单发音子程序流程图图

2.3播放歌曲子程序的执行流程

检测到按键按下的是歌曲播放键“0”键时执行该程序,单片机自动播放事先已经存放好的歌曲,同时每隔一定时间扫描一次键盘,检测是否有暂停键“F”或停止键“E”按下,有则处理相应的子功能。

歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下。

执行流程如图3-3所示:

 

图3-3自动播放歌曲程序流程图

 

3硬件系统连接

3.189C51芯片简介

功能描述

(1)AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

(2)振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

(3)芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

主要特性

·与MCS-51兼容

·4K字节可编程闪烁存储器

·寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

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

·5个中断源

·可编程串行通道

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

·片内振荡器和时钟电路

3.2蜂鸣器的电路连接及实现

利用三极管作为门控信号,将三极管的基极连接在P1.0上,当给P1.0以一定频率的脉冲信号时,三极管的射级也会输出同等频率的脉冲信号。

蜂鸣器为脉冲驱动型,其发声频率由P1.0的输出频率决定,发声长度由P1.0输出的脉冲信号的有效时长确定

其电路连接图2-2如图所示

图2-2扬声器接口电路

3.34X4矩阵键盘

本次课程设计采用的WAVE2000试验箱,课程设计的功能均由键盘控制实现,键盘系统的硬件连接图如图2-3.1所示,简化的键盘部分如图2-3.2所示

4×4矩阵键盘的列扫描信号和行扫描信号分别由74HC374和74HC245控制送出和读入,其片选信号端Key_LED_CS连接在一起,可以与试验箱上的CS0~CS7相连接,其地址分别为0X002H和0X001H。

采用AT89C51的并行口P0口作为数据信号线,输出列扫描信号,读入行扫描信号。

每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。

键盘处理程序的任务是:

确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。

两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能,在本程序中,当程序检测到有键按下时,将查表使按键值与预存数据表中数据对应,并调用发声程序。

图2-3.1键盘系统的硬件连接图

图2-3.2简化的矩阵键盘连接图

4总结

本次课程设计通过制作简易电子琴,实现了对试验箱上的蜂鸣器模块、4X4矩阵键盘模块以及51单片机的定时器等各种内部功能很好的融合,掌握了利用单片机设计简易电子琴的基本思想和方法。

利用单片机产生不同频率来获得我们要求的音阶,利用不同的频率的组合,即可构成我们所想要的音乐了,我们只要把一首歌曲的音阶对应频率关系弄清楚,利用单片机的定时/计数器T0/T1来产生这样的脉冲频率信号,利用延时函数控制发声长度,然后我们利用蜂鸣器电路将音乐声音发出。

单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察。

在设计过程中,我还查阅了网上一些关于8051的介绍,向老师同学请教程序的汇编,将很大一部分时间花在研究程序怎么处理和运行。

对程序的研究,加深了我对所学单片机汇编语言命令的理解,使我学会了应用所学的汇编语言来完成一定的任务要求,而且也更加了解到软硬件配套、接口连接的重要性。

反复修改,不断的改进是程序设计的必要步骤,这个过程让我们不断的审视已有程序,在能实现要求的情况下,尽可能做到简洁易懂。

一周的课设,让我收获了很多,加深了我对单片机汇编语言和硬件连接的理解。

在这个过程中,我得到了老师和同学的很大帮助,在此感谢老师的耐心指导和给与的帮助。

 

参考文献

《单片微型计算机接口技术及其应用》张淑清国防工业出版社

《单片机原理及应用技术》张淑清国防工业出版社

《汇编语言》王爽清华大学出版社

 

附源程序代码

OUT_ADDSEQU08002H

IN_ADDSEQU08001H

Pai_NUMEQU30H

Sing_NUMEQU31H

Tone_HighEQU32H

Tone_LowEQU33H

ToneBufEQU34H

KeyBufEQU35H

ORG0000H

LJMPSTART

ORG000BH

LJMPINT_T0

ORG001BH

LJMPINT_T1

START:

MOVSP,#70H

MOVTMOD,#11H;

MOVIE,#8AH;

MOVToneBuf,#0

MLOOP:

CALLTestKey

JZMLOOP

CALLDelay

CALLTestKey

JZMLOOP

CALLGet_Char

MOVb,A

CJNEA,#0,utter

MOVSing_NUM,#00

next:

MOVA,Sing_NUM

MOVDPTR,#Sing_Tab

MOVCA,@A+DPTR

MOVR2,A

JZend_sing

ANLA,#0FH

MOVR5,A

MOVA,R2

SWAPA

ANLA,#0FH

JNZsing

CLRTR1

JMPDM1

sing:

DECA

MOV22H,A

RLA

MOVDPTR,#Sing_Tab0

MOVCA,@A+DPTR

MOVTH1,A

MOV21H,A

MOVA,22H

RLA

INCA

MOVCA,@A+DPTR

MOVTL1,A

MOV20H,A

SETBTR1

DM1:

CALLDelay1

INCSing_NUM

CALLTestKey

JZnext

CALLDelay

CALLTestKey

JZnext

CALLGet_Char

CJNEA,#0FH,next1

next0:

CLRTR1

CALLTestKey

JZnext0

CALLDelay

CALLTestKey

JZnext0

CALLGet_Char

CJNEA,#0FH,next

AJMPnext0

;SETBTR1

;JMPnext

next1:

CJNEA,#0EH,next

CLRTR1

LJMPMLOOP

;JMPnext

end_sing:

CLRTR1

LJMPMLOOP

utter:

DECB

MOVA,B

RLA

MOVB,A

MOVDPTR,#Tone_Table

MOVCA,@A+DPTR

MOVTone_High,A

MOVTH0,A

MOVA,B

INCA

MOVCA,@A+DPTR

MOVTone_Low,A

MOVTL0,A

SETBTR0

MOVPai_NUM,#100

next2:

MOVA,Pai_NUM

JNZnext2

CLRTR0

LJMPMLOOP

Tone_Table:

DW64578,64686,64778,64821,64898,64968,65029

DW65058,65110,65157,65178,65217,65252,65283,65029

Sing_Tab0:

DW65058,65110,65157,65178,65217,65252,65283

DW65296,65323,65346,64898,64968,65030

Sing_Tab:

DB0C4H,0C2H,32H,22H,32H,12H,0D2H

DB0CCH,04H

DB32H,64H,52H,32H,22H,12H,22H

DB3CH,32H,52H,;DB34H,34H,34H,32H,52H,

DB66H,72H,62H,52H,32H,22H

DB12H,14H,22H,38H

DB26H,32H,0D2H,0C2H,0B4H

DB0CCH,02H,32H

DB54H,52H,32H,34H,02H,32H

DB84H,82H,62H,64H,62H,82H

DB64H,54H,12H,24H

DB3CH,02H,32H,

DB86H,62H,066H,062H;DB86H,92H,0A4H,0A4H

DB86H,92H,0A6H,0A2H,92H,76H,52H

DB6CH,04H,

DB0C6H,32H,22H,32H,12H,0D2H

DB0CCH,04H

DB32H,64H,52H,32H,22H,12H,22H

DB34H,34H,34H,32H,52H

DB64H,62H,72H,62H,52H,32H,22H

DB12H,14H,22H,34H,34H

DB24H,22H,32H,72H,62H,54H

DB6CH,00H

TestKey:

MOVDPTR,#OUT_ADDS

MOVA,#0

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

CPLA

ANLA,#0FH

RET

Get_Char:

MOVR1,#20H

MOVR2,#6

L1:

MOVDPTR,#OUT_ADDS

MOVA,R1

CPLA

MOVX@DPTR,A

CPLA

RRA

MOVR1,A

MOVDPTR,#IN_ADDS

MOVXA,@DPTR

CPLA

ANLA,#0FH

JNZL2

DJNZR2,L1

MOVR2,#0FFH

SJMPL4

L2:

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

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

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

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