无线音乐门铃_设计与制作
无线音乐遥控门铃的制作

无线音乐遥控门铃的制作制作无线音乐遥控门铃的过程非常简单,您只需要一些基础的电子元件和工具就可以了。
下面是一个制作无线音乐遥控门铃的简单教程。
材料准备:1.一个遥控器模块(如HT12E和HT12D)2.一个继电器模块3.一个扬声器或喇叭4.一个电池盒5.电池6.一根电线7.一块面包板8.一些杜邦线和焊锡步骤:第1步:连接遥控器模块首先,将遥控器模块(HT12E)的引脚连接到面包板上。
连接模块上的VCC引脚到电池盒的正极,GND引脚到电池盒的负极。
然后,将DATA 引脚连接到面包板上一个任意的数字引脚。
第2步:连接继电器模块将继电器的接线端子连接到面包板上。
将继电器的公共(COM)端子连接到电池盒的正极,将继电器的常开(NO)端子连接到扬声器或喇叭的一个引脚上。
第3步:连接扬声器将扬声器的另一个引脚连接到电池盒的负极。
第4步:连接遥控器模块和继电器模块使用一根电线连接遥控器模块的VCC和继电器模块的VCC引脚,将两者连接到电池盒的正极。
第5步:连接遥控器模块和继电器模块使用一根电线连接遥控器模块的GND和继电器模块的GND引脚,将两者连接到电池盒的负极。
第6步:连接遥控器模块和继电器模块使用一根电线连接遥控器模块的DATA引脚和继电器模块的控制(CONTROL)引脚。
第7步:完成连接检查所有的线连接是否牢固,并确保没有短路。
接下来,将电池放入电池盒中。
第8步:测试使用遥控器按下按钮,听到扬声器响起。
这意味着您的无线音乐遥控门铃已经制作成功了。
总结:这是一个非常简单的制作无线音乐遥控门铃的教程。
您只需要一些基础的电子元件和工具即可完成。
通过上述步骤,您可以制作出一个自己的门铃,并使用遥控器来控制。
这在生活中非常方便实用,尤其对于想要增加门铃功能的用户来说是一个非常有趣的项目。
无线多曲音乐门铃制作

无线多曲音乐门铃制作音乐门铃电路已为人们所熟知,在一些住宅楼中都装有音乐门铃,当有客人来访时,只要按下门铃按钮,就会发出“叮咚”的声音或是播放一首乐曲,然而在一些已装修好的室内,若是装上有线门铃,由于必须布线,从而破坏装修,让人感到非常麻烦。
在这里,我们要介绍一款无线音乐门铃的制作,由于采用了电池供电,同时发射按键与接收机间采用了无线方式传输信息,因此安装非常方便。
这款套件与原102型相比,接收部分供电采用了二节5号电池,更省电。
一、电路原理介绍电路原理图如下图:在发射器电路中,由Q1及其他阻容元件组成一个电容三点式高频振荡器,C1和线路板上的铜线天线组成选频网络,决定于发射电路的高频振荡主频。
Q2、Q3级成低频调制振荡器,其振荡频率由晶振所决定。
低频信号从Q2的集电极引出,对Q1进行调制,经调制后的高频信号经线路板上的铜线天线向周围空间发射。
接收电路主要由超再生接收电路、信号放大电路、逻辑控制电路与音乐电路组成,发射的高频信号被L1、C1的选频网络接收后,由于发射信号的频率与其的谐振频率一致,因此得到最大的放大,接收到的高频信号,经Q1组成的电路选频、放大及检波后,经R5、C6耦合,送入IC1的1脚,经二级负反馈放大后,从6脚输出整形后的遥控信号。
XT1、Q2等元件组成带通放大器,XT1与发射端的晶振相一致,当接收到相同频率的信号时,可以有效地得到放大,反之就承高阻抗,可以有效地抑制干扰信号。
控制信号经反相后,输出一个高电平信号,作为音乐电路的触发信号,使音乐电路工作,这样在扬声器中就听到了美妙的音乐声。
若一直有遥控信号收到,音乐声将一直响起。
二、安装注意事项1、本制作套件中,对高频部分电路元件的安装,尽量让元件靠近电路板,即把元件全部插到底后焊接,焊接时所选用的焊锡丝尽量选用含锡量较高的产品,若用到松香作为助焊剂,一定要保持电路板上的清洁,否则元器件引脚较长及电路板上留有较多的松香,会使得电路的分布电容增加,使得高频振荡部分电路不稳定,从而影响整机的性能;2、发射器线路板安装时,特别要注意微动开关动片与塑料外壳的配合,正常时按下发射开关后,应听到清脆的开关声音,若装上电路板固定螺丝后,出现无法按动开关等现象,应仔细检查微动开关动片与塑料开关是否有卡死。
无线音乐门铃实习报告

