数字音乐盒设计

上传人:ph****6 文档编号:66279271 上传时间:2022-03-27 格式:DOC 页数:30 大小:91.50KB
收藏 版权申诉 举报 下载
数字音乐盒设计_第1页
第1页 / 共30页
数字音乐盒设计_第2页
第2页 / 共30页
数字音乐盒设计_第3页
第3页 / 共30页
资源描述:

《数字音乐盒设计》由会员分享,可在线阅读,更多相关《数字音乐盒设计(30页珍藏版)》请在装配图网上搜索。

1、-基于51单片机的可控数字音乐盒设计摘 要本文是一篇基于AT89C51单片机的可控数字音乐盒的程序设计。该音乐盒是一个依据单片机技术原理,通过PROTEUS仿真软件对硬件电路进展仿真制作以及利用KEIL软件对音乐盒源程序进展C语言编译,而设计制作出的一个多功能数字音乐盒。该音乐盒通过控制单片机部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐。该程序通过把乐谱转化成相应的定时常数来驱动发音设备演奏出悦耳动听的音乐。本音乐盒一共设计了五首歌曲,同时还设计了三种LED彩灯的变化把戏。在演奏歌曲时彩灯随音调闪烁。在停顿演奏歌曲时三种彩灯把戏开场闪烁。歌曲和把戏均可随意切换。与此同时,数码管也

2、不断变化数字,以此显示歌曲和彩灯把戏的序号。关键词:数字音乐盒;AT89C51;KEIL;PROTEUS;数码管 目 录1 前言-12 单片机和音乐盒硬件的功能-22.1 AT89C51芯片的功能-22.2 音乐盒的硬件及其功能-43 数字音乐盒的主体设计方案-53.1 音乐盒的主体构造-53.2 主设计软件的介绍-5 编程软件KEIL的简介-5 仿真软件PROTEUS的简介-64 音乐盒硬件设计-84.1 总设计框图-84.2 各局部硬件的作用-8时钟振荡电路-8 LED和数码管的设计-95 音调和节拍的设计-115.1 音调和节拍的设计以及音乐根底知识-115.2 音调和节拍的编码-136

3、 源程序设计-146.1 音乐程序-146.2 LED把戏程序-156.3 数码管程序-167 数字音乐盒总设计图-177.1 仿真总设计图-177.2 实物总设计图-188 结论-19参考文献-20致-21附录A总程序源代码及注释-22. z-1 前言随着科技越来越兴旺,单片机技术也越来越纯熟,单片机的应用也越来越广泛,可以说几乎很难找到哪个领域没有单片机的踪迹。如今,单片机在各个领域都起着至关重要的作用1。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能可能还包括显示

4、驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路集成到一块硅片上构成的一个小而完善的计算机系统。随着人类社会的开展,人们对于视听方面的享受提出了更高的要求。而传统的音乐盒大局部是机械型的,体积庞大,而且沉重,发音单调,且不悦耳,不能实现大批量的生产,所以很难满足当代人们的需求。但是本文设计的数字音乐盒是以单片机为核心元件的数字音乐盒。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点。因此该数字音乐盒也就具有体积小,重量轻,能演奏各种各样的音乐,功能多,外观绚丽多彩,使用非常方便等诸多优点。而且具有一定的开发价值。2 单片机和音乐盒硬件的功能随着当代单片机技术的突

5、飞猛进,单片机的功能也越来越强大,主要包括有:1单片机集成度高;2系统构造简单,使用方便,实现模块化; 3单片机可靠性高,处理功能强,速度快; 4低电压,低功耗,便于生产便携式产品 ;5控制功能强大。而本文设计采用的是AT89C51单片机,这是一款性价比非常高的单片机。2.1 AT89C51芯片的功能AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。俗称单片机2。如图:图 2-1 AT89C51单片机引脚图图 2-2 AT89C51单片机实物图引脚功能3:为一个8位漏级开路双向I/O口;P1.0-P1.7:是一个部提供上拉电阻的8位双向I/O口;P2

