基于单片机的音乐盒设计.doc

上传人:文库蛋蛋多 文档编号:4148794 上传时间:2023-04-07 格式:DOC 页数:30 大小:225KB
返回 下载 相关 举报
基于单片机的音乐盒设计.doc_第1页
第1页 / 共30页
基于单片机的音乐盒设计.doc_第2页
第2页 / 共30页
基于单片机的音乐盒设计.doc_第3页
第3页 / 共30页
基于单片机的音乐盒设计.doc_第4页
第4页 / 共30页
基于单片机的音乐盒设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于单片机的音乐盒设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的音乐盒设计.doc(30页珍藏版)》请在三一办公上搜索。

1、摘要本设计采用了蜂鸣器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。现选用AT89S51单片机。主要设计模块包括数码管显示部分,功能键盘部分,蜂鸣器发声部分,彩灯部分。显示部分管采用共阳极数码管,通过单片机控制实现歌曲序号的显示;功能键盘采用按键开关,通过单片机的控制来实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色长亮和闪烁效果。此次设计要利用单片机及KeilC51编程软件编程和PROTEUS单片机仿真软件和电子电工等方面知识,用KeilC51编程软件编程,用PROTEUS单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用

2、I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。关键词:AT89S51单片机;方波; 音调ABSTRACTThis design USES the buzzer to realize the voice of play songs, can maintain the same basic tones, fluent plays songs. Now choose AT89S51. The main design module to include digital tube display section, the function of the keyboard, a b

3、uzzer of voice, the lantern parts. Shows part of the tube is altogether anode digital tube, through the single-chip microcomputer control realization of songs serial number display; The keyboard function button switches, through the single-chip microcomputer control to realize the order of the songs

4、 played exchange and suspend play function; Songs played buzzer realize; Lights is by ordinary leds instead of, can realize the monochrome long bright and flickering effect. This design using single chip computer to KeilC51 programming and software programming and PROTEUS single-chip microcomputer s

5、imulation software and electronic electrician aspects knowledge, with KeilC51 programming software programming, with PROTEUS single-chip microcomputer simulation software simulation. Finally making real, will program downloaded to single chip microcomputer, the use of I/O mouth produce a certain fre

6、quency of square wave, drive a buzzer, a different tone, thus playing music. Key words: AT89S51 microcontroller; square; tone目录摘要IABSTRACTII前言IV1 绪论11.1国内外研究现状11.2 单片机发展趋势12音乐盒总体设计22.1设计功能要求22.2 工作原理22.3总体设计框图23芯片的选择和介绍43.1MCS-51系列单片机简介43.2单片机的选择44系统硬件设计84.1电源电路的设计84.2 单片机最小系统84.3 数码管显示部分94.4 键盘部分11

7、4.5蜂鸣器部分115系统软件设计135.1软件系统介绍135.2编程语言的选择135.3应用软件的选择keilc51135.4系统程序设计145.5系统的程序设计166系统仿真及硬件制作226.1仿真的必要性226.2系统仿真过程22结论23参考文献24致谢25附 录26前言音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的的钟塔报时,而将大小的钟表上机械装置,被称为“可发出声音的组钟”。 音乐盒悠扬的乐声,经常勾起人们对美好往事的回忆,甚至魂牵梦萦,坠入时光岁月的追忆中。300多年来席卷全球市场的机械音乐盒的最大魅力,也许就在于它能将抽象的音乐,凝固成具象的艺术品。成为人们表达美

8、好情感,追思逝去岁月的最佳选择吧!机械音乐盒的发展史,可追溯至14世纪初期,所发明挂在教堂钟楼上的排钟,这种用发条装置来演奏的乐器,能发出清脆如水晶般的乐声,一度风靡荷兰,比利时和法国北部。1811年以来,瑞士曾经是这项技艺的中心,它和瑞士钟表工业一样,两者相辅相成,一段时间名领风骚,称霸全球。音乐盒300多年的产品发展,同时也是人类文明300多年发 展的历史鉴证。每个不同时期的音乐盒造型,都能折射出当时不同的社会心态和文明发展现状,它也成了时代的一面镜子。现今,音乐盒的制造,延袭传统,结合现代,正日益成为人们或为了典藏一段岁月,或为了收藏一份情感,或出于对音乐的追求,或对于旧时代的怀念,或为