实习报告一、实习背景和目的作为一名电子信息工程技术专业的学生,我深知实践操作对于理论知识的重要性。
为了提高自己的实际动手能力和创新能力,我选择了基于单片机的无线音乐门铃设计作为实习项目。
本次实习的主要目的是通过设计和制作无线音乐门铃,掌握单片机的基本原理和应用技巧,培养自己的团队合作能力和解决问题的能力。
二、实习过程和内容在实习过程中,我参与了无线音乐门铃的整个设计过程,包括需求分析、电路设计、程序编写、调试和测试等环节。
1. 需求分析:在设计前,我们对无线音乐门铃的功能和性能进行了详细的需求分析。
要求门铃具有无线传输功能,能够通过按键控制音乐播放,且音质清晰。
2. 电路设计:根据需求分析,我设计了无线音乐门铃的电路图,包括单片机、无线模块、音乐模块、按键模块等。
同时,我还选择了合适的电源模块和传感器模块,以保证门铃的正常工作。
3. 程序编写:为了实现门铃的功能,我编写了单片机控制程序。
程序主要包括无线模块的初始化、按键扫描、音乐播放控制等部分。
在编程过程中,我熟悉了单片机的指令系统和编程技巧。
4. 调试和测试:在硬件组装完成后,我对门铃进行了调试和测试。
通过反复修改程序和调整电路,我成功解决了音乐播放不稳定、无线传输距离不足等问题。
最终,门铃达到了预期功能和性能要求。
三、实习收获和反思通过本次实习,我收获颇丰。
首先,我掌握了单片机的基本原理和应用技巧,了解了无线传输技术的原理和应用。
其次,我在团队合作中学会了沟通和协作,提高了自己的解决问题能力。
最后,我意识到理论知识与实际操作的结合至关重要,以后要更加注重实践锻炼。
同时,我也认识到自己在实习过程中存在一些不足。
例如,在电路设计和编程过程中,我对部分技术细节掌握不够熟练,导致调试和测试过程中遇到了一些困难。
今后,我将继续深入学习相关知识,提高自己的技术水平。
四、实习总结本次实习让我深刻认识到实践是检验真理的唯一标准。
通过实际操作,我巩固了所学知识,培养了实践能力和创新能力。
无线音乐门铃实习报告

一、实习背景随着科技的不断发展,人们对生活品质的要求越来越高,智能家居产品逐渐走进千家万户。
无线音乐门铃作为一种智能家居产品,具有安装方便、美观大方、操作简单等特点,深受消费者喜爱。
为了更好地了解无线音乐门铃的设计与实现过程,提高自身的实践能力,我参加了本次无线音乐门铃实习。
二、实习目标1. 掌握无线音乐门铃的基本原理和设计方法;2. 熟悉无线通信模块和音乐播放模块的应用;3. 培养团队协作能力和动手实践能力;4. 完成无线音乐门铃的设计与制作。
三、实习内容1. 无线音乐门铃的原理分析无线音乐门铃主要由无线通信模块、音乐播放模块、控制电路和电源电路组成。
其中,无线通信模块用于实现门铃与遥控器之间的无线信号传输;音乐播放模块负责播放音乐;控制电路负责处理无线信号,控制音乐播放模块的工作;电源电路为整个门铃提供电力。
2. 无线音乐门铃的设计与实现(1)硬件设计根据无线音乐门铃的原理,我们选择了以下硬件模块:① 无线通信模块:选用nRF24L01+无线通信模块,具有传输距离远、抗干扰能力强等特点;② 音乐播放模块:选用SD卡音乐播放模块,支持多种音频格式,音质清晰;③ 控制电路:选用AT89C51单片机作为控制核心,具有成本低、功能强大等优点;④ 电源电路:选用DC-DC转换器,将5V输入电压转换为3.3V输出电压,为各个模块提供稳定的电源。
(2)软件设计软件设计主要包括以下几个部分:① 无线通信模块程序:实现门铃与遥控器之间的无线信号传输;② 音乐播放模块程序:实现音乐的播放、暂停、切换等功能;③ 控制电路程序:处理无线信号,控制音乐播放模块的工作。
3. 无线音乐门铃的制作与调试(1)制作过程① 按照电路图焊接各个模块,注意焊接质量;② 连接各个模块之间的信号线,确保连接正确;③ 制作外壳,将各个模块安装在外壳内部,确保美观大方。
(2)调试过程① 检查各个模块是否正常工作;② 调试无线通信模块,确保信号传输稳定;③ 调试音乐播放模块,确保音质清晰;④ 调试控制电路,确保各个功能正常。
基于51单片机无线音乐门铃设计开题报告

