毕业设计(论文)基于单片机音乐演奏系统设计或电子琴设计.doc
摘 要如今,单片机控制音乐播放的例子不胜枚举,音乐演奏系统也广泛的应用,而利用单片机存储音乐,控制播放,弹奏乐曲更为广泛。它有功能多价格优外围电路简单的特点,不仅很受音乐爱好者及音乐芯片制造商的热衷,而且是一般家庭都能承受得了的经济投入范围之内。利用单片机发声键盘操作直观简单。对于初学者来说,是很容易弹奏的。本设计为基于单片机的音乐演奏系统,设计出一种不仅要使单片机可以播放音乐关键在于还有能够弹奏自己想弹奏的音乐。本文设计出一种基于STC89C52的简单音乐演奏系统,利用单片机技术、LM386音频功放芯片、4x4键盘、SPEAKER、以及74HC595和LED数码管实现原理图设计到电路板设计开发,并用C51高级语言进行键盘识别程序设计和音频脉冲输出程序的设计。最终能够实现乐曲演奏和自动播放音乐,并且可以通过LED数码管显示音符和音调的高低。关键词:STC89C52;音频脉冲;键盘识别;播放音乐AbstractAt present, the examples of microcontroller control music playback is too numerous to enumerate, at the same time,the music performance system is also widely used, make the best use of microcontroller which can store music, control playback, playing music.The advantage of the music performance system contains multiple functions,excellent price,simple peripheral circuit.The features of the music performance system not only popular with music lovers and music chip manufacturers, but also accepted by general family for it price.The keyboard operation is simple under the use of microcontroller.It is easy for beginner to play. The design of music performance system based on microcontroller, it can not only play music but also play the music which we want to. This paper designs a simple music system which is based on STC89C52 which make full use of microcontroller technology, the LM386 audio amplifier chip, 4x4 keyboard, SPEAKER, 74HC595 and LED digital tube.It realizes from schematic design to circuit board design and development, and use C language accomplish keyboard identify program design and audio pulse output program design. Finally the design realizes the music play and auto play music,it can display the high or low of notes and tone through the LED digital tube .Key words: STC89C52; audio pulse; keyboard; play the music目 录1 绪论12 设计概述32.1主要器件的概述32.2 设计思想32.3 功能说明32.4 电路图说明43 单片机的介绍63.1 单片机简介63.2 单片机的发展73.3 单片机内部结构73.4 引脚电路连接及说明103.5 引脚结合电路的说明113.6 89C51的展望123.7 STC89C52与AT89C51的区别124 硬件电路设计134.1 单片机的最小系统134.1.1电源电路134.1.2 时钟电路144.1.3 复位电路154.2 音频功放电路设计164.2.1 LM386音频功放芯片介绍164.2.2 LM386引脚图164.2.3 LM386内部结构174.2.4音频处理模块电路原理图184.3 控制电路184.3.1键盘接口电路184.3.2 识别按键的方法194.4 显示电路214.4.1 74HC595串入并出移位寄存器214.4.2 LED8段数码管224.4.3 显示电路235 系统软件设计255.1 软件开发环境255.1.1 keil uvision介绍255.1.2 keil uvision的功能特点255.2 流程图265.3 扬声器发声原理275.3.1 单片机产生不同频率脉冲信号的原理275.3.2 单片机产生不同音调的程序设计285.4 键盘矩阵的设计295.5 键盘矩阵与不同频率音调发声的结合315.6 音乐自动演奏和音乐弹奏的转换325.7 数码管显示程序设计325.7.1 数码管显示程序设计325.7.2 数码管数据发送的程序设计335.7.3 数码管所需要发送的数据程序设计335.8 音乐自动演奏程序设计345.8.1 音乐代码库的建立方法345.8.2 选曲345.8.3音符的节拍355.8.4 音乐演奏的程序设计35结 论38致 谢39参考文献40附录A 英文原文41附录B 汉语翻译46附录C 程序50附录D 原理图591 绪论现如今,单片机控制音乐播放的例子不胜枚举,音乐演奏系统也广泛的应用,而利用单片机存储音乐,控制播放最为广泛。它有功能多价格优外围电路简单的特点,不仅很受音乐爱好者及音乐芯片制造商的热衷,而且是一般家庭都能承受得了的经济投入范围之内。利用单片机发声键盘操作直观简单。对于初学者来说,尤其对识谱的人来说是很容易弹奏的,一首简单的曲子对于基础好的人甚至不用过多的练习和教师的辅导就能很容易的弹奏出来。这样就更大的提高了学习者的学习兴趣,迅速地提高了电子音乐的普及率。由于本课题定为基于单片机的音乐演奏系统,那么不仅要使单片机可以播放音乐关键在于还有能够弹奏自己想弹奏的音乐。 随着以法国、德国、意大利为代表的欧洲电子音乐和以美国为代表的电子音乐、计算机音乐早期得到了充分发展,国际上许多国家纷纷开始引入电子音乐研究与创作。六十年代,美国物理学家研制出了小型实用的电子音乐演奏设备。从此,首先在欧美地区,电子音乐演奏作为新型的乐器被音乐家特别是流行音乐家所采用并快速的流行起来。到当今21世纪,电子音乐演奏系统的发展已经经过了很多代产品,尤其是电气琴已经非常完善,它可以说是无所不能了。本设计用4x4键盘来对应每一个音乐的音符已达到弹奏的效果,为便于理解与说明,加入了LED数码管以显示对应的歌曲的编码和音调的高低等。本设计从选题、编程、搭接电路、焊接芯片至论文编写在本文都会详细的阐述。近年来,电子音乐越来越受到人们的关注,它有功能多价格优外围电路简单的特点,很受音乐爱好者及音乐芯片制造商的青睐。本文设计的一种基于STC89C52的简单音乐演奏系统,利用单片机技术、LM386音频功放芯片、4x4键盘、SPEARK实现原理图设计到电路板设计开发,并用C51高级语言进行键盘识别程序设计和音频脉冲输出程序的设计。经过硬件的调试,该音乐发生器能通过键盘弹奏出来的乐曲,音乐播放良好,音调和节拍都由单片机控制,使之产生精确的音乐。该系统能够实现乐曲演奏和自动播放音乐两种功能。当实现乐曲演奏时,P0.3端子的信号为高电平,采用4x4矩阵键盘作为发生器的输入设备。为了放大单片机STC89C52产生的乐曲声音,采用了功率放大器LM386,通过SPEAKER进行发生。弹出不同的音调都可以通过LED数码管显示出来。当实现自动播放音乐时,将P0.3端子的电压拉成低电平,用矩阵键盘的按键去控制所选取的歌曲,可以由LED数码管显示所选取歌曲的序号。2 设计概述2.1主要器件的概述本次设计的核心是STC89C52芯片,本论文涉及了有关STC89C52的所有功能,并针对设计中所用到的STC89C52进行拓展。大致上包括STC89C52芯片的引脚功能介绍、图表的说明、以及它的输入/输出(I/O)口的说明。对于输入/输出(I/O)口的说明会有详细的说明,接下来是电路的硬件部分说明,最后是软件设计。设计的主要器件包括LM386音频功放芯片,4x4键盘,以及74HC595和LED数码管。LM386是音频功放电路的核心。4x4键盘用于控制电路,74HC595和LED数码管用于显示电路。2.2 设计思想本设计主要分成选题思想、硬件思想、编程思想三个方面。选题思想,它实际上就是一个音乐演奏系统,在人的操作下,通过LM386功放和SPEAKER播放,用4x4键盘进行弹奏,并可以显示弹奏的乐曲和音调。硬件思想,它的基础是选题思想,根据题目,硬件也就要配合着来选择。这里所用的单片机是STC89C52,选择它,首先市场上大部分卖的都是STC89C52型号的。其次,STC89C52是STC89C51的加强版,功能多稳定性好,本次设计业非常适合这款单片机。在它们的输出端分别接有LM386音频放大器和74HC595串入并出寄存器。程序编写阶段,在程序中分了两个大程序块:主程序段。包括对定时计数器的初始化,音乐演奏与音乐弹奏的转变和数码管的显示。音乐自动演奏的编码。这里包括了化蝶和渴望两首歌曲的音调和节拍。以上是大致的划分,在程序中还有许多子程序块,来具体的执行这些,例如最基本的键盘扫描,数码管数据发送等等。2.3 功能说明当实现乐曲演奏时,P0.3端子的信号为高电平,采用4x4矩阵键盘作为发生器的输入设备。为了放大单片机STC89C52产生的乐曲声音,采用了功率放大器LM386,通过SPEAKER进行发生。弹出不同的音调都可以通过LED数码管显示出来。当实现自动播放音乐时,将P0.0端子的电压拉成低电平,用矩阵键盘的按键去控制所选取的歌曲,可以由LED数码管显示所选取歌曲的序号通过按键开关来实现P0.3的高低电平变换。2.4 电路图说明可参见附录 D,为该设计的电路图,它大至上分为五个部分:(1) 为STC89C52芯片,上面画出了各个引脚所对应的连接方法,有晶振的连接引脚X1和X2,复位键连接到引脚RESET,P3.7接LM386音频放大器电路用于发声,P3.0P3.2接74HC595寄存器,控制LED显示。(2) 音频放大电路,主要有LM386芯片,LM386的外形和引脚的排列:引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10F。(3) 两个74HC595串行输入输出或并行输出移位寄存器,用于LED数码管发光。有效的减少了单片机输入/输出端口的占用。(4) 电源。DC接口,接有二极管(保护作用),100UF的电解电容(滤低频)和1UF的独石电容(滤高频) (5)电平转换,包括DB9和MAX232.本设计最初有两种方案,一种是利用STC89C52、74LS373锁存器和27512外部扩展组成的音乐播放器。电路以STC89C52为主控制器,74LS373和27512进行外部程序存储器的扩展,播放/暂停键为播放/暂停歌曲,下一曲键和上一曲键分别为调整歌曲的下一曲和上一曲选择键的按钮。晶振采用12MHz,音乐信号由P3.0口输出,经喇叭发声而播放歌曲。程序根据音选取的是C调三个8度内的音符,共16个音。每个音符对应频率由定时器T0产生。为了程序调用方便,每个音符都对应一个编码,占用一个字节。在程序中以查表的方式加载计数初值。当值为00H时表示空拍,与节拍码配合完成节拍发音。节拍码也占一个字节,其总时间长度等于基本时间乘以节拍码的值。节拍码值为01H时,表示当前乐曲结束,为00H时,表示全部乐曲结束。为了编码简单,一般节拍码高半字节表示整拍,低半字节表示分数,只要基本延时设定恰当即可并且在按开始按钮后,可以播放歌曲。另一种是利用STC89C52和LM386(音频功放) 组成的音乐播放器。电路以STC89C52为主控制器,LM386(音频功放)来实现的。经喇叭发声而播放歌曲。程序中根据每个音符对应频率由定时器T0产生。为了程序调用方便,每个音符都对应一个编码,占用一个字节。最终,考虑到方案二可以弹奏任意歌曲而采用了方案二,并加以改良使之能演奏存储好的歌曲,并通过LED数码管显示声调和曲号。3 单片机的介绍3.1 单片机简介单片机是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器(CPU)、存储器(含程序存储器ROM和数据存储器RAM)、输入、输出接口电路(I/O接口)集成在同一块芯片上,构成一个即小巧又很完善的计算机硬件系统,在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。所以说,一片单片机芯片就具有了组成计算机的全部功能。由此来看,单片机有着一般微处理器(CPU)芯片所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。然而单片机又不同于单板机(一种将微处理器芯片、存储器芯片、输入输出接口芯片安装在同一块印制电路板上的微型计算机),单片机芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果对它进行应用开发,它便是一个小型的微型计算机控制系统,但它与单板机或个人电脑(PC机)有着本质的区别。单片机的应用属于芯片级应用,需要用户(单片机学习者与使用者)了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使该芯片具备特定的功能。不同的单片机有着不同的硬件特征和软件特征,即它们的技术特征均不尽相同,硬件特征取决于单片机芯片的内部结构,用户要使用某种单片机,必须了解该型产品是否满足需要的功能和应用系统所要求的特性指标。这里的技术特征包括功能特性、控制特性和电气特性等等,这些信息需要从生产厂商的技术手册中得到。软件特征是指指令系统特性和开发支持环境,指令特性即我们熟悉的单片机的寻址方式,数据处理和逻辑处理方式,输入输出特性及对电源的要求等等。开发支持的环境包括指令的兼容及可移植性,支持软件(包含可支持开发应用程序的软件资源)及硬件资源。要利用某型号单片机开发自己的应用系统,掌握其结构特征和技术特征是必须的。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。诚然,单片机的应用意义远不限于它的应用范畴或由此带来的经济效益,更重要的是它已从根本上改变了传统的控制方法和设计思想,是控制技术的一次革命,是一座重要的里程碑。3.2 单片机的发展单片机由于这种特殊的结构形式,在某些应用领域中承担了大中型计算机和通用微型计算机无法完成的一些工作。总体来说,单片机的发展可分为三个阶段: 第一阶段(19761978年):以Intel公司的MCS-48系列单片机为代表,该系列单片机在片内集成了8位CPU、并行I/O接口、8位定时/计数器、RAM和ROM等,片内RAM和ROM容量较小,寻址范围不大于4KB。第二阶段(19781983年):以Intel公司的MCS-51系列单片机为代表,该系列单片机均带有串行I/O接口,具有多级中断处理系统,定时/计数器位16位,片内RAM和ROM容量相对增大,有的片内还带有A/D转换接口。第三阶段(1983年至今):高档8位单片机巩固发展及16位单片机推出阶段。此阶段主要特征是:一方面不断完善高档8位单片机,改善其性能、结构,另一方面发展16位单片机及专用单片机。16位单片机除了CPU位16位外,片内RAM和ROM的容量进一步增大,片内RAM为232位,ROM为8KB,片内带有高速输入/输出部件,多通道10位A/D转换部件,8级中断处理系统。近年来,32位单片机已进入了实用阶段1。3.3 单片机内部结构STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.3.1 主要特征 ·与MCS-51 兼容 ·8K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·6个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路3.3.2 管脚说明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.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当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 X1:反向振荡放大器的输入及内部时钟工作电路的输入。 X2:来自反向振荡器的输出。3.3.3 振荡器特性 X1和X2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.4 引脚电路连接及说明 P2.0P2.7为I/O口的P2口:内部带有弱上拉的双向I/O口,作为输入引脚使用前,先向P2口锁存器写入1,使P2口引脚被上拉为高电平RESET为复位信号输入端,高电平有效。/EA为外部程序存储器选择信号,低电平有效。在复位期间CPU检测并锁存该引脚电平状态,当发现该引脚为高电平时,从片内程序存储器取指令,只有当程序计数器PC超出片内程序存储器地址编码范围时,才转到外部ROM中取指令;当该引脚为低电平时,一律从外部程序存储器中取指令。/EA在本次设计中此引脚接高电平,所以按照它的功能特性它将从内部程序存储器读取指令码。X1、X2的功能特性,其中X1接CPU内部时钟电路。本电路的时钟电路采用芯片内部的振荡电路。当使用片内振荡电路时,X1、X2与晶体振荡器及电容C1、C2按电路图上所示方式连接。晶振、电容C1 /C2及片内与非门(作为反馈、放大元件)构成了电感三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定。该设计中我所设计的晶振频率为11.0592MHz,C1、C2都为22PF。对于89C52芯片来说,它内置了ROM、EPROM、OTP ROM、Flash ROM,当不使用外部存储器 (包括程序存储器和数据存储器)时,P0口可以作为通用的输入/输出端口(I/O)使用。P0口作为I/O端口使用时,多路开关“控制”信号为“0”(即低电平)。输出时,写锁存器脉冲CLK有效,输出信号经内部总线至锁寸器输入端D至反相输入端Q反至多路开关至V2栅极至V2漏极到输出端,P0口是漏极开路输出,当驱动拉电流负载时,需要外接上拉电阻,P0口带有锁存器,因此具有输出锁存器,因此具有输出锁存功能。P0口作为输入口时,与P1口类似,也必须先执行写端口指令。没有外部程序存储器或虽然有外部数据存储器,但容量不大于256字节,不需要高8位地址时(在这种情况下,不能通过数据地址寄存器DPTR读写外部数据存储器),P2口可以作为I/O端口使用,这时,“控制”信号为“0”;作为输入口前,同样需要向锁存器写入“1”,使反向器输出低电平。3.5 引脚结合电路的说明图 3.1 STC89C52芯片图1) 让图3.1中31脚从内部程序存储器读取程序,直接让其接Vcc;40脚、20脚也分别按照它的功能接到Vcc 5V和GND。2)因为需要使用片内振荡电路,所以在18脚、19脚之间串了一个12MHz的晶振,在晶振的两端分别接有一个22PF的电容,两个电容的另一端共同接地。2) 在RESET位即引脚9接有一个按键,并接有一个0.01PF的电容与一个10千欧的电阻串联,构成了复位按键。4)在17引脚处接有一个LED串联一个10千欧的电阻,LED是工作指示灯,而电阻起到保护LED的作用。5)引脚P1.6接到音频放大器,作为音频的输出。3.6 89C51的展望有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。 其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。 不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下兼容89CXX等51系列芯片。同时,Atmel不再接受89CXX的定单,大家在市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。 3.7 STC89C52与AT89C51的区别 区别主要有3个:1、程序存储器为8KB比C51多了4KB的存储空间,在本次存储歌曲时起到了重要的作用。2、STC可ISP在线编程3、STC89C52多一个定时计数器T2本次设计采用的是STC89C52单片机。4 硬件电路设计硬件电路的设计,决定了整个流程的发展,其中包含了单片机以内的全部器件的连接以及其他硬件电路的设计,首先,必须了解选用的的元器件的各项性能指标与工作原理,本设计硬件电路包括最小系统、音频功放电路、控制电路和显示电路四大部分。最小系统只要是为了使单片机正常工作。音频功放电路用于产生所要实现的音乐。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示歌曲序号和音调。电路流程图如图4.1所示,下面是对硬件电路的大环节的说明。STC89C52电源电路时钟电路复位电路控制电路(键盘)音频电路(发声)显示电路图4.1 电路流程图 4.1 单片机的最小系统所谓最小系统是指能进行正常工作的最简单电路。包括电源电路,时钟电路,复位电路,三者缺一不可。4.1.1电源电路单片机的电源电路顾名思义是给单片机供电的。如图4.2所示,其中包含DC插口,开关,二极管,电容,电阻和发光二极管。因为本设计是直接通过USB接口提供5伏的电源所以不需要整流桥电路。各部分的作用:DC接口接直流电源,电压5伏电解电容C2:滤除高频及脉冲干扰。独石电容:滤除低频及脉冲干扰二极管D1:起保护作用,防止电源接反,使反相电压不通过。电阻R1:1K 限流作用。发光二极管D2:指示灯作用图4.2 单片机的电源电路4.1.2 时钟电路单片机的时钟电路信号通常用两张电路形式得到:内部振荡方式和外部振荡方式。本设计选用的是内部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益的反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟脉冲,晶振通常选用6MHZ,12MHZ和24MHZ,本设计选用的是11.0592MHZ的晶振。如图4.3,图中电容器C15和C14起稳定振荡频率快速起振的作用,一般选用530pF 本设计选用22pF。内部振荡方式所得的时钟信号比较稳定,实用电路使用较多。图4.3 单片机的时钟电路4.1.3 复位电路复位操作完成单片机片内的初始化,是单片机从一种确定的状态开始运行。当单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的情况下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。常用的是上电且开关操作,如图4.4所示。上电后,由于电容充电,使RST持续一段高电平时间。但单片机已经运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选用C=10-30F,R=10K3。 图4.4 单片机的复位电路4.2 音频功放电路设计在一定频率范围内,具有一定频率的振动就能产生所要实现的音符,但因为单片机没有足够的驱动能力,这就需要音频功率放大电路。4.2.1 LM386音频功放芯片介绍LM386是一种音频集成功放,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。 LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合4。LM386特性:静态功耗低,约为4mA,可用于电池供电;工作电压范围宽,4V-12V或5V-18V;外围元件少;电压增益可调,20-200;低失真度。 LM386的封装形式有塑封8引线双列直插式和贴片式。4.2.2 LM386引脚图LM386引脚图,如图4.5所示。引脚1为增益设定,引脚2为反相输入端,3为正向输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,一般取10F。查LM386的datasheet,电源电压4-12V或5-18V(LM386N-4);静态消耗电流为4mA;电压增益为20-200dB;在1、8脚开路时,带宽为300KHz;输入阻抗为50K;音频功率0.5W。 尽管LM386的应用非常简单,但如果不注意,特别是器件的上电、断电瞬间,甚至工作稳定后,一些操作(如插拔音频插头、旋音量调节钮)都会带来的瞬态冲击,在输出喇叭上会产生噪声。4.5 LM386引脚图 4.2.3 LM386内部结构LM386内部电路原理图如图4.6所示。它是一个三级放大电路。 图4.6 LM386的内部结构第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。 第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。 第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。 引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。 电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益5。4.2.4音频处理模块电路原理图由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置。因LM386具有低功耗、高增益的特点,适合单片机低功耗输出,所以加装LM386音频信号放大器对信号进行放大。具体电路如图4.7所示。图4.7 音频功放电路4.3 控制电路控制电路由开关和按键组成,由操作者根据相应的工作需要进行操作。4.3.1键盘接口电路1、矩阵式键盘的结构及原理单片机系统中,若使用按键的数量比较多时,通常选用用矩阵式键盘。矩阵式键由行线和列线构成,按键位于行、列线的交叉点上,目前计算机系统中使用的键盘按功能不同一般可分为编码键盘和非编码键盘两种基本类型。 (1)编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 (2)非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘6。其结构图如图4.8所示。图4.8 键盘电路4.3.2 识别按键的方法1、矩阵式方法识别按键的方法很多,其中,最常见的方法就是矩阵式方法。下面以图4.8中8号键的识别为例来说明扫描法识别按键的过程。 键盘矩阵是由四行四列构成,矩阵的四列和P2口的低四位相连,四行与P2口的高四位相连。 第一步:进行键盘扫描。先将所有的列置1行置为0,如果检测到某列被拉为0,则确定有按键按下。接下来经过10ms去抖,再次检测是否有按键按下,如果有则确定有按键按下。 第二步,确定是哪个按键被按下