毕业设计(论文)-基于单片机音乐演奏系统设计或电子琴设计.doc_第1页
毕业设计(论文)-基于单片机音乐演奏系统设计或电子琴设计.doc_第2页
毕业设计(论文)-基于单片机音乐演奏系统设计或电子琴设计.doc_第3页
毕业设计(论文)-基于单片机音乐演奏系统设计或电子琴设计.doc_第4页
毕业设计(论文)-基于单片机音乐演奏系统设计或电子琴设计.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳理工大学学士学位论文摘 要如今,单片机控制音乐播放的例子不胜枚举,音乐演奏系统也广泛的应用,而利用单片机存储音乐,控制播放,弹奏乐曲更为广泛。它有功能多价格优外围电路简单的特点,不仅很受音乐爱好者及音乐芯片制造商的热衷,而且是一般家庭都能承受得了的经济投入范围之内。利用单片机发声键盘操作直观简单。对于初学者来说,是很容易弹奏的。本设计为基于单片机的音乐演奏系统,设计出一种不仅要使单片机可以播放音乐关键在于还有能够弹奏自己想弹奏的音乐。本文设计出一种基于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 原理图59iii沈阳理工大学学士学位论文1 绪论现如今,单片机控制音乐播放的例子不胜枚举,音乐演奏系统也广泛的应用,而利用单片机存储音乐,控制播放最为广泛。它有功能多价格优外围电路简单的特点,不仅很受音乐爱好者及音乐芯片制造商的热衷,而且是一般家庭都能承受得了的经济投入范围之内。利用单片机发声键盘操作直观简单。对于初学者来说,尤其对识谱的人来说是很容易弹奏的,一首简单的曲子对于基础好的人甚至不用过多的练习和教师的辅导就能很容易的弹奏出来。这样就更大的提高了学习者的学习兴趣,迅速地提高了电子音乐的普及率。由于本课题定为基于单片机的音乐演奏系统,那么不仅要使单片机可以播放音乐关键在于还有能够弹奏自己想弹奏的音乐。 随着以法国、德国、意大利为代表的欧洲电子音乐和以美国为代表的电子音乐、计算机音乐早期得到了充分发展,国际上许多国家纷纷开始引入电子音乐研究与创作。六十年代,美国物理学家研制出了小型实用的电子音乐演奏设备。从此,首先在欧美地区,电子音乐演奏作为新型的乐器被音乐家特别是流行音乐家所采用并快速的流行起来。到当今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去抖,再次检测是否有按键按下,如果有则确定有按键按下。 第二步,确定是哪个按键被按下。先将第一行置0其他三行置1,所有列置1,如果有列被拉为0,假设为第n列,则确定为第一行第n列的按键被按下。如果将第一行置0,没有检测到有列被拉为0,则将第二行置0,其他三行被置1,所有列置1,按照上诉方式进行键盘检测。按照此方法依次进行按键确定,最终得到被按下按键确定的行值和列值。2、键盘的编码对于独立式按键盘,因为按键数量较少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行线和列线交叉点唯一确定,因此可对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。如图2.4中的8号键,它位于第2行,第3列,因此,其键盘编码应为23h。采用上述编码对于不同行的键离散性较大,不利于对按键进行处理。因此,可采用依次排列键号编码:01h、02h、03h、0eh、0fh、10h等16个键号。编码相互转换可通过计算的方法实现。3、键盘实现的功能键盘接口必须具有去抖动、按键识别和键码产生3个基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。 (3)键码产生:为了从键的行列坐标编码得到反映键功能的键码,可以通过软件对行列进行计算来实现。4.4 显示电路4.4.1 74hc595串入并出移位寄存器1、74hc595的介绍74hc595是硅结构的cmos器件, 兼容低电压ttl电路,遵守jedec标准。74hc595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在shcp的上升沿输入到移位寄存器中,在stcp的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(ds),和一个串行输出(q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能oe时(为低电平),存储寄存器的数据输出到总线。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁7。2、特点及输出能力(1)特点:8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器(三态输出:就是具有高电平、低电平和高阻抗三种输出状态的门电路。)可以直接清除 100mhz的移位频率(2)输出能力:并行输出,总线驱动; 串行输出;标准中等规模集成电路 595移位寄存器有一个串行移位输入(ds),和一个串行输出(q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能oe时(为低电平),存储寄存器的数据输出到总线。 (3)引脚说明:q0q7 第15脚, 1, 7 并行数据输出gnd 第8脚 地q7 第9脚 串行数据输出mr 第10脚 主复位(低电平) shcp 第11脚 移位寄存器时钟输入 stcp 第12脚 存储寄存器时钟输入 oe 第13脚 输出有效(低电平) ds 第14脚 串行数据输入 vcc 第16脚 电源4.4.2 led8段数码管led数码管实际上是由七个发光二极管组成8字形构成的,加上小数点是8个。如图4.9所示这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成不同的数字样了。如:显示一个“3”字,那么应当是a亮b亮g亮c亮d亮e不亮f不亮dp不亮。小尺寸数码管的显示常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8v左右,电流不超过30ma。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管8。图4.9 led7段数码管led数码管的结构和工作原理:led数码管(led segment displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点。位数有半位,1,2,3,4,5,6,8,10位等等.,led数码管根据led的接法不同分为共阴和共阳两类,硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。led数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据led数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的i/o埠进行驱动,或者使用如bcd码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用i/o埠多,如驱动5个数码管静态显示则需要58=40根i/o口来驱动,要知道一个89s52单片机可用的i/o口才32个呢。故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。 动态显示驱动:数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极com增加位元选通控制电路,位元选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通com端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个led数码管的com端,就使各个数码管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论