基于单片机的音乐盒设计_第1页
基于单片机的音乐盒设计_第2页
基于单片机的音乐盒设计_第3页
基于单片机的音乐盒设计_第4页
基于单片机的音乐盒设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

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

3、the keyboard, a buzzer 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 o

4、rder of the songs 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-chi

5、p microcomputer simulation 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 prod

6、uce a certain frequency of square wave, drive a buzzer, a different tone, thus playing music. keykey words:words: at89s51 microcontroller; square; tone目录摘要 .iabstract .ii前言 .iv1 绪论 .11.1 国内外研究现状 .11.2 单片机发展趋势.12 音乐盒总体设计.22.1 设计功能要求 .22.2 工作原理.22.3 总体设计框图 .23 芯片的选择和介绍.43.1mcs-51 系列单片机简介 .43.2 单片机的选择

7、.44 系统硬件设计.84.1 电源电路的设计 .84.2 单片机最小系统.84.3 数码管显示部分.94.4 键盘部分.114.5 蜂鸣器部分 .115 系统软件设计.135.1 软件系统介绍 .135.2 编程语言的选择 .135.3 应用软件的选择keilc51 .135.4 系统程序设计 .145.5 系统的程序设计 .166 系统仿真及硬件制作.226.1 仿真的必要性 .226.2 系统仿真过程 .22结论 .23参考文献 .24致谢 .25附 录 .26前言音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的的钟塔报时,而将大小的钟表上机械装置,被称为 “可发出声音的组钟

8、 ”。 音乐盒悠扬的乐声,经常勾起人们对美好往事的回忆,甚至魂牵梦萦,坠入时光岁月的追忆中。 300 多年来席卷全球市场的机械音乐盒的最大魅力,也许就在于它能将抽象的音乐,凝固成具象的艺术品。成为人们表达美好情感,追思逝去岁月的最佳选择吧!机械音乐盒的发展史,可追溯至 14 世纪初期,所发明挂在教堂钟楼上的排钟 ,这种用发条装置来演奏的乐器,能发出清脆如水晶般的乐声,一度风靡荷兰,比利时和法国北部。 1811 年以来,瑞士曾经是这项技艺的中心,它和瑞士钟表工业一样,两者相辅相成,一段时间名领风骚,称霸全球。音乐盒 300 多年的产品发展,同时也是人类文明300 多年发 展的历史鉴证。每个不同时

9、期的音乐盒造型,都能折射出当时不同的社会心态和文明发展现状,它也成了时代的一面镜子。现今,音乐盒的制造,延袭传统,结合现代,正日益成为人们或为了典藏一段岁月,或为了收藏一份情感,或出于对音乐的追求,或对于旧时代的怀念,或为了居室的美化,等等,而得到众多品位人士的追求。 音乐盒的分类 :18 音,30 音,这些是代表音乐盒机芯的音数,其实也就是机芯里面,那一排钢条的数量,钢条的数量越多,也就是音数越高,奏出来的音色就越丰富,曲子也就是越好听,同时曲子的播放时间也相应长一点。一般18 音的曲子为 25 秒左右,30 音的曲子为 35 秒左右。50 音的差不多有 60 秒。目前来说,一般市面上卖的

10、“爱丽丝”都是 18 音的,其次是 30 音,50 音。此次设计的目的就是运用单片机来设计一套控制系统,来完成音乐播放的控制,并设计一套硬件来进行音调播放的实际模拟,从而有欣赏音乐的效果。随着电子技术和计算机技术的飞速发展,单片机功能不断完善,性价比价格比显著提高,技术日趋完善。由于单片机具有体积小,重量轻,价格便宜,功耗低,控制功能强及运算速度快等特点,因而在国民经济建设,军事及家电器件等各个领域均有广泛的应用。本设计利用单片机及其附加电子器件实现某一实际功能,检验并提高同学对整体电路设计和把握的能力。同时也加强对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力

11、。同时也加强对数字电路,单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论基础和实践基础。1 绪论1.1 国内外研究现状现在,单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型” ,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。单片机的应用领域 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

12、导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 ic 卡,民用豪华轿车的安全保障系统, 录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机也广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。1.2.单片机发展趋势1)可靠性及应用越来越水平高和互联网连接已是一种明显的走向。 2)所集成的部件越来越多;ns(美国国家

13、半导体)公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。 3)功耗越来越低和模拟电路结合越来越多。随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。2 音乐盒总体设计2.1 设计功能要求主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐,当播放最后一首夜曲时还伴有彩灯闪烁。数码管采用共阳极数码管,通过单片机 p2

