基于单片机带流水灯的电子音乐盒_第1页
基于单片机带流水灯的电子音乐盒_第2页
基于单片机带流水灯的电子音乐盒_第3页
基于单片机带流水灯的电子音乐盒_第4页
基于单片机带流水灯的电子音乐盒_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 课程设计(论文)说明书 题 目: 带花样灯的电子音乐盒 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 职 称: 2012 年 12 月 12 日 摘 要 本设计是一个基于 AT89C52 系列单片机的音乐盒,依据单片机技术原理, 通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒,最终 达到设计电路的乐器演奏、点歌、存储及显示功能。设计中应用中断系统和定 时/计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序 语言实现,可以用它来弹奏和播放乐曲。 本设计的特点是设计思路简单、清晰,成本低。该音乐盒主要由按键电路、 复位电路

2、、时钟电路以及蜂鸣器组成。该电路使用两个按键控制音乐盒,一个 用来切换歌曲,另一个用来切换八路 LED 的变化花样,本音乐盒共有五首歌曲, 花样灯花样共计五种。播放歌曲时,蜂鸣器发出某个音调,与之对应的 LED 亮 起。本设计利用 KEIL 编程软件对音乐盒源程序进行编程并调试,配合 PROTEUS 仿真软件对硬件进行仿真调试,节约了设计时间。 关键字:音乐盒;AT89C52 单片机;KEIL;PROTEUS; Abstract The design is based on a series of AT89C52 SCM Music Box.The design of a multi-func

3、tion music box through the production of hardware and software compilation, On the basis of the principles of microcomputer technology.The design use interruption system and timing / counting principle to control performance sound production, which used for playing the songs. And the music must dete

4、rmine the notes and beats program language to realize the separation of. The characteristic of this design is simple, clear design, low cost. The music box is mainly composed of a key circuit, reset circuit, clock circuit and a buzzer.The circuit using two buttons to control music box, a used to swi

5、tch the song, another used to switch the 8 road LED change pattern。This music box have five songs and A total of 5 sample light figure.When playing songs, buzzer sounded a note with the corresponding LED lights up.The design using KEIL programming software for music box source code for programming a

6、nd debugging, withing the PROTEUS simulation software to the hardware simulation debugging to save the design time. KeyKey word:word: AT89C52 SCM; Music Box; KEIL;PROTEUS; 目 录 引言 .3 1 概述概述.4 1.1 设计目标 .4 1.2 设计方案 .4 1.3 设计内容 .5 2 系统总体方案系统总体方案.5 2.1 系统组成框图 .5 2.2 音乐盒的功能结构图 .5 3 3 硬件设计硬件设计.6 3.1 总体设计框图

7、 .6 3.2 各部分硬件设计及其原理 .6 3.2.1 AT89C51AT89C51 简介 .6 3.2.2 LEDLED 显示电路设计与原理 .7 3.2.3 时钟振荡电路.7 3.2.4 按键控制和复位电路.8 3.2.5 蜂鸣器电路.8 3.3 硬件电路图及功能 .9 4 4 软件设计软件设计.10 4.1 主要设计软件介绍 .10 4.1.1 PROTEUSPROTEUS 软件简介 .10 4.1.2 KEILKEIL 简介 .10 4.1 音调、节拍以及编码的确定方法 .11 4.2.1 音调的确定.11 4.2.2 节拍的确定.12 4.2.3 编码.13 4.3 软件程序设计

8、.14 4.2.1 程序流程图及相应代码块.14 4.2.2 程序源代码(见附录 A) .15 5 5 系统系统调试调试.16 5.1 硬件连接和仿真 .16 5.2 检查软件系统 .16 5.3 测试结果 .16 5.3.1 总体运行图 .16 5.3.2 花样灯 3 种花样图 .17 5.4 硬件制作 .18 5.4.1.硬件制作的意义.18 5.4.3 硬件制作的过程.19 6 6 总结总结.20 致谢 .21 参考文献 .21 附录 A 原理图与 PCB 图.22 附录 B 程序源代码及注释.23 引言 到了 21 世纪,电子技术获得了飞速的发展,电子技术正在逐渐改善着人们 的学习、生