姓名
Xxx
班级
xxx
学号
xxx
一、开展本课题的意义及工作内容:
随着电子技术、微电子技术的飞速发展,微型计算机发展很快,单片机技术成为自动控制技术的核心之一。单片机作为计算机的一个独特的分支,它是在一块芯片上集成了多种功能部件所构成的一台完整的、具有一定功能的单片微型计算机。它打破了典型微型计算机按逻辑功能划分芯片结构的传统概念,以其体积小,功能强,性能价格比高等优点广泛应用于诸多领域,如工业控制系统、智能化仪表、数据采集系统等,单片机技术的开发和应用水平已逐渐成为一个国家工业发展水平的标志之一。
无线门铃又称无线遥控门铃或遥控门铃。无线门铃是利用超再生无线模块来实现无线遥控的,无线门铃不需要布线,安装简单灵活,但是传输距离受传输距离和现场环境影响较大。有线门铃正好与之相反。
二、课题工作的总体安排及进度:
三、课题预期达到的效果:
1、有5首歌曲可以切换,每按一次演唱不同的歌曲。
2、无线传输距离10m以上,可以穿墙和门。
3、设计小巧,方便安装和使用
4、稳定性高,无误报。
四、指导教师意见:
签名: 年 月 日
五、专业主任见:
单位公章: 年 月 日
六、系审批意见:
单位公章: 年 月 日
基于单片机的电子音乐门铃设计

常州信息职业技术学院学生毕业设计(论文)报告系别:电子与电气工程学院专业:电子信息工程技术班号:电气111班学生姓名:陈奕玲学生学号:1105093119设计(论文)题目:基于单片机的电子音乐门铃设计指导教师:宋艳设计地点:常州信息职业技术学院起迄日期:2012.11.15----2013.05.25毕业设计(论文)任务书专业电子信息工程技术班级电气111班姓名陈奕玲一、课题名称:基于单片机的无线音乐门铃设计二、主要技术指标(或基本要求)采用STC89C51单片机作为主控制器,外部加上三极管驱动放音设备,超再生无线模块实现无线的连接。
遥控器采用PT2262编码芯片对信号编码,并由超再生无线模块发射信号。
三、主要工作内容:系统总体方案设计,硬件电路的具体设计,电源电路设计,调试与实现四、主要参考文献:周良权傅恩锡李世馨编模拟电子技术基础(第三版)[M].b北京:高等教育出版社2006.__ 张玉莲编电子CAD(Protel99SE)实训指导书(第一版)[M].西安电子科技大学出版社2007 林春景编模拟电子线路(21世纪普通高等教育电子信息类规划教材)(第一版)[M].机械工业出版社2009学生(签名)年月日指导教师(签名)年月日教研室主任(签名)年月日系主任(签名)年月日毕业设计(论文)开题报告基于单片机的电子音乐门铃设计目录目录............................................................................................................................................................ 摘要. (I)ABSTRACT ............................................................................................................................................... I I 第1章前言. 01.1课题选题背景 01.2国内外研究状况 01.3研究无线遥控音乐门铃的意义 (1)第2章系统总体方案设计 (1)任务与要求 (1)第3章硬件电路设计 (1)3.1系统总体框图 (1)3.2电源电路设计 (2)3.3发射电路设计 (3)3.4接收电路设计 (5)3.5主控电路设计 (6)3.6放音驱动电路设计 (11)第4章系统软件设计 (12)4.1单片机发声概述 (12)4.1.1 音调 (12)4.1.2 节拍 (13)4.2编程软件K EIL C51 (13)4.3画图软件P ROTEL99SE (14)4.4系统总体程序流程图 (16)第5章调试与实现 (16)5.1调试过程 (16)5.2焊接遇到的主要技术问题 (17)5.3功能的调试方法 (17)第6章结束语 (18)6.1意见与改进 (18)6.2设计的收获与体会 (18)致谢 (19)参考文献 0附录一:原理图 (1)附录二:仿真图 (2)附录三:源程序 (3)摘要随着微电子技术、无线技术和网络技术的飞速发展以与人们生活水平的大幅度提高,人们对居住环境的安全、方便提出了越来越高的要求,尤其是在智能化住宅中,人们迫切需要一种不仅安全可靠、使用方便等优点于一体的智能门铃产品,因此无线遥控音乐门铃系统的设计成为本课题研究的目标。
无线遥控门铃的设计与制作