14、 口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机 p3.0p3.3 口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的 p3.6 口控制,实现歌曲播放。利用 i/o 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存四首乐曲)。2.2 工作原理通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需算出某一音频的周期(1/音频) ,然后取半周期的时间定时。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的 i/o 反相,然后重复计时此半周期时间再对 i/o 口反相,就可在 i/o 脚上得到此频率的脉冲。如中音 d0,频率

15、为523hz,其周期 t=1/523=1912 微秒,因此只要令计数器定时 1912/2=956,在每计数956 次时将 i/o 口反相,就可得到中音 d0(523hz)。 当键盘有键按下时,判断键值,启动计数器 t0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动数码显示部分,在 led 显示歌曲号,也可使彩灯长亮和闪烁。数码管采用共阳极数码管,通过单片机 p2 口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机 p3 口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的 p3.6 口控制,实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色长亮和闪烁效果,通过单片机

16、的 p0 口控制。通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐,当播放最后一首夜曲时还伴有彩灯闪烁。2.3 总体设计框图单片机接+5v 电源供电,晶振电路产生单片机所需时钟信号,通过功能键产生外部中断,控制音乐盒的上一首和下一首曲目,再由 i/o 接口输出控制蜂鸣器发声,led 显示,彩灯亮或闪烁。另外,复位电路在于营造一个程序运行的初始状态,在程序出错时,重新启动单片机工作。总体设计框图如图 1 所示: 图 1 总体设计框图编程设置好定时时间,通过编程器写入 at89s51 单片机系统。由 at89s51 单片机的定时器每秒钟通过 p2.0

17、-p2.7 口控制 led 数码显示,复位信号由按钮输入,每按下一次,系统恢复原设定状态。电源,晶振部分,复位电路,单片机,led,功能键,蜂鸣器部分后面均有详细介绍。电源晶振部分复位电路at89s51蜂鸣器led 显示功能键3 芯片的选择和介绍3.1mcs-51 系列单片机简介单片机系统是本监控系统的核心部分,数据的处理以及对试验设备的控制都由其来完成。单片微型计算机(single-chip microcomputer)简称单片机。它是在一块芯片内集成了计算机的组成单元,包括中央处理 cpu(central processing unit) 、随机存储器ram(random access m

18、emory) 、只读存储器 rom(read only memory) 、定时器/计数器以及 i/o(input/output)等主要的计算机部件。虽然单片机只是一个芯片,但它具有微机系统的组成和功能特征,可谓麻雀虽小五脏俱全。单片机经历了 4 位单片机、8 位低档单片机、8 位高档单片机、16 位单片机等各个阶段,现在正向高性能、高速度、高集成度、大容量多功能、低功耗、加强 i/0 能力及结构兼容的 32 位和双 cpu 方向发展。从 mcs-48 单片机发展到如今的新一代单片机,大致经历了三代。如以 intel 位单片机为例,这三代的划分大致如下:一代以 mcs-48 系列单片机为代表。其

19、主要的技术特征是将 cpu 和计算机外围电路集成到了一个芯片上,在与通用 cpu 分道扬镳、构成新型工业微控制器方面取得了成功,为单片机的进一步发展开辟了成功之路。第二代以 mcs-51系列的 8051、8052 单片机为代表。mcs-51 系列 8 位高档单片机是在总结 mcs-48 系列单片机的基础上,于 80 年代初推出的新产品。第三代是 intel 随后推出的 mcs-96 系列单片机。与 mcs-51 相比,mcs-96 不但字长增加一倍,而且在其他性能方面也有很大的提高,特别是芯片内还增加了一个 4 路或 8 路的 a/d 转换器,使其具有 a/d 转换功能。在这所有的系列中 mc

20、s-51 系列以它较高的性能和较合理的价格仍占据着很大的市场地位。3.2 单片机的选择单片机型号的选择是根据控制系统的目标、功能、可靠性、性价比、精度和速度等来决定的。根据本课题的实际情况,单片机型号的选择主要从以下两点考虑;一是要有较强的抗干扰能力。二是要有较高的性价比。由于 51 系列在我国使用最广,且该系列的资料和能够兼容的外围芯片也比较多,特别是 atmel 公司 2003 年推出新一代 89s 系列单片机,其典型产品 at89s51 单片机,与 89c 系列单片机相比具有较高的性能价格比。故本系统采用 atmel 公司生产的 at89s51 单片机作为交通灯的核心部件,该单片机是美国