9、活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。 在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生 产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高, 产品更新换代的节奏也越来越快。 如今,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 CMOS 化、 低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。 单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设 计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片 机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术, 是传

10、统控制技术的一次革命。单片机渗透到我们生活的各个领域,几乎很难找 到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计 算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使 用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动 洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。 随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且 日益复杂。面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地 对之进行处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过 寻求更加卓越的显示技术来实现。单片机技术与液晶显

11、示技术的结合,使信息 传输交流向着智能可视化方向迅速发展。 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要 求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传 统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计 的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和 旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。 本设计是以 AT89C52 芯片的电路为基础,外部加上放音设备,以此来实现音 乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏 出优美动听的音乐。用户可以按照自己的喜好选择音乐并将

12、其转化成机器码存 入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。 该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和 音乐爱好者提供了很好的借鉴。 1 概述 1.1 设计目标 由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单 易操作。其次,在这次设计可行性上进行分析如下: 1、经济可行性: 所谓经济可行性,即在这次设计上需要投入资金的多少,由于毕业设计是没 有项目资金,没有开发经费,因此在经济上必须能够承受,比较理想化的项目 对于我们毕业设计来说是不可行的。通过分析后,无论是在器件价格或是常见 度上均是可行的。 2、技术可行性: 技术可

13、行性主要是分析技术条件上是否能够顺利开展并完成开发工作,硬件、 软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已 经具备。 综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开 发是完全可行的。 1.2 设计方案 方案一:用可控硅制作电子琴。将 220V 交流电经变压器降压,再经过整流、 滤波,获得+13.5V 直流电压。将单向可控硅 SCR 和电阻、电容组成驰张振荡器 电路。但该设计方案制作成本高且复杂。 方案二: 采用 AT89C51 单片机进行控制,由于 AT89C51 不具备 ISP 功能, 因此 Atmel 公司已经停产在市面上已经不常见,况且其

14、 ROM 只有 4K 在系统将 来升级方面没有潜力。 方案三:采用 AT89S52 单片机进行控制,由于其性价比高,完全满足了本 作品智能化的要求,它的内部程序存储空间达到 8K,使软件设计有足够的内部 使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。 鉴于上述对比与分析,本设计采用方案三 1.3 设计内容 设计一个基于 AT89C51 系列单片机的音乐盒,利用按键切换演奏出不同的乐 曲。蜂鸣器发出某个音调,与之相对应的 LED 亮起。使用两个按键,一个用来 切换歌曲,另一个切换八路 LED 的变化花样。 1)该电路有两种工作模式:演奏音乐模式和花样灯模式。 演奏音乐模式:演奏完整的一

15、首的歌曲,八路 LED 随着音乐变化。 花样灯模式:八路 LED 变化出各种花样,蜂鸣器随着发出“嘀嘀”声。 2)按下按键 1 进入演奏音乐模式,再按时就可以切换歌曲,共拥有五首歌曲。 3)按下按键 2 进入花样灯模式,再按时就可以切换 LED 花样,共有五种花样。 此电路的程序只占用了 2K 左右,可以方便的添加更多的音乐和 LED 花样, 使系统的功能更加强大。 2 系统总体方案 2.1 系统组成框图 音乐盒的系统结构以 AT89C52 单片机位控制核心,加上 2 个按键、时钟复 位电路、蜂鸣器、LED 模块组成。单片机负责接收按键的输入,根据输入控制 音乐播放曲目和音乐花样灯的显示样式以

16、及蜂鸣器发音。系统组成框图如图 2.1 所示。 图 2.1 系统组成框图 2.22.2 音乐盒的功能结构图音乐盒的功能结构图 音乐盒的功能结构如图 2.2 所示。复位开始时音乐盒不播放音乐只有流水 灯花样,按键 Key1 负责切换播放歌曲,歌曲共有 5 首,分别是千年之恋、寂寞 沙洲冷、轻音乐三首。按键 Key2 负责切换 LED 显示花样,显示花样共 5 种包括 顺序显示然后由两边向中间移动然后向两边移动、循环显示等。 图 2.2 音乐盒功能结构图 AT89C52 单片机 键盘控制 电路 外部晶振 电路 LED 显示 电路 蜂鸣器电路 开始 按键 2 控制 歌曲的切换 按键 1 控制流 水灯