6、.0-P2.7:为一个部上拉电阻的8位双向I/O口;P3.0-P3.7:管脚是8个带部上拉电阻的双向I/O口;P3.0:R*D串行输入口;P3.1:T*D串行输出口;P3.2:INT0外部中断0;P3.3:INT1外部中断1;P3.4:T0记时器0外部输入;P3.6:WR外部数据存储器写选通;P3.7:RD外部数据存储器读选通;EA:当EA保持低电平时,则在此期间外部程序存储器0000H-FFFFH,不管是否有部程序存储器。注意加密方式1时,EA将部锁定为RESET;当EA端保持高电平时,此间部程序存储器;P3.5:T1记时器1外部输入;ALE:当外部存储器时,地址锁存允许的输出电平用于锁存地

7、址的地位字节;PSEN:外部程序存储器的选通信号;RST:复位输入;*TAL1:反向振荡放大器的输入及部时钟工作电路的输入;*TAL2:来自反向振荡器的输出。2.2 音乐盒的硬件及其功能本文设计的数字音乐盒,所需要的硬件有:AT89C51芯片:主控制器;LED彩灯:灯光闪烁,P1.0-P1.7控制八路LED彩灯;数码管:音乐序号显示,P0.0-P0.6控制数码管;晶振:给单片机正常工作提供稳定的时钟信号,电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。电容:保持一个恒定的偏执电压供应;喇叭:发出声音,P3.7控制喇叭电源:供电;电阻;控制电路;开关:控制音乐,P3.2控制LED

8、彩灯把戏的切换,P3.3控制音乐的切换。3 数字音乐盒的主体设计方案3.1 音乐盒的主体构造该音乐盒主要是通过控制单片机部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐。如图:图 3-1 音乐盒主体构造框图本设计是一个基于AT89C51系列单片机的数字音乐盒,一共设计了五首不同风格的歌曲,在播放歌曲同时八路LED彩灯随音调变化而变化,同时利用数码管显示歌曲的序号,以便切换歌曲。在不播放歌曲的时候还设计了八路LED彩灯,可以随意变化三种把戏,给人们带来视听的双重享受。一共设计了两个开关,一个用以切换LED彩灯把戏,一个用以切换歌曲。3.2 主设计软件的介绍本次设计主要用到了两款软件,一

9、款是用以对源代码进展C语言编程的KEIL软件,另一款则是用以对实物设计进展仿真的PROTEUS软件4。 编程软件KEIL的简介要进展单片机的开发设计,首先离不开的就是软件,而如果你使用C语言编程,则KEIL几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KEIL C51是美国KEIL Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。KEIL提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,

10、通过一个集成开发环境uVision将这些局部组合在一起。运行KEIL软件需要WIN98、NT、WIN2000、WIN*P等操作系统。C51工具包的整体构造,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创立生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的He*文件,以供调试器dScope51

11、或tScope51使用进展源代码级调试,也可由仿真器使用直接对目标板进展调试,也可以直接写入程序存贮器如EPROM中。KEIL C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 KEIL C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。是一款非常不错的软件。 仿真软件PROTEUS的简介有了编译软件,同样也少不了仿真软件PROTEUS,这是一款非常强大的仿真软件,有了它以后,

12、我们就可以节省大量的精力和资源,仅仅通过电脑就能模拟我们想要的东西,直至满足我们自己的要求为止。PROTEUS软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。PROTEUS是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设

13、计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC(10、12、16、18、24、30、DsPIC33)、AVR、ARM、8086和MSP430等,2021年又增加了Corte*和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、KEIL和MPLAB等多种编译器。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件(.HE*),可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS 是单片机课堂教学的先进助手。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度

14、上得到实物演示实验的效果,后者则是实物演示实验难以到达的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例如:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。4 音乐盒硬件设计4.1 总设计框图通过前面的介绍,本文的设计思路已经根本清晰,总设计框图如下:图 4-1 总设计框图4.2各局部硬件的作用硬件除了AT89C51芯片外,主要的就是时钟振荡电路、LED彩灯以及数码管的设计。时钟振荡电路AT89C51中有一个用于构成部振荡器的高增益反相放大器,引脚*TAL1和*TAL2分别是该放大器的输入端和输出端。这个放大器与作