21、atmel 公司生产的低电压、高性能 coms8 位单片机,片内含 4kb 的可反复擦写的只读程序存储器(eprom)和 128 字节的随机存取数据存储器(ram) ,片内置通用 8 位中央处理器(cpu)和 flash 存储单元,是 80c51 的增强型并且指令完全兼容,at89s51 新增加的功能由特殊功能寄存器完成,相信日后它将更广泛地应用于工业控制、汽车控制、智能仪器仪表及电机控制等应用领域。3.2.1at89s51 芯片介绍 它有 40 个管脚,分成两排,每一排各有 20 个脚,其中左下角标有箭头的为第 1 脚,然后按逆时针方向依次为第 2 脚、第 3 脚第 40 脚,如图 2 所示

22、:ea/vpp31xtal119xtal218rst/vpd9p3.7/rd17p3.6/wr16p3.2/int012p3.3/int113p3.4/t014p3.5/t115p1.0/t1p1.1/t2p1.23p1.34p1.45p1.56p1.67p1.78p0.039p0.138p0.237p0.336p0.435p0.534p0.633p0.732p2.021p2.122p2.223p2.324p2.425p2.526p2.627p2.728psen29ale/prog30p3.1/txd11p3.0/rxd10vcc40gnd20at89s5x1at89s51图 2at89s51

23、 引脚图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的随机存取数

