已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
郑州轻工业学院计算机与通信工程学院单片机原理及应用课程设计报告设计题目: 简易电子琴 学生姓名:许杰系 别:计算机与通信工程学院专 业:通信工程班 级:09-1学 号:540907040143指导教师:陈燕2011年12月26日 郑州轻工业学院实 训 任 务 书题目 简易电子琴 专业、班级 通信工程 学号 540907040143 姓名 许杰 设计要求利用4*4矩阵键盘能够发出16个不同的音调,并且可以播放完整的音乐,16*16点阵屏可以滚动显示汉字。完 成 期 限:2011年12月23日指导教师签名: 陈燕 课程负责人签名: 2011年 月 日 目录1. 概述22. 设计要求23. 设计方案23.1 方案论证23.1.1 系统基本组成23.1.2 系统基本原理23.1.3 音乐相关知识33.2 硬件设计43.2.1 主控核心43.2.2 键盘模块53.2.3 音频功放模块73.2.4 点阵显示模块83.2.5 复位电路103.2.6 时钟电路113.2.7 电源电路113.3 软件设计123.3.1 主程序流程图123.3.2 键盘扫描函数流程图133.3.3 中断服务子程序流程144. 软件调试155. 参考文献166. 课程设计小结167. 附录177.1 主要电路图177.2 完整程序18一、 概述单片机(单片微型计算机)是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠等特点。单片机的应用相当广泛,从平常的家用电器到航空航天系统和国防军事、尖端武器都能找到它的身影。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。随着社会的发展进步,音乐已经成为了我们生活中很重要的一部分。电子琴则是一种很常见的键盘乐器,是现代电子科技与音乐结合的产物,在现代音乐中扮演着重要的角色。单片机具有强大的控制功能和灵活的编程实现特性,早已溶入现代人们的日常生活中,成为不可替代的一部分。本文的主要内容是用AT89C52单片机为核心控制元件,设计一个简易电子琴。2、 设计要求利用4*4矩阵键盘能够发出16个不同的音调,并且可以播放完整的音乐,16*16点阵屏可以滚动显示汉字。三、 设计方案3.1 方案论证3.1.1系统基本组成本系统以STC89C52为主控核心,与键盘、扬声器、点阵屏等模块组成核心主控制模块,在主控模块上设有16个按键、扬声器和16*16点阵显示屏。3.1.2系统基本原理声音的频率范围约是几十到几千赫兹,若能利用程序来控制单片机某个口线不断地输出高低电平,则在改口线上就能产生一定频率的方波,将该方波接上喇叭就能发出一定频率的声音。本系统就是按此原理设计,对于STC89C52而言要产生一定频率的方波一般是先将某口线输出高电平,延迟一段时间后再输出低电平。通过改变延迟时间可以改变单片机的输出频率。单片机的延时主要有两种方式,即软件延时和使用定时/计数器延时。其中软件延时不是很精确,而电子琴电路由于每个音符的频率值要求比较严格,因此我们选用定时/计数器延时。单片机产生的音频脉冲信号没有足够的驱动能力,因此要在扬声器前加一放大电路,保证扬声器能产生所要实现的音符。键盘电路 STC 89C52运放扬声器复位电路时钟电路4-16译码器16*16点阵 图1 系统原理框图3.1.3音乐相关知识乐音听起来有的高、有的低,这就叫做音高。音高是由发声物体振动频率的高低决定的,频率高声音就高,频率低声音就低。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率组合,加以拍数对应的延时,构成音乐。如果单片机要自己播放音乐就必须考虑到节拍的设置。由于本例中是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。因此,我们只需弄清楚音乐中的音符和对应的频率。要产生相应的音频脉冲,只需要计算出某音频的周期,再除以2。利用计数器计时半周期,计满时使P2.0反向,然后重复计时再反向。本例中,单片机工作在12MHz时钟,使用定时器/计数器T0,工作模式为1,改变计数初值TH0、TL0就可产生不同频率的脉冲信号。例如低3MI音,频率为330Hz,其周期T=1/f=1/330=3030us,计数值N=3030/2=1515,所以每计数1515次P2.0反向。计数初值T=65536-N=64021。C调的各音符频率与计数值T的对照表如表1所示。表1 C调各音符频率与计数值T对照表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低 1 DO26263628# 4 FA#74064860# 1 DO#27763731中 5 SO78464898低 2 RE29463853# 5 SO#83164934# 2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI1967652833.2硬件设计3.2.1主控核心本实例采用STC89C52作为主控核心。 图2 STC80C52管脚图STC89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可以按照常规方法进行编程,并可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 STC89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。 主要引脚功能:1. RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;2. XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入;3. XTAL2(18):来自反向振荡器的输出;4. P1口(18):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流;5. ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲;6. PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现;3.2.2 键盘模块键盘是最常用的单片机输入设备,大致可以分为独立连接式键盘和矩阵式。独立连接式键盘是最简单的键盘电路,每个键独立接入一根数据线。这种键盘结构简单,使用方便,但是占用的I/O口线较多。矩阵式键盘由行线和列线组成,按键位于行列的交叉点上,行线通过上拉电阻接到高电平。行列式键盘可节省I/O口,适合按键数较多的场合。所以本例的4X4键盘采用行列式键盘。 图3 键盘输入模块通过行列键盘扫描的方法可获取键盘输入的键值,从而知道按下的是哪个键,具体过程如下:(1) 查询是否键按下。单片机向列扫描口输出全为“0”的扫描码,然后检测行线信号,只要有一行信号不为“1”,则表示有键按下,且不为“1”的行即是按下的键的所在行。(2) 查询按下键所在具体位置。用逐列扫描的方法确定按下键所在的行号。单片机先使第一列为“0”,其余列为“1”,接着进行信号检测,若全为“1”则按下键不再第一列;然后是第二列为“0”,其余列为“1”,在进行列信号检测,若全为“1”,则按下键不再第二列;往下依次类推。(3) 将得到的行号列号译码。对于4X4行列式键盘,可用一个字节(8位)来对键盘编码。本例中,将直接的高4为表示列号,低4位表示行号。在键盘扫描过程中,应该注意以下几个问题。(1)按下按键时,按键会产生机械抖动,一般持续几到几十毫秒。在键盘扫描过程中,必须注意键盘的消抖处理。(2)在键盘扫描过程中,应防止按一次键而多个对应键输入的情况。在按键处理完毕后,还应检测按下的键是否松开,只有按下的键松开后程序才往下执行。这样每按一个键,只做一个键处理。 表2 键盘的按键与键值编码对应关系表按键列号行号键值编码1(低3MI)1111H(00010001)2(低4FA)1221H(00100001)3(低5SO)1341H(01000001)4(低6LA)1481H(10000001)5(低7SI)2112H(00010010)6(中1DO)2222H(00100010)7(中2RE)2342H(01000010)8(中3MI)2482H(10000010)9(中4FA)3114H(00010100)10(中5SO)3224H(00100100)11(中6LA)3344H(01000100)12(中7SI)3484H(10000100)13(高1DO)4118H(00011000)14(高2RE)4228H(00101000)15(高3MI)4348H(01001000)16(高4FA)4488H(10001000)3.2.3音频功放模块图4 LM386管脚图LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386的外形和引脚的排列如图4所示。引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10F。LM386的电源电压4-12V或5-18V(LM386N-4);静态消耗电流为4mA;电压增益为20-200dB;在1、8脚开路时,带宽为300KHz;输入阻抗为50K;音频功率0.5W。尽管LM386的应用非常简单,但稍不注意,特别是器件上电、断电瞬间,甚至工作稳定后,一些操作(如插拔音频插头、旋音量调节钮)都会带来的瞬态冲击,在输出喇叭上会产生非常讨厌的噪声。要注意以下几点:1、 通过接在1脚、8脚间的电容(1脚接电容+极)来改变增益,断开时增益为20dB。因此用不到大的增益,电容就不要接。2、 PCB设计时,所有外围元件尽可能靠近LM386;地线尽可能粗一些;输入音频信号通路尽可能平行走线,输出亦如此。这是死理,不用多说了吧。3、 选好调节音量的电位器,阻值不要太大,10K最合适,太大会影响音质。4、 尽可能采用双音频输入/输出。好处是:“”、“”输出端可以很好地抵消共模信号,故能有效抑制共模噪声。5、 第7脚(BYPASS)的旁路电容不可少!实际应用时,BYPASS端必须外接一个电解电容到地,起滤除噪声的作用。工作稳定后,该管脚电压值约等于电源电压的一半。增大这个电容的容值,减缓直流基准电压的上升、下降速度,有效抑制噪声。6、 减少输出耦合电容。减小该电容值,可使噪声能量冲击的幅度变小、宽度变窄;但也不能减得太小,太低会使截止频率(fc1/(2*RL*Cout))提高。7、 电源的处理。如果系统中有多组电源,由于电压不同、负载不同以及并联的去耦电容不同,每组电源的上升、下降时间必有差异。一般选择上升相对较慢的电源作为LM386的Vs,但不要低于4V。图5 简易电子琴音频功放电路原理图3.2.4 点阵显示模块图6 点阵显示器内部原理图当行上给一个高电平,相应列上给一个低电平,则相应的发光二级管被点亮。这样就可以使处于亮状态的LED组成我们需要的各种形态。LED点阵所包含的LED数量巨大,所以显示一般采用扫描方式。LED点阵显示模块进行的方法有两种:(1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该行上那哪个LED亮(相当于段码)。能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。另外使用译码器进行行或列的扫描可以大大减少I/O口占用,这里我们使用的是74HC1544线-16线译码器。图7 74HC154真值表图8 点阵显示部分电路图3.2.5 复位电路当单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。本次设计采用手动复位电路。在单片机启动后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。图9 复位电路3.2.6 时钟电路时钟电路用于产生单片机工作所需的时钟信号。震荡有两种方式:外部震荡、内部震荡。在AT89C52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器,如图7所示。电路中的电容一般取30pF左右,而晶体的振荡频率范围通常为1.212MHz。本例采用12MHz的晶振。图10 晶体振荡电路3.2.7 电源电路主要元器件选择及介绍:三端固定输出集成稳压器CW7805,其输出电流有100mA、500 mA、1A、1.5A和3A以上等电流档次之分。此处可选用输出电流为1A的塑封三端固定输出集成稳压器CW7805,其电气参数典型规范值为:输入直流电压:Ui=10V输出直流电压:Uo=5V电压调整率:Su(Uo)=2.0mV电流调整率:Si(Uo)=8.0mV纹波抑制比:Sr=75dB输入、输出最小电压差(Ui-Uo)min=2.0V最高输入电压:Uomax=3540V静态工作电流:Id=4.2 mA整个系统采用的电源电压只需+5V电压,所以,采用不可调的三端稳压器件,用常用的LM7805就可以满足系统电源的要求。LM7805三端继承稳压电源内部由基准电压回路、恒流源、过压保护、过流保护和短路保护等八个部分组成,具有低功耗、高效率、纹波系数小、输出电压稳定等优点。3.3 软件设计目前普通低档单片机的编程中,一般会用汇编和C。汇编语言非常接近计算机的硬件,因此,它可以最大限度地发挥计算机硬件的性能。用汇编写的程序执行速度相当快,适用于实时性要求较高的场合。但是用汇编写的程序比较庞大,编写速度也比较慢,而且汇编程序的移植性较差。C语言作为高级语言,运用灵活,可自定义很多东西,更改方便,移植性好,且无需懂得单片机的具体硬件也能编出程序。但C语言写好后是不能直接运行,需要编译,经过编译生成单片机专用的机器码后才能直接运行,效率是要低于直接用汇编写出来的代码的。不过如果谈到开发速度、软件质量、结构严谨、程序坚固等方面的话,则C语言的完美绝非汇编语言编程所可比拟的。3.3.1主程序流程图开始初始化按键按下?获取键值设置T0并启动按键释放?关闭T0noYesnoYes定时器0服务子程序重设定时器P2.0反向,产生输出脉冲RET图11 简易电子琴主程序流程图主程序(程序见附表)先将各部分数值初始化,然后扫描键盘,看是否有按键按下。有按键按下则再逐行扫描获取键值;无按键按下则返回继续判断有无按键按下。根据不同的键值,设定不同的计数初值,使用计数器T0,在模式1下计数。接着判断按键是否释放,若未释放则继续计数,若释放则关闭计数器T0,返回再次判断有无按键按下。其流程图如图8。3.3.2键盘扫描函数流程图P1=0xef有键按下吗?延时10ms真的有键按下吗?根据当前状态识别按键P1=0xcf有键按下吗?延时10ms真的有键按下吗?根据当前状态识别按键P1=0xbf有键按下吗?延时10ms真的有键按下吗?根据当前状态识别按键P1=0x7f有键按下吗?延时10ms真的有键按下吗?根据当前状态识别按键YesNoYesNoYesNoYesNoYesNoYesNoYesNoYesNo图12 键盘扫描函数流程图先给P1口赋值,使P1=0xef,扫描第一行,判断第一行是否有按键按下。因为按键会产生机械抖动,所以必须延时消抖,再次进行判断有无按键按下。有按键按下,则根据当前状态识别按键的确切编码。没有则使P1=0xdf,扫描第二行,判断第二行是否有按键按下,消抖再判断,则根据当前状态识别按键的确切编码。没有则使P1=0xbf,扫描第三行,判断第三行是否有按键按下,消抖再判断,则根据当前状态识别按键的确切编码。没有再使使P1=0x7f,扫描第四行。程序流程如图9所示。3.3.3中断服务子程序流程图定时器0服务子程序重设定时器P3.7反向,产生输出脉冲RET图13 中断服务子程序流程图C语言编写中断程序,在main函数中直接对各位进行操作,以确定中断优先级,开启中断允许及总中断允许。为进行中断的现场保护,80C52单片机除采用堆栈技术外,还独特地采用寄存器组的方式。但是C语言编程时,内存是由编译器分配的,不能简单的通过设置RS0,RS1来切换工作寄存器组。否则会造成内存使用的冲突。在C52中寄存器组选择取决于特定的编译器指令。高优先级中断可以中断正在处理的低优先级程序,因此必须注意寄存器组。分配的方法是使用using n指定,其中n的值是03,对应使用4组工作寄存器。定时器服务子程序:void BeepTimer0(void) interrupt 1/音符发生中断BeepIO = !BeepIO;TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0;四、软件调试此次设计使用Keil C软件进行调试。调试软件介绍:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。程序调试界面如下图所示:图14 Keil C调试界面调试步骤:1) 打开Keil C软件,Project-New uVision Project,新建工程。File-New,新建并添加源程序文件,保存时使用扩展名.c。2) 在Project Workspace中,左击Source Group 1,选择Add Files to Group Source Group 1,然后选择相应源文件。3) 参数设置。选中项目文件,右击“Target 1”,在弹出的菜单中进行有关的参数设置。4) 编译。单击Project菜单下的Build Target或Rebuild all target files菜单,对源文件进行编译。当源文件有语法错误时,输出窗口会有提示。5) 仿真调试。单击Debug菜单下的Start/Stop Debug Session子菜单,单击Peripherals可打开单片机的I/O端口、定时器及中断等功能部件。单击View菜单下的子菜单,可打开反汇编、存储器、堆栈、代码等窗口,进行有关数据的观察。五、参考文献1. 单片机原理与应用设计 张毅刚 彭喜元 电子工业出版社2. 嵌入式C语言程序设计 郁文工作室 人民邮电出版社3. 电子技术基础模拟部分 康华光 高等教育出版社4. 51单片机C语言教程入门、提高、开发、拓展全攻略 郭天祥 电子工业出版社5. 数字逻辑与数字系统 王永军 李景华 电子工业出版社六、课程设计小结 本次课程设计通过制作简易电子琴,我很好的将自己的理论知识与实践相结合起来,进一步巩固了专业基础知识和相关专业课程知识,同时也培养了自己独立自主、综合分析的思维与创新能力。在设计的过程中遇到过各种各样的问题,设计的过程也不是一帆风顺。特别是设计软件时,一些很细小的问题都可能导致功能性的错误,修改了多次才通过仿真。在设计过程中我发现自己对以前所学过的知识理解得不够深刻,掌握得不够牢固,所以也利用图书馆、网络资源查阅了大量文献资料,请教了很多同学。同时在具体的制作过程中我们发现一些书本上的知识与实际的应用存在着一定的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方面的问题,这也让我更深刻地体会到在今后的学习工作中也要注重理论联系实际,更重要的是增强了我们的团队合作意识,让我们意识到以后不管到哪个岗位上都离不开自己的团队,如果没有小组成员共同努力,不管是在质量上还是在设计时间上都会大大折扣。七、附录7.1:原理图图15 电路仿真图图16 单片机最小系统原理图7.2:程序清单playmusic.c/#include #includekeyboard.h#includedzp.h#include SoundPlay.hsbit key_1=P34;sbit key_2=P35;sbit key_3=P36;void Delay1ms(unsigned int count)unsigned int i,j;for(i=0;icount;i+)for(j=0;j120;j+);/*Music*/挥着翅膀的女孩unsigned char code Music_Girl= 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03, 0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03, 0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03, 0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02, 0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02, 0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00;/同一首歌unsigned char code Music_Same= 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 ;/两只蝴蝶 unsigned char code Music_Two = 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高考数学复习讲义专题01 集合与逻辑(解析版)
- 妇科外阴炎诊疗技术操作规范
- 2026年生物基材料创新项目公司成立分析报告
- 2026年智能板式换热器项目公司成立分析报告
- 2026年能源梯级利用项目可行性研究报告
- 2026年数据中心绿色化改造项目公司成立分析报告
- 2026年反电信诈骗知识竞赛试题及答案(三)
- 2026年文化IP授权旅游项目商业计划书
- 社保入门培训
- 电视介绍教学
- 林规发防护林造林工程投资估算指标
- GB/T 23821-2022机械安全防止上下肢触及危险区的安全距离
- GB/T 5563-2013橡胶和塑料软管及软管组合件静液压试验方法
- GB/T 16895.6-2014低压电气装置第5-52部分:电气设备的选择和安装布线系统
- GB/T 11018.1-2008丝包铜绕组线第1部分:丝包单线
- GA/T 765-2020人血红蛋白检测金标试剂条法
- 武汉市空调工程毕业设计说明书正文
- 麻风病防治知识课件整理
- 安全安全应急救援预案(沟槽开挖)
- 权利的游戏双语剧本-第Ⅰ季
- 卫生部《臭氧消毒技术规范》
评论
0/150
提交评论