15、为反应元件的片外石英晶体或者瓷谐振器一起构成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反应回路中构成并联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的上下、振荡器工作的稳定性、起振的难易、程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF-10PF,而如果使用瓷振荡器建议选择40PF-10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到*TAL1端,即部时钟发生器的输入端,*TAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高

16、电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。振荡器电路图如下:图 4-2 单片机部、外部振荡电路 LED和数码管的设计1八路LED彩灯,分别接在P1.0-P1.7这八个端口上,连接方式为共阳极,假设为低电平,可使LED亮起。发光二极管的亮、熄由部程序控制,八个LED发光二极管分别对应不同的音阶,所以LED会随着音阶的变化按规律亮、熄。设计如图:图 4-3 LED设计图2数码管接在AT89C51的P0端口上,数码管采用的是共阴极数码管5,在数码管与端口之间接了上拉电阻以使数码管能正常工作。如下图:图 4-4 数码管设计图5音调和节拍的设计5.1 音调和节拍的设计以及音乐根底知识一

17、般说来,单片机演奏音乐根本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是音调和节拍表示一个音符唱多长的时间6。不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字多来米发梭拉西的读音,这是唱曲时乐音的发音,所以叫音调,即Tone。把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个半音。两个音之间的距离有两个半音,就叫全音。在钢琴等键盘乐器上,CD、DE、

18、FG、GA、AB两音之间隔着一个黑键,他们之间的距离就是全音;EF、BC两音之间没有黑键相隔,它们之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上号或者b号的叫变化音。叫升记号,表示把音在原来的根底上升高半音,b叫降记音,表示在原来的根底上降低半音。例如高音DO的频率1046Hz刚好是中音DO的频率523Hz的一倍,中音DO的频率523Hz刚好是低音DO频率266 Hz的一倍;同样的,高音RE的频率1175Hz刚好是中音RE的频率587Hz的一倍,中音RE的频率587Hz刚好是低音RE频率294 Hz的一倍。要产生音频脉冲,只要算出*一音频的周期1/频

19、率,然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。利用AT89C51的部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。此外完毕符和休止符7可以分别用代码00H和FFH来表示,假设查表结果为00H,则表示曲子终了;假设查表结果为FFH,则产生相应的停顿效果。在简谱中,数字上面带一个点就是高8度,两个点代表高16度。数字下面带一个点就是低8度,两个点代表低16度。假设要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律固定

20、的律动,而且可以调节各个音的快满度。节拍,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。假设1拍实0.5s,则1/4 拍为0.125s。至于1拍多少秒,并没有严格规定,就像人的心跳一样,大局部人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。了解音乐的一些根底知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时

21、、计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。而节拍的定义如表所示:表5-1 节拍的定义音符名称写法时值全音符5四拍二分音符5二拍四分音符5一拍八分音符5半拍十六分音符5四分之一拍三十二分音符5-八分之一拍每个音符使用1个字节,字节的高4位代表音符的上下,低4位代表音符的节拍,图5.2为节拍码的对照。如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如图5.3为1/4和1/8节拍的时间设定。

22、表5-2 1/4和1/8节拍的时间设定曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒5.2 音调和节拍的编码do re mi fa so la si分别编码为1-7,重音do编为8,重音re编为9,重音mi编为A,重音fa编为B,重音so编为C,重音la编为D,重音si编为E,停顿编为0。播放长度以十六分音符为单位在本程序中为165ms,一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0*ff作为曲谱的完毕标志

23、。举例1:音调do,发音长度为两拍,即二分音符,将其编码为0*18。举例2:音调re,发音长度为半拍,即八分音符,将其编码为0*22。歌曲播放的设计。先将歌曲的简谱进展编码,储存在一个数据类型为unsigned char 的数组中。程序从数组中取出一个数,然后别离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着别离出该数的低4位,得到延时时间,接着调用软件延时。表5-3 简谱对应的简谱码、T值、节拍数简谱发音简谱码节拍码节拍数1中音DO111/4拍2中音RE222/4拍3中音MI333/4拍4中音FA441拍5中音SO551又1/4拍6中音LA661又1

