摘要
电子琴是现代电子科技与单片机结合的产物,是一种新型的键盘乐器,它在现在音乐中扮演着重要角色。本论文设计一个基于单片机AT89S52和语音芯片ISD4004的即时录放电子琴。该设计以51系列单片机AT89S52为核心主控制器,附有语音芯片、麦克风、8音符键盘和扬声器,可以完成简单电子琴的弹奏功能,同时,麦克风可以录入外界声音,语音芯片的使用为电子琴增加了即时录放的功能,从而实现自弹自唱,娱乐操作性更强。
关键词:单片机AT89S52、ISD4004语音芯片、即时录放
ABSTRACT
Organ is a combination of modern electronic technology and the product of SCM , which is a new type of keyboard instrument. It now plays an important role in music. This desgin is based on a voice chip ISD4004 ,MCU AT89S52 and real-time playback keyboard. The 51 series microcontroller AT89S52 plays as the core controller, with a voice chip, microphone, keyboard and speakers notes 8, playing the keyboard to complete a simple function at the same time, the external microphone input voice. The voice chip increases the use of the keyboard instant recording function, in order to achieve sing, entertainment, more operational.
Key words:MCU AT89S52、A voice chip ISD4004、Instant playback.
目录
摘要------------------------------------------2
1.绪论------------------------------------------------4
2.方案论证--------------------------------------4
2.1 总体方框图-----------------------------------------5
3.系统硬件设计----------------------------------5
3.1 分单元实现电路-------------------------------------5
3.2 系统硬件总统设计-----------------------------------10
4系统软件设计----------------------------------11
4.1 音乐的产生-----------------------------------------11
4.2 音符模块流程图-------------------------------------12
4.3 录放模块流程图-------------------------------------13
5 全文总结--------------------------------------13
参考文献----------------------------------------14
1.绪论
单片机1,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。现在可以说单片机是百花齐放的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势。
由于单片机具有强大的控制功能和灵活的编程实现特性,所以本设计利用单片机完成电子琴的设计。电子琴2又称作电子键盘,属于电子乐器(区别于电声乐器),发音音量可以自由调节。音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。它还可模仿多种音色,甚至可以奏出常规乐器所无法发出的声音(如合唱声,风雨声,宇宙声等)。另外,电子琴在独奏时,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。本设计可以实现电子琴8个基本音的弹奏,同时加入麦克风和语音芯片进行即时录放,可以实现自弹自唱,自我提高弹奏演唱水平,娱乐性很强。
2 方案论证
方案一:用可控硅3制作电子琴。将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。将单向可控硅SCR和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。
方案二:采用AT89C51单片机4进行控制,由于AT89C51不具备ISP即在线可编程功能,不能随时更改插在电路板上的单片机程序而且现在市场上能买到的大多是S系类的。
方案三:采用AT89S524单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。
鉴于上述对比与分析,本设计采用方案三。
此外,由于简易电子琴的操作单一,本设计中加入语音芯片对电子琴实现即时录放功能,使其比较新颖,设计性更强。
2.1 总体设计方框图
图2.1 总体设计方框图
3. 系统硬件设计
3.1 分单元实现电路
(1)AT89S52单片机引脚介绍
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)这是由于上拉的缘故。
图
(2)复位电路
图
电容和电阻串联,电容的正端接VCC,负端跟电阻相连,电阻另一端接地,电容和电阻相接处接单片机复位引脚。其中,电阻电容的数值选取标准是只要脉冲宽度大于复位要求的宽度即可。
(3)时钟电路
图
AT89S52内部有一组反相器,但是没有晶振,时钟信号可以从外部获得或者外加晶振。本设计采用内部时钟,所以XTAL1和XTAL2此二引线端用于外接12M晶振和微调电容。
图
如上图所示,8音符键盘的K1-K8分别接到单片机的P2.0-P2.7端口:
键盘上的K1对应音乐中的do,K1至K8分别对应do ri mi fa so la ti do,当按下弹奏开关,弹奏指示灯亮,这时,按下任意键盘上的按键,当单片机的系统扫描到有键按下时,单片机的定时器被启动,单片机发出相应频率的脉冲信号,当此秒冲信号经喇叭驱动电路滤波放大后,就可以通过扬声器发出相应的音符。当按下一个键的同时,再按下另一个键,则中断程序启动,单片机进行第二个键对应的程序,发出第二个键的音符。按不同的按键,单片机执行不同的子程序,给定时器赋不同的初值,产生不同频率的方波,从而输出不同的声音,因此按一个键输出一种音符。
图
当按下录音按键时,单片机系统执行录音程序。ISD40046芯片上的IN+是录音信号的同相输入端,此设计采用的麦克风录入方式为查分驱动,所以IN-作为差分驱动的反相输入端。ISD工作于SPI串行接口,数据在始终上升沿输入,在下降沿移出。SS变低,输入指令和地址后才能开始录放。当录音程序启动时,对着麦克风说话或者唱歌,从00处开始录音,首先发POWER UP命令,等待上点延时,再发POWER UP命令,2倍上电延时,发地址值为00的SETREC命令,发REC命令,器件便从00开始录音,一直到按下停止键出现OVF停止,人停止对麦克风说话。连续按下录音键,则单片机执行放音操作,从00处开始放音,发POWER UP指令,等待上电延时,发地址为00的SETPLAY命令,发PLAY命令,器件从00处开始放音,当按下录音键则遇到EOM,放音立即中断。
图
(1)引脚介绍
片选(SS) :此端为低,即向该ISD4004芯片发送指令,两条指令之间为高电平。
串行输入(MOSI) :此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。
串行输出(MISO) :ISD的串行输出端。ISD未选中时,本端呈高阻态。
电源(VCCA,VCCD): 为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。
自动静噪(AMCAP): 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。
外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 +1%内。商业级芯片在整个温度和电压范围内, 频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,此端必须接地。
同相模拟输入(ANA IN+) :这是录音信号的同相输入端。
反相模拟输入(ANA IN-) :差分驱动时,这是录音信号的反相输入端。
音频输出(AUD OUT) 提供音频输出。
(2) 工作原理
直接对麦克风进行的录放在前面已经做了介绍,这里主要介绍对电子琴的即时弹奏录放。当同时按下弹奏和录音按钮时,,首先,弹奏录音指示灯亮。单片机首先启动录音程序,,SS片选端为低电平,即向ISD4004发送指令,此时按下键盘,单片机的定时器已经被启动,单片机扫描是哪一个键被按下后执行相应的程序,产生一定频率的方波信号,经滤波放大后通过喇叭产生相应的音符,这时,ISD芯片从00处开始录音,等待2倍上电延时后录下弹奏的音符,同时锁存在SPI控制寄存器内。当弹奏停止后,按下停止按键,弹奏指示灯熄灭。这时按下录音指示灯,录音停止,连续按下录音按键2次,这时,单片机执行放音程序,从00处开始放音,即播放之前录下的一连串音符。从而实现对声音的即时录放处理。
图
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
特性: 静态功耗低,约为4mA,可用于电池供电。 工作电压范围宽,4-12V or 5-18V。 外围元件少。 电压增益可调,20-200v。
3.2系统硬件总体设计
图
1.把单片机7系统区域中的P0.7端口用导线连接到音频滤波放大电路模块上;
2.将单片机系统区域中的P2.0-P2.7端口接到键盘的K1-K8八个按键端口上;
3.将单片机系统区域中的P0.0端口接到ISD4004语音芯片6的SS端口,当SS端口为低电平时,数据才能进行传输。
当按下弹奏指示开关,弹奏指示灯亮,这时,按下任意琴键,当系统扫描到键盘上有键按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后。就会发出相应的音调,如果在前一个键发声的同时,有另一个键被按下则启用中断定时器,前一个键的发音停止,转到后一个键的发音程序,发出后一个键的的音。当再次按下弹奏指示灯时,则弹奏停止。当按下录音指示开关,录音指示灯亮,单片机执行录音程序ISD工作于SPI串行接口,数据在始终上升沿输入,在下降沿移出。SS变低,输入指令和地址后才能开始录放,当录音程序启动时,对着麦克风说话或者唱歌,从00处开始录音,连续按下录音键,则单片机执行放音操作,从00处开始放音。当同时按下弹奏和录音按钮时,2个指示灯亮,通过单片机的发音程序发出不同的音调,语音芯片接收单片机发出的信号同时锁存在SPI控制寄存器8内,可以实现即时播放。
4.系统软件设计
4.1音乐的产生
乐音9听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低,声音就低,不同音调的乐音是用C、D、E、F、G、A、B表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。
音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。
如何用单片机实现音乐的节拍
除了音符以外,节拍也是音乐的关键组成部分。
节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍的延时是0.4秒,则1拍的延时是1.6秒,只要知道1/4拍的延时时间,其余的节拍延时时间就是它的陪数。如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置,由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。音乐的音拍,一个节拍为单位(C调)具体如下表:
曲调值DELAY曲调值DELAY
调4/4125ms调4/462ms
调3/4187ms调3/494ms
调2/4250ms调2/4125ms。
4.2音符模块流程图
图4.2 音符模块流程图
4.3录放模块流程图
ISD4004工作于SPI串行接口,SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作,因此对ISD4004而言,在时钟上升沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。
图4.3录放流程图
4. 全文总结
通过这次设计,我巩固了自己的理论知识,同时提高了自己的动手操作能力。以前学的只是是零散的,通过此次自我动手,把这些只是串到了一起,受益匪浅。
首先在学年论文刚开始的调研阶段,我学会了怎样通过各种方式查询相关的资料。通过对大量资料的搜集整理,我了解了单片机的发展状况以及它发展的前景,认识到它的巨大功能作用,为我的进一步学习指明了方向。
我的学年论文主要设计了硬件和软件2部分,此次关于基于ISD4004的即时录放电子琴的设计的硬件图是比较简单的,操作性很强,但是很能巩固PROTEL这一软件的应用。软件方面,采用C语言编程,比较复杂的程序,对C语言有了一个很好的复习,熟悉了51系列单片机的内部的寄存器和变成规则,以及如何控制外围电路。
参考文献
1.何立民,《单片机高级教程》,第一版.北京:北京航天航空大学出版社,2001
2.王汉发,《电子琴入门一点通》,蓝天出版社,2009年5月
3.《半导体物理与器件》(第三版)电子工业出版社, (美) Donald A. Neamen著; 赵毅强, 姚素英, 谢晓东等译
4.夏继强,《单片机试验与实践教程》,北京:北京航天航空大学出版社,2001
5.莫理,《protel电路设计》,国防工业出版社,2005
6.《新型语音芯片应用手册》,社会电子科学出版社,2008年
7.徐惠民,安德宁,《单片机原理接口与应用》,北京邮电大学出版社,1996年
8.《实用电子技术手册》,国防工业出版社,2001年
9.《基础乐理》,人民音乐出版社,2000年





