基于AT89S52的玩具电子琴设计_第1页
基于AT89S52的玩具电子琴设计_第2页
基于AT89S52的玩具电子琴设计_第3页
基于AT89S52的玩具电子琴设计_第4页
基于AT89S52的玩具电子琴设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

基于AT89S52的玩具电子琴设计摘要:随着电子技术的发展,数字系统正朝着速度快、容量大、体积重量轻的方向发展。在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。其中尤其单片机技术的不断发展,使得单片机在日用生活用品中的应用越来越广泛。本文利用AT89S52单片机,设计了一种玩具电子琴,该电子琴除了可以演奏1-8八个音符以外,还可以自动播放两首歌曲,是单片机的又一扩展应用。本文详细介绍了电子琴的工作原理及硬件软件设计,并制作了实物,测试结果显示,系统运行良好。关键词:单片机蜂鸣器音乐Abstract:Withthedevelopmentofelectronictechnology,digitalsystemismovingfast,largecapacity,thevolumeandtheweightofthelightdirection.Underitsimpetus,themodernelectronicproductspenetratedalmosteveryfieldofthesociety,astrongimpetustothedevelopmentofsocialproductivityandtheimprovementofsocialinformation-baseddegree,simultaneouslyalsomakesthemodernelectronicproductstofurtherimprovetheperformance,productupgradingareincreasinglyfastpace.Developmentespeciallycomputertechnology,themicrocomputerapplicationsindailylifesuppliesmoreandmorewidelyinthe.Inthispaper,usingAT89S52microcontroller,designatoyelectronicorgan,theorgan,inadditiontoplayingeightnotes,canalsoautomaticallyplaytwosongs,isanextendedapplicationofmcu.Thispaperintroducestheworkingprincipleandhardwareandsoftwaredesignoftheelectronicorgan,andcreateaphysical,testresultsshowthat,thesystemrunswellKeyword:MCUbuzzermusic目录TOC\o第1章绪论 11.1概述 11.2研究内容 31.3理论基础 5第2章硬件设计 12.1方案论证及系统设计 12.2系统硬件分析 12.2.1单片机小系统 252.2.2供电模块 25第3章软件设计 13.1KEIL软件介绍 13.2系统流程 13.2.1系统主流程 253.2.2中断初始化流程 25第4章仿真测试 254.1PROTEUS软件介绍 254.2系统主要仿真图 254.3测试 25TOC\o致谢 59参考文献 60附录代码 63(章的名称、结论、参考文献、致谢及附录小4号黑体,其余小4号宋体)第1章绪论1.1概述目前单片机的应用渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录像机、摄像机、全自动洗衣机的控制、以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。我们所熟知的是单片机在测试控制领域中的广泛应用,但是除了这些之外,单片机还有一些有趣的应用。比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音并且还可以控制其发出不同的声调,从而连接起来构成一个歌曲。目前市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。但是这种模块价格比较昂贵,电路结构也相对比较复杂。如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生所需要的音乐效果。一般说来,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”就可以。本文使用AT89S52单片机设计了一个音乐播放器,能够演奏八个音符跟自动演奏两首歌曲,该设计能使我们能够掌握用定时器的控制播放乐曲原理和设计方法,对大学期间所学习的一些理论进行了实践,使我们对所学过的理论知识有了新的认识。并且通过该设计课题掌握了MC-51单片机的的软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工作经验。目前我国的信息行业发展迅速,因此此课题对自己的就业有非常现实与积极的意义。1.2研究内容电子琴有着漂亮的外观,清澈洪亮的声音,它是现代电子科技与音乐的产物,在现代音乐中扮演着重要的角色,单片机对于电子琴的设计具有强大的控制功能。本文主要任务是,基于AT89S52单片机设计一个能够播放八个音符跟自动播放两首歌曲的电子琴。1、利用PROTEL99设计玩具电子琴的原理图2、基于KEIL软件编写音乐播放器程序代码3、制作实物4、对所做设计进行测试1.3理论基础单片机音乐播放器是利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。要想产生音频脉冲信号,需要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用单片机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相这样就能在此I/O口上得到此频率的脉冲。通常,利用单片机的内部定时器T0工作在方式0下改变计数初值TH0和TL0来产生不同频率。对于音乐的节拍,每个音符使用1个字节,字节的高4位代表音符的高低低4位代表音符的节拍。如果1拍为0.4S,1/4拍为0.1S,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,那么1拍应为4DELAY,以此类推,所以只要求得1/4拍的DELAY,其余的节拍就是它的倍数。总而言之,一首乐曲是由音阶和节拍两大要素构成。一首乐曲演奏的原理是,不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短,若将乐曲的音调连续发出,并使其按相应的节拍变化,即可演奏一首乐曲。根据这一特点我们采用单片机辅以相应的接口来设计音乐播放器。第二章硬件设计2.1方案论证及系统设计本系统分为两个部分,一个是音乐播放,另一个就是电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在我自己定义的表中。具体要求如下:1.要求达到电子琴的基本功能,可以用弹奏出简单的乐曲。2.用键盘作出电子琴的按键,每键代表一个音符。3.各音符按一定的顺序排列,必须符合电子琴的按键排列顺序。4.弹奏电子琴时能播放出准确的声音,不弹奏时可以播放内置音乐。方案一:采用CPLD外接扬声器、键盘、数码管等。主系统可由两个模块组成:当系统检测到有按键按下时,对应音符的频率由模块1获得,这是一个数控分频器。由其clk端输入一具有较高频率的信号,分频后输出。音符的持续时间须根据乐曲的速度及每个音符的节拍数决定,模块2的功能是为模块1提供决定所发音的分频预置值,而此数在模块1输入口停留的时间即为此音符的节拍值。方案二:采用单片机外接扬声器、键盘、数码管等。具体过程:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音对比两套方案各有优缺点,方案一采用CPLD,工作速度快,系统稳定,效果好,但是其价格昂贵;而方案二在设计这样小型电子系统方面,无论是效果还是工作速度与方案一都相差不大,而且价格较为便宜。因此,选择方案二即单片机加外设的方式设计该系统较好。本系统以AT89S52单片机为主控制器,通过三极管驱动蜂鸣器发出声音。首先,一方面,通过变压、整流、滤波、稳压四部产生可供单片机使用的5v电。另一方面,单片机利用定时、计数器实时驱动喇叭演奏音乐。整个系统由单片机模块、电源模块、三极管驱动、喇叭组成。系统整体框图如图2-1所示单片机复位电路喇叭晶振复位单片机复位电路喇叭晶振复位键盘由PROTEL设计的原理图如图2-2所示图2-2系统整体原理图2.2系统硬件分析2.2.1单片机小系统单片机是大规模集成电路结束发展的产物,常见的单片机有8051系列的单片机、8096系列的单片机、PIC系列、AVR系列、SPCE061A的凌阳单片机。他将中央处理器(CPU)、存储器(ROM/RAM)、输入输出接口、定时器/记数器等主要计算机部件集成在一片芯片上,因此单片机被称为单片机微型计算机(SingleChipMicrocomputer).单片机配上适当的外围设备和软件,便可构成一个单片机应用系统。本次设计对单片机的要求:只要能够驱动蜂鸣器即可,其他并无特殊要求。故选择常见的美国Inter公司生产的MCS-51系列单片机,它具有可高性高、功能强、体积小、价格低、和抗干扰能力强等特点,被广泛应用于工农业生产、国防、科研及日常生活等各个领域。而且本组同学也比较熟悉。我们选择的ATMEL公司的AT89S52单片机,他是一种低功耗、高性能CMOS8位微控制器,具有8KISP(在系统可编程)Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有如下特点:兼容MCS-51指令系统32个双向I/O口3个16位可编程定时/计数器全双工UART串行中断口线2个外部中断源中断唤醒省电模式看门狗(WDT)电路灵活的ISP字节和分页编程4.5-5.5V工作电压时钟频率0-33MHz256×8bit内部RAM低功耗空闲和省电模式3级加密位软件设置空闲和省电功能双数据寄存器指针8k可反复擦写(>1000次)ISPFlashROMAT89S52主要引脚的主要功能:VCC:接+5V电源。GND:接地P0口:P0口为一个8位漏极开路双向I/O口,作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0口具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/记数器2的外部记数输入(P1.0/T2)和定时器/记数器2的触发输入(P1.1/T2EX)。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口P2口使用很强的内部上拉发送1。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEM在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。单片机小系统是整个数控系统的核心部分。主要包括AT89S52单片机、振荡电路、复位电路等。系统整体原理图如图2-3所示图2-3单片机小系统AT89S52单片机的P0口是个双向口,可以作输出输入口,在本系统中用作显示部分,用来给数码管传送位码,P1口也是个双向口,主要接DAC0832、P3口用来接收PC来的串口数据。而P3口主要用于中断。复位电路复位是单片机初始化操作。复位将单片机复到初始化状态,目的是使CPU及个专用寄存器处于一个确定的初始状态。如前面介绍,在单片机的复位信号RST上保持2个机器周期以上的高电平,单片机就会复位。本次设计采用的是手动复位方式,利用按键闭合是单片机复位端上保持接通高电平状态两个机器周期以上。振荡电路该电路是由内部反相放大器通过引脚XTAL1和引脚XTAL2与外接的晶体以及电容C6和C7构成,产生出晶体振荡信号。此晶振信号接至内部的时钟电路。图中的晶振频率为11.0592MHz,外接晶体时,电容C6和C7通常选30pF。虽然对外接电容没有严格要求,但电容的大小会影响振荡频率、振荡器的稳定性和起振的速度。振荡器的这些特性对弹片机的应用影响很大,因此在设计印刷电路板时,应使晶体和电容尽可能与单片机靠近,以保证稳定可靠。2.2.2供电模块当今社会人们极大的享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路--电源电路。大到超级计算机、小到袖珍计算器,所有的电子设备都必须在电源电路的支持下才能正常工作。当然这些电源电路的样式、复杂程度千差万别。超级计算机的电源电路本身就是一套复杂的电源系统。通过这套电源系统,超级计算机各部分都能够得到持续稳定、符合各种复杂规范的电源供应。袖珍计算器则是简单多的电池电源电路。不过你可不要小看了这个电池电源电路,比较新型的电路完全具备电池能量提醒、掉电保护等高级功能。可以说电源电路是一切电子设备的基础,没有电源电路就不会有如此种类繁多的电子设备。由于电子技术的特性,电子设备对电源电路的要求就是能够提供持续稳定、满足负载要求的电能,而且通常情况下都要求提供稳定的直流电能。提供这种稳定的直流电能的电源就是直流稳压电源。直流稳压电源在电源技术中占有十分重要的地位。方案一:本系统供电采用传统的变压、整流、滤波、稳压四部分组成。供电模块如图2-4所示交流220V从插头CON2输入,经过变压器T1变压后大约将至十几伏,此时仍为交流电,经过桥式整流后变为直流,经过电容C4滤波后,进入三端稳压器7805进行稳压后输出+5V。方案二开关电源是利用现代电力电子技术控制开关晶体管开通和关断的时间比率维持稳定输出电压的一种电源开关电源一般由脉冲宽度调制PWM控制IC和开关器件MOSFET、BJT等构成。开关电源和线性电源相比二者的成本都随着输出功率的增加而增长但二者增长速率各异。线性电源成本在某一输出功率点上反而高于开关电源。随着电力电子技术的发展和创新使得开关电源技术在不断地创新这一成本反转点日益向低输出电力端移动这为开关电源提供了广泛的发展空间。开关电源高频化是其发展的方向高频化使开关电源小型化并使开关电源进入更广泛的应用领域特别是在高新技术领域的应用推动了高新技术产品的小型化、轻便化。另外开关电源的发展与应用在节约能源、节约资源及保护环境方面都具有重要的意义。开关电源的工作过程相当容易理解,在线性电源中,让功率晶体管工作在线性模式,与线性电源不同的是,PWM开关电源是让功率晶体管工作在导通和关断的状态,在这两种状态中,加在功率晶体管上的伏-安乘积是很小的,在导通时,电压低,电流大,关断时,电压高电流小,功率器件上的伏安乘积就是功率半导体器件上所产生的损耗。与线性电源相比,PWM开关电源更为有效的工作过程是通过“斩波”,即把输入的直流电压斩成幅值等于输入电压幅值的脉冲电压来实现的。脉冲的占空比由开关电源的控制器来调节。一旦输入电压被斩成交流方波,其幅值就可以通过变压器来升高或降低。通过增加变压器的二次绕组数就可以增加输出的电压组数。最后这些交流波形经过整流滤波后就得到直流输出电压。控制器的主要目的是保持输出电压稳定,其工作过程与线性形式的控制器很类似。也就是说控制器的功能块、电压参考和误差放大器,可以设计成与线性调节器相同。他们的不同之处在于,误差放大器的输出,误差电压,在驱动功率管之前要经过一个电压/脉冲宽度转换单元。开关电源有两种主要的工作方式,正激式变换和升压式变换。尽管它们各部分的布置差别很小但是工作过程相差很大,在特定的应用场合下各有优点。综合比较,方案一简单但是不稳定,方案二稳定但复杂,经综合考虑,我们选用方案二。第三章软件设计本软件要实现的功能是:单片机实现玩具电子琴功能。要让蜂鸣器发出某音调的声音,只要给蜂鸣器输送该音调频率的电平信号就可以了。由于单片机I/O口的输出只有高电平“1”和低电平“0”两种状态,因此向蜂鸣器输送的电平信号实际上就是该音频的方波。例如中音“1”的频率为532Hz,它的周期为1/532s,即1..91ms。因此,只要向蜂鸣器输送周期为1.91ms的脉冲方波电平信号就能发出532Hz的音调,该方波的半周期为1.91/2=0.955ms。为此,需要利用定时器的中断,让输送给蜂鸣器的电平信号每0.955ms取反一次即可。因为所选的单片机的晶振为11.0592MHz,它的一个机器周期为12×(1/11.0592)μs=1.058μs,因此需要的机器周期总数为955μs/1.085μs=880即定时器的定时常数就应取为880。根据上述分析,发出频率为f的音频时,定时常数C计算公式为(106/2f)μs/1.085μs=460830/f=CT0工作于方式0,最大计数为8192,完全可以满足各音频定时常数设置的需要。可以证明,在已知定时常数为C的条件下,13位计数器的高8位和低5位的初值可由以下公式设定:证明这是13位计数器TH0高8位的赋值方法TL0=(8192-C)%32;2、节拍控制因为假设节拍为每分钟72拍,则每个节拍需时间:1000×60ms/72=833ms根据乐谱知识,选择相应的延时即可程序采用KEIL软件C语言编写3.1KEIL软件介绍KEILuⅥsioIl2软件是KEIL公司的产品。KEIL公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C5l编译器的功能不断增强,使用户可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uⅥsion2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVisioll2DE可为它们提供单一而灵活的开发环境。3.2系统流程3.2.1系统主流程单片机上电后,首先做系统初始化,然后对定时/计数器进行初始化,在初始化后,通过定时/计数器中断输出不同的频率,然后调用不同的延时单位来实现节拍。如图3-1所示开开始中断初始化扫描按键是否按下否判断是播放歌曲播放音调3-1系统整体流程图3.2.2中断初始化流程中断初始化主要包括设置定时计数器工作方式、开中断、赋初值等一系列操作,中断初始化主要流程图如图3-2所示开开始设置定时器工作方式设置初值开中断图3-2串口初始化主要流程图第四章仿真测试4.1PROTEUS软件介绍PROTEUS软件如图4-1所示图4-1PROTEUS软件Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。其功能特点如下:Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:原理布图,PCB自动或人工布线,SPICE电路仿真。革命性的特点:(1)互动的电路仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。(2)仿真处理器及其外围电路,可以仿真51系列、AVR、PIC等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。具有3大功能模块:(1)—个易用而又功能强大的ISIS原理布图工具;(2)PROSPICE混合模型SPICE仿真;(3)ARESPCB设计.Protues提供了丰富的资源:(1)Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。(2)Proteus可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。(4)Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。软件仿真:支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。(1)提供软件调试功能(2)提供丰富的外围接口器件及其仿真RAM,ROM,键盘,马达,LED,LCD,AD/D/A,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。(3)提供丰富的虚拟仪器利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。(4)具有强大的原理图绘制功能电路功能仿真:在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。软件缺点:器件库溃乏,库中缺少很多重要芯片,严重影响电路仿真软件出错或乱码,此时仿真效果不及硬件仿真。4.2系统主要仿真图系统主要仿真图如图4-2所示图4-2PROTEUS系统仿真4.3测试本文在仿真的基础上制作了实物,并进行了测试测试步骤:1、接通电源2、选择不同的按键3、听单片机的演奏实物图测试图测试结果:系统运转正常基于单片机的音玩具电子琴能够正确播放音乐。本文完成了基于单片机的玩具电子琴的设计与模拟。包括方案设计,系统的硬件开发、软件编程与调试等。在论文完成过程中,主要做的工作有:(1)基于PORTEL画了原理图。(2)利用了PROTEUS做了仿真(3)撰写了毕业论文本文所用的单片机为AT89S52,未来在不考虑性价比的情况下,可采用STC或者430低功耗单片机。第五章致谢毕业设计时间虽说不是很长,但却获益良多。这要归功***老师及我院老师的辅导。在此特别感谢***老师在百忙中抽出时间为我们辅导,从选题到内容章节的安排都倾注了他大量的心血,如果没有他的耐心指导和精心点拨,是不可能顺利完成这篇论文的。在此,谨祝***老师身体健康,万事顺意!同时,我还要感谢我校论文辅导老师,他在论文写作期间给予我许多的建议和帮助。此外,在学习和论文写作期间,以及我周围的同学、朋友,都给予我许多的关心与帮助、理解与支持,在此一并致谢!经过了两个多月的学习和工作,我终于完成了《…..》的论文。从开始接到论文题目,到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对恒流源一无所知的状态,我开始了独立的学习,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一内容,都有我的劳动。当看着自己的论文,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。参考文献[1]常斗南.可编程序控制器·原理·应用·实验[M].北京:机械工业出版社,1998.7[2]何立民.单片机技术的现状与未来[J].中国计算机报.1995[3]曹明扬.单片机发展动向及市场预测[J].计算机世界.1996[4]宋浩,田丰.单片机原理及应用[M].清华大学出版社[5]张洪润,易涛.单片机应用技术教程[M].清华大学出版社[6]王宗和,童一帆.单片机实验与综合训练[M].高等教育出版社.2005.12[7]陈文辉.单片机在音乐喷泉中的应用.职教与成教[J].福建省侨兴轻工学校.2007.2[8]丛福建,吴军辉,田梦倩.用MCS51单片机制作的音乐喷泉控制器[J].南京农专学报(第17卷第4期).2001.2[9]袁启昌,王宏宇.单片机应用实训教程[M].科学出版社.2006.2[10]张筱云.单片机原理及应用[M].SIPIVT课本教材.2009.8[11]胡键,刘玉宾,朱焕立.单片机原理及接口技术实践教程[M].机械工业出版社.[12]IntelCorporationMCS-51MICROCONTROLLERFAMILYUSER'SMANUL[M].USA.1994.2[23]AtmelAT89C51MICROCONTROLLERFAMILYUSER'SMANUL[M].USA.1995.4

