基于STC89C52RC系列单片机的音乐盒单片机课设.docx

上传人:韩长文 文档编号:3571639 上传时间:2019-09-12 格式:DOCX 页数:22 大小:547.57KB
返回 下载 相关 举报
基于STC89C52RC系列单片机的音乐盒单片机课设.docx_第1页
第1页 / 共22页
基于STC89C52RC系列单片机的音乐盒单片机课设.docx_第2页
第2页 / 共22页
基于STC89C52RC系列单片机的音乐盒单片机课设.docx_第3页
第3页 / 共22页
基于STC89C52RC系列单片机的音乐盒单片机课设.docx_第4页
第4页 / 共22页
基于STC89C52RC系列单片机的音乐盒单片机课设.docx_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于STC89C52RC系列单片机的音乐盒单片机课设.docx》由会员分享,可在线阅读,更多相关《基于STC89C52RC系列单片机的音乐盒单片机课设.docx(22页珍藏版)》请在三一文库上搜索。

1、摘要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本设计是一个基于STC89C52RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个按键用来控制歌曲的播放、暂停以及换曲,另一个用来控制数码管上歌曲次序的变化,本音乐盒共有三首歌曲。播放歌曲时,相应歌曲对应相应数码管上歌曲次序的显示。本设计利用KEIL编程软件

2、对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。关键字:STC89C52RC KEIL PROTEUS PCB引言 21世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的

3、大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。 随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及

4、时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。单片机技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速发展。 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。 一、设计任务与要求 1.1 设计任务 设计一个基于AT89C51系列单片机的音乐盒,利用按键切换演奏出不同的乐曲。蜂鸣器发出某个音

5、调,与之相对应的LED亮起。使用两个按键,一个用来切换歌曲,另一个切换八路LED的变化花样1.2 设计内容1)电路有两种工作模式:演奏音乐模式和花样灯模式。 演奏音乐模式:演奏完整的一首的歌曲,八路LED随着音乐变化。 花样灯模式:八路LED变化出各种花样,蜂鸣器随着发出“嘀嘀”声 2)按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲。 3)按下按键2进入花样灯模式,再按切换LED花样,共三种花样。 此电路的程序只占用了1K左右,可编制更多的音乐和LED花样,使系统的功能更加强大。 二、方案总体设计 2.1 系统组成框图 音乐盒的系统结构以AT89C51单片机位控制核心,加上2个按键、时钟

6、复位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如图 2.3 总体设计原理 本次设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路、蜂鸣器以及显示电路组成。使用一个按键来控制开始,播放和暂停、换曲。利用一个按键来显示数码管上曲目的更换并暂停当前曲目的更换,共三首音乐,蜂鸣器每播放一首歌时数码管上显示相对应的歌曲次序。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PRO

7、TEUS仿真软件对硬件进行仿真调试。 三、硬件设计 3.1 STC89C51RC芯片 STC89C51RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051片机。其引脚图如图1所示。 STC89C51RC主要特性如下: 1工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机); 2工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz;3用户应用程序空间为8K字节;4片上集成512字节RAM; 5 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出, 作为总

8、线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻; 6ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通 过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片; 7.具有EEPROM功能; 8.具有看门狗功能; 9.共有2个16位定时器/计数器;即定时器T0、T1; 10.外部中断2路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触 发中断方式唤醒; 11.通用异步串行口(UART),还可用定时器软件实现多个UART;12. 工作温度范围:-40+85(工业级)/075(商业级);13. PDIP封装