24、/2拍7中音SI782拍1高音DO8A2又1/2拍2高音RE9C3拍3高音MIAF3又3/4拍4高音FAB5高音SOC6高音LAD7高音SIE6 C源程序设计6.1 音乐程序音乐程序根据上面的音调节拍编码方案,用第一首歌劳动最荣耀为例8,编码如下:uchar code ldzgr= /劳动最荣耀0*52,0*82,0*82,0*52,0*62,0*62,0*54,0*32,0*52,0*12,0*32,0*28,/太,金亮亮,雄鸡唱三唱;0*52,0*84,0*52,0*62,0*62,0*54,0*52,0*81,0*A1,0*92,0*52,0*88,/花儿 醒来了,鸟儿忙梳妆0*83,0

25、*91,0*82,0*52,0*62,0*62,0*54,0*33,0*81,0*62,0*52,0*12,0*32,0*24,/小喜鹊 造新房,小蜜蜂 采蜜糖0*12,0*11,0*21,0*32,0*51,0*51,0*62,0*52,0*84,0*82,0*51,0*61,0*84,0*A4,0*92,0*52,0*86,0*02,/幸福的生活从哪里来.要靠劳动来创造0*52,0*81,0*81,0*82,0*52,0*62,0*61,0*81,0*54,0*32,0*51,0*61,0*53,0*31,0*12,0*32,0*24,/青青的叶儿 红红的花,小蝴蝶 贪玩耍0*52,0*8

26、2,0*82,0*52,0*62,0*62,0*54,0*51,0*61,0*81,0*A1,0*92,0*52,0*88,/不爱劳动 不学习,我们大家不学它0*83,0*91,0*82,0*52,0*62,0*62,0*54,0*33,0*81,0*62,0*52,0*12,0*32,0*24,/要学喜鹊 造新房,要学蜜蜂 采蜜糖0*12,0*11,0*21,0*32,0*52,0*82,0*52,0*68,0*52,0*61,0*61,0*84,0*A4,0*92,0*52,0*84,0*ff/劳动的快乐 说不尽,劳动的创造 最荣耀;6.2 LED把戏程序LED彩灯一共有三种把戏:1第一种

27、把戏:花灯先从左到右依次亮、熄,然后在从右到左一次亮、熄。如图:图 6-1 LED把戏一程序如下:ucharcode huayang1=0*7f,0*bf,0*df,0*ef,0*fb,0*fd,0*fe,0*fd,0*fb,0*f7,0*ef,0*df,0*bf,0*7f;/把戏一2第二种把戏:花灯从左右两边同时开场亮、熄,并向中间靠拢,然后再一次从中间同时向两边亮、熄。如图:图 6-2 LED把戏二程序如下:ucharcode huayang2=0*7e,0*bd,0*db,0*e7,0*db,0*bd,0*7e,0*bd,0*db,0*e7,0*db,0*bd,0*7e;/把戏二3第三种

28、把戏:奇数灯依次亮且不熄灭,奇数灯亮完后全部熄灭,接着偶数灯亮且不熄灭,偶数灯亮完后全部熄灭,然后相邻两个灯同时亮,并从左向右依次亮灯齐亮、熄,最后全部都亮、熄。如图:图 6-3 LED把戏三程序如下:ucharcode huayang3=0*7f,0*5f,0*57,0*55,0*bf,0*af,0*ab,0*aa,0*3f,0*cf,0*f3,0*fc,0*00;/把戏三6.3 数码管程序数码管用以显示序号,当播放第一首歌曲是显示1,第二首为2,第三首为3,依此类推,当不播放歌曲只显示三种花灯把戏时始终显示0。如下图:图 6-4 数码管仿真运行图程序如下9:uchar code num6=

29、0*3f,0*06,0*5b,0*4f,0*66,0*6d;switch(count2) case 0:P0=num0; break; case 1:P0=num1; break; case 2:P0=num2; break; case 3:P0=num3; break; case 4:P0=num4; break; case 5:P0=num5; break; 7 数字音乐盒总设计图与总程序7.1 仿真总设计图仿真总图如图:图7-1 仿真总设计图7.2 实物总设计图实物总图如图:图7-2 实物总设计图8 结论经过一个多月的学习和研究,终于完成了凝聚了大学四年所学知识的毕业论文设计,自己也感到