附录程序/*********************************************************************文件名:蜂鸣器唱歌.c*描述:该程序实现控制蜂鸣器演奏音乐。 *版本号:2.0***********************************************************************/#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharCount;ucharzzz;sbitSpeak=P3^0;//蜂鸣器器控制脚sbitKey1=P2^0;sbitKey2=P2^1;sbitKey3=P2^2;sbitKey4=P2^3;sbitKey5=P2^4;sbitKey6=P2^5;sbitKey7=P2^6;sbitKey8=P2^7;sbitKey9=P3^6;sbitKey10=P3^7;sbitP1_0=P1^0;sbitP1_1=P1^1;sbitP1_2=P1^2;sbitP1_3=P1^3;ucharcodetable[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsignedcharcodeSONG[]={//祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,//路边的野华不要采0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,};/*********************************************************************名称:Time0_Init()*功能:定时器的初始化,定时时间可用光碟中软件计算,11.0592MZ晶振,10ms*输入:无*输出:无***********************************************************************/voidTime0_Init(){ TMOD=0x01; IE =0x82; TH0=0xDC; TL0=0x00; }voidTime1_Init(){ TMOD=0x11; IE =0x8A; TR1=0; }/*********************************************************************名称:Time0_Int()*功能:定时器中断,中断中实现Count加一*输入:无*输出:无***********************************************************************/voidTime0_Int()interrupt1{ TH0=0xDC; TL0=0x00; Count++; //长度加1}voidTime1_int()interrupt3{if(zzz==1) { TH1=0xFE;//fe TL1=0x23; }elseif(zzz==2) { TH1=0xAE;//fe TL1=0x9F; }elseif(zzz==3) { TH1=0xD6;//fe TL1=0xD2; }elseif(zzz==4) { TH1=0xFE;//fe TL1=0x23; }elseif(zzz==5) { TH1=0xC2;//fe TL1=0xF7; }elseif(zzz==6) { TH1=0xC9 ; TL1=0x35; }elseif(zzz==7) { TH1=0xCF; TL1=0x2C; }elseif(zzz==8) { TH1=0xFE; TL1=0x23; }Speak=~Speak; //长度加1}/*********************************************************************名称:Delay_xMs()*功能:延时子程序,经过软件调试,测得延时程序大概为55us.*输入:x*输出:无***********************************************************************/voidDelay_xMs(uintx){uinti,j;for(i=0;i<x;i++){for(j=0;j<3;j++);}}/*********************************************************************名称:Play_Song()*功能:播放蜂鸣器控制程序*输入:i(选择播放哪首歌曲,0为“祝你平安”,1为“路边的野花你不要采”*输出:无***********************************************************************/voidPlay_Song(uchari){ ucharTemp1,Temp2; uintAddr; Count=0; //中断计数器清0 Addr=i*217; while(1) { Temp1=SONG[Addr++]; if(Temp1==0xFF)//休止符 { TR0=0; Delay_xMs(100); } elseif(Temp1==0x00) //歌曲结束符 { return; } else { Temp2=SONG[Addr++]; TR0=1; while(1) { Speak=~Speak; Delay_xMs(Temp1); if(Temp2==Count) { Count=0; break; } } } }}/*********************************************************************名称:Main()*功能:主函数*输入:无*输出:无***********************************************************************/voidMain(){ Time0_Init(); Time1_Init(); //定时器0中断初始化 while(1) { //Play_Song(0)为祝你平安Play_Song(1)为路边的野花你不要裁 if(Key1==0) { TH1=0xFE;//fe TL1=0x23; TR1=1; zzz=1; Delay_xMs(6000); TR1=0; Speak=1; P0=0x06; P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key2==0) { TH1=0xAE; TL1=0x9F; TR1=1; zzz=2; Delay_xMs(6000); TR1=0; Speak=1; P0=0x5b;P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key3==0) { TH1=0xD6; TL1=0xD2; TR1=1; zzz=3; Delay_xMs(6000); TR1=0; Speak=1; P0=0x4f; P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key4==0) { TH1=0xBB; TL1=0x45; TR1=1; zzz=4; Delay_xMs(6000); TR1=0; Speak=1; P0=table[4]; P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key5==0) { TH1=0xC2; TL1=0xF7; TR1=1; zzz=5; Delay_xMs(6000); TR1=0; Speak=1; P0=table[5]; P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key6==0) { TH1=0xC9 ; TL1=0x35; TR1=1; zzz=6; Delay_xMs(6000); TR1=0; Speak=1; P0=table[6]; P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key7==0) { TH1=0xCF; TL1=0x2C; TR1=1; zzz=7; Delay_xMs(6000); TR1=0; Speak=1; P0=table[7]; P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key8==0) { TH1=0xFE; TL1=0x23; TR1=1; zzz=8; Delay_xMs(6000); TR1=0; Speak=1; P0=table[8]; P1_0=0;P1_1=0;P1_2=0;P1_3=0; } if(Key9==0) { Play_Song(0); } if(Key10==0) { Play_Song(1); } }}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片

温馨提示

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

评论

0/150

提交评论