24、据存储器(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 口是一个内部提供上

25、拉电阻的 8 位双向 i/o 口,p1 口缓冲器能接收输出4ttl 门电流。p1 口管脚写入 1 后,被内部上拉为高,可用作输入,p1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 flash 编程和校验时,p1 口作为第八位地址接收。p2 口:p2 口为一个内部上拉电阻的 8 位双向 i/o 口,p2 口缓冲器可接收,输出 4个 ttl 门电流,当 p2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,p2 口输出地址的

26、高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2 口输出其特殊功能寄存器的内容。p2 口在 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 外部输入

27、)p3.5 t1(记时器 1 外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3 口同时为闪烁编程和编程校验接收一些控制信号。i/o 口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器 cpu 将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心 1 然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置 1

28、 端口锁存器原来的状态有可能为 0q 端为 0q为1 加到场效应管栅极的信号为 1 该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为 1 也会因端口的低阻抗而使信号变低使得外加的 1 信号读入后不一定是 1 若先执行置 1 操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类 i/o 口被称为准双向口 89c51 的p0/p1/p2/p3 口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了 p1 口外 p0、p2、p3 口都还有其他的功能 rst:复位输入。当振荡器复位器件时,要保持

29、rst 脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ale 脉冲。如想禁止ale 的输出可在 sfr8eh 地址上置 0。此时, ale 只有在执行 movx,movc 指令是 ale 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ale 禁止,置位无效。psen:外部程序存储器的选通信

30、号。在由外部程序存储器取指期间,每个机器周期两次/psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信号将不出现。ea/vpp:当/ea 保持低电平时,则在此期间外部程序存储器(0000h-ffffh) ,不管是否有内部程序存储器。注意加密方式 1 时,/ea 将内部锁定为 reset;当/ea 端保持高电平时,此间内部程序存储器。在 flash 编程期间,此引脚也用于施加 12v 编程电源(vpp) 。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。基于 at89s51 的各种特性,选用此型号比较合适。4 系统硬件设计4.1 电源电

31、路的设计 电源电路设计图如图 3 所示:123j1pwr2.54.7ufc3cap pol14.7ufc2cap pol1vccs1switch图 3 电源电路单片机使用的是 5(0.2)v 的电源,对电压的稳定要求较高,我们可以用 lm7805来实现此功能。首先,用交流变压器将 220v 电压变为大于 5v 的交流电,比如 7.5v 或10.5v,然后用桥式整流器,和电容进行整流滤波,将交流电处理为直流。然后用 7805进行 5v 恒压输出,共给单片机电路使用。4.2 单片机最小系统单片机最小系统如图 4:p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7xtal218xtal

32、119ale30ea31psen29rst9p0.0/ad039p0.1/ad138p0.2/ad237p0.3/ad336p0.4/ad435p0.5/ad534p0.6/ad633p0.7/ad732p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78p3.0/rxd10p3.1/txd11p3.2/int012p3.3/int113p3.4/t014p3.7/rd17p3.6/wr16p3.5/t115p2.7/a1528p2.0/a821p2.1/a922p2.2/a1023p2.3/a1124p2.4/a1225p2.5/a1326p2.6/a1427u1

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

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

35、复位通过电容c3,c4和电阻r1,r2来实现,按键手动复位是图中复位键来实现的。 4k7r2res210ufc1cap pol1vccs2sw-pbres图6 复位电路4.3 数码管显示部分歌曲序号显示部分用数码管来显示,led 显示器件是通过发光二极管显示字段的器件。在单片机控制系统中常用的是由 7 段 led 数码管,它的显示块中有 8 个发光二极管,7 个发光二极管组成字符“8” ,1 个发光二极管构成小数点,因此有人称 7 段 led 数码管为 8段显示器。led 数码管的管脚配置如图 7 所示:k1f2g3e4d5k6c8dp7b9a10ds1dpy red-cc图 7 led 数码

36、管管脚配置图led 数码管有共阴极和共阳极两类,如图 8 所示。共阴极 led 数码管的发光二极管的阴极共地,如图 8(a) ,当某个发光二极管的阳极电压为高电平时,二极管发光;而共阳极 led 数码管是发光二极管的阳极共接,如图 8(b) ,当某个二极管的阴极电压为低电平时,二极管发光。(a)共阴极 (b)共阳极图 8 两类 led 数码管led显示块,如图9所示。它们经过电阻和单片机的控制端口线一一相连,只要改变控制端口的电平就能使其发光或熄灭。本设计所用的数码管为共阳极数码管,数码管的每段的电流是10毫安。所以公共端接高电平,但在软件编码时需要和硬件相对应。 abcdefgdpr(a)

37、共 阴 极abcdefgdpr(b) 共 阳 极+5vaabbcdcedfegfg176432510 98gndgnddp图 9 数码管引脚图4.4 键盘部分键盘是由一组按压式或触摸式开关构成的阵列,是一种常用的输入设备。键盘可分为编码式键盘和非编码式键盘两种。1.编码键盘通过硬件电路产生被按按键的键码,这种键盘所需程序简单,但硬件电路复杂、价格昂贵通常不被单片机系统采用。2.非编码键盘常用一些按键排列成行列矩阵,其硬件逻辑与按键编码不存在严格的对应关系,而要由所用的程序来决定。非编码键盘的硬件接口简单,但是要占用较多的 cpu时间,通常采用可编程键盘管理芯片来克服这个缺点。本设计使用按键式非

38、编码键盘。4.4.1 按键开关在接线时由于有六个引脚,连接时需要用万用表进行测量,然后接通两个引脚。4.4.2 轻触开关一种电子开关,使用时轻轻点按开关按钮就可使开关接通,当松开手时开关既断开,其内部结构是靠金属弹片受力弹动来实现通断的。但微动开关也有它不足的地方,频繁的按动会使金属弹片疲劳失去弹性而失效 ,连接时接通对角线即可。4.5 蜂鸣器部分 一般所指的蜂鸣器是以压电陶瓷为主要元件的。压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。这种能力缘于其特殊的晶体结构。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,并且电流的变化与压力的变化密切相关。反之

39、亦然。所以利用这一特性,在压电陶瓷上通过一定频率的电流,就会引起压电陶瓷微小形变,这一形变带动空气发生振动,如果频率适当,就可以被人耳所听见,也就是产生了蜂鸣声。 1蜂鸣器的作用 :蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。2蜂鸣器的分类 :蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。3蜂鸣器的电路图形符号 :蜂鸣器在电路中用字母 “h”或“ha”(旧标准用“fm”、“lb”、“jd”等)表示。蜂鸣器的结构原理 :1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻

40、抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515v 直流工作电压) ,多谐振荡器起振 ,输出 1.52.5khz 的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。5 系统软件设计5.1 软件系统介绍一

