电子琴设计.docx
《电子琴设计.docx》由会员分享,可在线阅读,更多相关《电子琴设计.docx(30页珍藏版)》请在冰点文库上搜索。
电子琴设计
Abstract
第1章前言......................................................................................................................................1
第2章方案论证..............................................................................................................................2
2.1控制模块选择方案……………………………………………………………….................
2.2按键选择方案…………………………………………………………………................…..
第3章系统硬件设计及说明…………………………………………………………………......
3.1系统组成及总体框图………………………………………………………….................….
3.2元件简介……………………………………………………………………….................….
3.2.1AT89S52……………………………………………………………………................
3.2.2LM386………………………………………………………………………...............…
3.2.3LED数码管……………………………………………………………………..............
3.3显示电路………………………………………………………………………...............…...
3.4各功能模块原理图………………………………………………………...............…….….
3.4.1AT89S52模块电路原理图…………………………………………………..................
3.4.2键盘扫描模块电路原理图…………………………………………………….............
3.4.3数码管显示模块电路原理图……………………………………………………..........
3.4.4音频处理模块电路原理图………………………………………………………...…...
3.4.5电源模块电路原理图………………….…………………………..............…...............
第4章系统软件设计……………………………………………………………………….....…
4.1音乐相关知识………………………………………………………………….....................
4.2如何用单片机实现音乐的节拍………………………………………………................….
4.3如何用单片机产生音频脉冲…………………………………………………….................
4.4系统总体功能流程图…………………………………………………………................….
第5章电路仿真……………………………………………………………………………….....
5.1ISIS软件介绍………………………………………………………………...............….….
5.2仿真图…………………………………………………………………………....................
5.3仿真图介绍……………………………………………………………………...............….
第6章PCB印制板制作…………………………………………………………………….…...
6.1印制板制作的要求………………………………………………………………................
6.2印制电路板图……………………………………………………………………............….
第7章系统调试………………………………………………………………………….……....
7.1软件仿真调试…………………………………………………………………….................
7.2软件调试………………………………………………………………………...............…..
第8章调试结论……………………………………………………………………….………....
附录1:
元器件清单
附录2:
主要电路原理图
附录3:
程序
结束语
摘要
微型电子琴的设计以AT89S52单片机作为系统的核心控制部分,通过制作硬件电路和软件的设计编写,然后进行软硬件的调试运行,最终达到设计电路的乐器演奏、点歌、存储及显示功能。
设计中应用中断系统和定时/计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现。
可以用它来弹奏和播放乐曲。
特点是设计思路简单、清晰,成本低。
关键词:
单片机电子琴AT89S52
第1章前言
1.1系统开发背景
随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。
基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。
单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。
并且可以进行一定的功能扩展。
鉴于传统电子琴可以用键盘上的“k0”到“k16”键演奏从低So到高DO等16个音,从而可以用来弹奏喜欢的乐曲。
1.2系统开发意义
该设计具有以下优点:
(1)可以随意弹奏想要表达的音乐;
(2)制作简单,成本低。
1.3设计目标
由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。
其次,在这次设计可行性上进行分析如下:
1、经济可行性:
所谓经济可行性,即在这次设计上需要投入资金的多少,由于毕业设计是没有项目资金,没有开发经费,因此在经济上必须能够承受,比较理想化的项目对于我们毕业设计来说是不可行的。
通过分析后,无论是在器件价格或是常见度上均是可行的。
2、技术可行性:
技术可行性主要是分析技术条件上是否能够顺利开展并完成开发工作,硬件、软件能否满足设计者的需要等。
通过分析各种软件环境,硬件仿真环境等均已经具备。
综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。
第2章方案论证
2.1控制模块选择方案
方案一:
用可控硅制作电子琴。
将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。
将单向可控硅SCR和电阻、电容组成驰张振荡器电路。
但该设计方案制作成本高且复杂。
方案二:
采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能,
因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。
方案三:
采用AT89S52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。
鉴于上述对比与分析,本设计采用方案三
2.2按键选择方案
传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。
该设计有16个按钮矩阵,设计成16个音,可以实现音阶在低音4---高音5之间。
比传统音阶范围大,弹奏效果好。
第3章系统硬件设计及说明
3.1系统组成及总体框图
硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。
该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。
该设计具有11个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。
由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。
用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。
本例使用国家半导体公司的低压音频功率放大器LM386来实现音频功放电路。
图3-1系统结构图
3.2元件简介
3.2.1AT89S52
功能特性:
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
主要性能:
与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz 、三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
管脚说明:
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.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2.2LM386
LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。
为使外围元件最少,电压增益内置为20。
但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。
输入端以地为参考同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
LM386的封装形式有塑封8引线双列直插式和贴片式。
图3-2LM386的封装形式
特性(Features):
(1)静态功耗低,约为4mA,可用于电池供电;
(2)工作电压范围宽,4-12Vor5-18V;
(3)外围元件少;
(4)电压增益可调,20-200;
(5)低失真度。
其典型电路如下图:
图3-3放大器增益=20(最少器件)
图3-4放大器增益=50
图3-5低频提升放大器
3.2.3LED数码管
本次毕业设计的显示电路采用LED数码管显示,LED(Light-EmittingDiode)是一种外加电压从而流过电流并发出可见光的器件。
LED是属于电流控制器件,使用时必须加限流电阻。
LED有单个LED和八段LED之分,也有共阴和共阳两种。
常用的七段显示器的结构如图下图所示。
发光二极管的阳极连在一起的称为共阳极显示器(如图b所示),阴极连在一起的称为共阴极显示器(如图c所示)。
1位显示器由八个发光二极管组成,其中七个发光二极管a~g控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。
此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。
才能显示出正确的数字来。
(a)外形(b)共阳极(C)共阴极
图3-6数码管引脚
3.3显示电路
本次毕业设计的显示电路采用LED数码管显示,由于LED是属于电流控制器件,使用时必须加限流电阻。
通过单片机查表得出数码管显示编码,传送给数码管显示,以此来实现按键与显示程序的一致性。
3.4各功能模块原理图
3.4.1AT89S52模块电路原理图
单片机主程序模块通过对键盘扫描程序信号的读取,在通过对应的表,取出数码管显示编码和定时器初始值以产生不同的声音信号。
在这一过程中,对数码管编码是直接赋值,对声音信号则是通过中断程序进行控制。
图3-7AT89S52模块电路原理图
3.4.2键盘扫描模块电路原理图
对键盘扫描电路的扫描方式有行扫描法和线反转法,在此次程序编写中,采用行扫描法,通过在p20~p23上循环送出0扫描信号,p24~p27输入按键上的高低电平信息给单片机,经处理程序,判断出是哪个开关按下,并送主程序以实现不同功能。
图3-8键盘扫描模块电路原理图
3.4.3数码管显示模块电路原理图
数码管显示模块核心是共阳级数码管,通过来自单片机I/O口的电平高低来点亮和熄灭数码管上的发光二极管,通过单片机送来的数码管显示编码可以在数码管上显示数字和字符,使应用人员可以很容易的理解按键按下所对应的音符。
图3-9数码管显示模块电路原理图
3.4.4音频处理模块电路原理图
由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置,因LM386芯片具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装LM386音频信号放大器对信号进行放大。
图3-10音频处理模块电路原理图
3.4.5电源模块电路原理图
由于本次设计的芯片的工作电压都为5V,为了排除因为电压不稳定或者不准确影响电路的工作和软件的调试,本次设计单独用LM7805设计了一个输出5V的电压的电路,如图3-11所示,其中J0为一变压器插排接口,输出电压在7.5V,为交流电压,经过整流桥进行整流,电容滤波,再经过LM7805稳压后,得到本次设计所需的5V直流电源。
图3-11电源模块电路原理图
第4章系统软件设计
本软件设计关键是要实现一种由单片机控制的简单音乐发生器,它由16个音节组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。
4.1音乐相关知识
乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低,声音就低,不同音调的乐音是用C、D、E、F、G、A、B表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。
音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。
4.2如何用单片机实现音乐的节拍
除了音符以外,节拍也是音乐的关键组成部分。
节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍的延时是0.4秒,则1拍的延时是1.6秒,只要知道1/4拍的延时时间,其余的节拍延时时间就是它的陪数。
如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置,由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。
对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
音乐的音拍,一个节拍为单位(C调)具体如下表:
表4-1音乐节拍表
曲调值
DELAY
曲调值
DELAY
调4/4
125ms
调4/4
62ms
调3/4
187ms
调3/4
94ms
调2/4
250ms
调2/4
125ms
4.3如何用单片机产生音频脉冲
了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。
在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:
表4-2音符频率与计数值T的对照表
音符
频率(HZ)
计数值(T值)
音符
频率(HZ)
计数值(T值)
低1DO
262
63628
#4FA#
740
64860
#1DO#
277
63737
中5SO
784
64898
低2RE
294
63835
#5SO#
831
94934
#2RE#
311
63928
中6LA
880
64968
低3MI
330
64021
#6LA#
932
64994
低4FA
349
64103
中7SI
968
65030
#4FA#
370
64185
低1DO
1046
65058
低SO
392
64260
#1DO#
1109
65085
#5SO#
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
#6LA#
466
64463
高3MI
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
#4FA#
1490
65198
#1DO#
554
64633
高5SO
1568
65217
中2RE
587
64633
#5SO#
1661
65235
#2RE#
622
64884
高6LA
1760
65252
中3MI
659
64732
#6LA#
1865
65268
中4FA
698
64820
高7SI
1967
65283
T的值决定了TH0和TL0的值,其关系为:
TH0=T/256,TL0=T%256
4.4系统总体功能流程图
图4-1主程序框图
按键子程序流程图如下:
图4-2键盘子程序
第5章电路仿真
5.1ISIS软件介绍
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。
该软件的特点是:
(1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
(3)提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
(4)具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
本章介绍ProteusISIS软件的工作环境和一些基本操作。
5.2仿真图介绍
单片机:
P0口对应数码管编码输出端;
P1.0口做音乐信号输出端;
P2口做键盘扫描部分输入输出端。
键盘扫描:
将16位开关通过矩阵连接,接出来四端接输入口(P0.4~P0.7)