数字音乐盒硬件设计.doc_第1页
数字音乐盒硬件设计.doc_第2页
数字音乐盒硬件设计.doc_第3页
数字音乐盒硬件设计.doc_第4页
数字音乐盒硬件设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

0 CHANGZHOU INSTITUTE OF TECHNOLOGY 设设 计计 说说 明明 书书 项目名称项目名称 数字音乐盒 二级学院 电子信息与电气工程学院 专 业 电气工程及其自动化 班级 11 电一 学生姓名 夏蕊 学号 11020434 指导教师 蔡纪鹤 职称 讲师 起止时间 2013 年 12 月 30 日 20 13 年 1 月 9 日 1 目 录 1 1 简介简介 1 1 课题意义 1 2 设计方案 1 3 研究内容 2 2 总体方案设计总体方案设计 2 1 系统硬件组成图 2 2 主控机模块 3 3 最小系统最小系统 3 1 主控芯片介绍 3 2 时钟电路 3 3 复位电路 3 4 电源 4 输入部分输入部分 4 1 按键模块 5 5 输出部分输出部分 5 1 显示模块 5 2 放声模块 5 3 音乐机模块 5 4 LM386 功放模块 6 6 实物制作与仿真实物制作与仿真 6 1 实物制作 6 2 仿真 7 7 节拍确定节拍确定 8 8 总结总结 参考文献参考文献 附录 附录 附录一 元器件清单 附录二 原理图 附录三 程序清单 附录四 实物图 2 1 简介 1 1 课题意义 音乐盒的起源 可追溯至中世纪欧洲文艺复兴时期 当时为使教会的钟塔报时 而将大小 的钟表装上机械装置 被称为 可发出声音的组钟 音乐盒有着 300 多年的发展历史 是人类 文明发展的历史见证 传统的音乐盒多是机械音乐盒 其工作原理是通过齿轮带动一个带有铁钉的铁桶转动 铁桶 上的铁钉撞击铁片制成的琴键 从而发出声音 但是 机械式的音乐盒体积比较大 比较笨重 且发音单调 水 灰尘等外在因素 容易使内部金属发音条变形 从而造成发音跑调 另外 机械音乐盒放音时为了让音色稳定 必须放平不能动摇 而且价格昂贵 不能实现大批量生产 本文设计的音乐盒 是基于单片机设计制作的电子式音乐盒 与传统的机械式音乐盒相比 更小巧 音质更优美且能演奏和弦音乐 电子式音乐盒动力来源是电池 制作工艺简单 可进 行批量生产 所以价格便宜 基于单片机制作的电子式音乐盒 控制功能强大 可根据需要选 歌 使用方便 根据存储容量的大小 可以尽可能多的存储歌曲 另外 可以设计彩灯外观效 果 使音乐盒的功能更加丰富 1 2 设计方案 设计一个单片机的音乐盒 利用按键切换演奏出不同的乐曲 扬声器发出乐曲 数码管显 示当前为第几首歌曲 使用五个按键 两个用来切换歌曲 一个为电路的复位按键 两个用来 启动和停止 1 3 研究内容 1 电路的工作模式 演奏歌曲 数码管显示当前的歌曲 2 按下按键启动键进入演奏音乐模式 按上一曲下一曲来切换歌曲 共三首歌曲 3 按下按键停止键进入播放音乐停止数码管灭显 2 总体方案设计 2 1 单片机音乐盒系统组成框图 图 1 单片机音乐盒硬件方案 3 1 利用按键切换演奏出不同的乐曲 扬声器发出乐曲 使用 5 个按键 两个用来切换歌曲 一个用来启动 一个用来停止 另一个是复位 2 用 protel 99se 设计电路图等 3 歌曲可以自己随意的写进音乐盒中 4 由于歌曲的内存比较大 单片机内存小 将两块单片机一同使用 两者可以通讯 5 数码管显示当前播放的是哪一首歌曲 经过反复论证 最终确定了如下方案 1 主控制器 选用两片 51 内核的单片机作为主控制器 主控机 负责显示状态 检测按键以及向下位机传输数据 音乐机 在接受到上位机的引号后产生一定频率方波从而发声 2 外设装置 这部分是由按键 数码管 扬声器等组成 2 2 系统硬件组成图 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 GND 20 Vcc 40 一一一 89C52RC EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 GND 20 Vcc 40 一一一 89C52RC P33 P34 P36 P37 10uf R1 10k S1 一一一一 一一 一一 一一一 一一一 VCC 10uf R5 10k VCC 30p 30p 11 0592MHZ 30p 30p 11 0592MHZ Vcc P27 P26 P25 BEE P P36 P37 P33 P34 IN 3 IN 2 GND 4 V OUT 5 GAIN 1 GAIN 8 BYPA SS 7 Vcc 6 386一一 LM386 R2 1k R3 10k BEE P 10uf 100uf 104 473 R4 10 Vcc BEE P a bf c g d e 1 2 3 4 5 6 7 a b c d e f g 8 dp dp COM SHUMAG UAN P25 P26 P27 VCC 10k 10uf S1 1 2 一一一一 VCC 图2 设计原理图 3 2 主控机模块 作为此次设计的核心硬件 主控机的作用几乎囊括了除音乐播放外的其他所有功能 功能一 控制显示模块 功能二 控制按键模块 功能三 向下位机传输控制信号 4 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 GND 20 Vcc 40 一一一 89C52RC P33 P34 P36 P37 10uf R1 10k S1 一一一一 一一 一一 一一一 一一一 VCC 30p 30p 11 0592MHZ Vcc P36 P37 P33 P34 a bf c g d e 1 2 3 4 5 6 7 a b c d e f g 8 dp dp COM SHUMAGUAN P25 P26 P27 S1 1 2 一一一一 VCC 图 3 主控机模块 3 最小系统 3 1 主控芯片介绍 STC89C51 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编程 Flash 存储器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 STC89C51 为众多嵌入式控制应 用系统提供高灵活 超有效的解决方案 具有以下标准功能 8k 字节 Flash 512 字节 RAM 32 位 I O 口线 看门狗定时器 内置 4KB EEPROM MAX810 复位电路 三个 16 位 定时器 计 数器 一个 6 向量 2 级中断结构 全双工串行口 另外 STC89X51 可降至 0Hz 静态逻辑操作 支持 2 种软件可选择节电模式 空闲模式下 CPU 停止工作 允许 RAM 定时器 计数器 串口 中断继续工作 掉电保护方式下 RAM 内容被保存 振荡器被冻结 单片机一切工作停止 直到 下一个中断或硬件复位为止 最高运作频率 35Mhz 6T 12T 可选 EA VP 31 X1 19 X2 18 RESET 9 P37 RD 17 P36WR 16 P32 INT0 12 P33 INT1 13 P34 T 0 14 P35 T 1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 P31 T XD 11 P30 RX D 10 GND 20 VCC 40 U1 ST C89C52 图 4 STC89C51 单片机引脚图 5 单片机是美国 STC 公司最新推出的一种新型 51 内核的单片机 片内含有 Flash 程序存储器 SRAM UART SPI PWM 等模块 一 STC89C51 主要功能 性能参数如下 1 内置标准 51 内核 机器周期 增强型为 6 时钟 普通型为 12 时钟 2 工作频率范围 0 40MHZ 相当于普通 8051 的 0 80MHZ 3 STC89C51RC 对应 Flash 空间 4KB 4 内部存储器 RAM 512B 5 定时器 计数器 3 个 16 位 6 通用异步通信口 UART 1 个 7 中断源 8 个 8 有 ISP 在系统可编程 IAP 在应用可编程 无需专用编程器 仿真器 9 通用 I O 口 32 36 个 10 工作电压 3 8 5 5V 11 外形封装 40 脚 PDIP 44 脚 PLCC 和 PQFP 等 二 STC89C51 单片机的引脚说明 VCC 供电电压 GND 接地 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 当 P1 口的管脚第 一次写 1 时 被定义为高阻输入 P0 能够用于外部程序数据存储器 它可以被定义为数据 地址 的第八位 在 FIASH 编程时 P0 口作为原码输入口 当 FIASH 进行校验时 P0 输出原码 此 时 P0 外部必须被拉高 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收输出 4TTL 门 电流 P1 口管脚写入 1 后 被内部上拉为高 可用作输入 P1 口被外部下拉为低电平时 将输 出电流 这是由于内部上拉的缘故 在 FLASH 编程和校验时 P1 口作为第八位地址接收 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电阻拉高 且作为输入 并因此作为输入时 P2 口的管脚被外部拉低 将输出电流 这是由于内部上拉的缘故 P2 口当用于外部程序存储器 或 16 位地址外部数据存储器进行存取时 P2 口输出地址的高八位 在给出地址 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 外部输入 P3 5 T1 记时器 1 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收一些控制信号 I O 口作为输入口时有两种工作方式 即所谓的读端口与读引脚 读端口时实际上并不从外 部读入数据 而是把端口锁存器的内容读入到内部总线 经过某种运算或变换后再写回到端口 锁存器 只有读端口时才真正地把外部的数据读入到内部总线 上面图中的两个三角形表示的 就是输入缓冲器 CPU 将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作 这是 由硬件自动完成的 不需要我们操心 1 然后再实行读引脚操作 否则就可能读入出错 为什么 看上面的图 如果不对端口置 1 端口锁存器原来的状态有可能为 0Q 端为 0Q 为 1 加到场效应管 栅极的信号为 1 该场效应管就导通对地呈现低阻抗 此时即使引脚上输入的信号为 1 也会因 端口的低阻抗而使信号变低使得外加的 1 信号读入后不一定是 1 若先执行置 1 操作 则可以使 场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入 由于在输入操作时还必须附加 6 一个准备动作 所以这类 I O 口被称为准双向口 89C51 的 P0 P1 P2 P3 口作为输入时都是准双 向口 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周期输出正脉 冲信号 此频率为振荡器频率的 1 6 因此它可用作对外部输出的脉冲或用于定时目的 然而要 注意的是 每当用作外部数据存储器时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被略微拉高 如果微处理器在外部执行状态 ALE 禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否 有内部程序存储器 注意加密方式 1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部程序存储器 在 FLASH 编程期间 此引脚也用于施加 12V 编程电源 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 3 2 时钟电路 89C51 单片机的时钟信号通常有两种方式产生 一是内部时钟方式 二是外部时钟方式 内 部时钟方式如图 3 所示 在 89S51 单片机内部有一振荡电路 只要在单片机的 XTAL1 18 和 XTAL2 19 引脚外接石英晶体 简称晶振 就构成了自激振荡器并在单片机内部产生时钟脉 冲信号 图中电容 C1 和 C2 的作用是稳定频率和快速起振 电容值在 5 30pF 典型值为 30pF 晶振 CYS 的振荡频率范围在 1 2 12MHz 间选择 典型值为 12MHz 和 6MHz Y1 11 0592MHz C2 30pF C3 30pF 18 19 图5 89c51内部时钟电路 3 3 复位电路 当在 89C51 单片机的 RST 引脚引入高电平并保持 2 个机器周期时 单片机内部就执行复位 操作 若该引脚持续保持高电平 单片机就处于循环复位状态 复位电路通常采用上电自动复位和按钮复位两种方式 最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的 只要 Vcc 的上升时间不超过 1ms 就可以实现自动上电复位 除了上电复位外 有时还需要按键手动复位 本设计就是用的按键手动复位 按键手动复 位有电平方式和脉冲方式两种 其中电平复位是通过 RST 9 端与电源 Vcc 接通而实现的 按 键手动复位电路见图 4 时钟频率用 11 0592MHZ 时 C 取 10uF R 取 10k R1 10k C1 10uF S4VCC 9 7 图6 89C52 复位电路 3 4电源 使用直流电源 2 3脚接地 1脚实际是VCC 电源 但是电路中要接蓝色的自锁开关 然后开关的另一个脚再接电源 图7 DC电源插口原理图 4 输入部分 4 1 按键模块 1 按键是输入信号的主要工具 2 该模块主要由五个独立按键组成 按键 1 复位 按键 2 上一曲 按键 3 启动 按键 4 下一曲 按键 5 停止 单片机键盘有独立键盘和矩阵式键盘两种 独立键盘每一个 I O 口上只接一个按键 按键 的另一端接电源或接地 一般接地 这种接法程序比较简单且系统更加稳定 而矩阵式键盘式 接法程序比较复杂 但是占用的 I O 少 根据本设计的需要这里选用了独立式键盘接法 独立式键盘的实现方法是利用单片机 I O 口读取口的电平高低来判断是否有键按下 将常开 按键的一端接地 另一端接一个 I O 口 程序开始时将此 I O 口置于高电平 平时无键按下时 I O 口保护高电平 当有键按下时 此 I O 口与地短路迫使 I O 口为低电平 按键释放后 单片 机内部的上拉电阻使 I O 口仍然保持高电平 我们所要做的就是在程序中查寻此 I O 口的电平状 态就可以了解我们是否有按键动作了 在用单片机对键盘处理的时候涉及到了一个重要的过程 那就是键盘的去抖动 这里说的 抖动是机械的抖动 是当键盘在未按到按下的临界区产生的电平不稳定正常现象 并不是我们 在按键时通过注意可以避免的 这种抖动一般 10 200 毫秒之间 这种不稳定电平的抖动时间对 于人来说太快了 而对于时钟是微秒的单片机而言则是慢长的 硬件去抖动就是用部分电路对 抖动部分加之处理 软件去抖动不是去掉抖动 而是避抖动部分的时间 等键盘稳定了再对其 处理 所以这里选择了软件去抖动 实现法是先查寻按键当有低电平出现时立即延时 10 200 毫 秒以避开抖动 经典值为 20 毫秒 延时结束后再读一次 I O 口的值 这一次的值如果为 1 表 示低电平的时间不到 10 200 毫秒 视为干扰信号 当读出的值是 0 时则表示有按键按下 调用 相应的处理程序 硬件电路如图 8 所示 8 一一 一一 一一一 一一一 P36 P37 P33 P34 图 8 按键模块 5 输出部分 5 1 显示模块 显示模块主要包括数码管 单片机等其他元件 该模块的主要功能 1 播放开机动画 2 显示点歌的曲目 LED 数码管 LED Segment Displays 是由多个发光二极管封装在一起组成 8 字型的 器件 引线已在内部连接完成 只需引出它们的各个笔划 公共电极 数码管分为动态显 示和静态显示驱动两种 静态驱动也称直流驱动 静态驱动是指每个数码管的每一个段码 都由一个单片机的 I O 端口进行驱动 或者使用如 BCD 码二 十进制译码器译码进行驱动 静态驱动的优点是编程简单 显示亮度高 缺点是占用I O 端口多 如驱动 5 个数码管静 态显示则需要 5 8 40 根 I O 端口来驱动 要知道一个 STC89C52 的 I O 端口才 32 个呢 实际应用时必须增加译码驱动器进行驱动 增加了硬件电路的复杂性 数码管动态显示接口 是单片机中应用最为广泛的一种显示方式之一 动态驱动是将所有数码管的8 个显示笔划 a b c d e f g dp 的同名端连在一起 另外为每个数码管的公共极COM 增加位选通控制电路 位选通由各自独立的 I O 线控制 当单片机输出字形码时 所有数码管都接收到相同的字形 码 但究竟是那个数码管会显示出字形 取决于单片机对位选通COM 端电路的控制 所 以我们只要将需要显示的数码管的选通控制打开 该位就显示出字形 没有选通的数码管就 不会亮 通过分时轮流控制各个数码管的的COM 端 就使各个数码管轮流受控显示 这 就是动态驱动 在轮流显示过程中 每位数码管的点亮时间为1 2ms 由于人的视觉暂留 现象及发光二极管的 余辉效应 尽管实际上各位数码管并非同时点亮 但只要扫描的速度 足够快 给人的印象就是一组稳定的显示数据 不会有闪烁感 动态显示的效果和静态显示 是一样的 能够节省大量的 I O 端口 而且 功耗更低 9 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 GND 20 Vcc 40 一一一 89C52RC VCC a bf c g d e 1 2 3 4 5 6 7 a b c d e f g 8 dp dp COM SHUMAGUAN 图 9 显示模块 5 2 放声模块 采用 LM386 驱动 由于单片机输出的是方波 不经过电路信号放大驱动喇叭发声很小 基本听不见 采用典 型的 386 运放驱动电路可以将声音驱动的清晰动听 LM386 功放电路特点是外围电路复杂 声音 清晰 5 3 音乐机模块 作为此次设计的存储音乐的核心硬件 音乐机机的作用就是根据主控机传输的相应信号进 行判断 相应的播放对应的歌曲 通过主控机的 P2 5 P2 7 传过来的数据给音乐机的 P1 0 P1 2 实现两块单片机的通讯 最终通过音乐机的 P0 0 口传输出音乐信号 后经声音驱动电路放出美 妙的音乐 EA V P 31 X 1 19 X 2 18 RESET 9 RD 17 WR 16 IN T0 12 IN T1 13 T 0 14 T 1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 T X D 11 RX D 10 GND 20 V cc 40 一一一 89C51RC 10uf R5 10k V CC 30p 30p 12MHZ P27 P26 P25 BEEP V CC 10k 图 10 音乐机模块 5 4 LM386 功放模块 功率放大器的作用是给音响放大器的负载 扬声器 提供一定的输出概率 当负载一定时 希望输出的功率尽可能大 输出的信号的非线性失真尽可能小 效率尽可能高 LM386 是美国 10 的国家半导体公司生产的音频功率放大器 主要应用于低电压消费类产品 为使外围元件最少 电压增益内置为 20 但在 1 脚和 8 脚之间增加一只外接电阻或电容 便可将电压增益调为任意 值 直至 200 输入端以地为参考 同时输出端被自动地偏置到电源电压的一半 工作电压范围 宽 4 12V 或 5 18V 在 6V 电源电压下 它的静态功耗仅为 24mV 且外围元件少 LM386 是 8 引脚双排直插式塑料封装结构 其外形与引脚排列如图所示 图 11 LM386 引脚图 2 脚为反向输入端 3 脚为同向输入端 5 脚为输出端 6 脚与 4 脚分别为电源和地端 1 脚 和 8 脚为电压增益设定端 使用时 引脚 7 和地之间接旁路电容 通常为 10uf 功放电路如图 10 所示 IN 3 IN 2 GND 4 V OU T 5 GAIN 1 GAIN 8 BYPASS 7 V cc 6 386一一 LM386 R2 1k R3 10k BEEP 10uf 100uf 104 473 R4 10 V cc BEEP 图 12 LM386 运放电路 6 实物制作与仿真 6 1 实物制作 1 先将每个元器件插好并焊接 2 将引脚剪掉 无斜口钳 3 焊接一些近的焊点 用焊锡直接 连线 4 焊接数码管和一些不会挡住其他焊点的连线 5 在焊接距离远的 6 焊接喇叭 7 将没焊接的 线全焊接上 并检查 有无短路 8 插上元器件 通电测试 6 2 仿真 11 图 13 仿真运行后 7 节拍的确定 一般说来 单片机演奏音乐基本都是单音频率 它不包含相应幅度的谐波频率 也就是说 不能象电子琴那样能奏出多种音色的声音 因此单片机奏乐只需弄清楚两个概念即可 也就是 音调 和 节拍 音调表示一个音符唱多高的频率 节拍表示一个音符唱多长的时间 在音乐中 所谓 音调 其实就是我们常说的 音高 在音乐中常把中央 C 上方的 A 音定为标准音高 其 频率 f 440Hz 当两个声音信号的频率相差一倍时 也即 f2 2f1 时 则称 f2 比 f1 高一个倍频程 在音乐中 1 do 与 2 来 与 正好相差一个倍频程 在音乐学中称它相差一个八度音 在一个八度音内 有 12 个半音 以 1 i 八音区为例 12 个半音是 1 1 1 2 2 2 2 3 3 4 4 4 4 5 5 一 5 5 6 6 6 6 7 7 i 这 12 个音 阶的分度基本上是以对数关系来划分的 如果我们只要知道了这十二个音符的音高 也就是其 基本音调的频率 我们就可根据倍频程的关系得到其他音符基本音调的频率 知道了一个音符 的频后 怎样让单片机发出相应频率的声音呢 一般说来 常采用的方法就是通过单片机的定 时器定时中断 将单片机上对应蜂鸣器的 I O 口来回取反 或者说来回清零 置位 从而让蜂鸣 器发出声音 为了让单片机发出不同频率的声音 我们只需将定时器予置不同的定时值就可实 现 那么怎样确定一个频率所对应的定时器的定时值呢 以标准音高 A 为例 A 的频率 f 440 Hz 其对应的周期为 T 1 f 1 440 2272 s t T 图 14 频率表 由上图可知 单片机上对应蜂鸣器的 I O 口来回取反的时间应为 t T 2 2272 2 1136 s 这个时间 t 也就是单片机上定时器应有的中断触发时间 一般情况下 单片机奏乐时定时器 为工作方式 1 它以振荡器的十二分频信号为计数脉冲 设振荡器频率为 f0 则定时器的予置初值由下式来确定 t 12 TALL THL f0 式中 TALL 216 65536 THL 为定时器待确定的计数初值 因 此定时器的高低计数器的初值为 TH THL 256 TALL t f0 12 256TL THL 256 TALL t f0 12 256 将 t 1136 s 代入上面两式 注意 计算时应将时间和频率的单位换算一致 即可求出标 准音高 A 在单片机晶振频率 f0 12Mhz 定时器在工作方式 1 下的定时器高低计数器的予置初值 为 TH440Hz 65536 1136 12 12 256 FBH TL440Hz 65536 1136 12 12 256 90H 根据上面的求解方法 我们就可求出其他音调相应的计数器的予置初值 12 说明 曲谱存贮格式 unsigned char code MusicName 音高 音长 音高 音长 0 0 末尾 0 0 表示结束 Important 音高由三位数字组成 个位是表示 1 7 这七个音符 十位是表示音符所在的音区 1 低音 2 中音 3 高音 百位表示这个音符是否要升半音 0 不升 1 升半音 音长最多由三位数字组成 个位表示音符的时值 其对应关系是 数值 n 0 1 2 3 4 5 6 几分音符 1 2 4 8 16 32 64 音符 2 n 十位表示音符的演奏效果 0 2 0 普通 1 连音 2 顿音 百位是符点位 0 无符点 1 有符点 调用演奏子程序的格式 Play 乐曲名 调号 升降八度 演奏速度 乐曲名 要播放的乐曲指针 结尾以 0 0 结束 调号 0 11 是指乐曲升多少个半音演奏 升降八度 1 3 1 降八度 2 不升不降 3 升八度 演奏速度 1 12000 值越大速度越快 13 结 论 在进行了长达一个多星期的时间的摸索与实验 我与同学分工合作完成了硬件编制 使我 不仅仅是对于单片机入门软件与硬件的常用设计与功能加深了理解 还使我对于一项设计研究 的制作过程所需要的详细步骤和具体的实现方法的力度的掌握 当然在这次宝贵的课程设计活动中 经验才是对于我们最大的收获 而且还增强了自身对 未知问题以及对知识的深化认识的能力 用受益匪浅这个词语来概括这次难忘的活动我觉得再 合适不过了 但是 光是完成了作品还是不可以自我满足的 在从一开始的时候就怀着将作品 制作得更加人性化 更加令人满意 更加地使功能完美又方便地被应用领域这个最终目的下 随着对单片机这门学科的认识加深 到达了拓展的程度 我想这个目的将在不远的时期内被实 现 总之 这次设计从软件编写 调试到软硬件联机调试 真是曾经为程序的编写而冥思查找 过 曾经为无法找出错误而郁闷苦恼过 也曾经为某一功能不能实现而犹豫彷徨过 但最终我 们成功了 我不仅品味到了结果的喜悦 更明白了过程的弥足珍贵 14 参考文献 1 李建忠 单片机原理及应用 M 西安电子科技大学出版社 2008 2 2 黄智伟 全国大学生电子设计竞赛系统设计 M 北京 北京航空航天大学出版社 2006 6 3 黄智伟 凌阳单片机课程设计指导 M 北京 北京航空航天大学出版社 2006 11 4 李广弟 朱月秀 王秀山 单片机基础 M 北京 北京航空航天大学出版社 2001 7 5 赵曙光 郭万有 杨颂华 可编程逻辑器件原理开发与应用 M 西安 西安电子科技大学 2000 6 候伯亨 VHDL 硬件描述语言与数字逻辑电路设计 M 西安 西安电子科技大学出版社 1999 7 康华光 模拟电子技术基础 第四版 M 武汉 华中理工大学出版社 1999 8 谭浩强 C 语言程序设计 第二版 M 北京 清华大学出版社 1991 9 陈小忠 黄宁 单片机接口技术实用子程序 M 北京 北京人民邮电出版社 2005 10 欧伟明 周春临 瞿遂春 电子信息系统设计 M 西安电子科技大学出版社 2005 9 11 贾立新 王涌 电子系统设计与实践 M 北京 清华大学出版社 2007 12 罗亚非 凌阳 16 位单片机应用基础 M 北京 北京航空航天大学出版社 2003 13 雷思孝 凌阳单片机原理及实用技术 M 西安电子科技大学 2004 15 附录一 元器件清单 序号元器件名型号数量备注 1 万用板 9 151 2 小喇叭 8 0 25w1 3 数码管一位共阳数码管 1 4 电源插口 1 5 自锁开关 1 6 晶振 12m2 7 电阻 10k4 8 电容 30pf4 9 电容 10uf4 10 电容473瓷片 1 11 电容 1041 12 脚座40引脚 2 13 按键 5 14 usb 电源线或电池盒 DC 插头 1 15 单片机 stc89c512 16 电阻 1k1 17 电阻 10 1 18 电容100uf 电解电容 1 19 脚座8引脚 1 20 音频功率放大器 LM3861 21 导线 焊锡若干 16 附录二 原理图 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 GND 20 Vcc 40 一 一 一 89C51RC EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 GND 20 Vcc 40 一 一 一 89C51RC P33 P34 P36 P37 10uf R1 10k S1 一 一 一 一 一 一 一 一 一 一 一 一 一 一 VCC 10uf R5 10k VCC 30p 30p 12MHZ 30p 30p 12MHZ Vcc P27 P26 P25 BEEP P36 P37 P33 P34 IN 3 IN 2 GND 4 V OUT 5 GAIN 1 GAIN 8 BYPASS 7 Vcc 6 386一 一 LM386 R2 1k R3 10k BEEP 10uf 100uf 104 473 R4 10 Vcc BEEP a bf c g d e 1 2 3 4 5 6 7 a b c d e f g 8 dp dp COM SHUMAGUAN P25 P26 P27 VCC 10k 10uf S1 1 2 一 一 一 一 VCC 声音驱动 IN 3 IN 2 GND 4 V OUT 5 GAIN 1 GAIN 8 BYPASS 7 Vcc 6 386一 一 LM386 R2 1k R3 10k BEEP 10uf 100uf 104 473 R4 10 Vcc BEEP 10uf 17 附录三 程序清单 主控机程序 include include sbit start P3 6 sbit up P3 4 sbit down P3 3 sbit stop P3 7 sbit signal 1 P2 6 sbit signal 2 P2 7 sbit signal 3 P2 5 unsigned char code kaiji hua 0 xfe 0 xffd 0 xfb 0 xf7 0 xef 0 xdf 开机画 面 unsigned char code tab 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 显示数组 unsigned char huanqu c void yanshi unsigned int q 系统延时 unsigned int i j for i q i 0 i for j 110 j 0 j void job 工作显示 if c 1 P1 tab huanqu yanshi 5 else 18 P1 0 xff void kaiji 开机画面 unsigned char a for a 0 a3 huanqu 1 while up job if down 0 yanshi 5 if down 0 huanqu signal 3 0 signal 1 1 signal 2 1 if huanqu 0 huanqu 3 while down job void chuansong if c 0 20 signal 1 1 signal 2 1 signal 3 0 else signal 3 1 if huanqu 1 signal 1 0 signal 2 0 if huanqu 2 signal 1 0 signal 2 1 if huanqu 3 signal 1 1 signal 2 0 void main c 0 huanqu 1 kaiji while 1 anjian job chuansong 21 音乐机程序 include include SoundPlay h unsigned char qu kaishi sbit ling P1 0 sbit yi P1 1 void yanshi unsigned int q 系统延时 unsigned int i j for i q i 0 i for j 110 j 0 j 祝你平安 unsigned char code Music ping 0 x17 0 x03 0 x19 0 x03 0 x19 0 x0E 0 x17 0 x03 0 x19 0 x0E 0 x19 0 x01 0 x17 0 x03 0 x15 0 x03 0 x15 0 x0D 0 x10 0 x04 0 x15 0 x0E 0 x15 0 x01 0 x17 0 x03 0 x19 0 x03 0 x19 0 x0E 0 x1A 0 x67 0 x19 0 x01 0 x16 0 x03 0 x17 0 x03 0 x19 0 x03 0 x16 0 x0E 0 x17 0 x04 0 x16 0 x01 0 x17 0 x03 0 x15 0 x03 0 x15 0 x0D 0 x10 0 x04 0 x17 0 x04 0 x17 0 x66 0 x0F 0 x02 0 x10 0 x02 0 x0D 0 x03 0 x15 0 x67 0 x15 0 x03 0 x10 0 x04 0 x17 0 x0E 0 x17 0 x01 0 x17 0 x04 0 x16 0 x04 0 x16 0 x0E 0 x16 0 x03 0 x15 0 x04 0 x10 0 x04 0 x17 0 x03 0 x16 0 x0E 0 x16 0 x02 0 x0F 0 x04 0 x0F 0 x04 0 x0F 0 x04 0 x16 0 x0E 0 x17 0 x67 0 x15 0 x15 0 x1F 0 x03 0 x1F 0 x03 0 x17 0 x03 0 x19 0 x0D 0 x19 0 x66 0 x17 0 x0E 0 x16 0 x04 0 x15 0 x03 0 x15 0 x03 0 x1A 0 x03 0 x19 0 x0D 0 x19 0 x01 0 x1A 0 x03 0 x1A 0 x03 0 x1A 0 x03 0 x15 0 x0D 0 x15 0 x67 0 x10 0 x04 0 x15 0 x04 0 x19 0 x03 0 x17 0 x03 0 x16 0 x03 0 x17 0 x03 0 x17 0 x0D 0 x16 0 x01 0 x1F 0 x03 0 x1F 0 x03 0 x17 0 x03 0 x19 0 x0D 0 x19 0 x66 0 x17 0 x0E 0 x16 0 x04 0 x15 0 x03 0 x15 0 x03 0 x1A 0 x03 0 x19 0 x0D 0 x19 0 x01 0 x17 0 x03 0 x15 0 x04 0 x15 0 x0E 0 x15 0 x03 0 x10 0 x03 0 x17 0 x0E 0 x16 0 x03 0 x16 0 x04 0 x0F 0 x04 0 x0F 0 x04 0 x19 0 x04 0 x19 0 x04 0 x16 0 x04 0 x17 0 x67 0 x15 0 x01 0 x00 0 x00 铃儿响叮当 unsigned char code Music dingdang 0 x0F 0 x03 0 x0F 0 x03 0 x17 0 x03 0 x16 0 x03 0 x15 0 x03 0 x0F 0 x66 0 x19 0 x04 0 x19 0 x04 0 x0F 0 x03 0 x17 0 x03 0 x16 0 x03 0 x15 0 x03 0 x10 0 x66 0 x10 0 x03 0 x10 0 x03 0 x18 0 x03 0 x17 0 x03 0 x16 0 x03 0 x10 0 x66 0 x10 0 x03 0 x19 0 x03 0 x19 0 x03 0 x18 0 x03 0 x16 0 x03 0 x17 0 x0D 0 x15 0 x03 0 x0F 0 x03 0 x0F 0 x03 0 x17 0 x03 0 x16 0 x03 22 0 x15 0 x03 0 x0F 0 x66 0 x0F 0 x03 0 x0F 0 x03 0 x17 0 x03 0 x16 0 x03 0 x15 0 x03 0 x10 0 x66 0 x10 0 x03 0 x10 0 x03 0 x18 0 x03 0 x17 0 x03 0 x16 0 x03 0 x19 0 x03 0 x19 0 x03 0 x19 0 x03 0 x19 0 x03 0 x1A 0 x03 0 x19 0 x03 0 x18 0 x03 0 x16 0 x03 0 x15 0 x66 0 x17 0 x03 0 x17 0 x03 0 x17 0 x02 0 x17 0 x03 0 x17 0 x03 0 x17 0 x02 0 x17 0 x03 0 x19 0 x03 0 x15 0 x03 0 x16 0 x03 0 x17 0 x00 0 x18 0 x03 0 x18 0 x03 0 x18 0 x67 0 x18 0 x04 0 x18 0 x03 0 x17 0 x03 0 x17 0 x03 0 x17 0 x04 0 x17 0 x04 0 x17 0 x03 0 x16 0 x03 0 x16 0 x03 0 x15 0 x03 0 x16 0 x03 0 x19 0 x66 0 x19 0 x03 0 x19 0 x03 0 x18 0 x03 0 x16 0 x03 0 x15 0 x02 0 x00 0 x00 让我们荡起双桨 unsigned char code Music shuangjiang 0 x15 0 x03 0 x16 0 x03 0 x17 0 x03 0 x19 0 x02 0 x1A 0 x16 0 x10 0 x03 0 x15 0 x03 0 x16 0 x03 0 x17 0 x02 0 x19 0 x16 0 x0D 0 x03 0 x0F 0 x03 0 x10 0 x03 0 x15 0 x02 0 x17 0 x02 0 x16 0 x01 0 x17 0 x04 0 x16 0 x04 0 x15 0 x03 0 x11 0 x03 0 x10 0 x02 0 x10 0 x03 0 x10 0 x03 0 x10 0 x17 0 x10 0 x17 0 x10 0 x03 0 x10 0 x03 0 x15 0 x03 0 x16 0 x03 0 x17 0 x65 0 x19 0 x04 0 x19 0 x04 0 x17 0 x03 0 x15

温馨提示

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

最新文档

评论

0/150

提交评论