资源描述
- -
学士学位毕业设计〔论文〕
论文题目
学生:
指导教师:
所在学院:信息技术学院
专 业:计算机科学与技术
中国·
2007 年 6 月
八一农垦大学
本科毕业设计〔论文〕任务书
学生
所在班级
导师
导师职称
论文题目
题目
分类
Ö
Ö
1.应用与非应用类:〇工程 〇科研 〇教学建立 〇理论分析〇模拟
2.软件与软硬结合类:〇软件〇硬件〇软硬结合〇非软硬件
〔1、2类中必须各选一项适合自己题目的类型在〇打√〕
主要研究容及指标:
主要参考文献:
[1](英)Ian Graham. Object-Oriented Methods: Principles&Practice. Third Edition. Pearson Education. 2003
[2]春葆等.Visual Basic程序设计.:清华大学出版设.2005
阶段规划:
开题时间
完成论文时间
专家审定意见:
系主任签字:
年 月 日
注:1.任务书由指导教师填写后交给学生,要求学生妥善保存。
2.此任务书夹于论文扉页与论文一并装订,作为论文评分依据之。
- word.zl
- -
摘要
随着电子技术的开展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。本次课程设计主要容是通过单片机C51语言进展编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言〔音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间〕,并将其预先存储到单片机里,然后根据按键调用再由单片机进展信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显示器上显示相应播放歌曲的曲名和滚动歌词。再加上一个开关键来控制歌曲的播放停顿。本设计的目的是培养理论联系实际的学习方法以及独立解决工程实际问题的能力。能够熟识单片机C51语言的编程特性,及其应用。能够用C51语言进展编程,能成功的编出较为简单的程序。
关键词:单片机, 音乐, 蜂鸣器, 同步显示
- word.zl
- -
Abstract
With the development of electronic technology and puter more and more mon use, the single chip microputer as two of the organic bination of technology and a wide range of applications and, in some areas has the role that cannot be replaced. Music play function everywhere can use, such as, in the development of children's intelligence toys, and so on. At present, based on the single chip microputer music playback, its small size, low price, programming characteristics such as flexible in this field dominate. This course design main content is through the single-chip microputer C51 language programming, to produce music notes and beat, the score translated into puter language (note conversion ChengCheng corresponding square wave frequency that is loaded initial value, timer beat converted into a corresponding extended time), and the storage to the single chip microputer in advance, and then based on the button again call by MCU is information processing, after amplification, released by the speaker strains, realizing the function of the music played. The main performance can play in ten songs, can use ten numeric keys control play songs, and in LCD screen monitors displayed the corresponding play songs music name and rolling lyrics. Plus a open key to control the songs played to stop. The purpose of this design is to cultivate the theory with the practice as well as independent learning methods solving engineering problem ability. Familiar with single-chip microputer C51 language to programming characteristics, and its application. To be able to use language C51 programming, to the success of the make up of the simpler program.
Keywords:Microcontroller, music, buzzer, simultaneous display
目 录
课程设计〔论文〕任务书I
摘要II
第一章 绪论1
1.1课程设计目的1
1.2课程设计任务1
1.3课程设计要求1
1.4课程设计的意义1
第二章 设计原理及总体方案选择2
2.1 设计原理2
2.1.1 根本原理简述2
2.1.2 关于音乐的原理知识3
2.2 设计方案的拟定和选择5
2.2.1.根本方案5
2.2.2.附加方案5
第三章 音乐播放器硬件电路的设计和调试6
3.1 硬件原理电路的设计6
3.1.1 时钟与复位模块6
3.1.2 按键选择模块6
3.1.3 音频发生及放大器模块7
3.1.4 LCD显示模块7
3.1.5 电路原理图7
3.2 ATMEL 89C51简介8
3.2.1 AT89C51单片机8
3.2.2 单片机CPU构造9
3.2.3 AT89C51用户系统9
3.2.4 引脚介绍10
第四章 软件编程设计与综合测试10
4.1 编程思路简述10
4.2 编程方案的设计12
4.2.1 软件功能选择12
4.2.2 综合调试12
4.2.3 程序流程图13
4.2.4 程序清单14
参考文献24
致24
心得体会25
- word.zl
- -
第一章 绪论
1.1课程设计目的
应用单片机,利用它的原理组成一个音乐播放器。
1.2课程设计任务
1) 以单片机为核心部件组成一个音乐播放器;
2) 利用单片机的定时器产生乐谱的各种频率方波,信号经过放大后由蜂鸣器发出声音;
3) 自行定义按键盘,当有键按下时,能相应的播放出歌曲。有一个停顿键能控制音乐的播放;
4) 在LCD液晶显示屏上同步显示演奏歌曲的曲名;
5) 附加要求:在LCD上滚动显示演奏歌曲的歌词。
1.3课程设计要求
1〕用Protel画出硬件原理图;
2〕画出软件流程图,采用单片机C语言或汇编语言进展编程;
3〕完成硬件与软件调试综合调试,实现预定功能,并写出课程设计报告。
1.4课程设计的意义
通过自己动手设计单片及组成的器件,在软件及硬件上进一步了解单片机的原理,深入了解了单片机C51语言的实际应用,能更深地理解课堂上所学的容,稳固C语言程序编写,亲身体会作为一名设计人员所需要具备的各种能力,学会理论知识联系实际,提高我们发现问题,分析问题,解决问题和实践动手的能力。
第二章 设计原理及总体方案选择
2.1 设计原理
2.1.1 根本原理简述
声音是通过振动产生的。单片机对某一引脚以一定的频率循环置1置0,该引脚便产生一定频率的方波,方波通过放大,作用于一定的物理实件〔蜂鸣器〕,就产生了一定频率的声音。假设改变输出方波的频率,产生的声音随之改变。通过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就可以产生电子音乐。音乐的播放选择可以通过按键的输入得以实现。
为简便起见,以一定的频率方波产生的音在其每个周期上下幅值得时间各占一半因此,输出引脚在每个方波周期要动作两次:一次升高,一次降低。即输出引脚的频率是原音频率的两倍。
方波的产生由定时器控制。定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。必须考虑到中断响应时间的影响,尤其在高音局部,假设忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音局部影响不大。一般中断响应时间为3~6个机器周期,经过反复试验取5个机器周期作为校正最为恰当,表1中所给的定时初值就是考虑中断响应后的定时常数。另外,为防止T1中断可能引起杂音,应将定时器T0中断设为高优先级。这样编写出来的程序播放的音与标准音叉进展差频校音,非常准确和谐。
音乐播放器的根本硬件电路有六局部组成:单片机、时钟与复位电路、选择按键输入电路、音频发生器、音频放大器和扬声器。音乐播放器硬件电路设计框图如图2.1所示。
LCD液晶显示屏显示
时钟与复位
电路
单片机
音频发生器
按键输入
歌曲选择电路
蜂鸣器
音频放大器
图2.1 音乐播放器硬件电路设计框图
利用单片机部定时器/计数器T0与P1.1引脚配合,构成音频发生器,与外置电路组成音频放大器,驱动扬声器输出。LCD液晶模块以并行方式与微控制器相连,15脚接高电平为并行方式,通过送入指令和数据,可对显示方式和显示容做出选择。
2.1.2 关于音乐的原理知识
在音乐中使用的各个固定频率的音叫音级[1]。常用符号C、D、E、F、G、A、B、c、d、e、……a1、b1、c2、d2……表示,它们对应于钢琴上的白键。两音之间音高的距离叫音程。在上述音级中,E与F、B与C之间音高的距离仅为其它相邻音级之间距离的一半,称它们之间的音程为半音音程,而称其它相邻各音之间的距离为全音音程。在这些全音音程之间又参加新的半音音级,用符号﹟C、﹟D、﹟F、﹟G、﹟A、﹟c、﹟d、﹟f、……表示,对应于钢琴上的黑键。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。
表2.1 各音符及对应频率
音符
低DO
低#DO
低RE
低#RE
低MI
低EA
简谱码
DO_L
DO#_L
RE_L
RE#_L
MI_L
FA_L
频率
262HZ
277HZ
294HZ
311HZ
330HZ
349HZ
音符
低#FA
低SO
低#SO
低LA
低#LA
低SI
简谱码
FA#_L
SO_L
SO#_L
LA_L
LA#_L
SI_L
频率
370HZ
393HZ
415HZ
440HZ
466HZ
494HZ
音符
中DO
中#DO
中RE
中#RE
中MI
中EA
简谱码
DO
DO#
RE
RE#
MI
FA
频率
523HZ
554HZ
587HZ
622HZ
659HZ
698HZ
音符
中#FA
中SO
中#SO
中LA
中#LA
中SI
简谱码
FA#
SO
SO#
LA
LA#
SI
频率
740HZ
785HZ
831HZ
880HZ
932HZ
988HZ
音符
高DO
高#DO
高RE
高#RE
高MI
高EA
简谱码
DO_H
DO#_H
RE_H
RE#_H
MI_H
FA_H
频率
1047HZ
1109HZ
1174HZ
1245HZ
1318HZ
1397HZ
音符
高#FA
高SO
高#SO
高LA
高#LA
高SI
简谱码
FA#_H
SO_H
SO#_H
LA_H
LA#_H
SI_H
频率
1480HZ
1568HZ
1661HZ
1760HZ
1865HZ
1976HZ
每个音符分为简谱码和节拍码。简谱码为D0-L到SI-H,节拍码为1到16。对应的节拍表如表2.2所示。
对应的拍子:
2/2。。。。。。。。。。。以二分音符为一拍,每小节有两拍〔二分音符代表一拍〕
2/4。。。。。。。。。。。以四分音符为一拍,每小节有两拍〔四分音符代表一拍〕
3/4。。。。。。。。。。。以四分音符为一拍,每小节有三拍〔四分音符代表一拍〕
4/4。。。。。。。。。。。以四分音符为一拍,每小节有四拍〔四分音符代表一拍〕
表2.2 节拍表
拍数
字符
拍数
字符
1/8
00H
2
08H
1/4
01H
5/2
09H
1/2
02H
3
0AH
3/4
03H
7/2
0BH
1
04H
4
0CH
5/4
05H
5
0DH
3/2
06H
6
0EH
7/4
07H
8
0FH
2.2 设计方案的拟定和选择
2.2.1.根本方案
实现2个按键选择10首歌曲,能够实现音乐播放。演奏通过按键来停顿,在LCD上显示演奏歌曲的名称。
简单说明:控制键盘,使其IRQ引脚接单片机的外部中断0,一旦有键按下就对应一首曲播放目。停顿按键可以使用外部中断1来实现。关于LCD采用的是并行接法传输数据,查找汉字码表找出各首歌名的对应数码,软件中用数组存储即可,一个歌名用一个数组,根据按键可以把存储各首歌名数码的数组首地址传给全局指针,调用显示函数即可显示相应的歌名。
各音调对应的定时器初始装载表也以数组的形式按升调顺序存储,并按前面所述将各歌曲的对应音调和节拍存储在数组中,有按键按下时,将对应歌曲的数组首地址传给全局指针,利用相应的处理函数调出音调对应的定时器装载值表,给定时器装载初值并启动,产生控制扬声器的方波,根据低半字节控制延时时间,即音调的发音长短。
2.2.2.附加方案
能够在播放音乐得同时,实现LCD同步显示歌曲的歌名和歌词容 。
第三章 音乐播放器硬件电路的设计和调试
3.1 硬件原理电路的设计
由设计原理框图2.1,分别设计相应模块,构成原理图。
3.1.1 时钟与复位模块
由电容,电位器,按键组成复位电路局部,该电路接于单片机的RESET端可以通过按键到达手动复位的效果,也可以通过电位器和电容组成上电复位电路。通过复位电路使单片机回到初始状态。
图 3.1 复位电路和晶振时钟电路
3.1.2 按键选择模块
图3.3 按键选择模块
通过74LS138与P3.0口、按键公共端及按键和P1口相连,构成按键选择模块。P3.0口输出0时,选择左边8个键,P3.0口输出1时,选择右边8八个键。是某个键按下可由P1口读取。
3.1.3 音频发生及放大器模块
由非门〔74LS04〕,三极管〔9014〕,蜂鸣器,电阻组成的外部驱动发音电路。该电路局部接于P3.1口,经过外部非门和三极管的驱动,通过扬声器发出音乐。
图 3.3 音频发生与放大电路
3.1.4 LCD显示模块
由 LCD1602,按键和保护电阻组成的外部扩展电路。其工作过程是通过单片机P1.6、P1.7和P2.7接于 LCD1602,使其接收单片机由使用者通过按键发来的信息,显示歌曲名称,在没有设备启动没有按键工作时显示“按键选择歌曲〞,当有按键工作后,设备播放歌曲同时显示歌曲序号及歌曲名称。
3.1.5 电路原理图
综合以上功能模块,连接于单片机,绘制原理图如图3.4所示。
图 3.4 音乐播放器电路原理图
3.2 ATMEL 89C51简介
3.2.1 AT89C51单片机
AT89C51是美国ATMEL公司推出的系列单片机,将多种功能的8位CPU与FPEROM〔快闪可编程/擦除只读存储器〕结合在一个芯片上,是一种低功耗、高性能的CMOS控制器,为很多嵌入式控制应用提供了非常灵活而又价格适宜的方案,其性能价格比远高于同类芯片。它与MCS-51指令系统兼容,片FPEROM允许对程序存储器在线重复编程,也可用常规的EPROM编程器编程,可循环写入/擦除1000次。89C51含4KB的FPEROM,一般的EEPROM的字节擦除时间和写入时间根本上均为10ms,对于任一个实时控制系统来说,这样长的时间是不可能在线修改程序的。
3.2.2 单片机CPU构造
图3.6单片机CPU构造
3.2.3 AT89C51用户系统
l CPU为Atmel公司生产的89C51/89C52/89C55等。出厂所配晶振频率为11.0592MH,每个机器周期为1.085us,用户更换晶振以提高速度;
l 存贮器为64K,前4K/8K20K在CPU部,其它程序在EPR0M27512中;
l 数据存贮器为32K(62256),地址为8000—FFFFH;
l Ⅰ/O扩展8155,片RAM地址∶200O-20FFH ;
l 8155命令口地址为∶2100H ;
l A口地址∶21O1H B口地址:2102H C口地址:2103H ;
l T低八位∶2104H T高八位∶2105H ;
l 多路模拟开关的使用∶
IN0∶P1=0F8H IN4:P1=0FCH IN1∶P1=0F9H IN5:P1=OFDH
IN2∶P1=0FAH IN5:P1=0FEH IN3∶P1=0FBH IN7:P1=0FFH
l 不掉电数据存贮器为∶500EH-507FH ;
l 控制板∶160x1O9(mm) 供电∶+5V300mA +12V100mA -12V100mA ;
l AT89C51是一种低功耗、高性能的片含有4KB快闪可编程/擦除只读存储器〔FPEROM-Flash Programmable and Eraseable Read Only Memory〕的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容;
l 主要性能:
与MCS-51 微控制器产品系列兼容;
片有4KB可在线重复编程的快闪擦写存储器 。
3.2.4 引脚介绍
图3.7 89C51引脚图
第四章 软件编程设计与综合测试
4.1 编程思路简述
要产生音频信号,只要算出某一音频的周期〔频率的倒数〕,将此周期除以2即为半周期的时间,利用定时器计时此半周期时间,计时到后取反输出,重复此过程即得到此频率的声音信号。此信号从P3.0脚输出。
定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。必须考虑到中断响应时间的影响,尤其在高音局部,假设忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音局部影响不大。一般中断响应时间为3~6个机器周期,经过反复试验取5个机器周期作为校正最为恰当,表2.1中所给的定时初值就是考虑中断响应后的定时常数。另外,为防止T1中断可能引起杂音,应将定时器T0中断设为高优先级。这样编写出来的程序播放的音与标准音叉进展差频校音,非常准确和谐。本设计中单片机晶振频率为11.0592MHz。
每个音符使用两个字节。低位字节〔偶地址〕代表音级,00H表示不发音〔休止符〕,01H~30H依次表示的音级为c、﹟c、d、﹟d、e、f、……a3、﹟a3、b3 ,详见表2.1。高位字节〔奇地址〕代表音符的时值〔拍数〕,00H~0FH依次表示拍数为1/8拍〔0.10s〕~8拍〔6.40s〕,见表2.2。乐曲的完毕标志是两个字节:0FFH,0FFH。
设计延时程序125ms,来控制节拍,并在延时中判断是否有停顿键按下,以便随时停顿音乐。改变延时程序的延迟时间,即可实现歌曲的快慢演奏。
主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和演唱子程序,启动定时器T0;通过延时控制节拍,并循环回音级子程序,等待演唱完毕。
要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的容来实现的。
主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0;根据定时器T1应中断的次数,启动定时器T1。数据表读完后,根据所设置的循环演奏次数决定是否完毕程序。音级子程序的任务是取出字节中的音级局部,分析TH0和TL0中应送入何值,送给33H,34H。演唱子程序的任务是取出对应频率值,并乘以2,启动T0,实现发音。之后执行延时程序,表达节拍,依此循环,直到音乐完毕。
定时器T0的中断效劳程序任务是取反P3.0输出产生方波,重新为TH0,TL0送初值。
定时器T1的中断效劳程序任务是:判断计数完成否,给373的控制端高或低电平,从而实现数据输出或制止,到达二极管亮灭闪烁的效果。
当乐曲较长时〔超过254个字节〕,数据表指针溢出,应及时修改基址存放器DPTR容,即数据表的表头指针。
4.2 编程方案的设计
4.2.1 软件功能选择
1〕对于11个按键的功能设计,除一个停顿键,其余十个键分别对应十首歌。演奏过程中,按停顿键可使乐曲停顿,LCD上出现欢送界面,此时可以继续按其他键继续选择其他歌曲演奏。选歌的按键使用8279键盘扫描以获得键值。停顿键使用的单片机的外部中断1实现其功能的。
2〕对于LCD,首先启动时出现“请按键选择播放曲目〞的字样提示使用者,获得键值后开场播放歌曲的同时在LCD上显示歌曲名,当按下停顿键后,歌曲停顿播放,同时LCD上又出现提示界面,依次循环。
4.2.2 综合调试
在实验箱上进展调试,先是进展单个模块调试,键盘与LCD显示器一起进展调试,调试成功后,再在实验箱上进展播放歌曲的调试,使其能单曲循环播放,当有开关键按下时,就停顿播放歌曲,再按下时,又重新播放歌曲。最终实现当有数字键按下时,演奏对应的歌曲,并在显示屏上显示出曲目。当停顿键按下时,停顿播放歌曲。
4.2.3 程序流程图
图 4.1 音乐播放器程序流程图
4.2.4 程序清单
#include <REG51.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar m,n;
uchar i,timecount=0,timesec=0,timemin=0,timecheck=0;
char r0=2;
sbit beepIO=P2^1;
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef bit BOOL ;
sbit rs = P1^6; //
sbit rw = P1^7; //RW
sbit ep = P2^7; //LODE
sbit pausekey=P1^1;
uchar k,q,f;
uchar code dis1[] ={"ai qing mai mai"};//
uchar code dis2[] = {"ji gong"};
uchar code dis3[] ={" duan qiao can "};//17
uchar code dis33[] ={" xue "};
uchar code dis4[] = {"dao jian ru meng"};
uchar code dis5[] ={"liang zhi hu die "};
uchar code dis6[] = {"muo li hua"};
uchar code dis7[] ={"qing hua ci "};
uchar code dis8[] = {"sheng lin kuang "};//
uchar code dis88[] = {" xiang qu "};
uchar code dis9[] ={"sheng ri kuai le "}; //16
uchar code dis10[] = {"xing nian hao "};//14
uchar code dis11[] ={"zhu ba jie qu "};
uchar code dis1111[] ={" xi fu "};
uchar code dis222[] ={" wele!! "};
uchar code T[49][2]={{0,0},
{0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},
{0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},
{0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},
{0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}
};
uchar code music1[][2]={{0,4}, // 1爱情买卖
{22,4},{22,4},{17,4},{15,4},{15,4},{17,12},
{15,4},{15,2},{17,2},{15,4},{13,4},{13,4},{15,12},{0,4},
{20,4},{20,4},{20,4},{17,4},{20,4},{20,4},{20,4},{17,4},
{22,4},{17,4},{17,4},{15,4},{15,4},{17,12},
{22,4},{22,4},{17,4},{15,4},{15,4},{17,12},
{15,4},{15,2},{17,2},{15,4},{13,4},{13,4},{15,12},
{20,4},{20,4},{20,2},{17,2},{17,4},{20,4},{20,4},{20,2},{17,2},{17,2},{17,2},
{24,4},{20,4},{20,2},{17,2},{17,4},{20,4},{22,12},
{17,4},{22,4},{25,4},{25,4},{17,4},{22,4},{25,8},
{24,4},{22,2},{24,2},{22,4},{20,4},{15,4},{17,12},
{15,4},{15,4},{15,4},{10,4},{15,4},{17,4},{20,8},
{17,4},{24,4},{24,4},{20,4},{15,4},{17,12},
{17,4},{22,4},{25,4},{25,4},{17,4},{22,4},{25,8},
{29,4},{27,2},{29,2},{27,4},{25,4},{25,4},{27,12},
{29,4},{29,2},{27,4},{25,4},{27,6},{27,2},{25,4},{24,4},
{20,4},{20,2},{17,2},{20,4},{20,2},{22,2},{22,16},
{0xFF,0xFF}};
uchar code music2[][2]={{0,4}, //2济公
/*鞋儿破*/
{16,6},{19,2},{19,6},{16,2},{14,6},{0,10},{16,6},{19,2},{19,6},{16,2},{14,8},{0,8},
{26,8},{21,6},{24,2},{23,6},{21,2},{19,8},{21,16},{0,8},
/*你笑我…*/
{16,6},{19,2},{19,6},{16,2},{14,8},{0,8},{26,8},{21,6},{23,2},{21,14},
/*一把扇儿…*/
{24,6},{23,2},{21,6},{19,2},{16,6},{14,2},{13,8},{14,16},{0,4},
/*南无阿弥陀佛*/
{19,6},{19,2},{21,6},{21,2},{23,8},{21,4},{0,4},{19,6},{19,2},{16,6},{19,2},{16,8},{14,6},{0,4},
{19,6},{19,2},{21,6},{21,2},{23,8},{21,4},{0,4},{19,6},{19,2},{16,6},{19,2},{16,8},{14,6},{0,4},
{26,16},{21,4},{26,4},{21,4},{26,16},{21,4},{26,16},{0,4},
/*无烦无恼*/
{16,8},{16,8},{14,8},{16,8},{21,4},{26,4},{21,4},{26,4},{0,8},{16,8},{16,8},{14,8},{16,8},{21,4},{26,4},{21,4},{26,4},{0,8},
//走啊走乐啊乐
{19,8},{19,6},{21,2},{16,8},{0,8},{19,6},{21,2},{19,6},{21,2},{16,8},{0,8},
//哪有不平哪有我
{21,8},{26,8},{21,4},{24,12},{23,6},{21,2},{19,8},{21,16},
//哪有不平哪有我
{14,4},{21,4},{14,4},{19,4},{16,6},{14,2},{13,8},{14,16},
{0xFF,0xFF}};
uchar code music3[][2]={{0,4},//3断桥残雪
{27,4},{19,4},{19,4},{27,4},{26,4},{26,2},{27,2},{24,8},
{22,4},{17,4},{24,4},{22,4},{19,16},
{15,4},{12,4},{12,4},{15,4},{17,8},{19,8},
{26,6},{26,2},{26,4},{24,4},{24,4},{19,4},{19,8},
{27,4},{19,4},{19,4},{27,4},{26,4},{26,2},{27,2},{24,6},{24,2},
{22,4},{17,4},{24,4},{22,4},{19,16},
{15,4},{12,4},{12,4},{15,4},{17,8},{19,8},{19,6},{19,2},{19,4},{17,4},{14,4},
展开阅读全文