17、花样 播放花样流水灯 1 3 硬件设计 3.1 总体设计框图 图 3.1 总体设计框图 3.2 各部分硬件设计及其原理 3.2.13.2.1 AT89C52AT89C52 简介简介 功能特性:AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在 系统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技术制造, 与工业 80C51 产品指令和引脚完 全兼容。片上 Flash 允许程序存储器在系统 可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可 编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提 供高灵

18、活、超有效的 解决方案。 AT89S52 具有以下标准功能: 8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一 个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻 辑操作,支持 2 种软件可选择节电模式。空闲模 式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电 保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下 一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89

19、S52。 主要性能:与 MCS-51 单片机产品兼容、8K 字节在系统可编程 Flash 存储 器、1000 次擦写周期、全静态操作:0Hz33Hz 、 三级加密程序存储器 、32 个可编程 I/O 口线 、三个 16 位定时器/计数器八个中断源、全双工 UART 串行 通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指 针、掉电标识符。外形及引脚排列如图 3.2 所示 图 3.2 AT89C51 系列单片机 3.2.2 LED 显示电路设计与原理 LED 显示电路是由 8 个 LED 发光二极管组成,连接方式为共阳极,LED 接到 单片机的 P1 口,若为低电平,可使 LE

20、D 亮起。发光二极管的亮、灭由内部程序 控制,8 个 LED 发光二极管分别对应不同的音阶,所以 LED 会随着音阶的变化 按规律亮、灭。 图 3.2.2 8 位流水灯电路 3.2.3 时钟振荡电路 AT89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片 外石英晶体或者陶瓷谐振器一起构成自然振荡器。外接石英晶体及电容 C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容 C1,C2 虽然没有什么 严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳 定性、起振的难易程

21、序及温度稳定性。 如果使用石英晶体,我们推荐电容使用 30PF10PF,而如果使用陶瓷振荡 器建议选择 40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如图 示。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端, XTAL2 则悬空。由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信 号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和 最大的低电平持续时间应符合产品技术条件的要求。振荡器电路图如下: 图 3.3 单片机内部、外部振荡电路 3.2.4 按键控制和复位电路 按下按键 1 进入演奏音乐模式,再按时就可以切换歌曲,共拥有五首歌

22、曲。 按下按键 2 进入花样灯模式,再按时就可以切换 LED 花样,共有五种花样。当 按下电路是就会回到流水灯样式一。 图 3.2.4 按键和复位电路 3.2.5 蜂鸣器电路 蜂鸣器用于音乐的发音,受 P3.2 脚的控制。 图 3.2.5 蜂鸣器电路 3.3 硬件电路图及功能 总体硬件电路实现功能如下,如图 3.4 所示 1)电路中用 P3.2、P3.3 控制按键。 2)P1.0P1.7 控制 LED。 3)P2.3 控制蜂鸣器。 4)电路为 11.0592MHZ 晶振频率工作,起振电路中 C1、C2 均为 30PF。 图 3.4 总体硬件电路图 4 软件设计 4.1 主要设计软件介绍 本设计

23、利用 KEIL 编程软件对音乐盒源程序进行编程并调试,配合 PROTEUS 仿真软件对硬件进行仿真调试,两种软件的简介如下: 4.1.1 PROTEUS 软件简介 Proteus 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件(该 软件中国总代理为广州风标电子技术有限公司) 。它不仅具有其它 EDA 工具软件 的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围 器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机 教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上 著名的 EDA 工具(仿真软件)

24、,从原理图布图、代码调试到单片机与外围电路协 同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前 世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计 平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等, 2010 年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。 在编译方面,它也支持 IAR、Keil 和 MPLAB 等多种编译器。 4.1.2 KEIL 简介 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言

25、源程 序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器 汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序 变为机器码,用于 MCS-51 单片机的汇编软件有早期的 A51,随着单片机开发技 术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发 软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片机的软件, 这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。 Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿 真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这

26、些部 份组合在一起。运行 Keil 软件需要 Pentium 或以上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。掌 握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如果你 使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前在国内你只能买到该 软件、而你买的仿真机也很可能只支持该软件) ,即使不使用 C 语言而仅用汇编 语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功 倍。Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑, 容易理解。在开发