30、十分快乐和欣慰。通过本次设计,我更加清楚地了解单片机的功能与价值,而且在设计过程中所遇到的问题,最终都通过教师和同学的帮助再加上自己的努力一一解决,因此我从中不仅获得了很多知识,而且还获得了很多珍贵经历,这都是我终身难忘的。在拿到设计题目之初,我还很担忧,这个题目怎么完成呢,但随着设计的一步步成功,一下就让我信心倍增,特别是当问题得到解决的时候,那种心情是无法言语的。虽然在设计过程中,我查阅了很多资料,遇到了一些很棘手的问题,而且在焊接实物器件的时候经过了屡次改装、焊接、调试,但当单片机芯片在烧录我编辑的音乐程序后,放出优美的音乐时,那种美妙感永远都不会忘记。本次论文设计,除了知识的增长外,我

31、从中找到了成功后的自信。这必将鼓励我在以后的生活和工作中更加努力奋斗,更加斗志昂扬。参考文献1 王玉凤/湘黔/欣. 51单片机应用从零开场. :清华大学,20212 卫兵.单片机技术与应用根底.:人民邮电,20213 毅刚/喜元.单片机原理及接口技术.:人民邮电,20214 杜树春.基于Proteus和Keil C51的单片机设计与仿真.:电子工业,20215 郭天祥.51单片机C语言教程.:电子工业,2021:566 .卓越.简谱入门根底教程.:同心出版,20217 重光.音乐理论根底.:人民音乐,19628 辛笛.简谱钢琴即兴伴奏儿歌68首.:音乐学院,20219 谭浩强. C程序设计.第

32、三版,:清华大学,2005:10510 祁麟.唯一:王力宏歌曲精选. :安微文艺,202111 金巍.歌会与节庆必唱金曲1.:人民音乐,2021致这次论文的成功完成,首先感我的导师吴笳宁教师,她工作认真负责,无论什么关于论文的事都非常及时的通知我,并且耐心细致地给我审阅、批改论文,指导我如何解决问题,在此,我再次表示诚挚的意。感我的同学给我设计上的指导与帮助,在我遇到棘手的问题时,我的同学总是耐心地给我解答,最终让我乘风破浪到达了胜利的此岸。大四了,我们即将毕业,大家都要各奔东西了,我会永远记住这份友谊,记住这四年的美好时光。感师学院理化实验室提供的各种硬件材料以及实际操作的指导。在这论文即将

33、完成之际,我祝愿我的同学、朋友在毕业之后都能找到一份好工作,前程似锦。也衷心祝愿我的母校师学院,明天更辉煌!我也会永远铭记母校的校训博雅兼上,知行合一。附录A总程序源代码及注释主程序流程图如图:图11-1 主程序流程图程序如下:*include *define uchar unsigned char*define uint unsigned intsbit duan=P26;sbit key1=P32;/按key1可切换把戏sbit key2=P33;/按key2可切换歌曲sbit fm=P37;/蜂鸣器连续的IO口sbit P34=P34;/矩阵键盘的一列uchar code huayang

34、1=0*7f,0*bf,0*df,0*ef,0*f7,0*fb,0*fd,0*fe,0*fd,0*fb,0*f7,0*ef,0*df,0*bf,0*7f;/把戏1uchar code huayang2=0*7e,0*bd,0*db,0*e7,0*db,0*bd,0*7e,0*bd,0*db,0*e7,0*db,0*bd,0*7e;/把戏2uchar code huayang3=0*7f,0*5f,0*57,0*55,0*bf,0*af,0*ab,0*aa,0*3f,0*cf,0*f3,0*fc,0*00;/把戏3uchar count1;/把戏标志uchar count2;/歌曲标志uchar

35、 timeh,timel,i;uchar code ldzgr= /劳动最荣耀0*52,0*82,0*82,0*52,0*62,0*62,0*54,0*32,0*52,0*12,0*32,0*28,/太,金亮亮,雄鸡唱三唱;0*52,0*84,0*52,0*62,0*62,0*54,0*52,0*81,0*A1,0*92,0*52,0*88,/花儿 醒来了,鸟儿忙梳妆0*83,0*91,0*82,0*52,0*62,0*62,0*54,0*33,0*81,0*62,0*52,0*12,0*32,0*24,/小喜鹊 造新房,小蜜蜂 采蜜糖0*12,0*11,0*21,0*32,0*51,0*51

