




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子与信息工程学院本 科 毕 业 论 文论文题目 基于红外遥控的音乐播放器 学生姓名 沈 钧 珥 学 号 20123421051 专 业 物 理 学 班 级 123421063 指导教师 刘剑霞 2016年5月摘 要现在随着远程教育系统的不断发展和日趋完善,利用多媒体作为教学手段在各级各类学校都得到了广泛应用。近年来,在多媒体教学系统的使用、开发和研制中,经常遇到同时使用多种设备,如:数字投影机、DVD、VCD、录像机、电视机等,由于各种设备都自带遥控器,而且不同的设备所遵循的红外传输规约也不尽相同,操纵这些设备得使用多种遥控器,给使用者带来了诸多不便。本次毕业设计的主题就是红外遥控电路设计。红外遥控的特点是利用红外线进行点对点通信的技术,不影响周边环境,不干扰其他电器设备。室内近距离(小于10米),信号无干扰、传输准确度高、体积小、功率低的特点,遥控中得到了广泛的应用。通过基于单片机的控制指令来对多种设备进行远程控制,可以选择不同的按键来控制不同的设备。从而方便快捷的实现远程控制。关 键 词:红外系统;单片机系统;显示系统;接收系统3湖北科技学院学士学位论文ABSTRACTWith the continuous development and improvement of the distance education system, the use of multimedia as a teaching method has been widely used in all kinds of schools at all levels. In recent years, in the use of multimedia teaching system, development and development, often encountered while using a variety of equipment, such as: digital projector, DVD, VCD, video recorders, TV sets and other, due to a variety of devices has its own remote control, and different equipment followed by infrared transmission protocol are not the same, manipulating these devices must use a variety of remote control, has brought a lot of inconvenience to the users.The topic of this graduation project is the infrared remote control circuit design. Infrared remote control is characterized by the use of infrared point to point communication technology, does not affect the surrounding environment, does not interfere with other electrical equipment. Indoor short distance (less than 10 meters), signal without interference, high transmission accuracy, small size, low power characteristics, remote control has been widely used. Through the control of a variety of devices based on single chip control to remote control, you can choose a different button to control the different devices. So as to facilitate the realization of remote control.This curriculum design, I have a further understanding of the microcontroller interrupt system and other knowledge, the relevant knowledge of the microcontroller to do the specific practice of the theory.KEY WORDS: Infrared system;Single chip microcomputer system;Display system;Receiving system湖北科技学院学位学士论文目 录1 绪论11.1 概述1 1.2功能实现12 电路系统设计 12.1 电路总体组成2 2.2 电路模块设计2 2.2.1红外解码电路设计3 2.2.2单片机最小系统设计42.2.3 AT89S52的引脚及功能42.2.4 振荡器特性52.2.5 芯片擦除53 系统程序设计63.1 红外解码程序6 3.2 播放器及其显示程序设计84 硬件调试8 4.1 音乐播放程序调试过程15 4.1 硬件电路调试15致 谢17参考文献18附 录19即可):1 绪论1.1概述由于单片机的简单,学习起来容易,得到了越来越多的年轻人的青睐。本次毕业设计的主题就是基于红外遥控多功能音乐播放器的设计。用AT89S52单片机及少数外围电路控制音乐播放,产生两首不同的歌曲。 对于单片机产生音乐,关键是控制频率的输出。本设计采用了定时器T0中断的方法产生不同频率的脉冲,从而产生不同频率的声音。此外,使用红外一体化头SM0038接收红外信号,通过外部中断INT1来进行对红外信号的解码,由单片机内部程序对不同的键值完成不同的操作。并且使用常用的无源蜂鸣器进行发声,实现了一个简单的遥控音乐。红外遥控的特点是利用红外线进行点对点通信的技术,不影响周边环境,不干扰其他电器设备。室内近距离(小于10米),信号无干扰、传输准确度高、体积小、功率低的特点,遥控中得到了广泛的应用。通过基于单片机的控制指令来对多种设备进行远程控制,可以选择不同的按键来控制不同的设备。从而方便快捷的实现远程控制。本设计采用单片机为控制源,用红外信号做为通信手段,通信蜂鸣器发声,来完成音乐播放器的功能。此次设达到无线、非接触控制,抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著特色。通过本设计可以完成简单的音乐播放器的功能,包括播放及更换歌曲等内容。此次课程设计,我红外控制和单片机系统等知识有了进一步的了解,对单片机的相关知识由理论做到的具体的实践。1.2主要功能实现此次的设计是基于红外遥控的音乐播放器,主要是以单片机为核心实现音乐播放的,主要完成歌曲的选择播放、暂停、暂停后断点播放、结束播放歌曲,播放下一曲,播放上一曲等功能。同时,使用1602显示器显示以及红外信号解码后的键值。本设计中使用常见的家用红外遥控器进行控制,使用其中的1、2、3个数字键,音量加、减两个按键(对应功能上一曲、下一曲),频道加、减两个按键(对应功能暂停、结束播放),以及确定键(对应功能播放歌曲)。2电路系统设计2.1电路总体组成按照此次的论文设计,基于红外遥控音乐播放器大体可以分为三个模块:1、单片机系统电路:主要是运用最小的元器件组成的可以工作的最小的系统卫星处理器,或者称之为单片机最小开发系统。 对51系列单片机来说,最小微型处理器系统包括:单片机、单片机时钟电路、单片机复位电路等。本设计中使用的单片机为AT89S52,单片机晶振电路主要使用的是12MHZ的晶振。复位电路:主要是由一些电解电容串联电阻构成,当系统一上电,RST脚将会出现高电平,当RST脚的高电平持续两个机器周期以上就将复位。 2.红外解码电路:本电路主要用于对红外遥控器发出的红外信号进行解码,然后程序根据解码后的不同键值相应完成不同的功能。 3.显示及播放电路:本部分电路用于显示红外遥控器不同按键所对应的不同按键值,在具体的实物中将采用1602液晶显示器来显示。播放电路则是由有放大器和喇叭构成的。AT89S52红外解码显示电路单片机时钟电路单片机复位电路 音乐播放器红外解码电路图2-1基于红外遥控音乐播放器原理图2.2电路模块设计2.2.1红外解码电路设计图2-2 为红外解码电路图通常红外遥控系统有发射和接收两个部分组成,运用编解码专用集成电路芯片来进行控制操作,发射部分包括矩阵键盘,编码调制,LED红外发射器;接收部分包括光、电转换放大器,解调、解码电路。此次设计采用的是比较实用的红外接收头SM0038器件,它主要是集结了信号放大处理、滤波处理、检波处理等处于一体化的红外接收器件,电路中包含了前置放大器和PIN二极管,采用的是比较可靠地环氧树脂材料进行封装,不容易受到外界环境的影响,而且可以预防非线性控制信号脉冲的输出6。这个器件还自带有低通滤波器、积分器、自动增益控制电路,可以抑制产生的干扰信号和噪音。数据信号传输和干扰信号传输的不同主要在于载波频率的高低、脉冲波长长短、以及工作周期。因此数据信号的载波频率的幅度与带通滤波器的中心频率比较的接近应,而且中心频率的的数值为38KHZ;则其脉冲长度达到300us以上。而此次设计选用的SM0038在这三方面和NEC编码格式是相配的。其第3脚为信号输出,其第1脚为电源地,其第2脚为电源正。有了红外发射器,就有相应的接收电路,则其原理:当接收到载波频率幅度达到与中心频率(38KHZ)相接近时,SM0038模块内的红外感应元器件将调制信号中的红外光信号转瞬间转换为电信号,接着前置放大器以及其自动增益控制电路将其信息进行处理放大,再就是通过带通滤波电路对其信号进行滤波处理,滤波后所得到的信号输入解调解调电路进行解调,最后则由输出信号电路进行反向放大输出,并且是低电平输出;还有部分电路没有接收到载波信号,则电路就该输出高电平。 图2-3 SM0038内部结构图2.2.2单片机最小系统设计单片机最小系统主要是由电源、复位电路、振荡电路以及扩展部分等部分组成的。图2-4单片机最小系统电路图电源模块:对于一个完整的电子设计来说,首先要做的是给整个电路供电,一个电路系统要平稳的运行就要保证电源模块的稳定可靠。51单片机是现在运用比较广泛的,但是在使用的过程中,很容易受到影响从而导致程序出现跑飞的现象,克服这个主要现象的一个重要的方法就是给单片机配置一个稳定可靠地电源模块。此次设计的单片机中可以通过计算机USB口供电,也可以使用外部稳定的5V电源供电模块进行供电。复位电路:单片机的复位和置位,都是为了把电路的初始化到确定的状态,复位电路就是使用CPU和系统中的其他功能器件都都在确定的待机状态,进而此状态开始工作,复位后PC=0000H,使单片机从第一个单元取指令。单片机复位的条件是:必须使RST/VPD 或RST引脚加上持续两个周期(即24个振荡周期)的高电平。若时钟频率为12 MHz,每机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。比如大家在使用电脑的时候,电脑突然间出现死机或者是系统卡机,自己可以在按下重启按键,让电脑重新载入系统中的程序,然后程序从头开始执行,我们所使用的单片机也是一样的,由于受到电源电压不稳定,或者是程序的出错,所单片机会出现错误,就需要我们按下其复位键,让程序自己从头开始执行。为了使单片机更好的执行程序,则我们需要待电源稳定后,还要延长一定的时间才撤销复位信号,防止电源开关开启过程中的抖动,从而影响其复位。复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。振荡电路:单片内部有单独的振荡电路部份,只不过为了得到稳定精准的频率,一般情况下需要外接一个晶振,它是一个被动器件,外接上就可以了,与内部电路相连就可以正常工作,产生外接晶振标定频率的震荡频率,提供给单片内部时序。用示波器测量晶振的两脚,都可以看到正弦波形。电容大小没有固定值.一般二三十p.晶振是给单片机提供工作信号脉冲的.这个脉冲就是单片机的工作速度.比如 12M晶振.单片机工作速度就是每秒 12M.和电脑的 CPU概念一样.当然.单片机的工作频率是有范围的.不能太大.一般 24M就不上去了.不然不稳定. AT89S52AT89S52是一种功耗比较的低,存储空间较大,性能较高的微型控制器,具有8K 在线系统可编程Flash 存储器。使用Atmel 公司密度较高,且高非易失性存储器的技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.2.3 AT89S52的引脚及功能89S52单片机的管脚说明如图32所示。(1) 主要电源引脚 VSS 电源端 GND 接地端(2) 外接晶体引脚XTAL1和XTAL2 XTAL1/XTAL2 为片内震荡电路的输入端,XTAL2位片内振荡电路的输出端,需要在这两个脚上接入晶振和振荡。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。振荡电容的取值一般为10p30p。8051的时钟有两种方式,一种是片内时钟振荡方式,需在这两个脚上接上晶振和电容;另外一种则是外部时钟方式,外部信号从XTAL2进入,则将XTAL1直接接地。图2-5 AT89C51的引脚(3) 输入/输出引脚 P0.0 P0.7、P10.P1.7、P2.0 P2.7 和P3.0P3.7。 P0端口(P0.0 P0.7) P0是一个8位三态I/O端口。每个端口都可以独立控制。在51单片机P0口中没有上拉电阻,则呈现出的状态为高阻态,则因此不能正常的输出高/低电平,因此我们在使用I/O口时,应该加入上拉电阻,在日常的使用中,我们一般使用的是10K的电阻。 P1端口(P1.0 P1.7) P1是一个准双向的八位I/O口,每个口可以独立控制,内带有上拉电阻,这种接口不会呈现高阻状态,因此输入也不能锁存。对于52单片机来说,P1.0引脚另外一个功能是位定时器或者计数器的外部输入,.的另外一个功能是捕捉、重装触发,也称为外部控制端。 P2端口 (P2.0P2.7) P2是一个准双向8位I/O端口。每个端口可以独立控制,内带有上拉电阻,P2输出的缓冲器可以驱动4个TTL的输入。之所以被称为“准双向”是因为该口在作为舒服使用前,需要向此口写1操作,接着单片机内部才可以正确的读出外部信号,也就是在起先使用时要有个准备的过程,所以称之为准双向口。其余的外部功能与P1口相似。 P3端口(P3.0P3.7) P3是一个准双向8位I/O端口。每个端口可以独立控制,内带有上拉电阻。当作为第一功能使用时,就可以当做普通的I/O口,使用功能是P1相似,当作为第二功能使用时,各个引脚就赋予了新的功能。值得注意的是,P3口中的每一个引脚可以单独定义第一功能的输入或者输出,或者第二功能的输出或者输入。标号引脚第二功能说明备注P3.010RXD串行输入口P3.111TXD串行输出口P3.212INT0外部中断0P3.313INT1外部中断1P3.414T0定时器/计时器0外部输入端P3.515T1定时器/计时器1外部输入端P3.616WR外部数据存储器械写脉冲P3.717RD外部数据存储器械读脉冲图2-6 P3口各个引脚第二功能定义2.2.4振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度2。2.2.5 芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合, ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行3。2.3显示电路及其播放电路2.3.1显示电路1602液晶显示器件:现在常用的1602LCD 有两种分别是带有背光的和没有背光两种器件,其基控制器很多的部分为 HD44780,用于使用不同的材料造的,所以带有背光的液晶显示器件比没有带背光的器件要厚一点,但是在实际的使用过程中并没有太大的差别。 1602LCD 主要参数:显示的容量:162 个字符,芯片常温工作的电压:4.55.5V 常温工作电流:2.0mA(5.0V),模块达到最佳工作电压:5.0V,字符尺寸:2.954.35(WH)mm11 。引脚功能说明:1602LCD 采用的是标准的无背光的14脚或 着是有背光的16引脚的端口。 第1脚:VSS 为地电源,第2脚:VDD接 5V正电源,第 3 脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信 号,当 RS 为高电平 R/W为低电平时可以写入数据。 第 6 脚:E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 714脚:D0D7为 8 位双向数据线。 第 15脚:背光源正极。 第 16脚:背光源负极。2.3.2播放电路利用STC89S52的I/O口产生一定的频率方波脉冲,则通过LM386功放电路,放大其频率,使其喇叭产生不同的音调从而演凑乐曲。LM386是美国的国家半导体公司生产的音频功率放大器,其主要应用于电压较低的电子产品。使用原件少,且电压内置增益20。在使用过程中,总是在1脚和8脚之间加入一个电容和电阻,从而将电压增益设置为任意值,达到200左右。输入端以地为参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。此器件静态时,功耗较低,大约达到4mA左右,工作电压范围一般在4-12V左右,电压增益可在20-200之间任意调整,且失真度较小。图2-7 播放电路图3程序设计3.1程序流程图当主程序运行实现了对单片机的初始化之后,开始进行对子程序的识别,进而识别待播放的歌曲进行判断。待到得到的指令与相应的歌曲程序相同,1602液晶显示器就能进行显示其曲目。最后判断是否对音乐进行播放或者暂停,从而得带指令进行播放。等执行的程序使歌曲播放,关闭1602液晶显示器并并且查询子程序对其进行播放音乐。当音乐在播放音乐的过程中,从头开始查询子程序循环,从而判断音乐是否结束。当音乐播放结束时,程序就开始跳转回原来曲目识别子程序。开始程序初始化判断有无红外信号红外未收到红外信号收到红外信号处理红外信号暂停与结束播放下一曲播放上一曲播放选择歌曲程序原始化 图3-1 音乐播放流程图3.2红外解码程序unsigned char irtime; /脉冲宽度时间值unsigned char startflag;/接收开始标志 unsigned char bitnum; /码组位数 unsigned char irreceok; /接收完成标志 unsigned char irprocok; /解码完成标志 unsigned char irdata33;/脉冲宽度数组 unsigned char ircode4; /解码值数组 void timer0init(void) TMOD=0x02; /定时器0 定时方式2 8位自动重装TH0=0x00; /初值为0 实现定时256us TL0=0x00; ET0=1; /开定时器0中断 EA=1; /开总中断 TR0=1; /启动定时器0 void int1init(void) IT1=1; /外部中断1负跳变沿有效 EX1=1; /开外部中断1中断 EA=1; /开总中断 void irproc(void) /解码函数 uchar k,value,m,j; k=1; for(j=0;j4;j+) /4组二进制码 for(m=0;m1; /由于低位在前,所以右移到正常顺序 if(irdatak6) /irtime大于6*256us 则解码数据为1 value=value | 0x80; /解码数据为1 则高位或1 则高位置1 k+; /所有二进制码的位 ircodej=value; /每组解码后的值存入ircode irprocok=1; /解码完成 void main() timer0init(); /定时器初始化 int1init(); /外部中断初始化 while(1) if(irreceok) /接收完成 irproc(); /解码 irreceok=0; if(irprocok) /解码完成 irwork(); /把解码后的数据转成16进制的两位数 irprocok=0; void timer0() interrupt 1 irtime+; void int1() interrupt 2 if(startflag=1) if(irtime32) /检测9ms引导码 bitnum=0; irdatabitnum=irtime; irtime=0; bitnum+; if(bitnum=33) /接收结束 bitnum=0; irreceok=1; /接收完成 else startflag=1; /接收开始标志位 irtime=0; 3.3 播放及其显示程序设计#include#define sound_amount 5 /歌曲的数量sbit play_up=P13; /上一首歌sbit play_down=P35; /下一首歌sbit pause=P32; /播放暂停sbit speaker=P10; /无源蜂鸣器/unsigned char timer0h,timer0l,time;/timer0h,timer0l为定时器T0的高低位初值,time为对应的节拍时间unsigned char music_num; /music_num为歌曲编号,music_num=0表示刚开机时的状态,num是查找歌曲数据表的地址unsigned int num;signed int fre; /对应频率数据表的地址bit play_enable; /歌曲播放的使能标志位,用于播放暂停void delay(unsigned char t); /延时子函数,控制发音的时间长度void delayms(unsigned int t); /普通延时子程序,可用于按键消抖void music_play(void); /播放歌曲/每三个数字,代表一个音符/第一个数字是音符的数值1234567之一(第几个音),代表哆来咪发./第二个数字是0123之一,代表低音中音高音超高音(第几个八度)/第三个数字是时间长度,以半拍为单位,乐曲数据表的结尾是三个0/烟花易冷unsigned char code song1= 5,2,1, 3,2,1, 2,2,2, 2,2,4, 3,2,1, 1,2,1, 2,2,1, 3,2,4, 5,2,1, 3,2,1, 2,2,2, 2,2,2, 5,1,1, 3,2,1, 4,2,1, 3,2,4, 3,2,1, 3,2,1, 7,2,1, 3,2,1, 2,2,2, 1,2,1, 7,1,1, 1,2,1, 2,2,1, 3,2,1, 6,2,3, 6,1,1, 1,2,1, 3,2,1, 2,2,1, 6,1,1, 1,2,1, 7,1,1, 5,1,1, 6,1,6, 5,2,1, 3,2,1, 2,2,2, 2,2,1, 2,2,1, 2,2,1, 5,1,1, 3,2,1, 4,2,1, 3,2,4, 3,2,1, 3,2,1, 7,2,3, 3,2,1, 2,2,2, 1,2,1, 7,1,1, 1,2,1, 2,2,1, 3,2,1, 6,2,3, 6,1,1, 1,2,1, 3,2,1, 2,2,1, 6,1,1, 1,2,1, 7,1,2, 5,1,2, 6,1,6, 0,0,0 ;/发如雪unsigned char code song2= 5,1,1, 2,2,1, 3,2,2, 2,2,1, 3,2,1, 5,2,1, 6,2,1, 5,2,3, 1,2,1, 2,2,1, 3,2,1, 6,2,1, 5,2,1, 3,2,1, 5,2,3, 5,2,1, 6,2,1, 1,3,2, 6,2,1, 5,2,1, 3,2,1, 5,2,1, 3,2,2, 1,2,1, 2,2,1, 3,2,1, 1,2,1, 6,1,1, 3,2,1, 2,2,1, 5,1,1, 2,2,1, 3,2,2, 2,2,1, 3,2,1, 5,2,1, 6,2,1, 5,2,3, 1,2,1, 2,2,1, 5,2,1, 3,2,1, 5,2,1, 3,2,2, 1,2,1, 6,1,1, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 2,2,1, 2,2,1, 1,2,4, 0,0,0 ;/简单爱unsigned char code song3= 5,1,1, 1,2,1, 2,2,1, 3,2,1, 2,2,1, 3,2,1, 4,2,1, 5,2,1, 5,2,1, 5,2,1, 4,2,1, 3,2,1, 2,2,3, 5,1,1, 1,2,1, 2,2,1, 3,2,1, 4,2,1, 5,2,1, 5,2,1, 5,2,1, 6,2,1, 5,2,2, 2,2,1, 3,2,1, 1,2,2, 1,2,1, 6,1,1, 2,2,1, 2,2,1, 3,2,1, 3,2,1, 1,2,1, 5,2,1, 1,2,1, 5,2,1, 1,2,1, 7,1,1, 1,2,1, 1,2,1, 6,1,1, 2,2,1, 2,2,1, 3,2,1, 3,2,1, 5,2,1, 5,2,1, 4,2,1, 3,2,1, 2,2,3, 5,1,1, 1,2,1, 2,2,1, 3,2,1, 2,2,1, 3,2,1, 4,2,1, 5,2,1, 5,2,1, 5,2,2, 2,2,1, 3,2,1, 1,2,2, 1,2,1, 6,1,1, 2,2,1, 2,2,1, 3,2,1, 3,2,1, 1,2,2, 5,2,1, 1,2,1, 5,2,1, 5,2,1, 7,1,1, 1,2,1, 0,0,0 ;/世上只有妈妈好unsigned char code song4= 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个半拍; /. 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 song5= 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, 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 song6= 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, 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 song7= 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, 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;/最浪漫的事unsigned char code song8= 5,1,1, 6,1,1, 1,2,1, 6,1,2, 6,1,1, 5,1,1, 6,1,1, 5,1,1, 3,1,1, 5,1,5, 5,1,1, 6,1,1, 1,2,1, 6,1,2, 6,1,1, 5,1,1, 6,1,1, 5,1,1, 6,1,1, 1,1,5, 3,1,2, 2,1,3, 5,1,1, 6,1,1, 1,2,1, 6,1,2, 6,1,1, 5,1,1, 6,1,1, 5,1,1, 6,1,1, 1,1,5, 1,1,1, 2,1,1, 3,1,1, 4,1,2, 4,1,1, 5,1,1, 6,1,1, 6,1,1, 5,1,1, 6,1,2, 1,2,1, 6,1,3, 1,2,1, 6,1,1, 5,1,1, 5,1,4, 1,1,1, 6,1,1, 5,1,5, 5,1,1, 6,1,1, 1,2,1, 3,1,1, 2,1,1, 3,1,1, 1,1,6, 0,0,0; / 频率-半周期数据表 高八位 共保存了四个八度的28个频率数据unsigned char code FREQH= 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, /低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,/1,2,3,4,5,6,7,i 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, /高音 234567 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF; /超高音 1234567/ 频率-半周期数据表 低八位unsigned char code FREQL= 0x42, 0xC1, 0x17, 0xB6, /低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, /1,2,3,4,5,6,7,i 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, /高音 234567 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16; /超高音 1234567 void main(void)TMOD=0x11; /T0 T1 均在工作方式1ET0=1; /T0开中断EA=1; /CPU开中断 while(1)music_play();/根据当前状态播放相应歌曲的某个音符if(!pause)/暂停键处理if(!pause)if(music_num=0) /music_num=0只有在刚开机,且未按下暂停键时存在,表示刚开机时的状态,按下后从第一首开始播放music_num=1; /歌曲序号置1num=0; /从头播放play_enable=1;/允许播放elseplay_enable=play_enable; speaker=1;while(!pause) /若按着暂停键不放手时的处理if(play_enable=0) /如果是暂停,则显示时间不变/(暂停时play_enable=0) /暂停键处理结束/while结束if(!play_up)&(music_num!=0) /上一首按键delayms(5);if(!play_up)&(music_num!=0) speaker=1;music_num-=1;/歌曲编号减一if(music_num=0)music_num=8;num=0; /从头开始播放if(music_num=(sound_amount+1)music_num=1; delayms(500);/歌曲切换时延时0.5Sif(!play_down)&(music_num!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧城市雨水管网改造项目可行性研究
- 新工科教育实践模式创新与落地路径
- 乡镇农村饮水安全提升与改造可行性分析报告
- 家校社合作推动双减政策有效实施
- 海水淡化行业发展趋势与市场潜力解析
- 产教融合驱动技能提升实训基地项目可行性分析
- 2024年农艺师考试团队领导力试题及答案
- 辅导员工作中的心理辅导技巧试题及答案
- 战略思维在农业职业经理人考试中的影响试题及答案
- 2025年等离子体沉积和刻蚀设备项目发展计划
- 数据运营全流程手册
- 5W1H-分析法与5W分析法培训课件
- 动火作业安全检查表
- Revit-基础教程课件
- 尿失禁的康复计划
- 南昌航空大学往年计算机C语言题目(含六套)
- 农村宅基地和建房(规划许可)申请表
- 区域新能源集控中心建设方案
- 英语四线三格Word版
- 行政公文写作-决定(应用文写作课件)
- 自身免疫性肝病的诊治进展
评论
0/150
提交评论