27、大型软件时更能体现高级语言的优势。 4.2 音调、节拍以及编码的确定方法 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波 频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只 需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。 4.2.1 音调的确定 不同音高的乐音是用 C、D、E、F、G、A、B 来表示,这 7 个字母就是音乐 的音名,它们一般依次唱成 DO、RE、MI、FA、SO、LA、SI,即唱成简谱的 1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐 音的发音,所以叫“音调” ,即 Tone。把 C、D、E

28、、F、G、A、B 这一组音的距 离分成 12 个等份,每一个等份叫一个“半音” 。两个音之间的距离有两个“半 音” ,就叫“全音” 。在钢琴等键盘乐器上,CD、DE、FG、GA、AB 两 音之间隔着一个黑键,他们之间的距离就是全音;EF、BC 两音之间没有黑 键相隔,它们之间的距离就是半音。通常唱成 1、2、3、4、5、6、7 的音叫自 然音,那些在它们的左上角加上号或者 b 号的叫变化音。叫升记号,表示 把音在原来的基础上升高半音,b 叫降记音,表示在原来的基础上降低半音。 例如高音 DO 的频率(1046Hz)刚好是中音 DO 的频率(523Hz)的一倍,中音 DO 的频率(523Hz)刚

29、好是低音 DO 频率(266 Hz)的一倍;同样的,高音 RE 的频率(1175Hz)刚好是中音 RE 的频率(587Hz)的一倍,中音 RE 的频率 (587Hz)刚好是低音 RE 频率(294 Hz)的一倍。 1)要产生音频脉冲,只要算出某一音频的周期(1/频率) ,然后将此周期 除以 2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后 就将输出脉冲的 I/O 反相,然后重复计时此半周期时间再对 I/O 反相,就可在 I/O 脚上得到此频率的脉冲。 2)利用 AT89C51 的内部定时器使其工作在计数器模式 MODE1 下,改变计数 值 TH0 及 TL0 以产生不同频率的方

30、法。 此外结束符和休止符可以分别用代码 00H 和 FFH 来表示,若查表结果为 00H,则表示曲子终了;若查表结果为 FFH,则产生相应的停顿效果。 3)例如频率为 523Hz,其周期 T=1/523=1912us,因此只要令计数器计时 956us/1us=956,在每次技术 956 次时将 I/O 反相,就可得到中音 DO(523Hz) 。 计数脉冲值与频率的关系公式如下: N=Fi2Fr N:计算值;Fi:内部计时一次为 1us,故其频率为 1MHz; 4)其计数值的求法如下: T=65536-N=65536-Fi2Fr 例如:设 K=65536,F=Fi=1MHz,球低音 DO(261

31、Hz) 。中音 DO(523Hz) 。 高音的 DO(1046Hz)的计算值 T=65536-N=65536-Fi2Fr=65536-Fr=65536-/Fr 低音 DO 的 T=65536-/262=63627 低音 DO 的 T=65536-/523=64580 低音 DO 的 T=65536-/1047=65059 5)C 调各音符频率与计数值 T 的对照表如表 4.1 所示。 表 4.1 C 调各音符频率与计数值 T 的对照表 低音频率 T 参数中音频率 T 参数高音频率 T 参数 Do2621908229Do523956115Do10465757 Do2771805217Do5549

32、03108Do11095454 Re2941701204Re587852102Re11755151 Re3111608193Re62280497Re12454848 Mi3301515182Mi65975991Mi13184545 Fa3491433172Fa69871686Fa13974343 Fa3701351162Fa74067681Fa14804141 So3921276153So78463877So15683838 So4151205145So83160272So16613636 La4401136136La88056868La17603434 La4641078129La93253

33、664La18653232 Si4941012121Si98850661Si19763030 4.2.2 节拍的确定 若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定 的律动) ,而且可以调节各个音的快满度。 “节拍”,即 Beat,简单说就是打拍 子,就像我们听音乐不自主的随之拍手或跺脚。若 1 拍实 0.5s,则 1/4 拍为 0.125s。至于 1 拍多少 s,并没有严格规定,就像人的心跳一样,大部分人的 心跳是每分钟 72 下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持 续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。 一首音乐是由许多不同的音符组成的,