目录第1章绪论 (4)1.1 课题背景、目的及意义 (4)1.1.1课题的背景 (4)1.1.2课题的目的及意义 (4)1.2 论文的主要内容 (5)第2章系统的原理 (6)2.1 系统总体原理 (6)2.1.1概述 (6)2.1.2发射机的技术指标 (6)2.2 发射电路原理 (7)2.2.1低频信号振荡器 (7)2.2.2高频信号振荡器 (7)2.2.3幅度调制 (8)2.2.4小信号谐振放大 (10)2.2.5高频功放 (14)2.3 接收电路原理 (18)2.3.1天线 (18)2.3.2检波 (18)2.3.3低频功放 (20)第3章系统的电路设计 (22)3.1 方案的选择 (22)3.2 方案比较 (23)第4章发射电路的设计 (24)4.1 低频振荡器 (24)4.1.1555定时器 (24)4.1.2555定时器构成多谐振荡器 (25)4.1.3电路设计及仿真 (26)4.2 高频振荡器 (27)4.2.1电路分析 (27)4.2.2振荡频率分析 (28)4.2.3电路设计与仿真 (29)4.3 调幅 (30)4.3.1MC1496 (30)4.3.2MC1496组成的调幅电路 (31)4.4 小信号谐振放大 (31)4.4.1高频小信号放大器的主要技术指标 (32)4.4.29018三极管简介 (32)4.4.3小信号谐振放大电路的设计 (33)4.5 高频功放 (35)4.5.1甲类功放 (36)4.5.2丙类功放 (37)4.5.3高频功放电路分析与设计 (38)第5 章接收电路设计 (41)5.1 天线 (41)5.2 小信号谐振放大 (41)5.3 检波 (41)5.3.1检波二极管 (41)5.3.2检波电路分析与设计 (42)5.4 低频功放 (44)第6章系统的组装与调试 (47)6.1 调试仪器及方法 (47)6.2 电路组装和调试 (47)6.3 调试过程中出现的故障、原因及解决方法 (47)结论 (50)致谢 (51)参考文献 (52)附录1 发射电路原理图 ................................................... 错误!未定义书签。
音乐门铃的制作

