《基于单片机的简易电子琴毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的简易电子琴毕业设计.doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(2015 届)毕业设计题 目: 基于单片机的简易电子琴设计 姓名:林初丰 专业:电气工程及其自动化 班级:电气N111 学 号: 2 指导教师:程海玉 导师职称:讲师 嘉兴学院南湖学院教学事务管理中心年 月 日 诚 信 声 明我声明,所呈交的设计是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,设计中不包含其他人已经发表或撰写过的研究成果,也不包含为获得嘉兴学院南湖学院或其他教育机构的学位或证书而使用过的材料。我承诺,设计中的所有内容均真实、可信。设计作者签名: 签名日期: 年 月 日 26 / 32授 权 声 明学校有权保留送交设计的原件,允许
2、设计被查阅和借阅,学校可以公布设计的全部或部分内容,可以影印、缩印或其他复制手段保存设计,学校必须严格按照授权对设计进行处理,不得超越授权对设计进行任意处置。设计作者签名: 签名日期: 年 月 日基于单片机的简易电子琴设计摘 要本设计核心内容是关于基于AT89C51单片机的简易电子琴设计。系统由单片机AT89C51、独立键盘模块、功率放大模块、扬声器、数码管所组成。其软件部分主要有主程序模块、播放模块、按键模块、显示程序。本设计首先要对AT89C51单片机有一定的认识,继而按照电子琴功能制作出硬件电路并编写源程序,最后对其进行仿真调试。系统带有10个独立按键,其中8个独立按键分别代表8个音符,
3、8个按键每个按键在数码管也会对应一个字符来指示用户所按下的按键,还有两个为功能按键按键。同时本系统还带有一个存储播放音乐的功能,使用者可以通过按下功能按键来播放存储的歌曲,系统会把用户程序内存储的音符进行播放,在自动播放的过程中如果按下另外一个功能按键则中断播放歌曲。本次设计的主要优点有硬件电路结构简单易实现,电子琴所需功能基本具备,系统稳定可靠.关键词:at89c51,电子琴,弹奏Design of a simple electronic organ based on single chip microcomputerABSTRACTThis design is the core conte
4、nt of simple electronic organ based on AT89C51 is designed. System by single chip microcomputer AT89C51, independent keyboard module, power amplification module, speaker, digital tube. Its software part mainly has the main program module, the module, keys module, display applications. This design mu
5、st first have a certain understanding of AT89C51, then according to the electronic organ functions produce hardware circuit and the programs are the source, finally carries on the simulation debugging. System with 10 independent key, including eight independent keys represent the eight notes, each k
6、ey eight buttons in the digital tube will also corresponds to a character to indicate the user press the button, and two for the key button. Simultaneously this system also comes with a storage play the function of music, the user can press the function button to good songs, storage system will stor
7、e the user program in the notes to play, in the process of automatic playback if press buttons on another function is the interrupt play songs. The design of the main advantage of the hardware circuit structure is simple to implement, electronic organ function basically, the system is stable and rel
8、iable.Keywords: At89c51, electronic organ, playing, recording.目录1绪论41.1单片机背景41.2单片机电子琴应用52 电子琴方案设计62.1 设计要求62.2 电子琴设计方案63 硬件设计83.1 单片机83.1.1 AT89C51简介83.1.2 主要的功能特性83.1.3 I/O端口介绍83.1.4 定时/计数器的应用83.2 按键设计103.3 LED数码管103.3.1 数码管的驱动方式103.3.2 数码管的选择113.4扬声器124 软件设计144.1程序流程图144.2程序语言的选择145 仿真调试165.1 Pro
9、teus 简介165.2 keil 简介与教程165.3利用keil与Proteus进行的调试196 总结与展望22参考文献23附录25附录1主要电路原理图25附录2主要程序251绪论1.1单片机背景单片机是经典的嵌入式微控制器(Microcontroller Unit),缩写为MCU,最早是被利用于工业控制领域。因为在工业控制领域单片机有着广泛的应用,所以诞生了单片机开发板这样的系统使更多的产品开发人员、业内人士、学生来学习单片机这门技术,其中比较出名的单片机开发板有电子人DZR-01A。单片机是从芯片内部仅有的特殊处理器发展起来的,它最开始的设计思路是将CPU与大量的外围设备通过一个微处理
10、器集成在一起,从而使得计算机系统变得更迷你,组装到繁杂的且对体积要求比较小的控制装备之中更简单。Zilog公司的Z80便是最早使用这种设计思想做出来的的cpu,自此以后,单片机和计算机CPU的发展便成为了两个不同的方向。 早期的单片机都是8位或4位的,当中做的最好的是英特尔的8031,因为简单稳定和不错的性能而获得了广大好评。此后,英特尔又在8031的基础上发展出了MCS-51系列的单片机系统。由于这一单片机系统的简单可靠,直到现在还在被人们广泛的使用。随着技术的发展,工业控制领域的要求越来越高,便出现了16位单片机,但是因为性价比不高所以没有得到大量的应用。随着电子消费产品的大发展,单片机技
11、术在90年代后也得到了很大提升。随着英特尔i960系列和ARM系列的广泛应用,16位单片机的高端地位也被32位单片机迅速取代,自此32位单片机进入主流市场。同时传统的8位单片机性能也得到了很大的提升,比80年代的处理能力提升了数百倍。现在,高端的32位单片机主频已经超越了300MHz,其性能已经相当于90年代中期的专用处理器,而其价格也降低了很多,普通的型号出厂价格只需1美元,最高端的型号的单片机也只要10美元。现在的单片机系统已经不是只在裸机环境下使用和研发,单片机开始广泛应用海量的专用的嵌入式操作系统。甚至有些作为手机和掌上电脑核心处理的高端单片机已经可以直接应用专用的Windows操作系
12、统和Linux操作系统。对于嵌入式系统来说,单片机比专用处理器更加适合应用,所以它在这方面得到了最多的应用。事实上,单片机这一计算机类别是世界上数量最多的计算机,因为它出现在现代人类生活中所用的几乎所有机械与电子产品中。电子玩具、家用电器、计算器、电话、手机、掌上电脑以及鼠标等电脑配件中都会配有1-2块单片机,个人电脑中也会拥有不少数量的单片机在运作。普通汽车上都会装备40多块单片机,而复杂庞大的工业控制系统中甚至会发生数百块单片机同时运行的情况! 单片机相当于把一个复杂的计算机系统浓缩到一个微小的芯片上,它计算机相比只缺少了输入/输出设备,所以可以把它看作一个微型的计算机。可以概况的讲成:一
13、块相当于一台计算机的芯片。它的质量轻、体积小、价格便宜、为开发、应用和学习提供了便利条件。所以,如果你想要了解计算机原理与结构,那么学习使用单片机是最简单的选择。1.2单片机电子琴应用而电子琴是大规模集成电路和音乐结合的产物,它因为能模拟各种乐器的音色而受到群众们喜爱。本设计制作了一种除了有普通电子琴弹奏功能外,还拥有一种存储播放乐曲功能。本设计是以AT89C51单片机作为一个简单电子琴系统设计的核心部件,其原理是因为每个表有固定的振动频率,所以可以利用89C51单片机内部的定时计数器改变计数值来产生各个音调对应的方波频率来驱动扬声器播放出不同音调。这仅仅只是单片机应用的一个点,希望能由点到面
14、,更好的了解和应用单片机技术。2 电子琴方案设计2.1 设计要求利用AT89C51单片机作为主要控制元件设计一个简单按键式的电子琴系统。要求可以弹奏出8种基本的音调,包括中音段的Do、Re、Mi、Fa、SO、La、Si全部音符和高音Do,弹奏键盘的同时扬声器会产生当前的播放音调,数码管会显示出所对应的数字,以便于培养乐感。而且要有一个功能按键,按下此按键可以自动播放已存储的歌曲,在自动播放的过程中如果按下停止键则中断播放歌曲,另外还可适当调节音量的大小。2.2 电子琴设计方案电子琴的硬件总体设计框架和系统思路拟采用以下模块结构,如图1所示。数码管主控模块单片机键盘功率放大模块独立按键(存储播放
15、)扬声器 图1 系统结构框图系统由AT89C51单片机、独立键盘、音频功率放大模块、扬声器、数码管、存储播放模块所组成。键盘模块的8个弹奏按键分别代表8个音调,使用者按下每个按键,单片机就会产生每个音调对应频率的方波,并且通过音频功率放大模块驱动扬声器发出对应的声音。用户按下每个弹奏按键时,数码管也会将每一个对应字形显示出来。这个电子琴系统还设有存储播放功能,当用户按下功能按键来切换到特定播放音乐模式时,单片机就会把用户事先存储好的乐曲进行播放,在自动播放的过程中如果按下停止键则中断播放歌曲。本次设计采用AT89C51单片机的两个定时器(如T0,T1)控制频率,在P1.0引脚上输出方波周期信号
16、,产生声音,按下不同的模拟按键就会产生不同的音符,所以使用者可以通过本电子琴系统畅所欲为的弹奏自己想要弹的乐曲。因为一首乐曲是由许多不同的音调组成的,而每个音调都有其一一对应着的不同频率,所以需要组合各个不同的频率来构成所想要得到的歌曲了。但是对于单片机来说,想要产生不同的频率非常便捷,因为如果单片机某个引脚输出的高低电平的频率和某个音调的频率一样,那么在此引脚接上扬声器就可以发出和此音调相同的声音,所以在单片机上想要产生规定频率的方波信号只要先在某一口线输出高电平,接着延迟一小段时间输出低电平,这样重复循环的输出信号就会产生一个规定频率的方波,简单来说就是通过定时/计数器T0改变输出信号延迟
17、的时间来改变输出方波的频率。因此,想要通过单片机得到一个音调,只要找到这个音调对应频率即可。而播放歌曲部分,需要在编程的时候将每一音调的时间常数作为一组,延时节拍常数再作为一组,将乐曲中的所有常数按照固定顺序排列成一个表,通过循环语句依次播放,就能产生具有一定节奏的音调,就可以实现播放歌曲了。 3 硬件设计3.1 单片机3.1.1 AT89C51简介AT89C51是一种闪速存储器,内置的高性能CMOS微处理器芯片具有低电压、低功耗的特点,在其内置的通用的Flash和8位CPU的帮助下,使其功能非常的强大。89c51是用静态逻辑设计的,跟8051相比,它还带有省电模式,即休闲方式和掉电方式。它用
18、Flash ROM替换了ROM/EPROM,但是芯片外部引脚和指令系统却是与早期的8051/8751/8031完全兼容。由于内部使用了Flash ROM,单片机的开发及应用就别以前更加简单了。外形及引脚排列如图2所示。3.1.2 主要的功能特性1. 4K字节可编程闪烁存储器 2. 与MCS-51 兼容 3. 寿命:1000写/擦循环4. 数据保留时间:10年5. 全静态工作:0Hz-24Hz6. 三级程序存储器锁定7. 128*8位内部RAM8. 32可编程I/O线9. 两个16位定时器/计数器10. 5个中断源 11. 可编程串行通道12. 低功耗的闲置和掉电模式13. 片内振荡器和时钟电路
19、 图2 AT89C513.1.3 I/O端口介绍P0口:每一个P0接口引脚可以接受8个TTL门电流。它的工作原理是当更改P0口的管脚电平,当P0口的管脚的电平被改写为1的时候,此时P0口的输出状态就被定义为高阻输出。如果通过端口对单片机的Flash进行编程的时候,P0接口可以作为一个源代码的输入端口,就相当于输入端,而在对单片机的Flash进行校验的时候,P0接口可以作为一个源代码的输出端口,此时P0端口的外部必须接一个上拉电阻。除此之外,P0端口还能够外部程序数据的储存器,这时P0引脚的作用与之前的有所不同,其功能被重新定义为数据地址的低8位。P1口:P1口作为一个其内部自带上拉电阻的一个8
20、位的双向I/O接口,可以作为一个缓冲器来使用,当它作为缓冲器的时候能够接受4个TTL门电路的电流缓冲器。而当P1口的管脚的电平被改写为1的时候,其内部的电平也跟着被拉高,而这个时候,P1口可以作为输入口来输入电流。相反,如果当P1口的管脚的电平被改写为0的时候,P1口可以作为输出口来输出电平,这是因为其内部上拉的缘故。P1口还有一种功能就是作为低八位地址接收数据,而在实现这个功能时只有在内部的Flash在进行编程和校验。P2口:P2口的作用基本和P1口相同,其内部和P1口一样,也是一个自带上拉电阻的8位双向I/O接口,同样也可以作为一个缓冲器来使用。与P1口不同的是,P2口在作为缓冲器的时候能
21、够同时接受或输出4个TTL门电路的电流缓冲器。跟P1相同,当P2口的管脚的电平被改写为1的时候,其内部的电平也跟着被拉高,而这个时候,P2口就作为输入口来输入电流。相反,如果当P2口的管脚的电平被改写为0的时候,P2口就作为输出口来输出电平。P3口:P3口管脚的内部也集成了8个同样拥有上拉电阻功能的双向I/O接口。其功能大致与P2口、P1口相同,能够同时接受或者输出4个TTL门电流。当P3口的电平被改写为高电平的时候,其内部的电平会在其内部上拉电阻的作用下变成高电平,当P3口的电平被改写成低电平的时候,内部电平也被下拉为低电平,这时候的P3口将输出ILL电流。P3口也可作为特殊功能口,如下所示
22、:P3.0 串行输入口P3.1 串行输出口P3.2 外部中断0P3.3 外部中断1P3.4 T0外部输入P3.5 T1外部输入P3.6 外部数据存储器写选通P3.7 外部数据存储器读选通3.1.4 定时/计数器的应用AT89C51单片机内部有两个定时/计数器,它们实际上是个16位加1计数装置。它对片内振荡器输出的脉冲计数时称为定时器,对外部脉冲信号计数时称为计数器。当对单片机片内振荡器输出的脉冲计数时,每隔一个机器周期定时器就加1计数值,当计数值计满溢出时计数完毕并通知单片机。改变AT89C51的定时器里面的特殊功能寄存器TH0及TL0在模式1下的计数值,便会产生不同方波频率,然后通过扬声器产
23、生对应的音调。例如,需要频率为1046Hz时,其周期为T=1/1046=956s,因此只要令定时/计数器计数956/2=478次,相应的取反输出也是478次,就可得到高音DO(1046Hz)。 脉冲计数值与频率的关系式为: (3-1)此式中,N是计数值;fi是单片机计数频率(采用12MHz晶振时,经12分频后其输出频率为1MHz);fr为所需要转换的频率。其计数初值T的求法如下: (3-2)公式中K为单片机的定时/计数器在模式1下的最大计数值,即K216 =65536;所以可以根据这个公式算出T值: (3-3)例如,中音DO的fr为523,那么它的计数值就为T=65536500000/523=
24、64580从网上查阅到各音调对应的频率,并通过计算解出T值,最后得到下表: 表 1 各音调频率(HZ)与计数值T的对照表音调频率T值中1DO52364580中2RE58764633中3MI65964732中4FA69864820中5SO78464898中6LA88064968中7SI96865030高1DO104665058所以可设置定时器初值变化以产生相应频率的定时unsigned char code yinfu= 0xfb,0xe9, /Do 0xfc,0x5c, /Re 0xfc,0xc1, /Mi 0xfc,0xef, /Fa 0xfd,0x45, /So 0xfd,0x92, /La
25、 0xfd,0xd0, /Si 0xfd,0xee, /Do# 0x00,0x00 /音调间的间隔而歌曲的节拍部分,采用了一个15MS的延时,对它进行循环来达到节拍的作用。3.2 按键设计本设计共含有10个按键,其中8个按键分别接着P2.0P2.7引脚,代表着8个音符。当按下这八个按键其中一个按键时,数码管也会显示一个与音调对应的数字来指示用户所按下的按键。而另外两个按键为功能按键,按下可播放已存储的歌曲,另一个按下可中断播放音乐。这两个功能按键连接着的引脚分别是P3.2、P3.3。如图3所示。图3 键位图3.3 LED数码管3.3.1 数码管的驱动方式若要使数码管正常发光,就必须使用驱动电路
26、来驱动数码管的各段发光二极管,然后通过不同的组合得到想要的数字。而数码管的驱动方式又可以分为两种,分别是静态式和动态式。 静态显示驱动:静态驱动也被叫作为直流驱动。直流驱动是指每一段数码管都由一个单片机的输入/输出接口执行驱动,也可以用像BCD码二-十进制译码器这样的译码执行驱动。直流驱动的优点是二极管发光高而稳定,编写程序容易,缺点为占用输入/输出接口多,比如要驱动四个数码管静态显示就需要4832根输入/输出端口来驱动(一个89C51单片机的输入/输出接口也就才32个!),所以一般实际应用时都是以增加译码器来驱动,以避免单片机的I/O端口不够用这个尴尬局面。 动态显示驱动:在单片机应用中数码
27、管的显示方式普遍采用动态显示,动态显示驱动是将数码管的a,b,c,d,e,f,g,dp8个字段的同极端都连接在一起,并且为数码管的公共极增加一个位选通控制电路,位选通控制电路由本身独立的输入/输出口线控制,当全部数码管都接收到经由单片机控制输出的数字时,控制数码管显示的数字是取决于单片机对位选通控制电路接地端电路的控制,因此需要某个数字的时候,只要将该位数码管的位选通开启就会亮,而没有开启位选通的数码管字段就不会亮。通过对各个数码管的接地端的分时轮流控制,各个数码管也会被分时轮流受控显示数码管状态,这就是动态显示驱动。在动态驱动过程中,每段数码管的亮灯时间为12ms,因为发光二极管的余晖效应与
28、人的视觉暂留现象,所以各段数码管尽管实际上并非是同时点亮,但只要给出非常快的速度来扫射,人们所看到的东西就是一组稳定的数据,而且不会出现一闪 一闪的感觉,所以动态显示实际上出来的成效和静态显示是差不多的,还能够节省很多的输入/输出端口。3.3.2 数码管的选择通过以上了解,由于本次毕业设计需要的单片机I/O端口不多,所以数码管显示方式采用了静态显示驱动,数码管将直接由单片机I/O端口驱动, 又因为LED数码管是电流控制元件,所以使用时要上一个加限流电阻。数码管显示是通过单片机查表得出编码,然后单片机再驱动端口决定数码管显示的数字,按键与数码管显示程序的一致性就是这么实现的。连接在P0.1-P0
29、.3,4个引脚上,并加一个排阻。如图4所示。图4 数码管与单片机的连接图3.4扬声器扬声器采用两个三极管来放大音频,串连着一个可调节电阻,用来调节声音大小,整个模块由单片机P1.0引脚控制。如图5所示图5 扬声器的连接图4 软件设计4.1程序流程本设计的基本流程是对初始化的单片机进行键盘扫描,判断其有无按键按下,若有则需要继续判断按键的类别,判断它是功能选择键还是独立键盘上的音调键,若是独立键盘,则通过P1.0发生频率播放音调,通过P0显示数码管数字。若是功能选择键,则播放程序储存好的音乐歌曲,然后检测是否按下中断键,若是则停止播放,不是则一直播放到结束。程序流程图如图6。初始化键盘扫描有无键
30、按下播放音符,显示数字送入P0,P1.0P0,P1.0播放音乐,显示数字功能选择键键值独立键盘键值Y识别按键N中断键停止播放YN图6 程序流程图4.2程序语言的选择对于汇编语言来说,它是面向特定机型的需要,在不同的计算机指令系统上和不同的微控制器上,指令结构有着云泥之别,就算指令大同小异,它也不能够移植。一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。掌握汇编语言程序并不简单,因为它需要读透各个寄存器的说明以及微控制器的指令手册。简而言之,汇编语言的优点就是编写代码实时性强,程序执行效率高,缺点是不简洁,可读性差,移植性差。对于C
31、语言来说,它是一种高级语言,可以结构化编程,还可以 移植。使用标准C语言的程序编程,完全可以不作任何修改就能够移植到不同的系统平台上。标准C语言在嵌入式等的微控制芯片上也很少需要修改,而且程序上手简单,内容易懂。总的来说,C语言编写程序结构清晰明了,具有很好的移植性,也很容易进行维护和修改。基于以上对比,本设计系统更适合C语言来进行编程。5 仿真调试5.1 Proteus 简介Proteus(海神)的ISIS是一款Labcenter出品的EDA工具软件,可以仿真各种EDA工具软件的电路和IC,并支持仿真单片机及其外围器件,元件库齐全,使用简单,是不可多得的专业的单片机软件仿真系统。Proteu
32、s具备普遍EDA工具软件的功能,比如:1原理布图2PCB自动或人工布线3SPICE电路仿真革命性的特点1互动的电路仿真用户甚至可以实时采用诸如ROM,RAM,马达,键盘,LCD,LED, AD/DA,部分IIC器件,部分SPI器件。2仿真处理器及其外围电路由于PROTEUS能够进行仿真调试,拥有着实验室无法比拟的元器件库,因而也成为了学生们课程设计、毕业设计的一款重要软件,同时也培养学生实践与创造精神。5.2 keil 简介与教程单片机开发过程中除了要画硬件电路图外,程序编译也是它必不可少的一个环节,所以在这里往往需要使用到将源程序转换为机器码传送给单片机的汇编软件。随着科学技术的进步,像C语
33、言、C+这样的高级语言也渐渐地代替了汇编语言的作用,单片机程序编译的软件也在一直进步,Keil便是现在最普遍使用的MCS-51单片机程序编译的软件。Keil具有一个全面的开发环境,其中包括宏汇编、实时操作系统、C编译器、项目管理器、库管理和调试器等等功能。Keil几乎是使用C语言编程的不二之选,即使使用的不是C语言,而是利用用汇编语言来编程,其简单易用的集成系统和实用的软件仿真调试工具也会让你事半功倍。KEIL使用教程如下:第一步,打开下载完成的KEIL软件。如图7图7第二步,选择菜单栏上的project的new project,然后命名并选择自己想要保存电脑哪个文件夹的位置,如图8图8第三步
34、,在Atmel里面选择AT89C51,并点击确定,如图9图9第四步,选择菜单栏里File的 New file,另存文件的时候文件名名后缀需加.c,如图10图105.3利用keil与Proteus进行的调试使用步骤:1. 打开keil,建立工程,输入程序2. 编译和生成hex文件,如图11所示图11 keil编译3.打开Proteus,设计硬件电路图,见图12图12 硬件电路图4.导入hex文件,见图13图8-3 导入hex文件将鼠标放在单片机上,右击然后选择编辑属性,接着就会弹出图13中的对话框,再寻找需要的HEX文件位置,比如图中导入dzq.hex文件。5.点击面板左下角的,开始调试6 总结
35、与展望本设计利用AT89C51单片机设计一个简易电子琴,具备电子琴的基本功能,分析了利用单片机简易电子琴设计的基本原理,并介绍了AT89C51单片机设计的电子琴统硬件系统。改变AT89C51的定时器里面的特殊功能寄存器TH0及TL0在模式1下的计数值,便会产生不同方波频率,然后通过扬声器产生对应的音调。最终将编写的源程序转换为机器码导入单片机芯片,仿真调试运行后,就可以实现利用按键弹奏想要的歌曲。虽然这个毕业设计的题目算不是新的研究课题,但是在设计的过程中,我还是遇到了许多的困难和不解之处,于是我查阅了大量的资料,也参考了各种方案,渐渐学习到一些单片机知识及对其外围器件的掌握。在编程的过程中,
36、我也遇到了许许多多的难题,不能实现的方案,我会尽量自己编写,实在完成不了,我才会去求助程海玉老师。也多亏程海玉老师的帮助,我才能顺利的完成本次毕业设计。本次设计,仿真调试软件用的是protues,源程序编译软件用的是keil,所以对这两款软件的掌握熟练度也增加了许多。参考文献1赵鑫,蒋亮,齐兆群等.数字电路设计M.北京机械工业出版社,2005年6月第一版.2苏家健、曹柏荣、汪志锋.单片机原理及应用技术M.高等教育出版社3美Ashish Wilfred Meeta Gupta Kartik Bhatnagar著,刘永明,贺民译. php专业项目实例开发M. 水利水电出版社,20034于海生. 微
37、型计算机控制技术选编M.清华大学出版社,1999.5李朝青. 单片机原理及接口技术M. 北京:北京航天航空大学出版色,2001.6胡汉才. 单片机原理及其接口技术M. 北京:清华大学出版社,2004.7黄鑫,马善农,赵永科.基于CPLD的电子琴研究与设计J.科技广场,2007(5). 8祝富林.音乐彩灯电路CS9482J.北京:电子世界,1995,(12).9陈明荧8051单片机课程设计实训教材M北京:清华大学出版社,2003年9月10徐新艳单片机原理、应用与实践M北京:高等教育出版社,2005年3月11吴金戌,沈庆阳,郭庭吉,8051单片机实践与应用M清华大学出版社,200112冯博琴,微型
38、计算机原理与接口技术M清华大学出版社,200413孙万麟.基于AT89C51单片机的电子琴设计J.电脑知识与技术.2010,7:5626-562714王啸东,涂林军,王春燕,李作奇. 智能电子琴的设计与制作J.网友世界云教育.2013年23期.15孙文,赵万云,邹子春,袁小平. 基于RC正弦波振荡电路的电子琴设计J.现代电子技术, 2010,33(9).16张淑清,姜万录等,单片微型计算机接口技术及应用M国防工业出版社,200317郭天祥.新概念51单片机C语言程序教程M.北京:电子工业出版社,2009,1-132.18朱清慧.Proteus教程M.北京:清华大学出版社,2008,1-216.
39、19王力,张伟.ProtelDXP库元器件手册M.北京:人民邮电出版社,2003,1-194.20Medical Image Computing and Computer-Assisted Intervention MICCAI 99 Lecture Notes in Computer ScienceJ.1999, Volume 1679/1999, 798-808. 21Supply Chain Management and Advanced PlanningJ.2008,Part IV,415-430.致谢首先要感谢我的指导老师程老师,因为论文是在程老师的全力支持下解决的许多难点的。本论文
40、从选题到完成,每一步都是在程老师的指导下完成的,倾注了程老师大量的心血。一开始选题时程老师就给了我们很多建议,并让我们提早为这次毕业设计做准备。在提交开题报告时程老师认真负责的给我们审查,在做软件和硬件时也时时刻刻了解我们的进展情况。在此,谨向程老师表示由衷的感谢!谢谢程老师在我整个毕业设计过程中给我提供的帮助。论文的顺利完成,离不开其它各位老师、同学和朋友的关心和帮助。感谢所有给我帮助的老师和同学,谢谢你们! 林初丰 2015年5月20日附录附录1 主要电路原理图附录2 主要程序#include reg51.h#define shumaguan P0 /定义数码管段码输出 sbit LED
41、=P11 ;sbit SPK =P10 ; sbit K1= P32; sbit K2= P33; /定义方波输出口unsigned int tone1,tone2;/*标准音符表*/用于使定时器初值变化以产生相应频率的定时unsigned char code yinfu=0xfb,0xe9, /Do 0xfc,0x5c, /Re 0xfc,0xc1, /Mi 0xfc,0xef, /Fa 0xfd,0x45, /So 0xfd,0x92, /La 0xfd,0xd0, /Si 0xfd,0xee, /Do# 0x00,0x00 /音符之间的间隔,只要间隔时间小于65ms时, /喇叭不会发出声音,用作拍子之间的短暂停顿 ; /*生日快乐歌音调表*/unsigned char code shengri_tone= 1,0,1,2,1,4,3,0, 1,0,1,2,1,5,4,0, 1,0,1,8,6,4,3,2,0, 7,0,7,6,4,5,4,0 /0代表不发声,即停顿;数字即为音调; /*生日快乐歌节拍表*/unsigned char code shengri_beat= 24,1,24,48,48,48,72,5, 24,1,24,48,48,48,72,5, 24,1,24,48,48,48,48,72
限制150内