34、而每个音符对应着不同频率,这样 就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。了解音乐 的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片 机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生 这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单 片机定时计数的关系。 表 4.2 节拍与节拍码对照 节拍码节拍数节拍码节拍数 1 1/4 拍 1 1/8 拍 2 2/4 拍 2 1/4 拍 3 3/4 拍 3 3/8 拍 4 1 拍 4 2/1 拍 5 1 又 1/4 拍 5 5/8 拍 6 1 又 1/2 拍 6 3/4 拍 8

35、2 拍 8 1 拍 A 2 又 1/2 拍 A 1 又 1/4 拍 C 3 拍 C 1 又 1/2 拍 F 3 又 3/4 拍 每个音符使用 1 个字节,字节的高 4 位代表音符的高低,低 4 位代表音符 的节拍,图 5.2 为节拍码的对照。如果 1 拍为 0.4 秒,1/4 拍实 0.1 秒,只要 设定延迟时间就可求得节拍的时间。假设 1/4 拍为 1DELAY,则 1 拍应为 4DELAY,以此类推。所以只要求得 1/4 拍的 DELAY 时间,其余的节拍就是它的 倍数,如图 5.3 为 1/4 和 1/8 节拍的时间设定。 表 4.3 1/4 和 1/8 节拍的时间设定 曲调值DELAY

36、曲调值DELAY 调 4/4125 毫秒调 4/462 毫秒 调 3/4187 毫秒调 3/494 毫秒 调 2/4250 毫秒调 2/4125 毫秒 4.2.3 编码 do re mi fa so la si 分别编码为 17,重音 do 编为 8,重音 re 编为 9, 停顿编为 0。播放长度以十六分音符为单位(在本程序中为 165ms) ,一拍即四 分音符等于 4 个十六分音符,编为 4,其它的播放时间以此类推。音调作为编码 的高 4 位,而播放时间作为低 4 位,如此音调和节拍就构成了一个编码。以 0 xff 作为曲谱的结束标志。 举例 1:音调 do,发音长度为两拍,即二分音符,将其

37、编码为 0 x18。 举例 2:音调 re,发音长度为半拍,即八分音符,将其编码为 0 x22 歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为 unsigned char 的数组中。程序从数组中取出一个数,然后分离出高 4 位得到 音调,接着找出相应的值赋给定时器 0,使之定时操作蜂鸣器,得出相应的音 调;接着分离出该数的低 4 位,得到延时时间,接着调用软件延时。 表 4.4 简谱对应的简谱码、T 值、节拍数 简谱发音简谱码T 值节拍码节拍数 5低音 SO16426011/4 拍 6低音 LA26440022/4 拍 7低音 TI36452433/4 拍 1中音 DO46458

38、041 拍 2中音 RE5646845 1 又 1/4 拍 3中音 MI6647776 1 又 1/2 拍 4中音 FA76482082 拍 5中音 SO864898A 2 又 1/2 拍 6中音 LA964968C3 拍 7中音 TIA65030F 3 又 3/4 拍 1高音 DOB65058 2高音 REC65110 3高音 MID65157 4高音 FAE65178 5高音 SOF65217 4.3 软件程序设计 4.3.1 程序流程图及相应代码块 在本程序中设置了两个标志count1 和 count2,分别初始化为 1 和 0。 按键 1 使得 count1 在 1 和 5 之间切换,

39、按键 2 使得 count2 在 15 之间切换。 程序检测 count1 的值,count1 等于 1 时播放第一首歌曲,等于 2 时播放第二 首。另一方面根据 count2 的值来切换 LED 的花样。count1 和 count2 的值是互 斥的,设置 count1 等于 15 时,count2 同时设置为 0;设置 count2 等于 15 时,count1 也同时设置为 0。 主程序流程图 图 4.1 主程序流程图 播放音乐子程序流程图 图 4.2 播放音乐子程序流程图 4.2.2 程序源代码(见附录 A) 5 系统调试 电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为