9、了居室的美化,等等,而得到众多品位人士的追求。 音乐盒的分类:18音,30音,这些是代表音乐盒机芯的音数,其实也就是机芯里面,那一排钢条的数量,钢条的数量越多,也就是音数越高,奏出来的音色就越丰富,曲子也就是越好听,同时曲子的播放时间也相应长一点。一般18音的曲子为25秒左右,30音的曲子为35秒左右。50音的差不多有60秒。目前来说,一般市面上卖的“爱丽丝”都是18音的,其次是30音,50音。此次设计的目的就是运用单片机来设计一套控制系统,来完成音乐播放的控制,并设计一套硬件来进行音调播放的实际模拟,从而有欣赏音乐的效果。随着电子技术和计算机技术的飞速发展,单片机功能不断完善,性价比价格比显

10、著提高,技术日趋完善。由于单片机具有体积小,重量轻,价格便宜,功耗低,控制功能强及运算速度快等特点,因而在国民经济建设,军事及家电器件等各个领域均有广泛的应用。本设计利用单片机及其附加电子器件实现某一实际功能,检验并提高同学对整体电路设计和把握的能力。同时也加强对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。同时也加强对数字电路,单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论基础和实践基础。1 绪论1.1国内外研究现状现在,单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就

11、能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。单片机的应用领域 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统, 录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域

12、的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机也广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。1.2.单片机发展趋势1)可靠性及应用越来越水平高和互联网连接已是一种明显的走向。 2)所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。 3)功耗越来越低和模拟电路结合越来越多。随着半导体工艺技术的发展及系统设计水平的

13、提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。2音乐盒总体设计2.1设计功能要求主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐,当播放最后一首夜曲时还伴有彩灯闪烁。数码管采用共阳极数码管,通过单片机P2口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3.0P3.3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P3.6口控制,实现歌曲播放。利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存四首乐曲)。2.2工作原理通

14、过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期的时间定时。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲。如中音D0,频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时1912/2=956,在每计数956次时将I/O口反相,就可得到中音D0(523HZ)。 当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动数码显示部分,在LED显示歌曲号,也可使彩灯长亮和

15、闪烁。数码管采用共阳极数码管,通过单片机P2口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P3.6口控制,实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色长亮和闪烁效果,通过单片机的P0口控制。通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐,当播放最后一首夜曲时还伴有彩灯闪烁。2.3总体设计框图单片机接+5V电源供电,晶振电路产生单片机所需时钟信号,通过功能键产生外部中断,控制音乐盒的上一首和下一首曲目,再由I/O接口输出控制蜂鸣器发声,LED显示,彩灯亮或闪烁

16、。另外,复位电路在于营造一个程序运行的初始状态,在程序出错时,重新启动单片机工作。总体设计框图如图1所示: 电源晶振部分复位电路AT89S51蜂鸣器LED显示功能键 图1 总体设计框图编程设置好定时时间,通过编程器写入AT89S51单片机系统。由AT89S51单片机的定时器每秒钟通过P2.0-P2.7口控制LED数码显示,复位信号由按钮输入,每按下一次,系统恢复原设定状态。电源,晶振部分,复位电路,单片机,LED,功能键,蜂鸣器部分后面均有详细介绍。3芯片的选择和介绍3.1MCS-51系列单片机简介单片机系统是本监控系统的核心部分,数据的处理以及对试验设备的控制都由其来完成。单片微型计算机(S

17、ingle-Chip Microcomputer)简称单片机。它是在一块芯片内集成了计算机的组成单元,包括中央处理CPU(Central Processing Unit)、随机存储器RAM(Random Access Memory)、只读存储器ROM(Read Only Memory)、定时器/计数器以及I/O(Input/Output)等主要的计算机部件。虽然单片机只是一个芯片,但它具有微机系统的组成和功能特征,可谓麻雀虽小五脏俱全。单片机经历了4位单片机、8位低档单片机、8位高档单片机、16位单片机等各个阶段,现在正向高性能、高速度、高集成度、大容量多功能、低功耗、加强I/0能力及结构兼容