音乐门铃的制作音乐门铃是一个简单有趣的小制作,同时它又是一个实用的小制作。
通过这个小制作,我们既可以掌握一些基本的电子知识和制作技巧,又可以为家里提供一个与众不同的门铃,由于是自己动手制作的,声音与外形当然不会像已有的产品那样千篇一律。
一、电路简要工作原理音乐门铃电路如下图所示,由音乐集成电路IC、功放晶体管VT、扬声器BL和触发按钮SB等组成。
当按下SB(即门铃按钮)时,音乐集成电路IC被触发,其产生的音乐信号经晶体管VT放大后,驱动扬声器BL发出悦耳的音乐声。
选用不同的音乐集成电路,门铃即具有不同的音乐声。
电容C的作用是防止误触发。
电源采用两节5号电池。
由于门铃的工作特点是需要长期待机,因此本电路不设电源开关。
长期不用时,取出电池即可。
二、元器件选择IC选用KD9300系列音乐集成电路,内储一首乐曲,触发一次播放一遍。
9300系列音乐集成电路具有多个品种,分别储存不同的世界名曲或中国名曲,可根据自己的喜好选用。
如果希望制作“叮咚”门铃,IC可选用KDl53,内储“叮咚”门铃模拟声,触发一次可发出3遍“叮咚”声。
以上音乐集成电路均为小印板软封装,封装结构相同,如左图所示。
扬声器BL选用8Ω微型扬声器。
晶体管VT型号为9014,也可用符合要求的其他晶体管代用。
晶体管的代用原则是:1.代用管必须与电路规定的晶体管导电类型一致。
即NPN型的晶体管只能用NPN型的代用管,PNP型的晶体管只能用PNP型的代用管,否则电路将不能工作。
2.代用管的各项极限参数指标不得低于电路规定的晶体管指标。
晶体管主要的极限参数有三项:集电极一发射极间反向击穿电压BV。
Eo或集电极一发射极间最高耐压VcE。
,集电极最大允许电流lcM,集电极最大允许耗散功率PCM。
代用管的这三项极限参数必须都等于或高于原管,否则代用管将有可能被击穿或烧毁。
在低压小制作电路中,代用管的BVceo(或Vceo)只要高于电路的电源电压2倍以上即可,并非一定要达到原管的BV=Bo(或Vceo)指标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无线音乐门铃设计与制作作品展示学生:学号:指导教师:完成时间:2017.06.15一、作品照片及测试报告1、作品照片图5发射模块作品正面照图6接收放音模块作品正面照图7作品反面照2、测试报告(1)硬件测试本作品采用万能板进行焊接,对焊接功底以及识图能力有一定要求。
电路中容易出现漏接,接错,短路等问题。
焊接之前,需检查所有元器件是否损坏。
对照原理图,仿真图进行排版,尽量减少跳线。
上电前,测试电源和地是否短路。
本作品须接无线模块,特别要注意正负极是否接反。
调试中发现了很多问题,犯了很多低级错误。
其实很多错误都是不应该犯的。
以下是我检测发现的问题:问题一:无线接收模块电源和地接反解决:因为没有多余的芯片,为了节约时间。
所以先短接Q1(连接扬声器的三极管模拟接收模块接收信号),看有无音乐播放。
问题二:短接Q1,有音乐播放。
但三极管的管脚关系搞错,把发射极和集电极焊错解决:对照原理图仔细检查三极管各管脚的连接,将焊错的三极管换掉。
按原理的连接关系从新焊接一个三极管。
问题三:按下开关键,没有音乐播放,液晶屏无显示。
解决:检测发现发射模块13脚少接一根线。
将线补齐。
问题四:无线发射模块的实物与原理图引脚顺序不一样,排版时没有注意解决:按照实物修改原理图,对照改好的原理图从新进行焊接。
问题五:无线发射电源和地接反,芯片发烫烧坏解决:买了一块芯片,从新接入电路问题六:液晶显示器12864在原理图中的19,20脚接反解决:老师指出12864和1602接线有问题,通过查阅资料,百度12864以及1602的功能表发现确实接错,将焊错的线改掉(2)软件测试本作品采用单片机进行编程,单片机编程较为复杂,在编程调试中我遇到了很多问题。
我采用分段的方法进行编程,一段程序一段程序的编写调试。
首先,将程序下入仿真软件中进行仿真。
然后,将程序下入学习开发板上,在下载之前在程序中把P2.5换成P3.0,模拟发射信号P2.7换成P1.0。
测试能否正常播放音乐和显示。
再将程序下本作品调试。
在老师的悉心指导下,最终完成了任务设计书的要求。
下面是我编程中遇到的问题及解决方法:问题一:1602液晶显示解决:由于平时上课并未接触过液晶显示的程序,只学习了点阵,通过自己在网上查找资料。
终于写出了一个液晶显示程序,经过仿真发现只能自动循环播放,按键不起作用。
在老师的指导下,终于实现了任务设计书的要求。
问题二:显示与音乐播放不能同时进行解决:(3)系统功能测试①电源输入电路:将发射电路接入+12V直流电源,接收显示电路接入+5V直流电源。
看电源指示灯是否被点亮,若发光二极管不亮说明电源电路未接通②程序下载电路:将下载线接入下载端口,看是否能下载程序,若不能下载则说明下载电路有问题③功放电路:短接与扬声器连接的三极管,看是否有音乐播放,若没有音乐播放说明功放电路存在问题④无线解码电路:按下发射模块的开关,看是否有音乐播放,若没有音乐播放则说明无线发射或接收模块电路有问题⑤显示电路:按下开关,看液晶显示屏是否显示相应的歌曲,若没有显示或与播放音乐不同步则说明液晶显示或程序出问题了⑥复位电路:按下复位开关,看是否能进行系统复位,若不能正常复位则说明复位电路有问题二、演示过程视频三、作品操作使用说明1,将本设计作品主要由单片机最小系统,显示电路,电源输入电路,无线接收发射电路构成。
图6所示接入+5V电源(如图6所示,下面靠右的端口为接收芯片接口从左到右依次为GND,DATA,DATA,VCC。
自锁开关下面的排针为下载端口,从上到下依次为VCC,TXD,RXD,GND。
自锁开关左边的接口为电源接口,电源接口左上排针为扬声器接口右正左负,最左边有两个液晶接口最左边为1602液晶显示屏接口,另一个为12864液晶显示屏接口)2,将本设计作品图5所示接入+12V电源(如图5所示,右边下的排针为电源正极接口,靠近2262芯片的排针为电源负极。
上面靠左为无线发射芯片接口从左到右依次为GND,VCC,DATA)3,按下一次原理图所示电路中的S3,开始播放音乐,如果一直没有键按下播放一首后自动停止。
如果再按下一次则暂停播放,液晶屏显示播放的音乐歌名,序号4,一首歌播放完毕,再次按下S3开始播放下一首,液晶屏显示播放的音乐歌名,序号四、图纸及源程序1、仿真图2、原理图23、PCB图4、元件清单名称型号对应原理图编号数量电池12V 2 1 电容10U 25V C1 1 电容30P C2, C3 23MM 红色发光二极RED D1 1 管蜂鸣器蜂鸣器FM1 1 DC电源座子POWER P1 1 PNP三极管9012 Q1 1 NPN 三极管9013 Q2 1R1, R2, R4, R5, R6, R7,电阻10K8R9, R10电阻1K R3 1 电阻 4.7M R8 1 电阻820K R11 1 电阻2K R12 1315M 无线发射模块发射模块RX1 1 电源开关SWITCH S1 1 微动开关SW-PB S2, S3 2 无线编码芯片SC2262 SC1 1 无线解码芯片SC2272 SC2 1 315M 无线接收模块接收模块TX1 1 51单片机89c51-DIP40 U1 1 晶振12M X1 1其它材料USB电源线或电池盒 1塑料支柱配套螺丝 4万用板9*15cm 1焊锡丝若干跳线/飞线若干5、源程序////////////////////////////////////////////////51单片机无线遥控门铃程序//////////////////////////////////////////////#include<REG51.H>#define sound_amount 5 //歌曲的数量sbit pause=P3^0; //播放\暂停sbit speaker=P1^0; //无源蜂鸣器//////////////////////////////////////////////unsigned char timer0h,timer0l,time;//timer0h,timer0l为定时器T0的高低位初值,time为对应的节拍时间unsigned char music_num,num; //music_num为歌曲编号,music_num=0表示刚开机时的状态,num是查找歌曲数据表的地址signed char fre; //对应频率数据表的地址bit play_enable; //歌曲播放的使能标志位,用于播放\暂停void delay(unsigned char t); //延时子函数,控制发音的时间长度void delayms(unsigned int t); //普通延时子程序,可用于按键消抖void song(void); //演奏一个音符void music_play(void); //播放歌曲////////////////////////////////////////////////每三个数字,代表一个音符//第一个数字是音符的数值1234567之一(第几个音),代表哆来咪发...//第二个数字是0123之一,代表低音\中音\高音\超高音(第几个八度)//第三个数字是时间长度,以半拍为单位,乐曲数据表的结尾是三个0////////////////////////////////////////////////《两只老虎》unsigned char code song1[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4, 0,0,0};//《世上只有妈妈好》unsigned char code song2[]={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个半拍;//1,3,2代表1,高音,2个半拍;//...5,2,1,6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,6,1,1, 5,2,1,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 song3[]={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,1,2,2, 1,2,1, 2,2,1, 1,2,2, 7,1,1, 6,1,1, 7,1,2, 3,2,2, 7,1,2, 7,1,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 song4[]={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,4,1,2, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 7,0,1, 7,0,1, 7,0,1, 6,0,1,5,0,1, 5,0,1, 6,0,1, 7,0,1, 7,0,1, 6,0,1, 5,0,1, 6,0,4, 6,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 song5[]={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,3,1,1, 4,1,2, 7,0,1, 1,1,4, 6,1,2, 1,2,2, 1,2,4, 7,1,2, 6,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};// 频率-半周期数据表高八位共保存了四个八度的28个频率数据unsigned char code FREQH[]={0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音12345670xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, //高音 2345670xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}; //超高音 1234567// 频率-半周期数据表低八位unsigned char code FREQL[]={0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, //低音12345670x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, //高音 2345670x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16}; //超高音 1234567void main(void){TMOD=0x11; //T0 T1 均在工作方式1ET0=1; //T0开中断EA=1; //CPU开中断while(1){music_play(); //根据当前状态播放相应歌曲的某个音符if(!pause) //暂停键处理{delayms(5);if(!pause){if(music_num==0) //music_num=0只有在刚开机,且未按下暂停键时存在,表示刚开机时的状态,按下后从第一首开始播放{music_num=1; //歌曲序号置1num=0; //从头播放play_enable=1; //允许播放}else{play_enable=~play_enable;speaker=1;}while(!pause) //若按着暂停键不放手时的处理{if(play_enable==0){} //如果是暂停,则显示时间不变//(暂停时play_enable==0)}}//暂停键处理结束}//while结束}}void delayms(unsigned int t) //MS延时子程序{unsigned int i,j;for(i=0;i<t;i++){for(j=0;j<123;j++);}}void delay(unsigned char t) //延时子函数,控制发音的时间长度,每个节拍0.4S{unsigned char t1;unsigned long t2;for(t1=0;t1<t;t1++) //嵌套循环, 共延时t个半拍{for(t2=0;t2<8000;t2++) //延时期间, 可进入T0中断去发音{;}}TR0=0; //关闭T0, 停止发音}void timer0(void) interrupt 1 //T0中断程序,控制发音的音调{speaker=!speaker;//输出方波, 发音TH0=timer0h; //下次的中断时间,这个时间控制音调高低TL0=timer0l;}void song(void) //演奏一个音符{TH0=timer0h; //控制音调TL0=timer0l;TR0=1; //启动T0, 由T0输出方波发音delay(time); //每个音符的演奏时间}//////////////////////////////////////////////////////////////////////////////////// void music_play(void)//播放相应歌曲的某个音符{if((music_num==1)&&(play_enable==1)){fre=song1[num]+7*song1[num+1]-1;//第i个是音符,第i+1个是第几个八度timer0h=FREQH[fre]; //从数据表中读出频率数值,实际上是定时的时间长度timer0l=FREQL[fre];time=song1[num+2]; //读出时间长度数值num+=3;if(fre==-1) //判断歌曲的结束位,结束后转到下一首{num=0; //下一首从头播放music_num=2;play_enable=0;}song(); //发出一个音符}//////////////////////////////////////////////////////////////////////////////////// if((music_num==2)&&(play_enable==1)){fre=song2[num]+7*song2[num+1]-1;timer0h=FREQH[fre];timer0l=FREQL[fre];time=song2[num+2];num+=3;if(fre==-1){num=0;music_num=3;play_enable=0;}song();}//////////////////////////////////////////////////////////////////////////////////// if((music_num==3)&&(play_enable==1)){fre=song3[num]+7*song3[num+1]-1;timer0h=FREQH[fre];timer0l=FREQL[fre];time=song3[num+2];num+=3;if(fre==-1){num=0;music_num=4;play_enable=0;}song();}//////////////////////////////////////////////////////////////////////////////////// if((music_num==4)&&(play_enable==1)){fre=song4[num]+7*song4[num+1]-1;timer0h=FREQH[fre];timer0l=FREQL[fre];time=song4[num+2];num+=3;if(fre==-1){num=0;music_num=5;play_enable=0;}song();}//////////////////////////////////////////////////////////////////////////////////// if((music_num==5)&&(play_enable==1)){fre=song5[num]+7*song5[num+1]-1;timer0h=FREQH[fre];timer0l=FREQL[fre];time=song5[num+2];num+=3;if(fre==-1){num=0;music_num=1;play_enable=0;}song();}//////////////////////////////////////////////////////////////////////////////////// }//程序结束。