基于单片机的电子琴设计与制作(程序仿真+电路图+任务书+说明书)_第1页
基于单片机的电子琴设计与制作(程序仿真+电路图+任务书+说明书)_第2页
基于单片机的电子琴设计与制作(程序仿真+电路图+任务书+说明书)_第3页
基于单片机的电子琴设计与制作(程序仿真+电路图+任务书+说明书)_第4页
基于单片机的电子琴设计与制作(程序仿真+电路图+任务书+说明书)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

摘要单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的发展潜力越来越被人们所重视。虽然当前市场上的电子琴很完备,也很精美,但是毕竟由于价格原因无法进入平常百姓家,而且庞大的身体也让人的携带变得异常麻烦。所以这里我们可以用单片机芯片实现简单的一个电子琴,虽然功能比不上市场上的,但是至少体积小,便于携带,而且价格便宜。用8个按钮可以表示8个不同的音,互相混淆就可以形成不同的音乐,且可以随便弹奏想要表达的音乐。这种电子琴可以作为玩具供小孩子使用,至少可以让承受不起市场上电子琴的人也可以有一个小小的接触。CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能得到不断地发展。而现在单片机在农业上也有了很多的应用。关键词:AT89S52、驱动电路、控制第II页目录摘要.1第1章引言.21.1电子琴概述.21.2本设计任务.31.3系统主要功能.3第2章电子琴硬件设计.42.1系统的硬件构成.42.2AT89S52单片机及其引脚说明.52.2.1主要特性:.72.2.2管脚说明:.82.3电子琴实现原理.11第3章系统的软件设计.143.1系统主程序设计流程图.143.2系统主程序设计(见附录2.14结束语.15参考文献.16附录1.17附录2.18第0页第1章引言1.1电子琴概述虽然当前市场上的电子琴很完备,也很精美,但是毕竟由于价格原因无法进入平常百姓家,而且庞大的身体也让人的携带变得异常麻烦。所以这里我们可以用单片机芯片实现简单的一个电子琴,虽然功能比不上市场上的,但是至少体积小,便于携带,而且价格便宜。用7个按钮可以表示7个不同的音符,互相混淆就可以形成不同的音乐,且可以随便弹奏想要表达的简单音乐。这种电子琴可以作为玩具供小孩子使用,至少让不愿意购买市场上电子琴的人也可以有一个小小的接触。电子乐器的结构较为复杂,音源是由晶体管产生的电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。电子琴的外形很像普通键盘乐器,只是某些种类多一排脚踏键盘,而且手触键盘也往往分为两层。键盘式电子琴声音丰富、优美,有变音装置,能发出多种不同的音色,可以作为独特的乐器进行演奏,还能代替传统的风琴、钢琴供音乐课教学。传统乐器的声音是通过机械的方法产生的,电子琴的声音是用“电”产生的。振荡器是根据需要产生一定频率的振荡信号,振荡信号通过分频器分解成不同频率的信号输送到放大器,放大器将信号放大,推动扬声器发出声音。键盘实际是一些开关,如果没有键盘,许多种频率的信号一齐进到放大器里,通过扬声器发出的声音就会乱七八糟,不成音乐。按下键盘的一支键,就等于接通一只开关,只允许某一种频率的信号通过到放大器里去,扬声器就发出一个音来。这样,按照一定的演奏规律来按键,就能奏出美妙的音乐来。电源的任务是给各部分供电。这次的电子琴是由7个按按钮,设计成7音符。然后再用一个模拟音频放大模块来使音乐播出的声音变大。用户可通过这7个键的随意组合来产生一首简单的音乐。第1页1.2本设计任务(1)由7个按钮组成电子琴的按钮,设计成7个不同中音符。(2)可随意弹奏想要表达的简单音乐。1.3系统主要功能这次的电子琴是由AT89S52单片机、7按钮按键构成,设计成7个中音。然后再用一个音频放大模块(用二个三极管和电阻组成模拟电路形成一个简单的模拟放大模块)来使音乐播出的声音变大。用户可通过这7个键的随意组合来产生不再相同的音符。所以使用很简单。第2页第2章电子琴硬件设计2.1系统的硬件构成电子琴硬件仿真图如图2-1所示。它由以下几个部件组成:单片机AT89S52、电源、7个按钮、由三极管以及电阻模拟构成音频放大模块(电路)。电源部分:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;系统板硬件连线:(1)把“单片机系统”区域中的P3.7端口用导线连接到“音频放大模块”区域中的SPKIN端口上;(2)把“单片机系统”区域中的P1.0P1.7端口用8芯排线连接到键盘区域中的按钮端口上;第3页图2-1电子琴硬件仿真图2.2AT89S52单片机及其引脚说明AT89S52是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器第4页图2-2AT89S52引脚图1.中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。MCS-51的CPU能处理8位二进制数或代码。2.内部数据存储器(内部RAM)AT89S52芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。3.内部程序存储器(内部ROM)AT89S52共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此称之为程序存储器,简称内部ROM。4.定时器/计数器AT89S52共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。5.并行I/O口AT89S52共有四个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入第5页输出。在实训中我们已经使用了P1口,通过P1口连接8个发光二极管。6.串行口AT89S52单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7.中断控制系统AT89S52单片机的中断功能较强,以满足控制应用的需要。AT89S52共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级共二个优先级别。此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。2.2.1主要特性:AT89S52CPU与MCS-51兼容4K字节可编程FLASH存储器(寿命:1000写/擦循环)全静态工作:0Hz-24KHz三级程序存储器保密锁定128*8位内部RAM32条可编程I/O线两个16位定时器/计数器6个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路第6页2.2.2管脚说明:VCC:供电电压GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P0口有三个功能:A、外部扩展存储器时,当作数据总线(如图1中的D0D7为数据总线接口)B、外部扩展存储器时,当作地址总线(如图1中的A0A7为地址总线接口)C、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。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编程和校验时接收高八位地址信号和控制信号。A、扩展外部存储器时,当作地址总线使用B、做一般I/O口使用,其内部有上拉电阻;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。第7页P3口也可作为AT89S52的一些特殊功能口,如表2-2-1所示:P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读先通)表2-2-1AT89S52P3口功能表P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读先通)P3口同时为闪烁编程和编程校验接收一些控制信号。使P3端口各线处于第二功能的条件是:A、串行I/O处于运行状态(RXD,TXD);B、打开了处部中断(INT0,INT1);第8页C、定时器/计数器处于外部计数状态(T0,T1)D、执行读写外部RAM的指令(RD,WR)EA/VPP访问和存储器控制信号:1、接高电平时:CPU读取内部程序存储器(ROM),扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。2、接低电平时:CPU读取外部程序存储器(ROM)。RST复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。XTAL1和XTAL2外接晶振引脚:当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。AT89S52系列单片机串行端口说明:AT89S52系列单片机片内有一个串行IO端口,通过引脚RXD(P30)和TXD(P31)可与外设电路进行全双工的串行异步通信。串行端口的基本特点:AT89S52单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的IO电路;方式1多用于双机之间或与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向阳UF写入数据就启动了发送过程;读SBUf就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频值或由定时器Tl的定时溢出时间确定,使用十分方便灵活。第9页2.3电子琴实现原理1.主要分为二个部分:(1)8个按钮键盘识别;(2)不同音符产生的方法;扬声器发生原理:只要让扬声器(speaker)通过会产生大小变化的电流,就能使扬声器发出声音。因此,若以程序不断地输出1-0-1-0-.就可令扬声器发出声音。由于MCS-51系列的输出端口电流不够头。所以必须加上晶体管把电流放大后再驱动扬声器如图2-3-1,只要半周期T的时间,即看可改变输出频率。图2-3-1扬声器图2.决定程序中延时参数的方法:一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来第10页产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表2-3-2所示:音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283如表2-3-2高中低音代码表C调各音的频率如表所列,根据此频率表可计算出程序所需的延时参数。现以中音的DO说明如下(1)DO的频率为262HZ,所以周期T=1/f=1/262s=3816us半周期:t=T/2=1908us(2)若以程序:第11页MOVR6,#date;用时2usACALLDELAY:用时2usDELAY:MOVB,R6;用时2usMOVR7,#06用时2usDL:DJNZR7,$用时2usDJNZR6,DL用时2usMOVR6,B用时2usRET用时1us来达成延时t的目的,则因t=1908us,且MOVR6,#dataACALLDELAYMOVB,R6MOVR6,BRET这5个指令共耗时9us,所以在DELAY子程序中,循环的部分只能是:1908us-9us=1899us循环的部分每执行一次耗时15us,故要延时1899us需要重复执行1899/15=126次,即R6=126就可以产生所需的DO音调。其它音符的R6值也可以用上述相同方法算出相应的数值。可借用公式:R值=(500000/f-9)/15下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音019之间,中音在2039之间,高音在4059之间第12页第3章系统的软件设计本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整或定闹设置程序三大模块。在程序设计过程中,加强了部分软件抗干扰措施。3.1系统主程序设计流程图图3-1系统主程序流程图3.2系统主程序设计(见附录2判断是那一个键按键按下设定相对应的延时参数R6的值令扬声器通电延时半周起T令扬声器断电延时半周起T开始第13页结束语这次的单片机应用系统设计对我们来说真的好难,只学了理论,从未接触任何实践,程序也还没完全得心应手,甚至可以说一些小的程序编写可能还要花费我们很多时间。突然说要自己亲手设计一个硬件应用系统,一下子感觉实在难啊,根本不知道从何下手。后来实没有头绪,只有去网上查找相关的设计或者到书上去找例子,从而来让自己有个如何去做的思路。通过在网上和书上很多例子的参考,基本了解了设计报告的结构和写法,同时也让我知道了单片机的功能真的是如此的强大,几乎应用于我们身边的每时每刻。这次我主要的设计是一个游戏型的基于AT89S52单片机的简单电子琴,采用8个键分别代表8个音,通过对按键的随意按击从而产生不同的音乐,主要是通过每个按键所产生的频率不同来使得发出的各个音不同,从而产生一首简单的音乐,虽然显得单一,但是至少很简单。这次主要参考了网上的一些实例,再加上了一些自己的补充。我主要针对了这个设计的原理和程序的编写以及硬件的设计,从而来更好的提出设计的方法和创新。虽然现在讲创新很难,但是相信对设计看多了,也安全熟悉了,讲创新肯定也就不会再难。本次设计电子琴程序设计不是很难,对于现在的我来说用自己的所学知识以及和同学们一起探讨程序能简单的编译出来,所以主要的还是以基础为主。根据每个程序的功能各不相同来使程序简化。最后,通过这次的自主完成单片机的应用系统设计,虽说不完全是自己完成,但是至少有一点,让我们学会了如何去完成一个设计报告,相信对以后的硬件设计也会有很大的帮助。第14页参考文献1樊明龙、任丽静.单片机原理与应用化学工业出版社,20052余永权.ATMEL8

温馨提示

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

评论

0/150

提交评论