40、三大 部分:硬件调试和仿真、软件调试和综合调试。 5.1 硬件连接和仿真 设计一个系统需要根据需要设计出硬件电路和软件,但是如何知道它们是 否能正常工作呢?这时候使用仿真工具去模拟实际的硬件和软件,就可以轻松 实现检验功能,并且还能省去一大笔试验硬件投资。所以系统设计的仿真显然 是系统设计的很重要的一个环节。程序的编制与调试的通过是系统软件设计是 否成功的关键,而仿真的通过则是整个系统是否成功关键,通过仿真能迅速的 确定方案的可行性,能节省了设计的时间和成本。 在程序编译好之后,在确定编译无误后,如果直接连接硬件,并不能一下 子得到预期的结果,并且耗费时间长,硬件成本大,如果先在电脑上进行仿真

41、, 不仅可以方便的运用各种硬件器件,并且可以多次调试,修改程序,来达到预 期效果,然后再进行硬件的连接。 在 PROTUES 检查各硬件管脚是否连接正确,线路逻辑是否正确,例如:晶 振电路的连接,复位电路是否设计正确。 5.2 检查软件系统 1根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序 是否也正确。 2将所有程序组织起来,在软件环境下运行,检查程序是否正确。通过对 硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译 成 HEX 文件装载到单片机中,对硬件进行仿真。 5.3 测试结果 5.3.1总体运行图 PROTEUS 电路设计是在 PROTEUS ISI

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

43、是电源端子。当在 PROTEUS ISIS 编辑窗 口放置元件时,每一元件都有唯一的元件标号及元件值与之对应。原件号是 PROTEUS ISIS 的实时注释功能自动标注的,这一功能可在菜单中设置选择是否 开启。PROTEUS ISIS 中也支持块操作,当用户需要对电路中的某一部分进行操 作时,可以使用该功能。系统共支持块移动、块复制、块旋转、块删除等实用 功能,充分利用这些功能可以极大的提高我们绘图的效率。我们绘制完所有的 元件后,最后进行统一标注,PROTEUS ISIS 支持注释功能,可以把我们所绘制 的原理图中的器件根据我们的需要添加上特殊的注释,以表示特定的含义。根 据设计电路绘制完后

44、的电路图如图 5.1 所示 图 5.1 系统总体运行图 5.3.2花样灯 (1)第一种花样灯显示方式为:从 D1 移向 D2,然后 D1 熄灭,再从 D2 移 向 D3,然后 D2 熄灭,以此类推,当循环一遍后,就从 D4 和 D5 分别向两边移 动。 图 5.2 第一种花样 (2)第二种花样灯显示方式为:从两边向中间移动,首先从 D1 移向 D8, 再从 D8 移向 D2,以此类推,往复循环。 5.4 硬件制作 5.4.1 硬件制作的意义 在利用 PROTEUS 仿真之后,确定了所需器件和基本方案,但这些都是理论 上的,系统能否实际工作和正常的运行就要求按照实际电路做出一个简单的硬 件模型,

45、来模拟实际的情况。这样就可以增加发现系统实际应用中会出现的问 题的机会,改善系统实用性。并且交通灯的设计本身就是实用性很强的一套设 计,在设计完全正确的情况下,作出来实物不仅需要其完成设计所需要的那些 功能,还需要增加系统的稳定性和可靠性。 另外,只有做出实物,才能在仿真时和具体器件的功能相匹配,并且根据 调试出来的结果再来修改程序,从软件和硬件一起来提高系统的性能。 5.4.2 硬件制作的过程 Altium(前身为 Protel 国际有限公司)由 NickMartin 于 1985 年始创于塔斯 马尼亚州霍巴特,致力于开发基于 PC 的软件,为印刷电路板提供辅助的设计。 最初的 DOS 环境

46、下的 PCB 设计工具在澳大利亚得到了电子业界的广泛接受,在 1986 年中期,Altium 通过经销商将设计软件包出口到美国和欧洲。随着 PCB 设 计软件包的成功,Altium 公司开始扩大其产品范围,包括原理图输入、PCB 自 动布线和自动 PCB 器件布局软件。AltiumDesigner 基于一个软件集成平台,把 为电子产品开发提供完整环境所需的工具全部整合在一个应用软件中。 AltiumDesigner 包含所有设计任务所需的工具:原理图和 HDL 设计输入、电路 仿真、信号完整性分析、PCB 设计、基于 FPGA 的嵌入式系统设计和开发。另外 可对 AltiumDesigner