18、的32位和双CPU方向发展。从MCS-48单片机发展到如今的新一代单片机,大致经历了三代。如以Intel位单片机为例,这三代的划分大致如下:一代以MCS-48系列单片机为代表。其主要的技术特征是将CPU和计算机外围电路集成到了一个芯片上,在与通用CPU分道扬镳、构成新型工业微控制器方面取得了成功,为单片机的进一步发展开辟了成功之路。第二代以MCS-51系列的8051、8052单片机为代表。MCS-51系列8位高档单片机是在总结MCS-48系列单片机的基础上,于80年代初推出的新产品。第三代是Intel随后推出的MCS-96系列单片机。与MCS-51相比,MCS-96不但字长增加一倍,而且在其他

19、性能方面也有很大的提高,特别是芯片内还增加了一个4路或8路的A/D转换器,使其具有A/D转换功能。在这所有的系列中MCS-51系列以它较高的性能和较合理的价格仍占据着很大的市场地位。3.2单片机的选择单片机型号的选择是根据控制系统的目标、功能、可靠性、性价比、精度和速度等来决定的。根据本课题的实际情况,单片机型号的选择主要从以下两点考虑;一是要有较强的抗干扰能力。二是要有较高的性价比。由于51系列在我国使用最广,且该系列的资料和能够兼容的外围芯片也比较多,特别是ATMEL公司2003年推出新一代89S系列单片机,其典型产品AT89S51单片机,与89C系列单片机相比具有较高的性能价格比。故本系

20、统采用ATMEL公司生产的AT89S51单片机作为交通灯的核心部件,该单片机是美国ATMEL公司生产的低电压、高性能COMS8位单片机,片内含4KB的可反复擦写的只读程序存储器(EPROM)和128字节的随机存取数据存储器(RAM),片内置通用8位中央处理器(CPU)和FLASH存储单元,是80C51的增强型并且指令完全兼容,AT89S51新增加的功能由特殊功能寄存器完成,相信日后它将更广泛地应用于工业控制、汽车控制、智能仪器仪表及电机控制等应用领域。3.2.1AT89S51芯片介绍 它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3

21、脚第40脚,如图2所示:图2AT89S51引脚图AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存

22、储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 管脚说明:VCC:供电电压GND:接地 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

23、P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2

24、口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。I

25、/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不

26、一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0、P2、P3口都还有其他的功能 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1

27、/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部

28、锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。基于AT89S51的各种特性,选用此型号比较合适。4系统硬件设计4.1电源电路的设计 电源电路设计图如图3所示:图3 电源电路单片机使用的是5(0.2)V的电源,对电压的稳定要求较高,我们可以用LM7805来实现此功能。首先,用交流变压器将220V电压变为大于5V的交流电,比如7.5V或10.5V,然后用桥式整流器,和电容进行整流滤波,将交流电处理为直流。然后用7805进行5V恒

29、压输出,共给单片机电路使用。4.2 单片机最小系统单片机最小系统如图4:图4 单片机最小系统单片机最小系统以89S51为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求.89S51单片机系列是在MCS-51系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金属氧化物的HMOS工艺, CHMOS是CMOS和HMOS的结合,具有HMOS高速度和高密度的特点,还具有CMOS低功耗的特点.单片机需要一个时间基准来为各种操作提供秩序,此电路叫时钟电路,采用不同的接线方式可以获得不同时钟电路,有内部时钟电路和外部时钟电路,如图5所示,

30、外部时钟电路会使电路复杂,故采用的是内部时钟电路。时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为1us,C1,C2为30pF。图5 时钟电路图复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。复位电路分为上电自动复位和按键手动复位,如图6所示。RST引脚是复位信号的输入端,复位信号是高电平有效.这次采用的是手动复位,复位通过电容C3,C4和电阻R1,R

