




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 摘 要 本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器 在当今这个科 技高速发展的时代 生活节奏的加快 人们长期处于工作 学习压力过大的状态 对于 调节心理压力而言音乐对于每一个人都十分重要 由此音乐播放器在国内已经开始普及 校园里的上下课的铃声 宿舍内早晨的起床号声音 都由以前枯燥刺耳的铃音转变成了 好听的音乐 公路 广场中的计时装置也逐渐开始采用音乐来充当铃声 此装置不仅为 人们日常生活的计时提供了方便 同时也为目前快节奏的生活带来了乐趣 本文是应用 MCS 51单片机原理和控制理论设计音乐演奏控制器的硬件电路 并利用 C 语言进行程序设计 通过控制单片机内部的定时器来产生不同频率的方波 驱动蜂鸣器 发出不同音调的音乐 再利用延迟来控制发音时间的长短 把乐谱转化成相应的定时常 数就可以从发音设备中演奏出悦耳动听的音乐 这种控制电路结构简单 可读性高 应用性强 软件程序适应范围广 对于不同的音 乐只需要改变相应的定时常数即可 关键词 单片机 音乐播放器 C 语言 II 目 录 绪 论 1 第 1 章 音乐盒的设计总体方案 2 第 2 章 硬件电路设计 3 2 1 总体设计框图 3 2 2 时钟电路 3 2 3 复位电路 3 2 4 选曲按键电路 3 2 5 音频发生及放大电路 4 第 3 章 软件程序设计 5 3 1 单片机发声概述 5 3 2 程序流程图 6 3 3 音乐的产生 7 第 4 章 KEIL 仿真软件的应用 8 第 5 章 调试与故障分析 9 5 1 软件程序调试 9 5 2 硬件电路调试 9 总 结 10 致 谢 11 参考文献 12 附录 1 原理图 13 附录 2 源程序 14 1 绪 论 单片机 更确切地说应称为作微控制器 是 20 世纪 70 年代中期发展起来的一种面 向控制的大规模集成电路模块 其特点是功能强 体积小 可靠性高 价格低廉 它一 面世便在工业控制 数据采集 智能仪表化 机电一体化 家用电器等领域得到了广泛 应用 极大地提高了这些领域的技术水平和自动化程度 因此 单片机的开发应用已成 为高科技和工程领域的一项重大课题 本文将介绍一种以 89C51 型单片机为基础元件设计的自动音乐播放器 在当今这个 科技高速发展的时代 生活节奏的加快 人们长期处于工作 学习压力过大的状态 对 于调节心理压力而言音乐对于每一个人都十分重要 由此音乐播放器在国内已经开始普 及 校园里的上下课的铃声 宿舍内早晨的起床号声音 都由以前枯燥刺耳的铃音转变 成了好听的音乐 公路 广场中的计时装置也逐渐开始采用音乐来充当铃声 此装置不 仅为人们日常生活的计时提供了方便 同时也为目前快节奏的生活带来了乐趣 本次设计以 89C51 单片机为基础 利用单片机编成技术对芯片进行功能设定 实现 音乐的播放 同时 利用单片机的定时器中断 在单片机内部产生所需要的音乐频率 并通过音频功率放大器将音频信号放大 通过蜂鸣器连续播放一段音乐 此设计通过多 次测试 音乐声音宏亮清晰 节拍正常 达到预期效果 本文将围绕基于单片机的自动音乐播放器 介绍一些关于单片机的基础知识 音乐 播放器的制作原理及方法 其中包括了音乐编程原理 定时器的设定 以及仿真软件 Keil Proteus 的使用方法 2 第 1 章 音乐盒的设计总体方案 单片机音乐播放器控制系统结构简单 环节较少 因此 单片机音乐播放器包括 LED 彩灯 数码管的显示 除了播放音乐有按键外 其余的硬件组成大体相同 对于单片机 音乐播放器声音的读出除了蜂鸣器以外 还要配置合适的放大器播放出响亮的声音 单 片 机 按键电路复位电路 晶振电路发声电路 时钟电路电源电路 图 1 1 结构总图 单片机音乐播放器电路板向着小型化 低功耗 抗千扰 低成本 实用功能方向发 展 因此在对单片机的选择趋向于容量适中 功能丰富 性能可靠 价格低的元件 因 此本设计中应用最为广泛的 MCS 51 系列 8 位单片机 8051 3 第 2 章 硬件电路设计 2 1 总体设计框图 80c51 单片机 扬声器 歌曲制按钮 电源 复位 晶振时钟 钟 图 2 1 总设计图 2 2 时钟电路 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 ST C89C51 52 89C52RC C1 10uf S0 V CC C3 30p C2 30p 12MHZ D1 S1 S2 S3 R5 10KP32 P35 P12 P32 P35 P12 IN 3 IN 2 GND 4 V OU T 5 GAIN 1 GAIN 8 BYPASS 7 V cc 6 386放放 LM386 C7 10uf C8 100uf C6 104 C5 473 V CC BEEP 0 25WR2 10K R3 1K R4 10 3 21 P1 POW ER 1 1 2 2 3 3 4 4 5 5 6 6 S1 SWIT CH V CC RT 1 104 V CC R1 2 2K V CC 图 2 2 时钟电路 2 3 复位电路 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 ST C89C51 52 89C52RC C1 10uf S0 V CC C3 30p C2 30p 12MHZ D1 S1 S2 S3 R5 10K P32 P35 P12 P32 P35 P12 IN 3 IN 2 GND 4 V OU T 5 GAIN 1 GAIN 8 BYPASS 7 V cc 6 386放放 LM386 C7 10uf C8 100uf C6 104 C5 473 V CC BEEP 0 25W R2 10K R3 1K R4 10 3 21 P1 POW ER 1 1 2 2 3 3 4 4 5 5 6 6 S1 SWIT CH V CC RT 1 104 V CC R1 2 2K V CC 图 2 3 复位电路 2 4 选曲按键电路 4 S1 S2 S3 P12 P32 P35 图 2 4 选曲电路 其中 P3 2 播放 暂停 P1 2 上一首歌 P3 5 下一首歌 2 5 音频发生及放大电路 IN 3 IN 2 GND 4 V OU T 5 GAIN 1 GAIN 8 BYPASS 7 V cc 6 386放放 LM386 C7 10uf C8 100uf C6 104 C5 473 V CC BEEP 0 25WR2 10K R3 1K R4 10RT 1 104 图 2 5 音频发生及放大电路 利用 STC89C51 的 I O 口产生一定频率的方波脉冲 通过 LM386 功放电路驱动喇叭发 出不同的音调从而演凑乐曲 5 第 3 章 软件程序设计 3 1单片机发声概述 一般来说 单片机不像其他专业乐器那样能奏出多种音色的声音 即不包含相应幅 度的谐振频率 单片机演奏的音乐基本都是单音频率 因此单片机演奏音乐比较简单 只需能清楚 音调 和 节拍 两个概念即可 音调表示一个音符唱多高的频率 节 拍表示一个音符唱多长的时间 知道了一个音符的频率后 便可以让单片机发出相应频率的振荡信号 从而产生相 应的音符声音 通过单片机的定时器进行定时中断 在中断服务程序中将单片机上完结 单片机 I O 口来回置高电平或者是低电平的 从而让扬声器发出声音 通过节拍计算出 每个音符所需要的时间 采用循环延时的方法来实现控制一个音符唱多长的时间 从而 构成一首完整的音乐 音调主要由声音的频率决定 对一定强度的纯音 音调随频率的升降而升降 对一 定频率的纯音 低频纯音的音调随响度增加而下降 高频纯音的音调却随响度增加而上 升 以标准高音 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 SYSTEM OSC TH Temp 256 TL Temp 256 6 3 2 程序流程图 开始 初始化堆栈 初始化音乐输出口及按钮 暂停 播放键是 否按下 上一曲键是否 按下 并且在 开机后有一次 按下暂停 播放 键 根据当前状态播放相应歌曲的某个音 符 按键处理 下一曲键是否按 下 并且在开机 后有一次按下暂 停 播放键 按键处理 是 按键处理 是 开机后是否按 下过暂停 播 放键 是 按键处理 7 3 3 音乐的产生 一首音乐是许多不同的音阶组成的 而每个音阶对应着不同的频率 这样我们就可 以利用不同的频率的组合 即可构成我们所想要的音乐了 当然对于单片机来产生不同 的频率非常方便 我们可以利用单片机的定时 计数器 T0 来产生这样方波频率信号 因 此 我们只要把一首歌曲的音阶对应频率关系弄正确即可 若要产生音频脉冲 只要算出某一音频的周期 1 频率 再将此周期除以 2 即为 半周期的时间 利用定时器计时半周期时间 每当计时终止后就将 P1 0 反相 然后重复 计时再反相 就可在 P1 0 引脚上得到此频率的脉冲 利用 AT89C51 的内部定时器使其工作计数器模式 MODE1 下 改变计数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶 例如 频率为 523Hz 其周期 T 1 523 1912 s 则半周期为 1912 2 956 s 因此只要令计数器计时 956 s 每计 数 956 次时将 I O 反相 就可得到中音 DO 523Hz 则初始值为 65535 956 64579 0 xFC43 计数脉冲值与频率的关系式 如式 3 1 所示 是 N fi 2 fr 3 1 式中 N 是计数值 fi 是机器频率 晶体振荡器为 12MHz 时 其频率为 1MHz fr 是想要产生的频率 其计数初值 T 的求法如下 T 65536 N 65536 fi 2 fr 例如 设 K 65536 fi 1MHz 求低音 DO 261Hz 中音 DO 523Hz 高音 DO 1046Hz 的计数值 T 65536 N 65536 fi 2 fr 65536 2 fr 65536 fr 低音 DO 的 T 65536 262 63627 中音 DO 的 T 65536 523 64580 高音 DO 的 T 65536 1046 65059 8 第 4 章 KEIL 仿真软件的应用 硬件与软件的设计一般都要分别借助一些软件 如我们通常用作电路设计与制版的 Protel MCS 51 程序开发工具 KEIL 等 Keil C51 uVision2 集成开发环境是基于 80C51 内核的软件开发平台 支持工程建立 程序的编译与链接 软件仿真 硬件仿真 目标代码的生成等功能 Keil C51 编译器在 产生代码的准确性和效率方面达到了较高的水平 与大多数集成开发环境类似 Keil C51 集成开发环境也是用工程的方法来管理文件 在一个工程文件中源程序 C51 程序 汇编程序 头文件等都可以进行统一管理 安装运行 KEIL51 使用 KEIL 的开发工具进行项目开发过程 与其他软件开发项目 的过程基本上相同 创建 C 语言或汇编语言的源程序 编译或汇编源文件 纠正源文件中的错误 从编译器和汇编器连接目标文件 测试连接的应用程序 9 第 5 章 调试与故障分析 5 1 软件程序调试 本次设计的软件部分由音乐播放程序组成 关于音乐播放程序的调试 我首先采用 Preteus 软件来仿真 但是该仿真软件中没 有喇叭或蜂鸣器等声音播放工具 于是本人将图 3 4 中的单片机的 P1 0 处接了一个示波 器 想通过这样来仿真并调试音乐播放程序 但是效果不是很理想 程序运行的时候 能看见示波器有不同频率的波形交替出现 但是频率变换得很快 无法确认是否显示的 是所需要的频率 并且无法辨别音频变换的节奏是否正确 此方法并不适用 接着 我制作了一个简单的单片机播放器电路 即在实验板上焊接实验电路 电路 由单片机 89C51 按钮外围电路组成 并在单片机的 P1 0 处用三极管连接一个简单的音 频放大器 再外接一个蜂鸣器 将程序写入单片机中 这样就能听出声音和音乐节奏是 否正确 5 2 硬件电路调试 本次设计的硬件电路主要由单片机 89C51 组成 在调试电路的过程中也碰到了一些 问题 问题一 单片机无法正常下载程序 调试步骤 1 检查单片机和串口电路是否连接错 2 检查焊接电路是否有虚焊和漏焊 问题二 下载音频程序后无法播放音乐 调试步骤 检查电源是否正常接入电路中 利用示波器测试单片机输出端是否有信号输出 发现信号输出正常 说明单片机正 常工作 利用示波器测试音频放大电路输出端是否有信号输出 发现信号输出正常 说明音 频放大电路工作正常 同时说明是蜂鸣器部分出现了问题 故障原因 焊接时将发声器件烧坏了 导致发不出声音 解决方案 重新换一个无源蜂鸣器 即可正常播放音乐 10 总 结 经过这次创新设计 我觉得自己学到了不少东西 归纳起来 主要有以下几点 1 通过这次创新设计 我能将以前四年所学到的专业知识与实践相联系 将所学 到的知识充分运用到本次设计中 同时 我也认识到自己知识上不足的地方 体会到了 所学理论知识的重要性 知识掌握得越多 设计得就更全面 更顺利 更好 2 进一步熟悉了单片机的知识 通过本次设计 我对单片机的基本原理 内部结 构 各引脚功能 定时器和中断的应用都有了更深刻的理解 并且 能够以单片机为基 础元件设计一个简单的系统 3 通过本次设计 熟悉了设计一个项目所必经的几个阶段 本次设计从理论研究 到硬件原理图设计 从元器件的选择到 PCB 板的制作 从软件编程到最后的调试过程都 由我独立完成 这不仅锻炼了我独立完成设计工作的能力 更重要的是了解了一个电子 产品的设计流程 为将来投入工作增加了宝贵的经验 奠定了坚实的基础 4 提高了自己查找资料的能力 在设计过程中 我碰到了一些暂时无法解决的问 题 于是我通过上网查阅和图书馆借阅资料 或是通过与老师同学交流一步步地解决了 从中我懂得了我们这个专业的知识面相当广泛 我们需要不断通过各种途径更新自己的 知识 不断充实自己 同时要懂得与他人交流意见 积极听取别人的建议 懂得不断学 习的重要性 11 致 谢 在枣庄学院的求学生涯在师长 亲友的大力支持下 走得辛苦却也收获满囊 在论 文即将付梓之际 思绪万千 心情久久不能平静 伟人 名人为我所崇拜 可是我更急 切地要把我的敬意和赞美献给一位平凡的人 我的导师 我不是您最出色的学生 而您 却是我最尊敬的老师 您治学严谨 学识渊博 思想深邃 视野雄阔 为我营造了一种 良好的精神氛围 授人以鱼不如授人以渔 置身其间 耳濡目染 潜移默化 使我不仅 接受了全新的思想观念 树立了宏伟的学术目标 领会了基本的思考方式 从论文题目 的选定到论文写作的指导 经由您悉心的点拨 再经思考后的领悟 常常让我有 山重水复 疑无路 柳暗花明又一村 感谢我的爸爸妈妈 焉得谖草 言树之背 养育之恩 无以回报 你们永远健康快 乐是我最大的心愿 在论文即将完成之际 我的心情无法平静 从开始进入课题到论文 的顺利完成 有多少可敬的师长 同学 朋友给了我无言的帮助 在这里请接受我诚挚 谢意 最后再一次感谢所有在创新设计中曾经帮助过我的良师益友和同学 以及在设计中 被我引用或参考的论著的作者 12 参考文献 1 郑郁正 单片机原理及应用 四川大学出版社 2003 2 谭浩强 C 程序设计 第二版 清华大学出版社 1999 3 王晓君 安国臣等 MCS 51 及兼容单片机原理与选型 北京 电子工业出版社 2003 4 李启炎 Protel 99SE 应用教程 上海 同济大学出版社 2005 2 5 胡烨 姚鹏翼 江思敏 Protel 99 SE 电路设计与仿真教程 北京 机械工业出版社 2006 6 张义和 陈敌北 例说 8051 北京 人民邮电出版社 2006 7 张洪润 张亚凡 单片机原理及应用 清华大学出版社 2004 8 AT89C51 DATA SHEEP Philips Semiconductors 1999 dec 9 Yang Y Yi J Woo Y Y and Kim B Optimum design for linearityand efficiency of microwave Doherty amplifier using a new loadmatching technique Microw J 2001 44 12 pp 20 36 10 Vizimuller P RF design guide systems circuits and equations ArtechHouse Boston MA 1995 13 附录 1 原理图 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 ST C89C51 52 89C52RC C1 10uf S0 V CC C3 30p C2 30p 12MHZ D1 S1 S2 S3 R5 10KP32 P35 P12 P32 P35 P12 IN 3 IN 2 GND 4 V OU T 5 GAIN 1 GAIN 8 BYPASS 7 V cc 6 386放放 LM386 C7 10uf C8 100uf C6 104 C5 473 V CC BEEP 0 25WR2 10K R3 1K R4 10 3 21 P1 POW ER 1 1 2 2 3 3 4 4 5 5 6 6 S1 SWIT CH V CC RT 1 104 V CC R1 2 2K V CC 14 附录 2 源程序 include define sound amount 5 歌曲的数量 sbit play up P1 3 上一首歌 sbit play down P3 5 下一首歌 sbit pause P3 2 播放 暂停 sbit speaker P1 0 无源蜂鸣器 unsigned char timer0h timer0l time timer0h timer0l 为定时器 T0 的高低位初 值 time 为对应的节拍时间 unsigned char music num music num 为歌曲编号 music num 0 表示刚开 机时的状态 num 是查找歌曲数据表的地址 unsigned int num signed int fre 对应频率数据表的地址 bit play enable 歌曲播放的使能标志位 用于播放 暂停 void delay unsigned char t 延时子函数 控制发音的时间长度 void delayms unsigned int t 普通延时子程序 可用于按键消抖 void music play void 播放歌曲 每三个数字 代表一个音符 第一个数字是音符的数值之一 第几个音 代表哆来咪发 第二个数字是 0123 之一 代表低音 中音 高音 超高音 第几个八度 第三个数字是时间长度 以半拍为单位 乐曲数据表的结尾是三个 0 烟花易冷 unsigned char code song1 5 2 1 3 2 1 2 2 2 2 2 4 3 2 1 1 2 1 2 2 1 3 2 4 5 2 1 3 2 1 2 2 2 2 2 2 5 1 1 3 2 1 4 2 1 3 2 4 3 2 1 3 2 1 7 2 1 3 2 1 2 2 2 1 2 1 7 1 1 1 2 1 2 2 1 3 2 1 6 2 3 6 1 1 1 2 1 3 2 1 2 2 1 6 1 1 1 2 1 7 1 1 5 1 1 6 1 6 5 2 1 3 2 1 2 2 2 2 2 1 2 2 1 2 2 1 5 1 1 3 2 1 4 2 1 3 2 4 3 2 1 3 2 1 15 7 2 3 3 2 1 2 2 2 1 2 1 7 1 1 1 2 1 2 2 1 3 2 1 6 2 3 6 1 1 1 2 1 3 2 1 2 2 1 6 1 1 1 2 1 7 1 2 5 1 2 6 1 6 0 0 0 发如雪 unsigned char code song2 5 1 1 2 2 1 3 2 2 2 2 1 3 2 1 5 2 1 6 2 1 5 2 3 1 2 1 2 2 1 3 2 1 6 2 1 5 2 1 3 2 1 5 2 3 5 2 1 6 2 1 1 3 2 6 2 1 5 2 1 3 2 1 5 2 1 3 2 2 1 2 1 2 2 1 3 2 1 1 2 1 6 1 1 3 2 1 2 2 1 5 1 1 2 2 1 3 2 2 2 2 1 3 2 1 5 2 1 6 2 1 5 2 3 1 2 1 2 2 1 5 2 1 3 2 1 5 2 1 3 2 2 1 2 1 6 1 1 3 2 1 2 2 1 1 2 1 6 1 1 1 2 1 2 2 1 2 2 1 1 2 4 0 0 0 简单爱 unsigned char code song3 5 1 1 1 2 1 2 2 1 3 2 1 2 2 1 3 2 1 4 2 1 5 2 1 5 2 1 5 2 1 4 2 1 3 2 1 2 2 3 5 1 1 1 2 1 2 2 1 3 2 1 4 2 1 5 2 1 5 2 1 5 2 1 6 2 1 5 2 2 2 2 1 3 2 1 1 2 2 1 2 1 6 1 1 2 2 1 2 2 1 3 2 1 3 2 1 1 2 1 5 2 1 1 2 1 5 2 1 1 2 1 7 1 1 1 2 1 1 2 1 6 1 1 2 2 1 2 2 1 3 2 1 3 2 1 5 2 1 5 2 1 4 2 1 3 2 1 2 2 3 5 1 1 1 2 1 2 2 1 3 2 1 2 2 1 3 2 1 4 2 1 5 2 1 5 2 1 5 2 2 2 2 1 3 2 1 1 2 2 1 2 1 6 1 1 2 2 1 2 2 1 3 2 1 3 2 1 1 2 2 5 2 1 1 2 1 5 2 1 5 2 1 7 1 1 1 2 1 0 0 0 世上只有妈妈好 unsigned char code song4 6 2 3 5 2 1 3 2 2 5 2 2 1 3 2 6 2 1 6 2 3 代表 6 中音 3 个半拍 5 2 1 代表 5 中音 1 个半拍 3 2 2 代表 3 中音 2 个半拍 5 2 2 代表 5 中音 2 个半拍 16 1 3 2 代表 1 高音 2 个半拍 3 2 1 2 2 4 2 2 3 3 2 1 5 2 2 5 2 1 6 2 1 3 2 2 2 2 2 1 2 4 5 2 3 3 2 1 2 2 1 1 2 1 6 1 1 1 2 1 5 1 6 0 0 0 当你孤单你会想起谁 unsigned char code song5 3 2 2 3 2 1 4 2 1 3 2 2 2 2 1 1 2 1 2 2 2 5 2 2 2 2 2 2 2 3 6 1 2 2 2 1 3 2 1 2 2 1 1 2 1 6 1 2 5 1 2 2 2 1 3 2 1 2 2 1 1 2 1 6 1 2 6 1 2 2 2 1 3 2 1 2 2 1 1 2 1 6 1 1 7 1 1 1 2 6 0 0 0 乡间小路 unsigned char code song6 3 1 2 3 1 1 3 1 1 6 0 1 6 0 1 1 1 2 6 0 1 5 0 1 6 0 4 6 0 2 6 0 1 6 0 1 6 0 2 6 0 1 1 1 1 2 1 2 2 1 1 3 1 1 2 1 4 3 1 1 3 1 1 3 1 1 2 1 1 4 1 2 3 1 1 6 1 1 7 1 1 6 1 1 5 1 1 5 1 2 5 1 1 2 1 1 5 1 1 6 1 1 5 1 1 4 1 1 4 1 2 4 1 1 3 1 1 2 1 2 1 1 1 2 1 1 3 1 1 2 1 1 1 1 1 2 1 1 3 1 4 6 1 2 3 1 1 6 1 1 7 1 1 6 1 1 5 1 1 5 1 2 2 1 1 5 1 1 6 1 1 5 1 1 4 1 1 0 0 0 送别 unsigned char code song7 5 1 2 3 1 3 5 1 1 1 2 3 6 1 2 1 2 2 5 1 4 5 1 2 1 1 1 2 1 1 3 1 2 2 1 1 1 1 1 2 1 4 5 1 2 3 1 1 5 1 1 1 2 2 7 1 1 6 1 2 1 2 2 5 1 4 5 1 2 2 1 1 7 1 1 1 2 4 6 1 1 7 1 1 1 2 1 6 1 1 6 1 1 5 1 1 3 1 1 1 1 1 2 1 8 5 1 2 3 1 1 5 1 1 1 2 2 7 1 1 6 1 2 1 2 2 5 1 4 5 1 2 2 1 1 3 1 1 4 1 2 7 0 2 1 1 4 0 0 0 最浪漫的事 unsigned char code song8 5 1 1 6 1 1 1 2 1 6 1 2 6 1 1 5 1 1 6 1 1 5 1 1 3 1 1 5 1 5 17 5 1 1 6 1 1 1 2 1 6 1 2 6 1 1 5 1 1 6 1 1 5 1 1 6 1 1 1 1 5 3 1 2 2 1 3 5 1 1 6 1 1 1 2 1 6 1 2 6 1 1 5 1 1 6 1 1 5 1 1 6 1 1 1 1 5 1 1 1 2 1 1 3 1 1 4 1 2 4 1 1 5 1 1 6 1 1 6 1 1 5 1 1 6 1 2 1 2 1 6 1 3 1 2 1 6 1 1 5 1 1 5 1 4 1 1 1 6 1 1 5 1 5 5 1 1 6 1 1 1 2 1 3 1 1 2 1 1 3 1 1 1 1 6 0 0 0 频率 半周期数据表 高八位 共保存了四个八度的 28 个频率数据 unsigned char code FREQH 0 xF2 0 xF3 0 xF5 0 xF5 0 xF6 0 xF7 0 xF8 低音 0 xF9 0 xF9 0 xFA 0 xFA 0 xFB 0 xFB 0 xFC 0 xFC 1 2 3 4 5 6 7 i 0 xFC 0 xFD 0 xFD 0 xFD 0 xFD 0 xFE 高音 0 xFE 0 xFE 0 xFE 0 xFE 0 xFE 0 xFE 0 xFF 超高音 频率 半周期数据表 低八位 unsigned char code FREQL 0 x42 0 xC1 0 x17 0 xB6 低音 0 x21 0 xE1 0 x8C 0 xD8 0 x68 0 xE9 0 x5B 0 x8F 1 2 3 4 5 6 7 i 0 xEE 0 x44 0 x6B 0 xB4 0 xF4 0 x2D 高音 0 x47 0 x77 0 xA2 0 xB6 0 xDA 0 xFA 0 x16 超高音 void main void TMOD 0 x11 T0 T1 均在工作方式 1 ET0 1 T0 开中断 EA 1 CPU 开中断 while 1 music play 根据当前状态播放相应歌曲的某个音符 if pause 暂停键处理 if pause if music num 0 music num 0 只有在刚开机 且未按下暂停键时 18 存在 表示刚开机时的状态 按下后从第一首开始播放 music num 1 歌曲序号置 1 num 0 从头播放 play enable 1 允许播放 else play enable play enable speaker 1 while pause 若按着暂停键不放手时的处理 if play enable 0 如果是暂停 则显示时间不变 暂 停时 play enable 0 暂停键处理结束 while 结束 if play up if play up music num 1 歌曲编号减一 if music num 0 music num 8 n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政服务质量认证创新创业项目商业计划书
- 川芎创新创业项目商业计划书
- 专职安全员考试写作及答案
- 2025不动产抵押贷款合同样本
- 重庆三支一扶协议书7篇
- 2025年新疆粮油安全储存合同
- 2025年新疆农作物制种项目合作调整合同
- 2025项目合同管理在石油工程中的应用与实践
- 《2025南京悦艺画室教职工兼职聘用合同》
- 2025建筑工程承包合同范本
- 小儿链球菌感染护理查房
- 肿瘤免疫治疗不良反应
- 竞聘医疗组长
- 路易斯·康获奖课件
- 第一次月考 (1-2单元)(月考)- 2024-2025学年六年级上册数学人教版
- 中国的自然环境单元教学设计 湘教版
- DL∕ T 895-2004 除灰除渣系统运行导则
- 医疗装备应急管理与替代程序试题
- 地下室外墙大截面套管后开洞加固防水处理节点技术
- DZ∕T 0274-2015 地质数据库建设规范的结构与编写(正式版)
- 医院门诊医生绩效考核标准及评分细则
评论
0/150
提交评论