41、个系统的正常运行不仅需要硬件系统的支持,而且需要软件系统的支持。如果把硬件比作躯体,那软件就是灵魂,硬件系统和软件系统相互间密切的配合才构建了能够“思考”和“判断”的整体系统。借助软件的可编程性,可以精简硬件系统的组成;凭借软件的灵活性,可以不用对硬件系统进行修改而实现系统功能的修改。软件系统与硬件系统是密切相联的,软件系统建立在硬件系统之上,离开了硬件系统,软件将无法实现任何功能。软件的设计有一定的针对性,对于不同的硬件系统,需要编写不同的软件。与硬件系统一样,软件系统的好坏,直接影响到系统的工作效率和可靠性。5.2 编程语言的选择软件的编程设计是单片机系统设计的核心部分,也是能否实现预定功

42、能的关键。单片机编程常用的语言是 c 语言和汇编语言,最终都要转为 intel hex 格式或二进制格式(binary)文件拷入单片机芯片内。这里我们使用的是 c 语言进行编程设计。c 语言是一种面向过程的计算机程序设计语言 ,它是目前众多计算机语言 中举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所的 d.m.ritchie 于 1972 年推出。1978 后,c 语言已先后被移植到大、中、小及微型机上。c 语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如 dbase 都是由 c 语言编写的。用 c 语言加上一些汇编语言子程序,就更能显示

43、 c 语言的优势了,像 pc- dos 、wordstar 等就是用这种方法编写的。5.3 应用软件的选择keilc51单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为cpu 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 mcs-51 单片机的汇编软件有早期的 a51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,keil 软件是目前最流行开发mcs-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 kei

44、l 即可看出。keil 提供了包括 c 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部份组合在一起。运行keil 软件需要 pentium 或以上的 cpu,16mb 或更多 ram、20m 以上空闲的硬盘空间、win98、nt、win2000、winxp 等操作系统。掌握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如果你使用 c 语言编程,那么 keil 几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件) ,即使不使用c 语言而仅用汇编语言编程,其方便易用的

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

46、中 uvision 与 ishell 分别是 c51 for windows 和 for dos 的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用 ide 本身或其它编辑器编辑 c 或汇编源文件。然后分别由 c51 及 a51 编译器编译生成目标文件(.obj)。目标文件可由 lib51 创建生成库文件,也可以与库文件一起经 l51 连接定位生成绝对目标文件(.abs)。abs 文件由 oh51 转换成标准的 hex 文件,以供调试器 dscope51 或 tscope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序

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

48、用于定时控制、延时、对外部事件检测和计数等场合。定时器的核心部件是加 1 计数器,通过设置 tmod 可使定时器工作在定时或计数方式,即将定时器用于定时或计数。实际上这两种工作方式没有本质的区别,都是对脉冲信号计数,只是计数的脉冲来源不同而已。如果计数脉冲是频率稳定的系统时钟的分频信号,则称为定时方式,如果计数脉冲是外部脉冲信号,称为计数方式。无论工作在定时方式还是计数方式,定时器在对内部时钟或外部脉冲计数时,都不占用 cpu 的时间,而按设定的方式自主工作,与 cpu 并行运行。只有在定时器定时时间或计数值到,定时器溢出时才可能中断 cpu 当前工作,请求 cpu 处理。如晶振 12mhz,

49、用定时器 t0 定时 50ms,从 p3.6 引脚输出周期 100ms 的方波;定时流程图如图 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_r

50、i=p11;sbit a_mi=p12;sbit a_fa=p13;sbit a_so=p14;sbit 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

51、num175=5,12,11,10,9,8,7,6,5,5,6,6,5,5,3,2,1,2,1,6,3,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=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;void delay(uint b) /0.05s uint b0,b1; for(b0=0;b0b;b0+)

52、for(b1=0;b19900;b1+); void led() switch(a) case 1: p0=0 xff;dou=0;break;case 2: p0=0 xff;ri=0;break;case 3: p0=0 xff;mi=0;break; case 4: p0=0 xff;fa=0;break;case 5: p0=0 xff;so=0;break; case 6: p0=0 xff;la=0;break; case 7: p0=0 xff;xi=0;break;case 8: p0=0 xff;dou=0;gao=0;break;case 9: p0=0 xff;ri=0;