31、2来实现,按键手动复位是图中复位键来实现的。 图6 复位电路4.3 数码管显示部分歌曲序号显示部分用数码管来显示,LED显示器件是通过发光二极管显示字段的器件。在单片机控制系统中常用的是由7段LED数码管,它的显示块中有8个发光二极管,7个发光二极管组成字符“8”,1个发光二极管构成小数点,因此有人称7段LED数码管为8段显示器。LED数码管的管脚配置如图7所示:图7 LED数码管管脚配置图LED数码管有共阴极和共阳极两类,如图8所示。共阴极LED数码管的发光二极管的阴极共地,如图8(a),当某个发光二极管的阳极电压为高电平时,二极管发光;而共阳极LED数码管是发光二极管的阳极共接,如图8(b

32、),当某个二极管的阴极电压为低电平时,二极管发光。(a)共阴极 (b)共阳极图8 两类LED数码管LED显示块,如图9所示。它们经过电阻和单片机的控制端口线一一相连,只要改变控制端口的电平就能使其发光或熄灭。本设计所用的数码管为共阳极数码管,数码管的每段的电流是10毫安。所以公共端接高电平,但在软件编码时需要和硬件相对应。 图9 数码管引脚图4.4 键盘部分键盘是由一组按压式或触摸式开关构成的阵列,是一种常用的输入设备。键盘可分为编码式键盘和非编码式键盘两种。1.编码键盘通过硬件电路产生被按按键的键码,这种键盘所需程序简单,但硬件电路复杂、价格昂贵通常不被单片机系统采用。2.非编码键盘常用一些

33、按键排列成行列矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来决定。非编码键盘的硬件接口简单,但是要占用较多的CPU时间,通常采用可编程键盘管理芯片来克服这个缺点。本设计使用按键式非编码键盘。4.4.1按键开关在接线时由于有六个引脚,连接时需要用万用表进行测量,然后接通两个引脚。4.4.2轻触开关一种电子开关,使用时轻轻点按开关按钮就可使开关接通,当松开手时开关既断开,其内部结构是靠金属弹片受力弹动来实现通断的。但微动开关也有它不足的地方,频繁的按动会使金属弹片疲劳失去弹性而失效,连接时接通对角线即可。4.5蜂鸣器部分 一般所指的蜂鸣器是以压电陶瓷为主要元件的。压电陶瓷是一类

34、有将压力与电流相互转换能力的特殊陶瓷。这种能力缘于其特殊的晶体结构。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,并且电流的变化与压力的变化密切相关。反之亦然。所以利用这一特性,在压电陶瓷上通过一定频率的电流,就会引起压电陶瓷微小形变,这一形变带动空气发生振动,如果频率适当,就可以被人耳所听见,也就是产生了蜂鸣声。 1蜂鸣器的作用:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。2蜂鸣器的分类:蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。3蜂

35、鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。蜂鸣器的结构原理:1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳

36、等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。5系统软件设计5.1软件系统介绍一个系统的正常运行不仅需要硬件系统的支持,而且需要软件系统的支持。如果把硬件比作躯体,那软件就是灵魂,硬件系统和软件系统相互间密切的配合才构建了能够“思考”和“判断”的整体系统。借助软件的可编程性,可以精简硬件系统的组成;凭借软件的灵活性,可以不用对硬件系统进行修改而实现系统功能的修改。软件系统与硬件系统是密切相联的,软件系统建立在硬件系统之上,离开了硬件系统,软件将无法实现任何功能。软件的设计有一定的针对性,对于不同的硬件系统,

37、需要编写不同的软件。与硬件系统一样,软件系统的好坏,直接影响到系统的工作效率和可靠性。5.2编程语言的选择软件的编程设计是单片机系统设计的核心部分,也是能否实现预定功能的关键。单片机编程常用的语言是C语言和汇编语言,最终都要转为Intel HEX格式或二进制格式(Binary)文件拷入单片机芯片内。这里我们使用的是C语言进行编程设计。C语言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。C语言发展如此迅速,而且成为最受欢迎的语言之一