9、。 14. P3口具有第二功能:P3.0/RXD(串行输入口),P3.1TXD(串行输出口),P3.2/INT0(外 部中断0),P3.3/INT1(外部中断1),P3.4T0(记时器0外部输入),P3.5T1(记时器1外部输入,P3.6/WR(外部数据存储器写选通),P3.7/RD(外部数据存储器读选通)。 本设计中用到32位通用I/O口中P0、P2和P3的部分端口,RST电路复位以及外部中断等重要功能,其中P3.2口和P3.7口通过开关按键构成控制电路,2.7口接蜂鸣器构成输出电路,PO端通过上拉电阻的钳位、限流作用接一位共阴极数码管构成数字显示。 3.2 晶振电路 晶体振荡器,简称晶振,

10、它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。晶振在应用具体起到的作用,微控制器的时钟源可以分为两类:一种是皮尔斯振荡器配置,适用于晶振和陶瓷谐振槽路。另一种为简单的分立RC振荡器。基于晶振与陶瓷谐振槽路的振荡器通常能提供非常高的初始精度和较低的温度系数。RC振荡器能够快速启动,成本也比较低,但通常在整个温度和工作电源电压范围内精度较差,会在标称输出频率的5%至50%范围内变化,震荡脉冲频fosc在0至24MHZ范围内变化。但其性能受环境条件和电路元件选择的影响。需认真对待振荡器

11、电路的元件选择和线路板布局。 本设计中的晶振振荡电路(如图2)是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于电路的负载电容。同时,晶振可以等效为一个电感,所以只要晶振的两端并联上合适的电容它晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。其中端点1接STC89C52RC芯片的19引脚,端点2接芯片的18引脚。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄所以即使其他元件的参数变化很大这个振荡器的频率也不会有很大的变

12、化。本实验中使用的是22PF的电容,如果再考虑元件引脚的等效输入电容,则两个22PF的电容构成晶振的振荡电路就是比较好的选择,但本设计简易,所以对于等效输入电容带来的误差不予讨论。3.3 开关按键电路 利用1位按键开关连接P3.2控制数码管的7个输入口,通过改变按键开关进行3个数字的显示和改变;利用另1位按键开关连接P3.7控制外部中断,通过改变按键开关进行歌曲的播放、暂停。在实验室中有条件的话还利用数字电路实验箱,在适当的时钟频率下,控制位信号的输入,从而实现数码管的各段的显示,在数码管上显示数字。使用C语言描述上述控制过程,并将程序下载至控制芯片中,实现可编程器件的控制过程。3.4 P0口

13、上拉电阻 一般作单键触发使用时,如果IC本身没有内接上拉电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。 数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻排阻消除高阻状态。I/O端口的输出类似于一个三极管的集电极,当集电极通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻。简而言之,上拉电阻就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路提供输出电流通道。 上

14、拉电阻就是将电源通过电阻接到输出端。如果输出端是OC(集电极开路,TTL)或OD(漏极开路,CMOS)输出,不接上拉电阻则输出端无驱动能力。对于P1、P2、P3口内部就以及有上拉电阻,如果其端口电流较大,电平就会降低(电阻大,相应压降也太大),就可以通过外接上拉电阻(就是并一个电阻在IC内部的上拉电阻上,这时总电阻减小,总电流增大)提供电流分量,将电平“拉高”。 本次设计中使用的上拉电阻为九引脚排阻(如图5所示)。顾名思义,排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那

15、个是公共引脚,它在排阻上一般用一个色点标出来。由于排阻引脚众多,所以排阻比若干只固定电阻更为方便。本次设计中排阻依次连接单片机P0口各引脚(上拉电阻VCC端接单片机VCC端)。 3.5 复位电路 单片机在启动时都需要进行复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位3.6 蜂鸣器电路 蜂鸣器是一种一体化结构的电子讯响器

16、,广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件,主要分为电磁式蜂鸣器和压电式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。本次设计使用到的是第一种电磁式蜂鸣器。电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机I/O引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此在单片机P2.7引脚与蜂鸣器之间串联一个电阻和NPN型三极管9012。其电路原理如图7所示

17、,蜂鸣器的负极接到接地端,三极管Q1集电极接到VCC(5V)电源上面、发射机接到蜂鸣器的正极,三极管的基级经过限流电阻R3后由单片机的引脚控制,当P2.7输出高电平时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声;当P2.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P2.7脚的电平来使蜂鸣器发出声音和关闭。 程序中改变单片机P2.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P2.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。 四、软件设计 总体原理:播放一段音

18、乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初步的了解。 音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3引脚的输出音乐。只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时

19、此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。4.1 软件设计程序流程图 流程图如图10所示:按下电源开关键后,整体电路开始运作,电源指示灯发光。此时,按下连接于P3.7端口的开关按键开始选曲,每按一下单片机将依序更换歌曲并在数码管上显示歌曲次序。歌曲次序将在数码管上以文字“1,2,3”的形式循环呈现。 当开始按下连接于P3.2的开关按键后,单片机将依序播放歌曲,再次按下该开关按键后歌曲播放将暂停。当第三次按下该开关按键后,单片机将播放第二首歌曲。 从总体上说,即是第奇数次按下开关将播放歌曲,第偶数次按下开关将暂停播放。开关按键的开合影响着单片机内部软件程序INT0的变化,而对

20、应的INT0的数值控制着歌曲的播放、暂停以及选曲功能4.2 节拍的确定 若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。若1拍实0.5s,则1/4 拍为0.125s。至于1拍多少s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。 一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,

21、构成音乐。了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。4.3 编码 do re mi fa so la si分别编码为17,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。 举例1:音调d

22、o,发音长度为两拍,即二分音符,将其编码为0x18。 举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22 歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为unsigned char 的数组中。程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。4.4所用音乐程序编码/千年之恋 0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x0

23、8, /前奏 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, /竹林的灯火 到过的沙漠 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22, /七色的国度 不断飘逸风中 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, /有一种神秘 灰色的旋涡 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02, /将我卷入了迷雾中 0x63,0xA1,0xA2,0x62,0x92,0x82,0x52, /看不

24、清的双手 0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02, /一朵花传来谁经过的温柔 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76, /穿越千年的伤痛 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, /只为求一个结果 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53, /你留下的轮廓 指引我 19 0x42,0x63,0x83,0x83,0x91,0x91, /黑夜中不寂寞 0x61,0x71,0x82,0x71,0

25、x62,0x0A2,0x71,0x76, /穿越千年的哀愁 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, /是你在尽头等我 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53, /最美丽的感动 会值得 0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff/结束标志 /用一生守候 ; uchar code jmszl= /寂寞沙洲冷 0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22, /自你走后心憔悴 0x21,0x31,0x51,0x52,0x31,0x52,0x6

26、1,0x15,0x14, /白色油桐风中纷飞 0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28, /落花似人有情 这个季节 0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52, /河畔的风放肆拼命地吹 0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63, /不断拨弄离人的眼泪 0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54, /那样浓烈的爱再也无法给 0x22,0x12

27、,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26, /伤感一夜一夜 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51, /当记忆的线缠绕过往支离破碎 0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34, /是慌乱占据了心扉 0x31,0x81,0x81,0x81,0x61,0x91,0x82, /有花儿伴着蝴蝶 0x51,0x51,0x51,0x51,0x31,0x61,0x53, /孤雁可以双飞 0x21,0x11,0x21,0x11

28、,0x22,0x11,0x21,0x26, /夜深人静独徘徊 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52, /当幸福恋人寄来红色分享喜悦 0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56, /闭上双眼难过头也不敢回 0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34, /仍然捡尽寒枝不肯安歇微带着后悔 0x21,0x31,0x51,0x31,0

29、x21,0x11,0x61,0x21,0x16五 源程序#include #define uchar unsigned char #define uint unsigned int sbit duan=P26; sbit key1=P32; sbit key2=P33; sbit fm=P37; sbit P34=P34; uchar code huayang1=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xfd,0xfb,0xf7,0xef,0xdf,0xbf,; uchar code huayang2=0x7f,0xfe,0xbf,0xfd,0xdf

30、,0xfb,0xef,0xf7,0xef,0xfb,0xdf,0xfd,0xbf,0xfe,; uchar code huayang3=0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00, 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,; uchar code huayang4= 0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0,; uchar count1; uchar count2; uchar timeh,timel,i; uchar code qnzl=0x12,0x22,0x34,0x84,0

31、x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xa8,0x08, 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,0x61,0x71,0x82,0x71,0x62,0xa2

32、,0x71,0x76,0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, 0x61,0x71,0x82,0x71,0x62,0xa3,0x73,0x62,0x53, 0x42,0x63,0x83,0x83,0x91,0x91, 0x61,0x71,0x82,0x71,0x62,0xa2,0x71,0x76, 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, 0x61,0x71,0x82,0x71,0x62,0xa3,0x73,0x62,0x53, 0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff ,;

33、uchar code jmszl=0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22, 0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14, 0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28, 0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52, 0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63, 0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x3

34、1,0x21,0x32,0x51,0x54, 0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26, 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51, 0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34, 0x31,0x81,0x81,0x81,0x61,0x91,0x82,0x51,0x51,0x51,0x51,0x31,0x61,0x53, 0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x2

35、6, 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52, 0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56, 0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34, 0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff,; uchar code chuzhi= 0xff,0xff,0xfc,0x8e,0xf

36、c,0xed,0xfd,0x43,0xfd,0x6a,0xfd,0xb3,0xfd,0xf3,0xfe,0x2d,0xfe,0x47,0xfe,0x76,0xfe,0xa1, 0xfe,0xc7,0xfe,0xd9,0xfe,0xf9,0xff,0x16,; uchar yinyue=0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0,; void delay1(uint z); void delay(uint z); void song(); void beep(); main() uchar x; count1=0; count2=1;

37、 P34=0; EA=1; EX0=1; IT0=1; EX1=1; IT1=1; TMOD=0x01; TH0=0; TL0=0; ET0=1; while(1) if(count1!=0) switch(count1) case 1: for(x=0;x14;x+) duan=1; P1=huayang1x; beep(); delay1(300); duan=0; if(count1!=1) break; break; case 2: for(x=0;x14;x+) duan=1; P1=huayang2x; beep(); delay1(300); duan=0; if(count1!=2) break; break; case 3: for(x=0;x16;x+) duan=1; P1=huayang3x; beep(); delay1(300); duan=0; if(count1!=3) break; break; case 4: for(x=0;x0;x-) for(y=19000;y0;y-); void delay1(uint z) uint x,y; for(x=z;x0;x-) for(y=112;y0;y-); void beep() uchar i; for(i=0;i50;i+) fm=fm; delay1(1); fm=1; 六 仿真与测试22

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育


经营许可证编号:宁ICP备18001539号-1