47、工作环境加以定制,以满足用户的各种不同需求。 1 项目是每项电子产品设计的基础。 2 项目将设计元素链接起来,包括源原理图、PCB、网表和欲预保留在项目中的 所有库或模型。 3 项目还能存储项目级选项设置,例如错误检查设置、多层连接模式和多通道 标 注方案。 4 项目共有 6 种类型PCB 项目、FPGA 项目、内核项目、嵌入式项目、脚本项 目 和库封装项目(集成库的源) 。 5 AltiumDesigner 允许您通过 Projects 面板访问与项目相关的所有文档。 6 还可在通用的 Workspace(工作空间)中链接相关项目,轻松访问与您公司 目 前正在开发的某种产品相关的所有文档。

48、7 在将如原理图图纸之类的文档添加到项目时,项目文件中将会加入每个文档 的 链接。这些文档可以存储在网络的任何位置,无需与项目文件放置于同一文 件 夹。若这些文档的确存在于项目文件所在目录或子目录之外,则在 Projects 面板中,这些文档图标上会显示小箭头标记。 在制作板子之前先用 Altium_Designer_Winter_09 来画好原理图和 PCB 图, 然后就在连接板子的时候,首先把各个部件焊接好,并连接线路,之后用万用 表检查每项线路的连接状态,然后把程序刷人单片机中,检测运行情况,在硬 件调试完毕后,接入+5V 电源。实物图如下所示: 6 总结 音乐盒设计是一项趣味性很强的设

49、计,能激发我的浓厚兴趣。同时要求我 从程序编程,调试,软件仿真和绘制开始,到硬件的焊接和调试,再到修改程 序,在这期间我了解到了单片机开发的大致流程。 通过这次课程设计,也让我学习到了很多新的东西,这些都让我受益匪浅。 单片机的定时器功能,LED 的流水显示,功能键盘的设计,这些内容都颇为丰 富。有以前学习过的旧知识,也有很多未曾注意到得新知识,这些都曾使我的 设计出错,通过自己的努力,老师指导和同学的帮助,终于克服了一个一个的 困难,把硬件实物顺利做好,把软件调试顺利完成。通过这次课设能够更熟悉 的进行单片机的控制和编程,也从中发现了自己很多的不足,通过学习网上的 资料和书本上的知识才能很好

50、的完成任务,在实践的过程中不断地学习是更高 效的学习方法,这次课程设计也有很多不足的地方,希望在以后的制作过程中 能不断地提高自己,做出更好、更有用的作品。 致谢 如果说没有我的舍友和同学们的帮助与老师的指导,我是无法那么顺利的完成 这次课设的。最后,衷心感谢这次对我的课程设计提供无私帮助的所有老师和 同学! 参考文献 1 李群芳等.单片机微型计算机与接口技术,电子工业出版社,2008.5 2 黄冰等.微机原理及应用,重庆大学出版社 2003.1 3 黄智伟.凌阳单片机课程设计指导M,北京航空航天大学出版社,2006.11. 4 阎石.数字电子技术(第五版) ,高等教育出版社,2006.5 5

51、 王卫东.模拟电子技术基础(第二版),电子工业出版社, 2010.5 6 望延长.电子线路计算机辅助设计(protel 2004), 高等教育出版社, 2006.7 7 谭浩强.C 语言程序设计(第三版)M,北京:清华大学出版社,2005.7 附录 A 系统的总体原理图和系统的总体 PCB 图 附录 B 程序源代码及注释 #include #define uchar unsigned char #define uint unsigned int sbit key1=P32;/定义按 key1 可切换花样 sbit key2=P33;/定义按 key2 可切换歌曲 sbit fm=P23;/蜂鸣

52、器连续的 IO 口,接蜂鸣器的管脚 /sbit fm=P36; uchar code huayang1=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf, 0 xe7,0 xdb,0 xbd,0 x7e,0 xbd,0 xdb,0 xe7,0 xdb,0 xbd,0 x7e; /花样 1 uchar code huayang2=0 x7f,0 xfe,0 xbf,0 xfd,0 xdf,0 xfb,0 xef,0 xf7,0 xef,0 xfb,0 xdf,0 xfd,0 xb

