1、 本科毕业设计(论文)基于单片机音乐盒设计 学院名称: 专 业: 班 级: 学 号: 姓 名: 指导老师姓名: 指导老师职称: 二一四 年 六 月 基于单片机音乐盒设计摘 要:此次设计依据单片机技术原理,经过硬件电路制作和软件编程,制作出一个基于AT89C52单片机简易音乐播放器,该系统以单片机作为电路主控关键,硬件电路关键由按键电路、复位电路、显示电路等模块组成。系统软件采取C语言进行编写,采取了模块化编程,其移植性很好。系统程序关键包含主程序、播放子程序、按键子程序、延时子程序等。该系统有歌曲播放、电子琴两种模式,可经过按键进行模式选择。本论文包含系统方案建立、硬件电路具体设计及软件程序实
2、现等过程。并经过软硬件联合调试,验证了设计方案可行性。该系统最终实现了模式选择、歌曲选择及播放等功效,试验证实,该系统含有一定实用性。关键词:AT89C52单片机;软件编程;音乐盒The Design of Music Box of the Single Chip MicrocomputerAbstract:This design according to principle of single chip microcomputer technology,through the hardware circuits and software programming,make a simple m
3、usic player based on AT89C52 single chip microcomputer,the system with single chip microcomputer as control core of the circuit,the hardware circuit is mainly composed of keypad circuit,reset circuit,display circuit module .System software using C language to write,using the modular programming.the
4、portablility is good.System program mainly includes the main program subroutine,played subroutines,buttons,delay subroutine.The system has a song play,keyboard two modes,can through the button to choose.This paper includes the establishment of the system,detailed design of hardware circuit and softw
5、are program implementation process.And through the software and hardware joint debugging,verify the feasibility of design scheme.The system finally realize the pattern selection,selection of songs and play function,such as experiments show that the system has a certain practicality.Keywords: AT89C52
6、 microcontroller,;Software programming;the music box目录第1章 绪论11.1 课题背景及研究意义11.2 课题设计目标及关键工作2第2章 课题任务分析和方案选择32.1 课题任务分析32.2 硬件电路组成32.3 设计功效要求32.4 总体设计原理42.5 总体设计框图42.6 选择方案5第3章 系统硬件设计63.1 单片机最小系统63.1.1 AT89C52单片机介绍63.2.2 复位电路介绍83.2.3晶振电路介绍93.3 显示电路103.4 4*4矩阵键盘识别电路113.5 声音电路12第4章 软件设计144.1 Proteus仿真软件
7、和Keil编译介绍144.2 音调和节拍154.2.1 发声原理154.2.2 音调确实定164.2.3 节拍确实定174.2.4 音乐编码184.3 系统软件总体设计步骤图184.3.1 主程序步骤图184.3.2 歌曲播放步骤图204.3.3 按键扫描步骤图204.3.4 延时子程序步骤图21第5章 总结23致谢24参考文件25附录1:电路原理图27附录2:元器件清单28附录3:源程序29第1章 绪论1.1 课题背景及研究意义单片机应用到目前社会各个领域中,既提升了社会信息化水平又大力发展了社会生产力,同时也使现在电子产品性能有了更高提升,从而使产品更新换代周期也逐步变短。现在,单片机不仅
8、有着高性能和多品种性能发展趋势,而且还向着其它优良方向发展,比如向着CMOS化、低耗能、小巧、大容量、高性能、廉价和外围电路内装化等。单片机从本质上转变了传统控制系统中设计思想和设计方法,这在其应用中含有很关键价值1。以前状态是,只能经过模拟电路或是数字电路应用,才能够将大部分功效实现,而现在状态能够直接使用软件编程方法来实现单片机功效。这种被称为微控制技术方法是对传统控制技术一次革命,就是使用软件方法替换使用硬件方法来实现功效控制技术2。单片机能够很成功应用到嵌入式系统当中,所以它取得了更多应用机会,相比和专用处理器来说,这是超越其应用优势。换个方法讲单片机是世界上个数最多计算机。集成单片机
9、已经应用到到大部分电子和机械产品中,是现在人类生产生活主流。大多数电子产品中全部会配有1到2部单片机,比如正常生活中大家通讯时用到手机、电话,生产生活中用到计算器、家用电器,和娱乐项目中电子玩具、掌上电脑,另外还包含部分电脑配件键盘鼠标之类。而台式机,笔记本电脑等个人电脑中也全部有很多单片机在工作。其它部分大一点产品中通常会配有40部以上单片机,比如汽车等,而特殊部分大型机械上单片机会有更多,甚至能达成上百台,而且能够同时工作,在庞大工业控制系统上就是如此。由此可见就算PC机和其它控制系统合在一起,她们总数也远远不及单片机数目,甚至比人数量还要多3。所以单片机地研究前景有很宽广空间。所以现实生
10、活中单片机影响已经融入到大多数研究领域,比如军事中装配导弹导航系统,装在飞机上多种仪器控制系统,计算机之间网络通讯和数据传输,包含利用在工业自动化过程实时控制和数据处理,还有大家在生活中用到各类智能IC卡,在民用轿车中应用到安全保障系统,包含部分一般生活部分控制系统中也有应用,比如录像机、摄像机、全自动洗衣机,包含其它部分电子玩具、电子宠物等娱乐产品,这些全部离不开单片机应用4。我们所接触信息在伴随科学技术提升和人类社会进步发展中会不停扩大而且越来越复杂。面对如此多如牛毛信息,大家已经能够利用计算机等工具正确高效地对其进行处理,不过想要将处理成功信息能立即,清楚地传输给她人,还必需利用愈加高效
11、显示技术来实现对应功效。其中能成熟结合单片机技术和液晶显示技术,使得智能可视化技术成为信息传输交流技术发展主流方向5。说到音乐盒历史发展,能够上溯到欧洲文艺复兴年代,也就是中世纪时期。那个时候其关键作用只是为教会钟塔提供时间提醒用,这种装置组成单一,就是把多种不一样钟表装在一个机器上,所以也叫做“可发出声音组钟”。所以音乐盒成长历史有快要300多年,同时也见证了人类历史文化发展6。机械音乐盒在最初音乐盒中是占据主流,她是利用齿轮来让铁桶滚动,铁桶上装有铁棒,经过铁棒和铁片相互碰撞从而制成琴键,从而发出声音原理。不过,机械音乐盒缺点很多,比如外形大,个体沉重,且发声单一。而且有着部分轻易让内部铁
12、条变形外在原因在影响,比如水,粉尘等,全部会造成音准失调,时间一长就会让音乐盒发音跑调。另外,机械音乐盒放音时必需放平不可动摇,才能发出好音质。而且机械音乐盒价格昂贵,不许可大批量生产,商业价值不高7。而现在伴随科技进步,大家能将现代电子科技和音乐相结合,并产生一个新产物,被称为电子琴,这种全新乐器经过键盘来实现弹奏,俨然已成为现代音乐发展中不可或缺角色。由此可见单片机也凭借着其控制功效强大和软件编程灵便特征,成功渗透到当今大家生活各个领域,是人类正常生产生活中必需要用到存在。1.2 课题设计目标及关键工作本文关键设计内容中,电路关键控制元件就是AT89C52单片机,即主控关键为单片机,硬件电
13、路设计中还包含键盘、扬声器、4*4矩阵键盘、液晶显示器等模块。通常来讲一部好听音乐由不少各不一样音阶所组成,不过很多音符又是由各不相同频率相互对照,这么在使用该系统时就能够经过操纵不一样频率相连,就能变为所需音乐,在单片机工作中发出不一样频率是十分轻易,它能够经过单片机定时/计数器T0来发出不一样方波频率信号,所以,只需直接将一部歌曲音符和频率之间对应关系依据音符和频率关系对照表搞清楚就行了。本系统中电子音乐盒有着外形小巧,播放音质优美,另外其演奏音乐也有很方便优势,而这些全部是传统机械式音乐盒无法达成。经过电池来供电使得电子音乐盒愈加方便,而且它制作过程也很简单,而且很廉价,厂商能成批进行制
14、造。基于单片机制作音乐盒,控制功效强大,可依据不一样需求进行选歌,且使用方便。第2章 课题任务分析和方案选择2.1 课题任务分析此次设计中硬件电路关键关键就是AT89C52芯片,用扬声器作为外部放音电路,这么就能够实现音乐播放控制器功效。设计中利用软件程序经过在单片机内部控制订时器,从而达成能够实现演奏出幽美悦耳音乐功效。此次设计中对利用单片机设计音乐盒和电子琴时,分析其原理,发觉其本质就是利用单片机来生成不一样频率方便在系统中能够得到自己所需音符,最终能够弹奏多种不一样音乐。此次论文关键叙述各个模块功效,芯片等元器件和电路原理图,和软件程序步骤图等。在此次设计内容中,利用计算机当做控制终端,
15、方便在软件仿真和调试过程能够顺利进行。用1602显示器显示发音值和扬声器发音状态。使用4X4矩阵键盘,作为电子琴琴键。系统整体设计简练,精练。用户能够依据本身爱好演奏乐曲,也能够播放不一样音乐。而对于不一样型号单片机来讲直接改变一下地址就能够继续使用该音乐盒放音了。由此可看出它硬件系统和软件系统全部拥有较优通用性,而且它实用价值和参考价值也是相当高。2.2 硬件电路组成此次硬件电路设计能够分为以下多个部分:(1)单片机部分以AT89C52单片机为关键控制整个系统;(2)液晶显示部分是用1602液晶显示器,经过单片机P1口控制,以实现开机画面,音乐盒和电子琴功效显示,和电子琴不一样音调显示;(3
16、)功效键盘部分是用4*4矩阵键盘作为按键开关,经过单片机P3口控制,实现电路复位,歌曲播放,功效选择,和电子琴音调播放功效;(4)发声部分是用蜂鸣器,经过单片机P2口实现歌曲播放和电子琴音调发声。2.3 设计功效要求1. 汇编或C语言程序设计。2.程序调试,在Proteus上进行仿真。3.使用I/O处口生成对应频率方波信号,并驱动喇叭,以此来放出不一样音调,从而进行乐曲播放。4. 采取1602液晶显示歌曲。 此次设计电路共分为两种工作模式:音乐盒模式和电子琴模式(1)音乐盒模式下演奏完整一首歌。(2)电子琴模式下经过4*4键盘演奏不一样音乐。 按下复位键进入开机画面,按下选择键进入音乐盒模式播
17、放音乐,再按选择键进入电子琴模式,能够进行演奏。2.4 总体设计原理基础发声原理是经过单片机定时器产生一定长度方波,方波脉冲驱动扬声器发出声音。只需直接算出一个音频周期(1/音频),然后直接取半个周期时间进行定时,就能够生成音频脉冲了。利用定时器计使用这个半周期时间,然后在反复计时此半周期时间,在计时结束后再将I/O口进行反相,直接就能在I/O脚上取得这个频率脉冲信号。如中音D0,频率为523HZ,其周期T=1/523=1912微秒,要想取得中音D0(523HZ),就将令计数器直接定时为1912/2=956,这么每当计数956次后,就将I/O口反相就能够了8。想要播放音乐时,直接按下按键,然后
18、判定键值,并开启计数器T0,这么生成对应频率脉冲,经过单片机来驱动喇叭,就能放出乐曲了。同时开启定时器T1,在液晶显示器上显示模块。显示对应功效必需要使用显示器,此次设计采取是1602显示器,经过单片机P1口控制,实现功效切换显示;假如要进行对应操作时,就使用按键开关来作为按键模块功效按键,在单片机P3口上实施控制,来实现歌曲播放和模块切换功效;扬声器则是经过单片机P2口进行控制,关键是能实现播放乐曲和演奏功效;同时有液晶显示器显示电子琴琴键键值,扬声器播放出音乐。2.5 总体设计框图 电源供电是单片机工作动力起源,单片机工作中用到时钟信号是由晶振电路提供,外部中止由功效按键来实施控制,以此来
19、控制选择音乐盒模块和电子琴模块,扬声器发声是经过I/O口向外输出,液晶显示器则是进行功效显示。而复位电路作用就是建造程序初始状态,在发生意外或程序报错时,就能将单片机重新开启,确保电路安全。系统总体设计框图图2-1所表示。 AT89C52显示电路4*4矩阵键盘晶振电路声音电路复位电路图2-1 总体设计框图2.6 选择方案(1)硬件设计 :系统把AT89C52当做整个电路主控制关键,而外部程序存放器需要扩展则是利用74LS373和27512,对播放器控制是采取按键来实现,4*4键盘矩阵控制电子琴发音,显示电路采取1602液晶显示器来显示,晶振部分用频率大小是12MHz,从P30口输出音乐信号由扬
20、声器传出并放出动听音乐。(2)软件设计 :软件编程程序中选择了C调中一个8度内一共7个音阶音符来作为音调。根据十二平均律,(就是把八度定义为1200音分,其中全因音符占用200音分,半音占100音分,共十二个半音)每个音符所对应频率由定时器T0产生。我们在表中放入定时器初值,一共十二个半音,这么我们在加载计数初值是就能够直接在程序中以查表方法来进行,而在放音时就能够不用再计算定时器初值了,每个编码全部会有一个音符所对应着,占用一个字节,这么能够更方便将程序进行调用。鉴于人耳有限分辨力,所以曲谱中节拍码直接能够用延时来替换,每个音符发音30MS,这么就使编程愈加简单了。矩阵式键盘在设计中得到很好
21、应用,目标是让按键能够立即响应,程序编写中根本编写是其中扫描键盘程序(就是在主程序中循环扫描按键,并在扫描按键模块时在调用其它功效模块),每当按下一次按键,利用扫描按键功效计算出键盘键值,并将键值存放起来,跳转到对应标号实施程序,并将键值调用液晶显示器子程序显示在制订位置上,在检测到复位键按下时,就会恢复带开机画面。此方案中选择1602液晶显示器优点是其在编写程序时方便,显示也稳定,而且占用CPU时序少,另外它和矩阵键盘一样在其外围电路中能够有不少扩展功效。第3章 系统硬件设计3.1 单片机最小系统3.1.1 AT89C52单片机介绍单片机实际上是一个集成电路芯片(实际上就是一块硅片),也被称
22、为微型计算机系统,它关键技术是超大规模集成电路技术,关键组成部分有中央处理器CPU(含有数据处理能力)、随机存放器RAM、只读存放器ROM、多个I/O口和中止系统和定时器/计数器等(其它还包含显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路模块),这种集成电路不仅体积小,而且功效完善,所以在工业控制领域得到广泛应用10。从80年代开始,最初只有4位、8位单片机,到现在高速单片机已经达成了300M。此次设计中用是AT89C52 单片机,AT89C52关键功效是控制会聚调整时功效,它用内核是工业上标准C51内核,是一个8位通用微处理器,所以它内部功效和管脚排布和正常使用8xc52 没
23、什么差异11。AT89C52有很多功效,关键包含初始化部分功效部件,比如把主IC 内部寄存器和数据RAM和外部接口等进行汇聚,还有能够把调整控制汇聚,将测试图控制汇聚和接收并解码红外遥控信号IR和对主板CPU进行通信等12。AT89C52单片机中XTAL1(19 脚)在振荡器中是被当做输入脚,而XTAL2(18 脚)在振荡器中是当做输出脚,另外它外借晶振能够接到12MHz。单片机中复位电路是由电阻和电容组成,其中电阻和电容全部是从外部接入,复位电路输出端口是RST/Vpd(9脚)。单片机工作需要电源供电,而在52单片机中供电端口有VCC(40脚)接+5V电源正极,VSS(20脚)接电源负极,运
24、行单片机需要软件编程来实现,依靠软件来定义单片机功效用途,能够经过P0-P3口通用I/O脚来实现软件程序导入,此次设计过程中,我们把P0 端32-39 脚分别和N1对应功效管脚相连,如此就能够将N1 功效控制端口用P0端32-39脚来定义,其它连接在N1SDAS(18脚)和SCLS(19脚)端口上10脚和11脚,就能够将这两个引脚定义成I2C总线上控制端口,另外部分对应功效端是连接主板CPU上,关键功效是把现在制式检测和汇聚进行状态调整,并进入控制功效,而这些连接到主板CPU引脚就定义为握手信号功效端口,而52单片机中12脚,27脚和28脚全部能够实现此功效13。现现在,尽管单片机品种繁多,各
25、具特色,不过80C51单片机因为兼容其它类型单片机产品结构和指令系统,所以80C51仍然是主流,能够说占据了该领域半壁江山。而伴随Microchip企业PIC精简指令集合(RISC)发展势头强劲,中国台湾HOLTEX企业单片机产量也日渐增加,而且其质量高,价格廉,所以占据一定市场份额。另外还有MOTOROLA企业产品,日本几大企业专用单片机。在一定时期内,这种情形将得以延续,将不存在某个单片机一统天下垄断局面,走是依存互补、相辅相成、共同发展道路。九十年代以后,单片机在结构上采取双CPU或内部流水线,CPU位数有8位、16位、32位,时钟频率高达20MHZ,片内带有PWM输出、监视定时器WDT
26、、可编程计数器阵列PCA、DMA传输、调制解调器等。芯片向高度集成化、低功耗方向发展,使得单片机在大量数据实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人和局域网等方面得到大量应用8。这类单片机有NEC企业MPD7800,MITSUBISHI企业M337700,REVKWELL企业R65009。此次设计之所以选择52单片机是因为AT89C52比AT89C51多个定时器,而RAM 大小也不一样,51大小只有128,52却有256。依据这些信息能够看出52其实是51增强型,在定时器方面52也比51定时器多了一个T2,在串行通信中能够设置更高波特率,由此可见T2功效实现上和其它两个
27、定时器也不一样,在ROM上52比51要多4K,中止也多2个,意味着看门狗也比51多出一个来,另外52在掉电和数据指针等方面也有部分改善14。而在外接晶振上C52能够拥有最高能达成33MHz,而C51极限也只能达成24MHz。单片机有个最小应用系统,也就是单片机最小系统,这种系统是能够正常工作,但因为组成此系统只用了最少元器件,所以功效也对应比较单一。我们考虑52单片机中结构,能够看出最小系统正常是由单片机芯片、晶振电路、复位电路组成。基于52单片机最小系统电路原理图,图3-1所表示。图3-1 单片机最小系统3.2.2 复位电路介绍复位电路是由电容串联电阻组成。复位电路原理图图3-2所表示。图3
28、-2 复位电路原理图电源通电后,就会在RST引脚上显示出高电平,而高电平可连续时间是由电路RC值来决定。在设计实现功效时要合适组合RC取值就能够确保复位可靠性,因为单片机通常会在RST脚上连续两个机器周期以上高电平时就会复位。此次设计中C取用是22uf,R取10K。要想在RST脚上能生成高电平多于2个机器周期,就直接将RC根据这个数值进行组合。在复位电路中复位信号是在系统供电时就会提供,而想要撤消复位信号,只需等到系统中电源稳定了即可。为了在实现功效时电路安全,在系统中电源稳定以后,等候撤消复位信号必需要经过一个延时,这么目标是为了预防在电源开关开启或关闭过程中引发抖动而影响复位。复位电路复位
29、过程中有两种,一个是通电自动复位,另一个是按键手动复位,依据电路原理图可知,复位电路复位信号输入端是RST引脚,而且复位必需在高电平情况下才有效。想要实现复位电路功效,就是经过外接电容C1和外接电阻R8来实现。3.2.3晶振电路介绍 52单片机中引脚XTAL1和引脚XTAL2全部是在片内一个反相放大器(高增益)中,它作用是用来组成稳定自激振荡器,组成自激振荡器电路是由有石英晶体振荡器和微调电容进行外接,而能直接进入系统内部时钟电路信号就是这个振荡器发出脉冲信号。此次设计晶振电路中使用是固定电容C5和C6,两个电容全部是30pF。晶体振荡频率范围是1.2Mz12MHz,通常情况下,选择振荡频率为
30、12MHz石英晶体。而要将信号变成单片机时钟信号,只有在内部时钟发生器上将振荡脉冲信号经过二分频操作才能实现。单片机工作状态下要想从先取指令,再进行译码,最终再微操做过程能有序进行,就必需经过时钟信号来控制,由此可知单片机在工作状态下提供基础时钟电路就是时钟电路。生成时钟信号方法能够分为两种,一个是内部时钟方法,另一个是外部时钟方法,本课题采取就是内部时钟方法。晶振电路就是在单片机内组成一个自激振荡器,而这个稳定自激振荡器是将一个晶振和两个稳频电容外接到单片机XALT1和XLAT2两个引脚上组成。晶振频率选择12MHz。晶振电路原理图图3-3所表示。图3-3 晶振电路原理图3.3 显示电路本设
31、计显示部分是采取液晶显示器1602,单片机P0口是一个地址/数据复用双向I/O口,当使用P0口访问外部存放器和数据存放器时,P0口内部已经有上拉电阻,当P0口作程序检验,输出指令字节时,必需外接上拉电阻。1602控制信号RS、RW、E分别接到单片机P2.0、P2.1、P2.2。本设计中1602液晶显示器能够实现多个显示功效,比如在开机过程中能够显示开机画面,提醒开机;在功效选择上能够显示目前所选择功效模块画面和电子琴模式中能够显示在琴键上按下键值。显示电路原理图图3-4所表示。图3-4 显示电路原理图3.4 4*4矩阵键盘识别电路设计中常常使用键盘按键分为好多个,比如有电容式,有导电式,还有机
32、械式和薄膜式等,而将电路接通和断开就是这些键盘按键基础功效,所以不管是什么种类按键,全部有这些基础功效。而现今使用键盘在功效应用方面关键有两种基础类型,一个是编码键盘,另一个是非编码键盘,编码键盘键盘本身就有一个硬件电路,而这些硬件电路就能够实现接口处于按键被自动检测到时,实现部分比如去抖动和防串键等功效,而且这些和按键功效相对应键码也会被送往CPU中。不过因为编码键盘硬件电路复杂,所以其价格也对应昂贵,就算其接口简单,用起来也挺方便,不过通常简单设计中不会应用编码键盘,只有部分厂商生产商品才会用到。而非编码键盘即使仅提供简单行列矩阵式按键开关,但在实现功效过程中能够经过软件编程来实现识别按键
33、,确定和输入键码,和去抖动等部分功效。所以在设计中选择非编码键盘能够节省很多成本。不管选什么按键,在键盘接口处四个基础功效是必不可少,分别是:去抖动,防串键识别按键和生成键码。此次设计中键盘用是4*4矩阵键盘,它是将16个按键依据4行4列方法进行排版,键盘在单片机中是经过JP50端口进行信号传输。输出端是由行线连接到单片机I/O口上,而输入端是由列线连接到I/O口上。若输出端全部是高电平话,就表示按键没有被按下。我们判定按键是否被按下,能够依据读取目前输入线状态,因为当按键按下时,表示有低电平从行线输出来,而且会把输入线电平拉低,而这个状态就能判定按键按下了没。此次设计选择键盘耗能低,而且因为
34、它外围电路元件少,扩充起来会更灵活。键盘电路原理图图3-5所表示。图3-5 键盘电路原理图 键盘扫描时候,会先对其横坐标x进行操作,也就是扫描“行”,再对其纵坐标y进行操作,也就是扫描“列”。 获取y方法和获取x方法相同,具体操作能够参考附录相关总程序。这么,按键功效就能够依据获取坐标,也就是(x,y)中x和y值来实现。3.5 声音电路此次设计使用发声元件是扬声器,图3-6是扬声器原理图。图3-6 扬声器原理图声音电路是由2N3904 NPN三极管和喇叭组成。实现功效时,直接从AT89C52中获取高电平控制信号,然后再经过这个三极管把这个控制信号放大,再驱动扬声器放出声音。但因为扬声器所需驱动
35、功率较小,驱动器件要求也较低,所以选择2N3904型号 NPN型三极管就可驱动扬声器发出声音,这么在设计中所用成本也会对应降低。在单片机中P2口就是实现音乐播放功效接口。此声音电路实现功效就是播放音乐,在电子琴模式下,按键弹奏出声音也是由喇叭播放出来。第4章 软件设计一个系统想要正常运行不仅仅依靠硬件系统支持,而且要依靠软件系统支持。若是把这个系统比作人,那么人躯体就是硬件系统,而人灵魂则是软件系统,只有将硬件系统和软件系统之间相互完美配合才能组成一个能够“思索”和“判定”整体系统16。在设计中依靠软件可编程性,能精简硬件系统组成,同时依靠着软件编程灵活性,能够省略经过对硬件系统进行修改而实现
36、对整个系统功效修改。软件系统和硬件系统之间是亲密相联,软件系统成立是建立在硬件系统完成前提上,离开了硬件系统,软件将无法实现任何功效。软件设计关键特征是含有一定针对性,针对硬件系统不一样,就要编写不一样软件程序。要想系统拥有较快工作效率,和较高可靠性,除了硬件系统影响外,软件系统一样起到决定性作用。4.1 Proteus仿真软件和Keil编译介绍软件编程需要依靠优良平台,此次设计用EDA操作系统就是一款由英国LCE企业所刊行,而此操作系统中Proteus操作平台就是一个优良软件。这款操作系统不仅涵盖了别EDA操作系统进行仿真功效,对于单片机和它外围电路一样能够仿真15。现在在中国Proteus
37、软件推广刚起步,就已经受到单片机爱好者、从事单片机教学老师、致力于研究单片机开发应用科技工作者青睐18。Proteus是世界上著名EDA工具,从原理图布图、代码调试到单片机和外围电路协同仿真,和一键切换到PCB设计,真正实现了从概念到产品完整设计18。这款系统处理器模型功效强大,它支持8051、HC11和PIC系列中10、12、16、18、24、30和DsPIC33,另外还支持AVR、ARM、8086和MSP430等,以后还支持Cortex和DSP等处理器,不仅如此,该设计平台还在不停增加其它处理器模型16。该平台一样支持很多编译器,比如IAR和Keil和MATLAB等,方便用户只用同一个平台
38、来进行各项操作。在软件编程过程中,我们用汇编软件把源程序该成机器码,这么CPU才能对其实施命令,过去在MCS-51单片机上进行汇编,所使用软件是A51,而现在单片机发展快速,开发所用语言大多是高级语言,现现在大多研究人员在单片机上用是最流行Keil软件,所用最近一段时间厂商在制作仿真机过程中全部表示会对Keil软件给全方面支持。现在使用开发语言大部分是C语言,美国Keil企业出品一款开发系统就支持在单片机上利用C语言来开发,是51系列KeilC51软件,C语言比汇编语言优势要大多,不管从功效上,结构上,还是可读性,可维护性上全部显著,而且简单易懂。Keil软件含有完整性,拥有完整开发方案,我们
39、能够将部分功效和方案集中到一个集成开发环境(Vision)中,其中功效方案有C编译器,有宏汇编,有连接器和库管理,还有一个功效强大仿真调试器。在WINDOWS7和WINXP等部分操作系统中就能够使用Keil软件。不管你用开发语言是C语言还是汇编语言,它集成环境方便,软件仿真调试效率高,能使你工作也会事半功倍。现在差不多有超出10万名微控制器开发人员在使用这种取得业界认同处理方案17。4.2 音调和节拍4.2.1 发声原理物理学中声波频谱范围通常在几十赫兹到几千赫兹。单片机发声是经过扬声器发出声音,其原理是在接口线处生成“高电平”或“低电平”,这么就能够制造一定频率方波信号,而发出声音不可能是单
40、一,所以要对“高低”电平连续时间进行控制,这些全部是经过一个延时程序来控制,这么就能够改变音调,放出不一样声响16。音调和音符就是音乐能顺利播放必需元素。先了解一下音调,对于音调,声音频率和声音播放强度就是其确定原因。纯音达成一定强度时,频率升降也直接会决定音调升降;而纯音频率中,低频纯音音调会伴随声音强度增高而有所下降,相正确高频纯音音调却会伴随声音强度增高而上升17。另外,音符频率有所不一样。现在来了解节拍,设计软件时想要控制音符节拍,只需用定时器T0就能够了,而不一样定时时间产生只要有不一样初值输入就行了。不过初值是不能直接去改变,所以想要控制节拍时间长短,能够经过判定中止计数器值来实现
41、,并产生不一样节拍,这是因为T0定时时间最多只有131ms,不过能够利用T0生成10ms时间基准,再设置一个中止计数器就行了19。在播放音乐时产生音符和控制节奏,全部是经过查表程序依次读取,而这个表是由曲谱中全部常数组成,一组常数又是由一个音符中时间常数和相对应节拍常数组成,这么就能够实现发声效果。尤其,音乐结束由结束符(00H)表示,音乐停顿效果则是由休止符(FFH)表示,还能够在相同两个音符间或其它音符间插入时间单位频率不一样音符,这么能够增强节奏感20。单片机播放出音乐没有电子琴能够演奏不一样音调声音功效,因为放出音乐基础是单音频率,没有一定幅度谐波频率,这么,对单片机放音只要知道音调和
42、节拍知识就能够了。音符频率对照表如表4-1所表示。表4-1:音符频率对照表4.2.2 音调确实定 唱歌时会正常有DO、RE、MI、FA、SO、LA、SI这7个音调,音调名就是大写英文字母C、D、E、F、G、A、B来表示,唱成简谱1、2、3、4、5、6、7,相当于汉字“哆唻咪发唆啦西”读音,这是唱曲时声乐发音,所以叫“音调”,即Tone19。而C、D、E、F、G、A、B这组音调名能够被我们拆为12个等份,能够用一个“半音”来描述一个等份,用“全音”来描述相邻两个音间隔两个“半音”。我们通常唱成1、2、3、4、5、6、7音叫自然音,那些在它们左上角加上号或b号叫改变音。这些改变音中作用是在基于原来
43、音上再升高半音,叫做升记号,b作用是在基于原来音再降低半音,叫做降记号。比如,高频率(1046hz做)只是中间做频率(523hz)翻了一番,阿尔托做频率(523hz)只是低音频率(266赫兹)两倍;一样,高反复频率(1175hz)只是中间再频率(587hz)翻了一番,阿尔托重新频率(587hz)只是低音反复频率(294赫兹)两倍。(1)以生成音频脉冲,以处理只是一个音频周期(1 /频率),那么这段除以2,其中二分之一是周期时间。利用定时器计使用这个半周期时间,我们能够反复计时此半周期时间,在计时结束后再将I/O口进行反相,直接就能在I/O脚上取得这个频率脉冲信号。(2)在计数器模式下工作,只要
44、采取AT89C52单片机内部定时器就能实现,然后经过获取TH0和TL0数值方法来产生不一样频率。尤其,音乐结束由结束符(00H)表示,音乐停顿效果则是由休止符(FFH)表示。经过查表可查到OOH和FFH,以此来实现功效。(3)如中音D0,频率为523HZ,其周期T=1/523=1912微秒,要想取得中音D0(523HZ),就将令计数器直接定时为1912/2=956,这么每当计数956次后,就将I/O口反相就能够了。C调各音符频率和计数值T对照表如表4-2所表示。表4-2:C调各音符频率和计数值T对照表4.2.3 节拍确实定音乐是要有旋律,所以音乐不仅仅只靠音调,节拍也是必不可少,这么音乐才有旋
45、律,音乐快慢也能够控制。节拍英文叫做Beat,通俗点来讲就是打拍子,比如在听音乐时候会情不自禁随其拍手。实际上1拍是多少秒,并无严格要求,就和人心跳差不多,人心跳大多是每分钟72左右,但有些人会快部分,而有些人会慢部分,只要音乐听动听就好。这么我们就能够用节拍来描述一首音乐能够连续多长时间,当碰到休止符时,发音会暂停。形成音乐过程是将不一样频率相互结合,再经过和节拍数相对应延时过程就行了,经过了解音乐部分基础常识,能够知道将很多不一样音符结合能够产生音乐,而不一样音符还对应不一样频率,这么生成不一样频率音频脉冲就能够形成音乐。单片机内能够很轻易就得到不一样频率脉冲,形成有方波频率信号经过定时器
46、和计数器就能直接实现。所以,能播放出如此悦耳动听声音,只要能搞明白音符和相对应频率就行了。4.2.4 音乐编码一个音符中要有两个音节,其中音调占用一个字节,而另一个字节被节拍占用。在音调字节中,高四位意味着低中高音,0表示低音,1表示中音,2表示高音;音调就是其中低四位。就像中音do就表示成0x11。节拍字节中,数值i意思是延迟i个十六分音符。一首歌曲假如是4分音符组成,那一拍就是0x04。而0x04还能够来代表其延时,就是在下边无横线,右边无横线和数字情况。若底面有个横线就是用0x02表示;右边有个横则用0x08表示;右边有两横就用0x0c表示;而右边有三横则是用0x10表示;右下角有一点:加上目前延时二分之一。因为每个歌曲播放速率各不相同,单位就能够用曲速(单位拍每分钟)表示。所以在音乐编码表中第0和第1元素用来表示曲速。这么就能依据以上规律在不一样歌曲简谱图上编写出单片机分辨简谱表。4.3 系统软件总体设计步骤图4.3.1 主程序步骤图开始扫描键盘否否读下一个音符否是关闭定时器P0口置0