毕业设计(论文)-基于51单片机的低成本音乐门铃设计.doc_第1页
毕业设计(论文)-基于51单片机的低成本音乐门铃设计.doc_第2页
毕业设计(论文)-基于51单片机的低成本音乐门铃设计.doc_第3页
毕业设计(论文)-基于51单片机的低成本音乐门铃设计.doc_第4页
毕业设计(论文)-基于51单片机的低成本音乐门铃设计.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业设计 论文 本科毕业设计 论文 基于基于 51 单片机的低成本音乐门铃设计单片机的低成本音乐门铃设计 学学 院院 信息工程学院信息工程学院 专专 业业 信息工程信息工程 应用电子技术方向 应用电子技术方向 年级班别年级班别 2007 级 级 4 班 班 学学 号号 学生姓名学生姓名 指导教师指导教师 2011 年年 摘摘 要要 门铃的应用 在现代社会里随处可见 但是出于多方面的考虑 如成本的高低 声音的模式等 需要我们进一步去挖掘 本论文的设计就是围绕低成本音乐门铃进行 研究开发 其中主要运用到了 51 芯片 51 芯片是微型处理器 51 单片机具有优异的 性能价格比 集成度高 体积小 可靠性高 控制功能强 低电压 低功耗等优点 本设计中音乐门铃的基本功能都能由 51 芯片提供 且价格低廉 除芯片基本电路部分 外 还需要声音扩大部分 用到 386DE 芯片 整个系统围绕价格低廉展开 拓展功能 由程序部分实现 先用 c 语言编写实现音乐门铃的程序代码 然后将 c 语言用 keil 软件生成 hex 文 件下载到 stc89c51 集成芯片中 利用不同的频率发出不同的音调 利用延时产生不同 的节拍 通过功率放大器传送到喇叭使其发出美妙的音乐 为进一步降低成本 所以 本设计主要完成部分在于程序 程序分为主体与扩展部分 扩展部分用于规定的歌曲 节拍 音调控制 扩展部分由主程序 音乐曲目以及歌曲数组函数组成 在利用画图 工具完成基本电路设计后 再焊接电路 最后再进入变成部分 关键词关键词 单片机 低成本 程序 音乐 注 本设计 论文 题目来源于自选 Abstract Doorbell application can be seen everywhere in modern society but because of various considerations such as low cost voice pattern we need to dig further The design of this thesis is to focus on research and development cost music doorbell Mainly applied to the 51 chip 51 chip is a microprocessor microcontroller 51 has excellent performance and low cost high integration small size high reliability high control low voltage low power consumption The design of the basic functions of music doorbell can be from 51 chips and low prices In addition to the basic part of the circuit chip but also need to expand the sound section use 386DE chip Expand the system around the low cost and expand the function by the program partially achieved First with the c language code to achieve musical doorbell and then use keil software c language generated hex file to stc89c51 integrated chip the use of different frequencies make different tone the use of delay have different beats transmitted through the power amplifier To the speaker to broadcast the wonderful music To further reduce costs so the design process the main part is completed the program is divided into subject and extension Extension of the provisions of the songs used in rhythm tone control Extension from the main program music tracks and songs composed of an array of functions In the use of drawing tools to complete the basic circuit design and then soldering the circuit and finally re entering into a part Key words Single chip Low cost Program Music 目录目录 1 绪论 1 1 1 题目背景及目的 1 1 2 国内外研究状况 1 1 3 题目研究方法 2 1 4 论文构成及研究内容 2 2 电子音乐门铃系统简介 3 2 1 分析功能要求 3 2 2 系统原理与控制方法 4 2 3 单片机发音概述 4 2 3 1 音调 4 2 3 2 节拍 5 3 系统硬件设计 7 3 1 原理简介 7 3 2 主电路设计 8 3 3 音乐功放电路设计 11 3 3 1 概述 11 3 3 2 特性 12 3 3 3 应用电路 12 3 3 4 芯片使用方法与自激啸叫防治措施 14 4 系统软件设计 16 4 1 软件介绍 16 4 2 主程序设计 18 4 3 播放文件程序设计 20 5 系统调试与实现 22 5 1 硬件调试与实现 22 5 2 软件调试与实现 22 结论 24 参考文献 25 致谢 26 附录 A 主文件程序 27 附录 B 播放文件程序 30 1 绪论绪论 以下是关于此次毕业设计的题目北京以及目的 国内外研究状况 题目研 究方法还有论文构成和研究内容的介绍 1 1 题目背景及目的题目背景及目的 随着时代的发展和进步 控制智能化 仪器小型化 功耗微小化得到广泛 关注 在这些领域中 单片机起到了举足轻重的作用 这就把单片机的应用提 升到重要的地位 单片机应用系统设计就成为新的技术热点 近几年来 随着市场上智能化楼宇的不断升温 门铃系统已作为智能化办 公室和智能化住宅小区的一个重要组成部分 被各商家和用户所接受 人们已 开始习惯用门铃系统代替传统的铁钥匙去管理各通道门 这使门铃系统得到了 飞跃性的发展 随着单片机技术的飞速发展 通过单片机实现人们对物质生活 的满足 这将会日益成为今后的一个重要发展的方向 1 由于电子音乐门铃具有铃声悦耳动听 价格低廉 耗电少等优点 在现代 家具中的应用越来越流行 有了电子音乐门铃 在有客人在拜访时 听到的将 不再是单调的提示等候音 而是不同凡响的流行音乐旋律 特效音等个性化的 电子声乐 1 2 国内外研究状况国内外研究状况 目前在家庭住宅中使用的电子门铃大多数是没用音乐 只有简单的叮咚叮 当的声音 比较单调 其中绝大多数没有按钮提示以及其他功能 要不就是造 价昂贵 诸多缺点 经了解 现在市场上所有销售的门铃主要有以下几种 1 敲击式电子音乐门铃 采用声控触发电路和音乐集成电路组成 通过一个可 调电阻来控制喇叭的灵敏度 一个电容快速充电来维持后续工作 2 不用按钮的音乐门铃 采用红外线发射接收电路和自激多谐振荡电路构成 荡发出的红外线被人遮挡住的一瞬间 扬声器就发出有没动听的音乐 3 带们演示电路的音乐门铃 采用低功耗交流继电器 TLP3502 和高频小功率 管组成 只要按下门铃按钮就会同时打开门灯 使主人可以通过门镜来识别来 客身份 门灯经一段时间的延时后自动熄灭 4 无限遥控门铃 采用脉冲调制发射 及石英晶振稳频技术 实现远距离遥控 1 3 题目研究方法题目研究方法 充分调查研究并且认真深刻学 51 芯片功能以及使用方法 掌握单片机应用 系统的开发流程 硬软件系统设计以及相关工具软件的使用方法 同时对被控 的实际应用对象有更深入的了解 达到学以致用 系统地整合所学专业知识的 目的 达到设计的系统抗干扰能力强 稳定可靠 成本低廉 使用方便 满足 相关的功能要求 掌握单片机的体系结构 工作原理 指令系统与编程技巧以及相关接口技 术 熟悉单片机开发工具并掌握单片机应用系统的设计开发流程 选择并设计 合理的补偿算法与程序结构 掌握相应的抗干扰措施 设计出系统的硬件结构 与接口电路 编写相关软件 1 4 论文构成及研究内容论文构成及研究内容 论文主要有绪论 电子音乐门铃系统简介 分析功能要求 系统原理与控 制方法 系统硬件设计 系统软件设计 系统调试与实现 结论 参考文献 致谢 附录各部分组成 研究内容为开发研究出低成本音乐门铃 本文利用单片机体积小 速度快 功能强 性能可靠 价格低廉等优点 介绍了用 AT89C52 单片机设计电子音乐 门铃的方法 系统实现简单 功能稳定 日后可在此基础上进一步完善 如增 加语音防盗报警功能 有人无人语音门铃切换功能 甚至增加可视对讲功能等 2 电子音乐门铃系统简介电子音乐门铃系统简介 了利用单片机为主控制器设计电子门铃的具体方法 该电子门铃具有普通 门铃的功能 而且还具有一些扩展功能 2 1 分析功能要求分析功能要求 本设计要求是要完成低成本音乐门铃设计 芯片可采用 51 芯片 89C51 是 一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Flash Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS 8 位微处理器 俗称 单片机 2 AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片 机 单片机的可擦除只读存储器可以反复擦除 100 次 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由于将多功能 8 位 CPU 和闪烁存储器组合 在单个芯片中 ATMEL 的 AT89C51 是一种高效微控制器 AT89C2051 是它的 一种精简版本 AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 主要特性 与 MCS 51 兼容 4K 字节可编程闪烁存储器 寿命 1000 写 擦 循环 数据保留时间 10 年 全静态工作 0Hz 24MHz 三级程序存储器锁定 128 8 位内部 RAM 2 可编程 I O 线 两个 16 位定时器 计数器 5 个中断 源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2 因为需要用到播放音乐功能 所以需要用到功放电路 其中采用 LM386 芯 片 LM386 是一种音频集成功放 具有自身功耗低 电压增益可调整 电源电 压范围大 外接元件少和总谐波失真小等优点的功率放大器 广泛应用于录音 机和收音机之中 LM386 是美国国家半导体公司生产的音频功率放大器 主要应用于低电压消 费类产品 为使外围元件最少 电压增益内置为 20 但在 1 脚和 8 脚之间增加一 只外接电阻和电容 便可将电压增益调为任意值 直至 200 输入端以地位参考 同时输出端被自动偏置到电源电压的一半 在 6V 电源电压下 它的静态功耗仅为 24mW 使得 LM386 特别适用于电池供电的场合 2 2 系统原理与控制方法系统原理与控制方法 利用单片机89C52产生乐曲音符 再把乐谱翻译成计算机音乐语言 由单 片机进行信息处理 在经过信号放大 由喇叭放出乐曲声 通过控制定时器的定时时间来产生不同频率的方波 驱动喇叭发出不同音 阶的声音 再利用延迟来控制发音时间的长短 即可控制音调中的节拍 把乐 谱中的音符和相应的节拍变换为定常数和延迟常数 作为数据表格存放在存储 器中 由程序查表得到定时常数和延迟常数 分别用以控制定时分别代表某一 频率的声音 3 以 STC89C52RC 为核心 加上芯片最小系统电路 按钮 外围电源 LM386 功放电路 扬声器电路组成 该系统通过 STC89C52RC 单片机的中断调 用来实现将音符转换为相应的电信号输出到扬声器 组成一首完整的音乐 并 通过按钮实现歌曲的转换 2 3 单片机发音概述单片机发音概述 一般来说 单片机不像其他专业乐器那样能奏出多种音色的声音 即不包 含相应幅度的谐振频率 单片机演奏的音乐基本都是单音频率 因此单片机演 奏音乐比较简单 只需能清楚 音调 和 节拍 两个概念即可 音调表示一个音符唱多高的频率 节拍表示一个音符唱多长的时间 知道了一个音符的频率后 便可以让单片机发出相应频率的振荡信号 从 而产生相应的音符声音 通过单片机的定时器进行定时中断 在中断服务程序 中将单片机上完结 LM386 的 I O 口来回置高电平或者是低电平的 从而让扬声 器发出声音 通过节拍计算出每个音符所需要的时间 采用循环延时的方法来 实现控制一个音符唱多长的时间 从而构成一首完整的音乐 2 3 1 音调 音调主要由声音的频率决定 对一定强度的纯音 音调随频率的升降而升 降 对一定频率的纯音 低频纯音的音调随响度增加而下降 高频纯音的音调 却随响度增加而上升 音调的高低还与发声体的结构有关 因为发声体的结构影响了声音的频率 大体上 2000 赫兹以下的低频纯音的音调随响度的增加而下降 3000 赫兹以 上高频纯音的音调随响度的增加而上升 例如 在音乐中常常把中音 C 上方的 A 音定位标准高音 其频率 F 440HZ 其余音均与其进行比较 F1 和 F2 为两个音符 如果这两个音符的 频率相差一倍时 也即 F2 2 F1 时 则称 F2 比 F1 高一个频程 在音乐中音符 1 与音符 2 音符 2 与音符 3 等等之间正好相差一个倍频 程 在音乐学中称它相差一个八度音 在一个八度内 有 12 个半音 由于人耳 的听觉效果 这 12 个音阶的分度基本上是以对数的关系来划分的 只要知道 12 个音符的音高 也就是其基本频率 就可以根据音符之间的倍频关系得到其 他音符的基本音调频率 3 以标准高音 A 的频率 F 440HZ 其对应的周期为 T 1 F 1 440 2272us 因此需要在单片机 I O 端口输出周期为 T 2272us 的方波脉冲 也就是 t T 2 2272 2 1136us 也就是说 单片机上定时器的中断出发时间为 1136us 如果单片机采用定 时器为工作方式 1 它以振荡器的十二分频信号为计数脉冲 设外接晶振的振 荡器频率为 f 则定时器的预置初始值有以下公式来确定 Temp 65536 50000 CurrentFre 10 12000000 SYSTEM OSC TH Temp 256 TL Temp 256 2 3 2 节拍 在音乐中 时间被分成均等的基本单位 每个单位叫做一个 拍子 或 称一 拍 拍子的时值是以音符的时值来表示的 一拍的时值可以是四分音符 即以 四分音符为一拍 也可以是二分音符 以二分音符为一拍 或八分音符 以八 分音符为一拍 拍子的时值是一个相对的时间概念 比如当乐 曲的规定速度为每分钟 60 拍时 每拍占用的时间是一秒 半拍是二分之一 秒 当规定速度为每分钟 120 拍时 每拍的时间是半秒 半拍就是四分之一 秒 依此类推 拍子的基本时值 确定之后 各种时值的音符就与拍子联系在一起 例如 当以四分音符为一拍 时 一个全音符相当于四拍 一个二分音符相当于两拍 八分音符相当于半拍 十六分音符相当于四分之一拍 如果以八分音符做为 一拍 则全音符相当于八 拍 二分音符是四拍 四分音符是两拍 十六分音 符是半拍 4 对于一拍的发音时间 如果乐曲没有特殊说明 一般来说 一拍大约为 400 450ms 对于计算机编程 节拍码及节拍数如图 2 1 5 所示 图 2 1 节拍码及节拍数 3 系统硬件设计系统硬件设计 系统以AT89C51单片机为核心 加上外围电源时钟电路 LM386功放电路 及扬声器电路组成 Atmel公司的生产的AT89C51单片机是一种低功耗 1氐电压 高性能的8位 单片机 内部除CPU外 还包括128字节RAM 4个8位并行I O口 5个中断优 先级 2层中断嵌套中断 2个16位可编程定时计数器 片内集成4K字节可改变 程序Flash存储器 具有低功耗 速度快 程序擦写方便等优点 完全满足本系 统设计需要 系统通过P3连接功放电路从而驱动扬声器产生电子声乐 P1口连接门铃按 键 3 1 原理简介原理简介 总体设计方案本系统采用 STC89C52 作为系统核心 音乐是由音符组 成 不同的音符是由相应频率的振动产生 产生不同的音频需要有不同固定周 期的脉冲信号 要产生音频林冲 只要算出某一音颉的周期 T 将此周期 T 除 2 即为毕周期的时间 我们利用单片机的内部定时器 TO 使其工作在计数器模式 MODEl 下 韧 始化适当的计数值 THO 及 TLO 以计时这个半周期时间 每当计时时间到后就 将输出脉冲的 P1 0 口反相 然后重复计时此半周期时间 再对 P1 0 口反相 就可在单片机 Pl 0 引脚上得到此频率的脉冲 P1 0 引脚 脉冲接 LM386 作音频功放 然后辅出到扬声器 从而发出美妙的乐音 6 通过音频功放电路 把信号输出到扬声器 播出美妙的音乐 只要一按下 按钮 就会有音乐播出 等一首歌播放完毕后 当再次按下按钮 就会播放下 一首音乐 如此循环 知道再次出现第一首音乐为止 本系统可以奏出三首不 同旋律的歌曲 为绘制此次电路图 采用 DXP2004 软件 Protel DXP2004 是 Altium 公司 于 2004 年推出的最新版本的电路设计 软件 该软件能实现从概念设计 顶 层设计直到输出生产数据以及这之间的所有分析验证和设计数据的管理 当 前比较流行的 Protel 98 Protel 99 SE 就是它的前期版本 Protel DXP 2004 已不是单纯的 PCB 印制电路板 设计工具 而是由 多个模块组成的系统工具 分别是SCH 原理图 设计 SCH 原理图 仿真 PCB 印制电路板 设计 Auto Router 自动布线器 和 FPGA 设 计等 覆盖了以 PCB 为核心的整个物理设计 该软件将 项目管理方式 原 理图和 PCB 图的双向同步技术 多通道设计 拓朴自动布线以及电路仿真 等技术结合在一起 为电路设计提供了强大的支持 与较早的版本 Protel99 相比 Protel DXP 2004 不仅在外观上显得更 加豪华 人性化 而且极大地强化了电路设计的同步化 同时整合了 VHDL 和 FPGA 设计系统 其功能大大加强了 7 此电子音乐门铃的电路设计方案如图 3 1 所示 图 3 1 PCB 绘制电路图 3 2 主电路设计主电路设计 AT89C5l 单片机简介 单片机发展至今已有 20 余年的历史 形成了约 50 个 系列 400 余种机型 设计者不可能对每一种芯片都熟悉 因此在选择芯片时切 勿追赶时髦 使用从未接触过的芯片 单片机控制系统的核心器件是单片机芯片 它提供的功能和资源对整个应 用系统所需要的支持电路 接口硬件设计以及软件程序设计起着关键的作用 ATMEL 公司以 E2PROM 技术和 Intel 公司的 80C31 单片机核心技术交换 从 而取得 80C31 核的使用权 ATMEL 公司把自身的优势 即先进的 Flash 技术和 80C31 核相结合 从而生产出 Flsah 单片机 AT89C51 系列 8 ATMEL89 系列单片机具有下列优点 内部含 Flsah 存储器 在系统开发过 程中 可以十分容易进行程序的修改 大大缩短了系统的开发周期 9 同时 在系统工作过程中 能有效地保存一些数据信息 即使外界电源损 坏也不影响到信息的保存 输出引脚和指令系统与 80C51 兼容用 89 系列单片 机取代 80C51 时 可以直接进行代换 静态时钟方式 89 系列单片机采用静态 时钟方式 所以可以节省电能 这对降低产品的功耗十分有利 错误编程亦无 废品产生错误编程之后仍可以重新编程 直到正确为止 故不存在废品 可进 行反复系统试验到最优 而且随用户的需要和发展 还可以修改 使系统不断 适应用户的最新要求 13 ATMEL9 系列单片机是以 80C31 核构成的 它和 8051 系列单片机是兼容 的系列 故对于 8051 的用户来说 用 ATMEL 公司的 89 系列机进行取代 8051 的系统设计 是轻而易举的事 10 AT89C51 是一种低功耗 低电压 高性能的 8 位单片机 其输出引脚和指 令系统都与 MCS 一 51 兼容 双列直插封装图如 3 2 14 所示 它具有下列主要 功能 图 3 2 51 芯片引脚图 其最小系统电路如图 3 3 所示 图 3 3 最小系统电路 其最小系统实物电路如图 3 4 所示 图 3 4 最小系统实物电路图 3 3 音乐功放电路设计音乐功放电路设计 LM386 引脚图 特性及典型功放电路和芯片使用方法与自激啸叫防治措施介 绍 3 3 1 概述 LM386 是美国国家半导体公司生产的音频功率放大 器 主要应用于低电压 消费类产品 为使外围元件最少 电压增益内置为 20 但在 1 脚和 8 脚之间增加 一只外接电阻和电容 便可将电压增益调为任意值 直至 200 输入端以地位参考 同 时输出端被自动偏置到电源电压的一半 在 6V 电源电压下 它的静态功耗仅为 24mW 使得 LM386 特别适用于电池供电的场合 LM386 的封装形式有塑封 8 引线双列直插式和贴片式 其封装图如 3 5 所 示 图 3 5 LM386 引脚图 3 3 2 特性 静态功耗低 约为 4mA 可用于电池供电 工作电压范围宽 4 12V or 5 18V 外围元件少 电压增益可调 20 200 低失真度 LM386 电源电压 4 12V 音频功率 0 5w LM386 音响功放是由 NSC 制造 的 它的电源电压范围非常宽 最高可使用到 15V 消耗静态电流为 4mA 当 电源电压为 12V 时 在 8 欧姆的负载情况下 可提供几百 mW 的功率 它的典 型输入阻抗为 50K 3 3 3 应用电路 如图 3 6 所示 图 3 6 功放电路图 焊接功放电路实物图如 3 7 所示 图 3 7 功放电路实物图 喇叭实物图如 3 8 所示 图 3 8 喇叭实物图 3 3 4 芯片使用方法与自激啸叫防治措施 LM386 是电子产品和家庭业余制作中广泛使用的音频功率放大 Ic 其典型 应用电路如图 3 9 所示 在绝大多数场合或单独使用的情况下 LM386 比较正 常 但在和其它电路搭配之后 有可能产生自激和灵敏度降低等现象 就该 Ic 的使用方法和自激啸叫的防治措施介绍如下 图 3 9 典型应用电路 1 入信号过强引起的自激啸叫 对于由于输入信号过强引起的啸叫 可在 LM386第 脚之间加阻容网络 批量应用时 R的阻值可由实验决定 或 将R代换为微调电位器w 若信号仍然过强 可将LM386第 脚悬空 2 高频自激 防高频自激电路原理如图 3 10 所示 对高频自激引起的啸叫可 在信号输入端与地之间接一只 47oo o F 的瓷片电容 在第 脚与地之间 接一只 l00 470opF 瓷片电容 作单端输人时 闲置的输入端不要悬空而要接地 3 低频自激 对于低频自激引起的啸叫可试在输入端与地之间接一只 6 8 22kn 电阻 将第 脚的滤波电容增大到 1000 F 在制作印制板时 i M386 尽量靠近电源输出端 4 在使用其它品牌产品 如 jI386 l A386 等 时 有的 IC 会对高音频的灵敏度 有影响 可在其第 脚与地之间接一只 0 1 F 瓷片电容 在第 脚间 注 不同于第 脚接地 接一保 0 1 F 瓷片电容 11 图 3 10 防高频自激电路原理图 4 系统软件设计系统软件设计 本设计需要用到的软件都是大众一般使用的软件 具有方便简易快捷的优 点 程序用 C 语言编程 也是编程的主流语言 方便日后修改与调试 4 1 软件介绍软件介绍 本系统程序开发需要用到 keil STC ISP V35 软件以及郭天祥 51 开发板 以下是关于 keil 和 STC ISP 的简介 现代电子系统的基本核心是嵌人式计算机系统 而单片机是最典型 最广 泛 最普及的嵌入式系统 学好单片机 灵活应用 Keil 软件在电子 科技领域 灵活应用单片机技术 将是带动国家科技发展 增强国家综合实力的必经之路 Keil 软件是目前最流行开发 MCS 51 系列单片机的软件 这从近年来各仿 真机厂商纷纷宣布全面支持 Keil 即可看出 Keil 提供了包括 C 编译器 宏汇编 连接器 库管理和一个功能强大的仿真调试器等在内的完整开发方案 通过一 个集成开发环境 uVision 将这些部分组合在一起 运行 Keil 软件需要 Pentium 或以上的 CPU 16MB 或更多 RAM 20M 以上空闲的硬盘空间 WIN98 NT WIN2000 WINXP 等操作系统 掌握 Keil 软件的使用对于使用 51 系列单片机是十分必要的 即使不使用 c 语言而仅用汇编语言编程 其方便易用的集成环境 强大的软件仿真调试工 具也会令单片机开发事半功倍 12 STC ISP 是单片机下载编程烧录软件 是针对 STC 系列单片机而设计的 可下载 STC89 系列 12C2052 系列和 12C5410 等系列的 STC 单片机 使用简 便 现已被广泛使用 程序控制流程图如图 4 1 所示 准备 调用初始化程序 读 P3 口 判断有无按 键按下 调用初始化程序 调用延时子程序 读 P3 口 判断有无按 键按下 调用初始化程序 调用延时子程序 调用延时子程序 调用播放子程序 调用播放子程序 读 P3 口 判断有无按 键按下 调用初始化程序 读 P3 口 判断有无按 键按下 调用初始化程序 读 P3 口 判断有无按 键按下 调用初始化程序 读 P3 口 判断有无按 键按下 调用初始化程序 调用播放子程序 图 4 1 程序控制流程图 4 2 主程序设计主程序设计 本系统首先建立音乐 把音乐的音符找出 建立各个音符的常数表 如下 图 4 2 图 4 2 音符常数表 编写程序时 我们把表建立在一个数组内 每个发音符使用一个字节 字 节高四位 简谱码 代表音符的高低 低四位 节拍码 代表音符的节拍 如 果一拍为 0 4 秒 1 4 秒就是 0 1 秒 只要设定延时时间就可以求得节拍的时间 假设 1 4 拍为 1 DELAY 则 1 拍应该为 4 DELAY 以此类推 所以只要求得 1 4 拍的 DELAY 时间 其余的节拍就是它的倍数 1 4 拍的延时时间在此我们 设为 125 毫秒 主文件程序由主程序 延时程序以及歌曲程序组成 主程序首先对所有端口进行初始化操作 接着进入不断循环部分 直到按 键按下 进入防止抖动程序 如果不是抖动 则进入音乐播放程序 直到音乐 播放完毕 再次进入等待按键按下部分 直到第二次按键按下 再次进入防止 抖动程序 如果不是抖动 则再次进入音乐播放程序 直到音乐播放完毕 直 到第三次按键按下 最后一次次进入防止抖动程序 如果不是抖动 则最后一 次次进入音乐播放程序 直到音乐播放完毕 回到循环起点 等待第四次按键 按下部分 如此类推 程序如下 main InitialSound while 1 if key 0 Delay1ms 10 if key 0 Play Music Girl 0 3 360 do while key 1 if key 0 Delay1ms 10 if key 0 Play Music Same 0 3 360 do while key 1 if key 0 Delay1ms 10 if key 0 Play Music Two 0 3 360 延时程序部分 为防止按键抖动 对门铃进行有效保护 设计了防止抖动 延时程序 程序如下 void Delay1ms unsigned int count unsigned int i j for i 0 i count i for j 0 j 120 j 4 3 播放文件程序设计播放文件程序设计 播放文件程序由初始化程序函数 音符发生中断函数 播放函数组成 初始化函数是对芯片端口进行初始化操作 以确定中断模式以及端口初始 值 程序如下 void InitialSound void BeepIO 0 Sound Temp TH1 65535 1 1200 SYSTEM OSC 256 计算 TL1 应 装入的初值 10ms 的初装值 Sound Temp TL1 65535 1 1200 SYSTEM OSC 256 计算 TH1 应 装入的初值 TH1 Sound Temp TH1 TL1 Sound Temp TL1 TMOD 0 x11 ET0 1 ET1 0 TR0 0 TR1 0 EA 1 音符发生中断函数用于接收到中断信号时 进行的声音播放操作 程序如 下 void BeepTimer0 void interrupt 1 音符发生中断 BeepIO BeepIO TH0 Sound Temp TH0 TL0 Sound Temp TL0 播放函数用于主文件程序中调用音符的音调以及节拍 从而产生中断 播放音乐 其部分程序如下 while Point 2 低音 if SM 3 CurrentFre 2 高音 Temp T 65536 50000 CurrentFre 10 12000000 SYSTEM OSC 计算计数器初值 Sound Temp TH0 Temp T 256 Sound Temp TL0 Temp T 256 TH0 Sound Temp TH0 TL0 Sound Temp TL0 12 加 12 是对中断延时的补偿 5 系统调试与实现系统调试与实现 这是本设计较为困难的一部分 需要经过反反复复的调试 才能达到理想 中的效果 以下将分文硬件与软件两部分介绍此次调试的过程 以及调试过程 中遇到的困难和解决办法 5 1 硬件调试与实现硬件调试与实现 考虑到本设计以低成本为主 所以一切原件以便宜为上 本设计开发工具 需要用到一个电烙铁 一个铁架 一卷焊锡 一盒松脂 1 块 6X7CM 开发板 1 块 6X10CM 开发板 一块 STC89C52 芯片以及一块芯片底座 一个 USB 接口 一个电源开关 1 个 10uf 电容 2 个 30pf 电容 1 个 12Mhz 晶振 一个抖动开 关 1 个 10k 电阻 一个 10k 滑动变阻器 一块 lm386 芯片及其底座 1 个 220uf 电容 1 个 0 05uf 电容 一个 8 欧姆 5 瓦的扬声器 以及杜邦线若干 插 排若干 为方便调试 把系统焊接分为两个部分 其一是 51 单片机最小系统部分 其二是声音功率放大播放部分 这样的焊接不仅有利于系统的调试 还有利于 日后对于其他系统的开发 直接利用最小系统以及杜邦线引出端口即可 由于本人焊接技术不到位 常常出现短路问题 在第一次焊接完成后 多 出出现短路 最后用万用表蜂鸣档位逐点测试 在重新焊接 其中还试过由于 本人疏忽 直接把芯片焊接 没通过芯片底座 在开发板上 导致芯片烧坏 不得将其更换 开始时选用的音乐功放电路 也是基于 LM386 芯片 采用的是 较为复杂的功放电路 但是焊接后 经过一系列调试 反复查找了失败原因 还是没有找到解决办法 但是后来突然想到 这次的设计是基于低成本的基础 一切得从简 所以选择了就只有一个 10k 滑动变阻器 一块 lm386 芯片及其底 座 1 个 220uf 电容 1 个 0 05uf 电容所组成的功放电路 再次调试后 放出了 声音 但是声音的音调和频率都与理想中有所差距 应该是由于喇叭的自身额 定功率与质量有关 需要调整的话应该是在电源供电以及喇叭的质量方面修正 但这是基于低成本的设计 只要喇叭有声音 效果一般就可了 5 2 软件调试与实现软件调试与实现 程序主要取自一个音乐播放程序 但没有功率放大部分 更没有多音乐轮 流播放部分 按钮部分 在此基础之上 首先是对其进行一定的修改 在保留原来音乐播放程序的 前提下 进行主程序的设计 首先对所有端口进行初始化操作 接着进入不断 循环部分 直到按键按下 进入防止抖动程序 如果不是抖动 则进入音乐播 放程序 直到音乐播放完毕 再次进入等待按键按下部分 直到第二次按键按 下 再次进入防止抖动程序 如果不是抖动 则再次进入音乐播放程序 直到 音乐播放完毕 直到第三次按键按下 最后一次次进入防止抖动程序 如果不 是抖动 则最后一次次进入音乐播放程序 直到音乐播放完毕 回到循环起点 等待第四次按键按下部分 如此类推 在 keil 软件经不断改进后 生成 hex 文件 再用郭天祥 51 开发板烧入程序 并通过 stc isp 烧录软件烧录后 最终得以完成 再把烧录好的 STC89C52 芯片摆放到已经焊接好的电路板上 按下按钮 听到第一首音乐 在第一首音乐播放完毕后 再按下按钮 听到第二首音乐 在第二首音乐播放完毕后 再次按下按钮 听到第三首音乐 在第三首音乐播 放完毕后 再按下按钮 听到第一首音乐 如此类推 程序在开始之初是用简单的中断延迟来实现 对于编歌曲来讲需要很大的 工作量 在网上查找大量的资料之后 找到了一个做音乐播放器的程序 他也 是基于中断延迟来实现播放功能 但是他对于歌曲编辑的灵活性 有很大的发 展空间 所以我就采用了他的部分程序 并且利用一个名为 MusicEncode 的软件 可以把基本上所有的音符都转化 为 16 位的二进制编码 大大提高了编程效率 其次是主程序的编辑 原来的音乐播放程序只是假单的等待按钮按下后 直接播放一首完整的歌曲后紧接着另外一首完整的歌曲歌 但是这次的设计是 要制作一个门铃 而不是音乐播放 考虑到设计需要 我们要实现的功能是按 下按钮 播放一小段音乐 停止 等待下一个按钮 再播放 不断循环 所以 主要考虑到的是如何在播放完一首歌曲后 进入在此等待状态 因 此 运用了 C 里面 DO WHILE 语句 一直等待按钮的按下 对于该段程序中的主要保护手段 就是按钮防治抖动部分 因此在等待按 钮按下后 采用一小段的延迟程序 再次判定是否有按钮的按下 在进入播放 程序 结结 论论 这次毕业设计 是我大学四年来学到知识的一次综合运用 对于此次工作 首要考虑到的是低成本的概念 音乐门铃在市面上一早就存在 想要继续得以 发展 必须在成本上下功夫 这次设计的主要亮点是功放电路采用最简单的电 路设计 只有一块芯片跟两个电阻以及两个电容 其次是程序方面的设计 主 要解决的问题是如何在一个按钮的基础上 实现歌曲的轮换以及播放 这是此 次设计的难点之一 另外 焊接是此次设计所用时间最多的一部分 因为本人 的焊接技术不到位 焊接能力不高 所以造成焊接的屡次失败 不过我在失败 中吸取经验 在完成焊接后 焊接技术得到很大的提高 毕业设计还是本科学习阶段一次非常难得的理论与实际相结合的机会 通 过这次比较完整单片机设计 我摆脱了单纯的理论知识学习状态 和实际设计 的结合锻炼了我的综合运用所学的专业基础知识 解决实际工程问题的能力 同时也提高我查阅文献资料 设计手册 设计规范以及电脑制图等其他专业能 力水平 而且通过对整体的掌控 对局部的取舍 以及对细节的斟酌处理 都 使我的能力得到了锻炼 经验得到了丰富 并且意志品质力 抗压能力及耐力 也都得到了不同程度的提升 这是我们都希望看到的也正是我们进行毕业设计 的目的所在 总体来讲 这次设计让我对大学四年来的知识做了一个充分的整合 对其 了解深度再次上了一个层次 希望在日后工作中能不断锻炼 提升自我 参考文献参考文献 1 朱光中 黄云龙 范一鸣 AT89C51 单片机在可视对讲门铃中的应用 J 机 电一体化 2002 第 6 期 66 68 2 余永权 nash 单片机原理及应用 D 北京 电子工业出版社 1997 3 用单片机实现电子音乐门铃 J 无线电 2007 第 534 期 38 39 4 刘茂荣 画说乐理 二十 音程 J 琴童 2010 第 8 期 18 19 5 苏成富 多功能音乐门铃 J 电机电器技术 2000 第 3 期 20 21 6 魏俊民 机电一体化系统设计 D 北京 中国纺织出版社 l998 7 侯文芳 Protel99SE 在电子技术实验中的应用 J 科技信息 2011 第 2 期 238 238 8 王毅 单片机器件应用手册 D 北京 人民邮电出版社 1994 9 吴宁 80X86 Pentium 微型计算机原理及应用 M 北京 电子工业出版 社 2004 1 249 10 肖金球 单片机原理与接口技术 M 北京 清华大学出版社 2004 1 323 11 志宽 LM386 功放 IC 的使用方法 J 家庭电子 2003 第 8 期 43 43 12 佩 苗文斌 李森 浅谈 KeilC 的常用技巧 J 企业技术开发 2011 第 1 期 88 88 13 AT89C51 DATA SHEEP Philips Semiconductors 1999 dec 14 HeZuxi Colour televsion elements and maintain M Beijing The electron industry book concern 1979 15 18 致致 谢谢 在此论文撰写过程中 要特别感谢我的导师李优新老师的导与督促 同时 感谢她的谅解与包容 没有李优新老师的帮助也就没有今天的这篇论文 求学 历程是艰苦的 但又是快乐的 感谢我的班主任姚老师 谢谢他在这四年中为 我们全班所做的一切 他不求回报 无私奉献的精神很让我感动 再次向他表 示由衷的感谢 在这四年的学期中结识的各位生活和学习上的挚友让我得到了 人生最大的一笔财富 在此 也对他们表示衷心感谢 谢谢我的父母 没有他们辛勤的付出也就没有我的今天 在这一刻 将最 崇高的敬意献给你们 本文参考了大量的文献资料 在此 向各学术界的前辈们致敬 附录附录 A 主文件程序主文件程序 include include SoundPlay h void Delay1ms unsigned int count unsigned int i j for i 0 i count i for j 0 j 120 j Music 生日快乐 unsigned char code Music Girl 0 x0F 0 x03 0 x0F 0 x03 0 x10 0 x02 0 x0F 0 x02 0 x15 0 x02 0 x11 0 x01 0 x0F 0 x03 0 x0F 0 x03 0 x10 0 x02 0 x0F 0 x02 0 x16 0 x02 0 x15 0 x01 0 x0F 0 x02 0 x0F 0 x02 0 x0F 0 x03 0 x0F 0 x03 0 x19 0 x02 0 x17 0 x02 0 x15 0 x02 0 x11 0 x0C 0 x10 0 x16 0 x18 0 x03 0 x18 0 x03 0 x17 0 x02 0 x15 0 x02 0 x16 0 x02 0 x15 0 x16 0 x00 0 x00 小星星 unsigned char code Music Same 0 x15 0 x02 0 x15 0 x02 0 x19 0 x02 0 x19 0 x02 0 x1A 0 x02 0 x1A 0 x02 0 x19 0 x01 0 x18 0 x02 0 x18 0 x02 0 x17 0 x02 0 x17 0 x02 0 x16 0 x02 0 x16 0 x02 0 x15 0 x01 0 x19 0 x02 0 x19 0 x02 0 x18 0 x02 0 x18 0 x02 0 x17 0 x02 0 x17 0 x02 0 x16 0 x01 0 x19 0 x02 0 x19 0 x02 0 x18 0 x02 0 x18 0 x02 0 x17 0 x02 0 x17 0 x02 0 x16 0 x01 0 x15 0 x02 0 x15 0 x02 0 x19 0 x02 0 x19 0 x02 0 x1A 0 x02 0 x1A 0 x02 0 x19 0 x01 0 x18 0 x02 0 x18 0 x02 0 x17 0 x02 0 x17 0 x02 0 x16 0 x02 0 x16 0 x02 0 x15 0 x01 0 x00 0 x00 有只雀仔跌落水 unsigned char code Music Two 0 x19 0 x02 0 x1A 0 x03 0 x19 0 x03 0 x18 0 x02 0 x17 0 x02 0 x18 0 x02 0 x19 0 x00 0 x16 0 x02 0 x17 0 x02 0 x18 0 x01 0 x17 0 x02 0 x18 0 x02 0 x19 0 x01 0 x19 0 x02 0 x1A 0 x03 0 x19 0 x03 0 x18 0 x02 0 x17 0 x02 0 x18 0 x02 0 x19 0 x00 0 x16 0 x01 0 x19 0 x01 0 x17 0 x02 0 x15 0 x00 0 x00 0 x00 main InitialSound while 1 if key 0 Delay1ms 10 if key 0 Play Music Girl 0 3 360 do while key 1 if key 0 Delay1ms 10 if key 0 Play Music Same 0 3 360 do while key 1 if key 0 Delay1ms 10 if key 0 Play Music Two 0 3 360 附录附录 B 播放文件程序播放文件程序 SOUND PLAY FOR 51MCU COPYRIGHT c 2005 BY JJJ ALL RIGHTS RESERVED File Name SoundPlay h Author Jiang Jian Jun Created 2005 5 16 Modified NO Revision 1 0 曲谱存贮格式 unsigned char code MusicName 音高 音长 音高 音长 0 0 末尾 0 0 表示结束 Important 音高由三位数字组成 个位是表示 1 7 这七个音符 十位是表示音符所在的音区 1 低音 2 中音 3 高音 百位表示这个音符是否要升半音 0 不升 1 升半音 音长最多由三位数字组成

温馨提示

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

评论

0/150

提交评论