基于单片机音乐演奏系统设计毕业设计.docx
- 文档编号:26139505
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:63
- 大小:766.93KB
基于单片机音乐演奏系统设计毕业设计.docx
《基于单片机音乐演奏系统设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机音乐演奏系统设计毕业设计.docx(63页珍藏版)》请在冰豆网上搜索。
基于单片机音乐演奏系统设计毕业设计
摘要
如今,单片机控制音乐播放的例子不胜枚举,音乐演奏系统也广泛的应用,而利用单片机存储音乐,控制播放,弹奏乐曲更为广泛。
它有功能多﹑价格优﹑外围电路简单的特点,不仅很受音乐爱好者及音乐芯片制造商的热衷,而且是一般家庭都能承受得了的经济投入范围之内。
利用单片机发声键盘操作直观简单。
对于初学者来说,是很容易弹奏的。
本设计为基于单片机的音乐演奏系统,设计出一种不仅要使单片机可以播放音乐关键在于还有能够弹奏自己想弹奏的音乐。
本文设计出一种基于STC89C52的简单音乐演奏系统,利用单片机技术、LM386音频功放芯片、4x4键盘、SPEAKER、以及74HC595和LED数码管实现原理图设计到电路板设计开发,并用C51高级语言进行键盘识别程序设计和音频脉冲输出程序的设计。
最终能够实现乐曲演奏和自动播放音乐,并且可以通过LED数码管显示音符和音调的高低。
关键词:
STC89C52;音频脉冲;键盘识别;播放音乐
Abstract
Atpresent,theexamplesofmicrocontrollercontrolmusicplaybackistoonumeroustoenumerate,atthesametime,themusicperformancesystemisalsowidelyused,makethebestuseofmicrocontrollerwhichcanstoremusic,controlplayback,playingmusic.Theadvantageofthemusicperformancesystemcontainsmultiplefunctions,excellentprice,simpleperipheralcircuit.Thefeaturesofthemusicperformancesystemnotonlypopularwithmusicloversandmusicchipmanufacturers,butalsoacceptedbygeneralfamilyforitprice.Thekeyboardoperationissimpleundertheuseofmicrocontroller.Itiseasyforbeginnertoplay.Thedesignofmusicperformancesystembasedonmicrocontroller,itcannotonlyplaymusicbutalsoplaythemusicwhichwewantto.
ThispaperdesignsasimplemusicsystemwhichisbasedonSTC89C52whichmakefulluseofmicrocontrollertechnology,theLM386audioamplifierchip,4x4keyboard,SPEAKER,74HC595andLEDdigitaltube.Itrealizesfromschematicdesigntocircuitboarddesignanddevelopment,anduseClanguageaccomplishkeyboardidentifyprogramdesignandaudiopulseoutputprogramdesign.Finallythedesignrealizesthemusicplayandautoplaymusic,itcandisplaythehighorlowofnotesandtonethroughtheLEDdigitaltube.
Keywords:
STC89C52;audiopulse;keyboard;playthemusic
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.0—P3.2接74HC595寄存器,控制LED显示。
(2)音频放大电路,主要有LM386芯片,LM386的外形和引脚的排列:
引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10μF。
(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单片机的发展
单片机由于这种特殊的结构形式,在某些应用领域中承担了大中型计算机和通用微型计算机无法完成的一些工作。
总体来说,单片机的发展可分为三个阶段:
第一阶段(1976——1978年):
以Intel公司的MCS-48系列单片机为代表,该系列单片机在片内集成了8位CPU、并行I/O接口、8位定时/计数器、RAM和ROM等,片内RAM和ROM容量较小,寻址范围不大于4KB。
第二阶段(1978——1983年):
以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字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能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.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器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.0~P2.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、OTPROM、FlashROM,当不使用外部存储器(包括程序存储器和数据存储器)时,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.1STC89C52芯片图
1)让图3.1中31脚从内部程序存储器读取程序,直接让其接Vcc;40脚、20脚
也分别按照它的功能接到Vcc5V和GND。
2)因为需要使用片内振荡电路,所以在18脚、19脚之间串了一个12MHz的晶振,
在晶振的两端分别接有一个22PF的电容,两个电容的另一端共同接地。
2)在RESET位即引脚9接有一个按键,并接有一个0.01PF的电容与一个10千欧
的电阻串联,构成了复位按键。
4)在17引脚处接有一个LED串联一个10千欧的电阻,LED是工作指示灯,而电
阻起到保护LED的作用。
5)引脚P1.6接到音频放大器,作为音频的输出。
3.689C51的展望
有些文献甚至也将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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 音乐 演奏 系统 设计 毕业设计