36、,0*62,0*52,0*84,0*82,0*51,0*61,0*84,0*A4,0*92,0*52,0*86,0*02,/幸福的生活从哪里来.要靠劳动来创造0*52,0*81,0*81,0*82,0*52,0*62,0*61,0*81,0*54,0*32,0*51,0*61,0*53,0*31,0*12,0*32,0*24,/青青的叶儿 红红的花,小蝴蝶 贪玩耍0*52,0*82,0*82,0*52,0*62,0*62,0*54,0*51,0*61,0*81,0*A1,0*92,0*52,0*88,/不爱劳动 不学习,我们大家不学它0*83,0*91,0*82,0*52,0*62,0*62,

37、0*54,0*33,0*81,0*62,0*52,0*12,0*32,0*24,/要学喜鹊 造新房,要学蜜蜂 采蜜糖0*12,0*11,0*21,0*32,0*52,0*82,0*52,0*68,0*52,0*61,0*61,0*84,0*A4,0*92,0*52,0*84,0*ff/歌曲完毕符号/劳动的快乐 说不尽,劳动的创造 最荣耀;uchar code wy= /唯一100*33,0*53,0*63,0*53,0*63,0*73,0*63,0*33,0*53,0*03,0*53,0*53,0*53,0*43,0*44,0*52,0*43,0*33,0*22,0*14,0*38,/我的天空

38、多么的清新,透明的承诺是过去的空气0*04,0*43,0*43,0*43,0*33,0*23,0*13,0*38,0*03,0*13,0*23,0*13,0*33,0*26,0*04,0*33,0*23,0*13,0*2c,0*04,/牵着我的手是你,但你的笑容却看不清0*33,0*53,0*63,0*53,0*63,0*73,0*63,0*33,0*55,0*03,0*53,0*53,0*53,0*43,0*44,0*52,0*43,0*33,0*23,0*13,0*35,/是否一颗星星变了心,从前的愿望也全都被抛弃0*04,0*43,0*43,0*43,0*33,0*23,0*13,0*3

39、3,0*54,0*83,0*83,0*93,0*A3,0*92,0*81,0*63,0*62,0*A3,0*93,0*83,0*96,0*04,0*04,/最近我无法呼吸,连自己的影子也都想逃避0*A4,0*94,0*82,0*82,0*82,0*52,0*82,0*92,0*A4,/Ba By 你就是我的唯一0*72,0*72,0*72,0*52,0*72,0*82,0*94,0*04,0*A2,0*A2,0*B2,0*A2,0*82,0*92,/两个世界都变心,回去谈何容易0*04,0*A4,0*94,0*82,0*82,0*82,0*52,0*82,0*92,0*A4,/确定 你就是我的

40、唯一0*72,0*72,0*72,0*52,0*72,0*82,0*92,0*A2,0*84,0*64,0*03,0*51,0*B2,0*A2,0*82,0*61,0*51,/单独对着说我爱你,我真的爱你0*04,0*A4,0*94,0*82,0*82,0*82,0*82,0*72,0*82,0*52,0*32,0*68,/BABY 我已不能多爱你一些0*02,0*A4,0*94,0*82,0*82,0*82,0*82,0*72,0*82,0*54,0*42,0*66,0*ff/其实 早已超过了爱的极限 ;uchar code tzdn= /同桌的你110*56,0*56,0*32,0*42,

41、0*52,0*76,0*66,0*56,0*52,0*22,0*32,0*46,0*16,0*26,0*04,/前奏0*52,0*52,0*52,0*52,0*32,0*42,0*56,0*86,0*62,0*62,0*62,0*62,0*42,0*62,0*56,0*04,/明天你是否会想起,昨天你写的日记0*52,0*52,0*52,0*52,0*72,0*62,0*52,0*44,0*02,0*42,0*42,0*42,0*42,0*33,0*21,0*16,0*02,/明天你是否还惦记,曾经最爱哭的你0*82,0*82,0*82,0*82,0*52,0*32,0*86,0*82,0*A