53、gao=0;break;case 10: p0=0 xff;mi=0;gao=0;break; case 11: p0=0 xff;fa=0;gao=0;break;case 12: p0=0 xff;so=0;gao=0;break; case 13: p0=0 xff;la=0;gao=0;break; case 14: p0=0 xff;xi=0;gao=0;break; if(a8) p2=dis_seg7a; else p2=dis_seg7a-7 ; void main() uchar *p=num; tmod=0x01; tl0=(65536-1980)%256; th0=(65

54、536-1980)/256; et0=1; tr0=1; ex1=1; it1=0; ea=1; while(1) if(mm=0) p2=0 x8c; a=0; if(mm=1) p=num; while(*p)&(mm=1) a=*p;led(); p+; delay(4); speak=0; p=num1; while(*p)&(mm=1) a=*p;led(); p+; delay(8); a=0; if(mm=2) / a=0; if(a_dou=0)a=1; if(a_ri=0)a=2; if(a_mi=0)a=3; if(a_fa=0)a=4; if(a_so=0)a=5; if

55、(a_la=0) a=6; if(a_xi=0) a=7; if(a_gao=0)&(a_dou=0)a=8; if(a_gao=0)&(a_ri=0) a=9;if(a_gao=0)&(a_mi=0) a=10;if(a_gao=0)&(a_fa=0) a=11;if(a_gao=0)&(a_so=0) a=12;if(a_gao=0)&(a_la=0) a=13; if(a_gao=0)&(a_xi=0) a=14;led(); void speal() interrupt 1 switch(a) case 1: tl0=(65536-1980)%256; th0=(65536-1980)

56、/256;break;case 2: tl0=(65536-1700)%256; th0=(65536-1700)/256;break;case 3: tl0=(65536-1515)%256; th0=(65536-1515)/256;break;case 4: tl0=(65536-1432)%256; th0=(65536-1432)/256;break;case 5: tl0=(65536-1275)%256; th0=(65536-1275)/256;break;case 6: tl0=(65536-1136)%256; th0=(65536-1136)/256;break;case

57、 7: tl0=(65536-1016)%256; th0=(65536-1016)/256;break;case 8: tl0=(65536-478)%256; th0=(65536-478)/256;break;case 9: tl0=(65536-425)%256; th0=(65536-425)/256;break;case 10: tl0=(65536-379)%256; th0=(65536-379)/256;break;case 11: tl0=(65536-357)%256; th0=(65536-357)/256;break;case 12: tl0=(65536-318)%

58、256; th0=(65536-318)/256;break;case 13: tl0=(65536-284)%256; th0=(65536-284)/256;break;case 14: tl0=(65536-253)%256; th0=(65536-253)/256;break;default : speak=1;break; speak=speak; void a_m() interrupt 2 delay(10);while(!ms);if(mm2) mm+;else mm=0; 6 系统仿真及硬件制作6.1 仿真的必要性设计一个系统需要根据需要设计出硬件电路和软件,但是如何知道它们

59、是否能正常工作呢?这时候使用仿真工具去模拟实际的硬件和软件,就可以轻松实现检验功能,并且还能省去一大笔试验硬件投资。所以系统设计的仿真显然是系统设计的很重要的一个环节。程序的编制与调试的通过是系统软件设计是否成功的关键,而仿真的通过则是整个系统是否成功关键,通过仿真能迅速的确定方案的可行性,能节省了设计的时间和成本。在程序编译好之后,在确定编译无误后,如果直接连接硬件,并不能一下子得到预期的结果,并且耗费时间长,硬件成本大,如果先在电脑上进行仿真,不仅可以方便的运用各种硬件器件,并且可以多次调试,修改程序,来达到预期效果,然后再进行硬件的连接。6.2 系统仿真过程6.2.1 原理图的绘制pro

60、teus 电路设计是在 proteus isis 环境中绘制的,该编辑环境具有良好的人机交互界面,功能强大极易上手。首先通过桌面进入主程序,然后在system选择设置纸张大小,通过快捷键 g 设置栅格的关闭与显示。绘制原来图的主要任务是从元件库中选取绘制电路所需要的元件。可以通过点击选择器顶端左侧的“p”或者通过命令打开,我们常用的是按钮;在查找到并放置完所有需要的器件后,我们需要接着连接元件,即在proteus isis 的编辑窗口布线。proteus isis 中没有布线模式,但用户可以在任意时刻放置连线和编辑连线。在完成绘制所需的电路图前,用户需要放置并连接断轴。在电路原理图中放置两种通

温馨提示

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

评论

0/150

提交评论