53、f,0 xfe; /花样 2 uchar code huayang3=0 x7f,0 x3f,0 x1f,0 x0f,0 x07,0 x03,0 x01,0 x0,0 x80,0 xc0,0 xe0,0 xf0,0 xf8,0 xfc,0 xfe,0 xff, 0 x00;/花样 3 uchar code huayang4= 0 x3f,0 xcf,0 xf3,0 xfc,0 xfc,0 xf3,0 xcf,0 x3f,0 x3f,0 xf3,0 xcf,0 xfc,0 x3f,0 xf3,0 xcf,0 xfc; /花样 4 uchar code huayang5= 0 xff,0 x00,

54、0 xff,0 x00,0 xf0,0 x0f,0 xf0,0 x0f,0 xf0,0 x0f,0 xf0,0 x0f; /花样 5 uchar count1;/花样标志 uchar count2;/歌曲标志 uchar timeh,timel,i; /-简谱- /编程规则:字节高位是简谱,低位是持续时间,代表多少个十六分音符。 /1-7 代表中央 C 调,8-E 代表高八度,0 代表停顿 /最后的 0 是结束标志 uchar code qnzl= /千年之恋歌曲 1 0 x32,0 x31,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21,0 x32,0 x62, 0

55、x32,0 x31,0 x21,0 x32,0 x82,0 x71,0 x81,0 x71,0 x51,0 x32,0 x22, 0 x32,0 x31,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21,0 x32,0 x62, 0 x32,0 x31,0 x21,0 x32,0 x83,0 x82,0 x71,0 x72,0 x02, 0 x63,0 xA1,0 xA2,0 x62,0 x92,0 x82,0 x52, 0 x31,0 x51,0 x63,0 x51,0 x63,0 x51,0 x63,0 x51,0 x62,0 x82,0 x7C,0 x02, 0 x

56、61,0 x71,0 x82,0 x71,0 x62,0 xA2,0 x71,0 x76, 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0 x31,0 x36, 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0 x53, 0 x42,0 x63,0 x83,0 x83,0 x91,0 x91, 0 x61,0 x71,0 x82,0 x71,0 x62,0 x0A2,0 x71,0 x76, 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0 x31,0 x36, 0 x61,0 x71,0

57、x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0 x53, 0 x42,0 x82,0 x88,0 x02,0 x74,0 x93,0 x89, 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA2,0 x71,0 x76, 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0 x31,0 x36, 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0 x53, 0 x42,0 x63,0 x83,0 x83,0 x91,0 x91, 0 x61,0 x71,0 x82,0 x71,0

58、x62,0 x0A2,0 x71,0 x76, 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0 x31,0 x36, 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0 x53, 0 x42,0 x82,0 x88,0 x02,0 x74,0 x93,0 x89, 0 xff;/结束标志 uchar code jmszl= /寂寞沙洲冷 歌曲二 0 x12,0 x12,0 x22,0 x32,0 x31,0 x22,0 x21,0 x22, 0 x21,0 x31,0 x51,0 x52,0 x31,0 x52,0 x

59、61,0 x15,0 x14, 0 x51,0 x52,0 x31,0 x52,0 x62,0 x13,0 x11,0 x13,0 x32,0 x28, 0 x31,0 x32,0 x31,0 x32,0 x11,0 x21,0 x51,0 x52,0 x51,0 x52, 0 x51,0 x51,0 x31,0 x32,0 x31,0 x32,0 x81,0 x72,0 x63, 0 x62,0 x71,0 x81,0 x72,0 x61,0 x61,0 x52,0 x31,0 x21,0 x32,0 x51,0 x54, 0 x22,0 x12,0 x11,0 x12,0 x11,0 x1

60、2,0 x12,0 x14,0 x26,0 x32,0 x26, 0 x32,0 x61,0 x51,0 x51,0 x31,0 x31,0 x21,0 x31,0 x51,0 x61,0 x51,0 x31,0 x51, 0 x02,0 x32,0 x81,0 x81,0 x81,0 x81,0 x62,0 x52,0 x34, 0 x31,0 x81,0 x81,0 x81,0 x61,0 x91,0 x82, 0 x51,0 x51,0 x51,0 x51,0 x31,0 x61,0 x53, 0 x21,0 x11,0 x21,0 x11,0 x22,0 x11,0 x21,0 x26

温馨提示

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

评论

0/150

提交评论