42、4,0*92,0*92,0*92,0*93,0*81,0*72,0*66,0*02,/谁娶了多愁善感的你,谁看了你的日记0*72,0*72,0*72,0*72,0*72,0*82,0*96,0*54,0*02,0*72,0*72,0*82,0*92,0*82,0*72,0*16,0*02,/谁把你的长发盘起,谁给你做的嫁衣0*84,0*82,0*82,0*52,0*62,0*86,0*A6,0*94,0*92,0*92,0*82,0*72,0*66,0*74,0*72,0*72,0*72,0*82,0*96,0*56,/啦,啦,啦0*72,0*72,0*82,0*92,0*82,0*72,0*

43、86,0*94,0*92,0*92,0*62,0*72,0*96,0*B6,0*94,0*92,0*92,0*82,0*72,0*66,/啦,啦,啦0*72,0*72,0*72,0*72,0*72,0*82,0*96,0*56,0*72,0*72,0*82,0*92,0*82,0*72,0*96,0*86,0*ff/啦,啦,啦,啦;uchar code hlw= /小小葫芦娃0*83,0*63,0*51,0*61,0*03,0*81,0*61,0*51,0*81,0*63,0*01,0*81,0*61,0*63,0*51,0*63,0*01,0*61,0*81,0*61,0*51,0*81,0

44、*63,0*03,/前奏0*12,0*12,0*35,0*11,0*12,0*31,0*02,/葫芦娃,葫芦娃0*62,0*62,0*61,0*51,0*62,0*51,0*12,0*31,0*02,/一根藤上七朵花0*81,0*61,0*61,0*51,0*65,0*51,0*12,0*21,0*02,/风吹雨打都不怕0*75,0*51,0*32,0*58,/啦啦啦啦0*81,0*01,0*61,0*61,0*51,0*51,0*62,0*61,0*01,/叮当当冬冬当当0*52,0*11,0*32,0*02,0*81,0*01,0*61,0*61,0*51,0*51,0*61,0*61,0

45、*01,0*51,0*11,0*22,0*02,/葫芦娃,叮当当冬冬当当,七朵花0*35,0*11,0*62,0*18,/啦啦啦啦0*31,0*52,0*61,0*31,0*52,0*61,/葫芦娃,葫芦娃0*85,0*01,0*71,0*52,0*65,0*02,0*ff/七朵花;uchar code qkds= /旗开得胜0*A2,0*82,0*92,0*A1,0*81,0*03,0*81,0*C1,0*B1,0*A1,0*91,0*A2,0*82,0*92,0*A1,0*91,0*04,0*A2,0*82,0*92,0*A1,0*81,0*03,0*81,0*C1,0*B1,0*A1,0

46、*91,0*A2,0*82,0*92,0*A1,0*91,0*94,0*04,/哦!哦!哦!哦!0*01,0*A2,0*91,0*A1,0*91,0*82,0*01,0*62,0*81,0*81,0*61,0*52,0*01,0*A2,0*A1,0*C2,0*C2,0*01,0*92,0*81,0*A1,0*91,0*81,0*61,/痛快自在,热血澎湃,别问由来,星可以摘0*01,0*A2,0*91,0*A1,0*91,0*82,0*01,0*62,0*81,0*81,0*61,0*51,0*31,0*01,0*A2,0*A1,0*C2,0*C1,0*91,0*01,0*92,0*81,0*

47、A1,0*91,0*82,/see the champions,take the fleld now,unify us ,make us feel proud 0*01,0*A2,0*91,0*A1,0*91,0*82,0*01,0*62,0*81,0*81,0*61,0*52,0*01,0*A2,0*A1,0*C2,0*C2,0*01,0*92,0*81,0*A1,0*91,0*81,0*61,/头昂起来,畅爽开怀,天涯不过,你我胸怀0*01,0*A2,0*91,0*A1,0*91,0*81,0*61,0*01,0*62,0*81,0*81,0*61,0*51,0*31,0*01,0*A2,