38、,主要因为它具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。5.3应用软件的选择keilc51单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发

39、展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可

40、能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言

41、的优势。C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。5

42、.4系统程序设计5.4.1主程序流程图开始要定义音频输出端口,歌曲总数以及每首歌曲的入口地址;然后对定时器初始化,确定工作方式,赋初值,开放中断,启动定时器工作;对音频输出端口初始化;设置音节起始位置和节拍间距,把音节和节拍的入口地址信息存放在固定存储单元中;将取出的音符数+节拍数保存在存储单元中,查询音乐的节拍表;当六首歌曲的节拍表查询完,音乐播放完毕,程序结束。主程序流程图如图10:图10 系统流程图5.4.2定时器定时51单片机内部有两个16位的可编程的定时/计数器,称为定时器0(T0)和定时器1(T1),它们都具有定时功能和事件计数功能,可用于定时控制、延时、对外部事件检测和计数等场合

43、。定时器的核心部件是加1计数器,通过设置TMOD可使定时器工作在定时或计数方式,即将定时器用于定时或计数。实际上这两种工作方式没有本质的区别,都是对脉冲信号计数,只是计数的脉冲来源不同而已。如果计数脉冲是频率稳定的系统时钟的分频信号,则称为定时方式,如果计数脉冲是外部脉冲信号,称为计数方式。无论工作在定时方式还是计数方式,定时器在对内部时钟或外部脉冲计数时,都不占用CPU的时间,而按设定的方式自主工作,与CPU并行运行。只有在定时器定时时间或计数值到,定时器溢出时才可能中断CPU当前工作,请求CPU处理。如晶振12MHZ,用定时器T0定时50ms,从P3.6引脚输出周期100ms的方波;定时流

44、程图如图11所示:开始初始化P3.6输出调延时50ms程序图11 定时50ms流程图5.5系统的程序设计#include#define uchar unsigned char#define uint unsigned intsbit speak=P36;sbit dou=P07;sbit ri=P06;sbit mi=P05;sbit fa=P04;sbit so=P03;sbit la=P02;sbit xi=P01;sbit gao=P00;sbit A_dou=P10;sbit A_ri=P11;sbit A_mi=P12;sbit A_fa=P13;sbit A_so=P14;sbit

45、 A_la=P15;sbit A_xi=P16;sbit A_gao=P17;sbit xs=P30;sbit stop=P31;sbit ss=P32;sbit ms=P33;uchar a,mm;uchar code num62=1,1,1,3,5,5,5,5,6,6,6,8,5,5,5,4,4,6,6,3,3,3,3,2,2,2,2,1,2,5,1,1,1,3,5,5,5,5,5,5,6,8,5,5,5,4,4,4,6,3,3,3,3,3,2,2,2,3,1,0;uchar code num175=5,12,11,10,9,8,7,6,5,5,6,6,5,5,3,2,1,2,1,6,3,

46、3,6,6,5,6,6,5,5,3,2,2,5,6,5,3,2,2,1,2,6,1,2,2,2,2,2,3,5,5,6,1,6,1,1,2,2,3,5,6,5,6,6,5,3,6,5,15,15,1,2,1,6,1,0;uchar code DIS_SEG710=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay(uint b) /0.05s uint b0,b1; for(b0=0;b0b;b0+) for(b1=0;b19900;b1+); void LED() switch(a) case 1: P0=0xff;dou

47、=0;break;case 2: P0=0xff;ri=0;break;case 3: P0=0xff;mi=0;break; case 4: P0=0xff;fa=0;break;case 5: P0=0xff;so=0;break; case 6: P0=0xff;la=0;break; case 7: P0=0xff;xi=0;break;case 8: P0=0xff;dou=0;gao=0;break;case 9: P0=0xff;ri=0;gao=0;break;case 10: P0=0xff;mi=0;gao=0;break; case 11: P0=0xff;fa=0;gao=0;break;case 12: P0=0xff;so=0;gao=0;break; case 13: P0=0xff;la=0;gao=0;break

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号