48、0*A1,0*C1,0*A1,0*92,0*01,0*92,0*81,0*A1,0*91,0*82,/celebration it surrounds us , every nation all around us 0*82,0*81,0*81,0*A2,0*C1,0*D1,0*02,0*D1,0*D1,0*D1,0*D1,0*D1,0*D1,0*C1,0*A2,0*91,0*02,0*81,0*81,0*82,0*81,0*81,0*A1,0*A1,0*C1,0*D1,0*02,0*D1,0*D1,0*D1,0*D1,0*D1,0*D1,0*C1,0*A2,0*91,/青春是一首歌,迎着光让

49、我们一起唱,看世界就在我们脚下,把梦踢到天际无限0*03,0*A1,0*A1,0*91,0*81,0*61,0*81,0*82,0*91,0*A1,0*91,0*82,0*B1,0*B2,0*B1,0*A1,0*91,0*92,0*A1,0*A2,0*A1,0*91,0*81,0*82,0*91,0*92,0*A1,0*91,0*81,0*72,/一起唱,汗让梦茁壮,你让我成长,旗像风翅膀,你给我力量0*83,0*81,0*91,0*81,0*72,0*83,0*81,0*91,0*81,0*72,0*83,0*81,0*91,0*81,0*72,0*83,0*81,0*91,0*81,0*7

50、2,/flag so wave your flag now wave your flag now wave your flag now wave your0*81,0*82,0*91,0*A1,0*91,0*82,0*B1,0*B2,0*B1,0*A1,0*91,0*92,0*A1,0*A2,0*A1,0*91,0*81,0*72,/汗让梦茁壮,你让我成长,旗像风翅膀,你给我力量0*83,0*81,0*91,0*81,0*72,0*83,0*81,0*91,0*81,0*72,0*83,0*81,0*91,0*81,0*72,0*83,0*81,0*91,0*81,0*72,0*83,0*81

51、,0*91,0*81,0*72,/flag so wave your flag now wave your flag now wave your flag now wave your flag now wave your0*A2,0*82,0*92,0*A1,0*81,0*03,0*81,0*C1,0*B1,0*A1,0*91,0*A2,0*82,0*92,0*A1,0*91,0*04,0*A2,0*82,0*92,0*A1,0*81,0*03,0*81,0*C1,0*B1,0*A1,0*91,0*A2,0*82,0*92,0*A1,0*91,0*93,0*91,0*A1,0*91,0*81,

52、0*61,/哦!哦!哦!哦!一起唱0*02,0*A1,0*91,0*A1,0*91,0*A1,0*91,0*A1,0*91,0*84,0*04,0*ff/世界沸腾我们一起唱;/简谱音调对应的定时器初值,适合11.0592M的晶振uchar code cuzhi= 0*ff,0*ff,/占位 0*FC,0*8E,/中央C调1-7 0*FC,0*ED, 0*FD,0*43, 0*FD,0*6A, 0*FD,0*B3, 0*FD,0*F3, 0*FE,0*2D, 0*FE,0*47,/高八度1-7 0*FE,0*76, 0*FE,0*A1, 0*FE,0*C7, 0*FE,0*D9, 0*FE,0*

53、F9, 0*FF,0*16 ;uchar yinyue=0*ff,0*fe,0*fd,0*fb,0*f7,0*ef,0*df,0*bf,0*7f,0*0,0*0;/将音调转化为LED样式void delay1(uint z);/延时1MSvoid delay(uint z);/延时165MS,即十六分音符void song();void beep();/蜂鸣器叫一声void tube();uchar code num6=0*3f,0*06,0*5b,0*4f,0*66,0*6d;main()uchar *; count1=1;/流水灯显示第一种把戏count2=0;/不唱歌P0=num0; P34=0;/选取矩阵键盘的一列EA=1;/开总中断E*0=1;/开外部中断0IT0=1;/外部中断0下降沿触发方式E*1=1;/开外部中断1IT1=1;/外部中断1下降沿触发方式TMOD=0*01;/定时器0工作在方式1TH0=0;TL0=0;ET0=1;while(1)if(count1!=0)switch(count1)case 1:

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!