版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上摘 要本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。本文是应用MCS-51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用C语言进行程序设计。通过控制单片机内部的
2、定时器来产生不同频率的方波,驱动蜂鸣器发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。这种控制电路结构简单,可读性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。关键词:单片机;音乐播放器;C语言。目 录专心-专注-专业绪 论单片机,更确切地说应称为作微控制器,是20世纪70年代中期发展起来的一种面向控制的大规模集成电路模块,其特点是功能强、体积小、可靠性高、价格低廉。它一面世便在工业控制、数据采集、智能仪表化、机电一体化、家用电器等领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化程度
3、。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。本文将介绍一种以89C51型单片机为基础元件设计的自动音乐播放器。在当今这个科技高速发展的时代,生活节奏的加快,人们长期处于工作、学习压力过大的状态,对于调节心理压力而言音乐对于每一个人都十分重要,由此音乐播放器在国内已经开始普及。校园里的上下课的铃声,宿舍内早晨的起床号声音,都由以前枯燥刺耳的铃音转变成了好听的音乐,公路、广场中的计时装置也逐渐开始采用音乐来充当铃声。此装置不仅为人们日常生活的计时提供了方便,同时也为目前快节奏的生活带来了乐趣。本次设计以89C51单片机为基础,利用单片机编成技术对芯片进行功能设定,实现音乐的播放。
4、同时,利用单片机的定时器中断,在单片机内部产生所需要的音乐频率,并通过音频功率放大器将音频信号放大,通过蜂鸣器连续播放一段音乐。此设计通过多次测试,音乐声音宏亮清晰,节拍正常,达到预期效果。本文将围绕基于单片机的自动音乐播放器,介绍一些关于单片机的基础知识、音乐播放器的制作原理及方法(其中包括了音乐编程原理)、定时器的设定,以及仿真软件(Keil、Proteus)的使用方法。第1章 音乐盒的设计总体方案单片机音乐播放器控制系统结构简单,环节较少,因此,单片机音乐播放器包括LED彩灯、数码管的显示。除了播放音乐有按键外,其余的硬件组成大体相同;对于单片机音乐播放器声音的读出除了蜂鸣器以外,还要配
5、置合适的放大器播放出响亮的声音。单片机按键电路复位电路晶振电路发声电路时钟电路电源电路图 1-1 结构总图单片机音乐播放器电路板向着小型化、低功耗、抗千扰、低成本、实用功能方向发展。因此在对单片机的选择趋向于容量适中、功能丰富、性能可靠、价格低的元件。因此本设计中应用最为广泛的MCS-51系列8位单片机8051。第2章 硬件电路设计2.1 总体设计框图 80c51单片机扬声器歌曲制按钮电源复位晶振时钟钟图 2-1 总设计图2.2 时钟电路 图 2-2 时钟电路2.3 复位电路 图 2-3 复位电路2.4 选曲按键电路 图 2-4 选曲电路其中P3.2 播放暂停, P1.2上一首歌,P3.5下一
6、首歌。2.5 音频发生及放大电路图 2-5音频发生及放大电路利用STC89C51的I/O口产生一定频率的方波脉冲,通过LM386功放电路驱动喇叭发出不同的音调从而演凑乐曲。第3章 软件程序设计 3.1单片机发声概述一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐振频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需能清楚“音调”和“节拍”两个概念即可。 音调表示一个音符唱多高的频率。 节拍表示一个音符唱多长的时间。 知道了一个音符的频率后,便可以让单片机发出相应频率的振荡信号,从而产生相应的音符声音。通过单片机的定
7、时器进行定时中断,在中断服务程序中将单片机上完结单片机I/O口来回置高电平或者是低电平的,从而让扬声器发出声音。通过节拍计算出每个音符所需要的时间,采用循环延时的方法来实现控制一个音符唱多长的时间,从而构成一首完整的音乐。音调主要由声音的频率决定。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随响度增加而下降,高频纯音的音调却随响度增加而上升。 以标准高音A的频率F=440HZ,其对应的周期为: T=1/F=1/440=2272us 因此需要在单片机I/O端口输出周期为T=2272us的方波脉冲,也就是t=T/2=2272/
8、2=1136us 也就是说,单片机上定时器的中断出发时间为1136us。如果单片机采用定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为f,则定时器的预置初始值有以下公式来确定: Temp = 65536-(50000/CurrentFre)*10/(/SYSTEM_OSC) TH = Temp /256 TL = Temp %2563.2 程序流程图 开始初始化堆栈初始化音乐输出口及按钮 暂停/播放键是否按下上一曲键是否按下,并且在开机后有一次
9、按下暂停/播放键根据当前状态播放相应歌曲的某个音符按键处理是否下一曲键是否按下,并且在开机后有一次按下暂停/播放键按键处理是 否按键处理是 否开机后是否按下过暂停/播放键是 按键处理否3.3 音乐的产生 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每
10、当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,则半周期为1912/2=956s,因此只要令计数器计时956s,每计数956次时将I/O反相,就可得到中音DO(523Hz)则初始值为65535-956 = 64579 = 0xFC43。计数脉冲值与频率的关系式(如式3-1所示)是:Nfi÷2÷fr
11、160; (3-1)式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T65536N65536fi÷2÷fr 例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
12、; T65536N65536fi÷2÷fr65536÷2÷fr65536/fr 低音DO的T65536/26263627 中音DO的T65536/52364580 高音DO的T65536/104665059 第4章 KEIL仿真软件的应用硬件与软件的设计一般都要分别借助一些软件,如我们通常用作电路设计与制版的Protel,MCS-51程序开发工具KEIL等。Keil C51 uVision2集成开发环境
13、是基于80C51内核的软件开发平台,支持工程建立、程序的编译与链接、软件仿真、硬件仿真、目标代码的生成等功能。Keil C51编译器在产生代码的准确性和效率方面达到了较高的水平。 与大多数集成开发环境类似,Keil C51集成开发环境也是用工程的方法来管理文件,在一个工程文件中源程序(C51程序、汇编程序)、头文件等都可以进行统一管理。 安装运行KEIL51,使用KEIL的开发工具进行项目开发过程,与其他软件开发项目的过程基本上相同:创建C 语言或汇编语言的源程序。编译或汇编源文件。纠正源文件中的错误。从编译器和汇编器连接目标文件。测试连接的应用程序。第5章 调试与故障分析
14、 5.1 软件程序调试 本次设计的软件部分由音乐播放程序组成。关于音乐播放程序的调试,我首先采用Preteus软件来仿真,但是该仿真软件中没有喇叭或蜂鸣器等声音播放工具。于是本人将图3-4中的单片机的P1.0处接了一个示波器,想通过这样来仿真并调试音乐播放程序,但是效果不是很理想。程序运行的时候,能看见示波器有不同频率的波形交替出现,但是频率变换得很快,无法确认是否显示的是所需要的频率,并且无法辨别音频变换的节奏是否正确。此方法并不适用。接着,我制作了一个简单的单片机播放器电路。即在实验板上焊接实验电路,电路由单片机89C51、按钮外围电路组成,并在单片机的P1.0处用三极管连接一个简单的音频
15、放大器,再外接一个蜂鸣器。将程序写入单片机中,这样就能听出声音和音乐节奏是否正确。5.2 硬件电路调试 本次设计的硬件电路主要由单片机89C51组成,在调试电路的过程中也碰到了一些问题。问题一:单片机无法正常下载程序。调试步骤:(1)检查单片机和串口电路是否连接错。(2)检查焊接电路是否有虚焊和漏焊。问题二:下载音频程序后无法播放音乐。调试步骤:检查电源是否正常接入电路中。利用示波器测试单片机输出端是否有信号输出,发现信号输出正常,说明单片机正常工作。利用示波器测试音频放大电路输出端是否有信号输出,发现信号输出正常,说明音频放大电路工作正常,同时说明是蜂鸣器部分出现了问题。故障原因:焊接时将发
16、声器件烧坏了,导致发不出声音。解决方案:重新换一个无源蜂鸣器,即可正常播放音乐。总 结 经过这次创新设计,我觉得自己学到了不少东西。归纳起来,主要有以下几点:(1)通过这次创新设计,我能将以前四年所学到的专业知识与实践相联系,将所学到的知识充分运用到本次设计中。同时,我也认识到自己知识上不足的地方,体会到了所学理论知识的重要性,知识掌握得越多,设计得就更全面、更顺利、更好。(2)进一步熟悉了单片机的知识。通过本次设计,我对单片机的基本原理、内部结构、各引脚功能、定时器和中断的应用都有了更深刻的理解。并且,能够以单片机为基础元件设计一个简单的系统。(3)通过本次设计,熟悉了设计一个项目所必经的几
17、个阶段。本次设计从理论研究到硬件原理图设计,从元器件的选择到PCB板的制作,从软件编程到最后的调试过程都由我独立完成。这不仅锻炼了我独立完成设计工作的能力,更重要的是了解了一个电子产品的设计流程,为将来投入工作增加了宝贵的经验,奠定了坚实的基础。(4)提高了自己查找资料的能力。在设计过程中,我碰到了一些暂时无法解决的问题,于是我通过上网查阅和图书馆借阅资料,或是通过与老师同学交流一步步地解决了。从中我懂得了我们这个专业的知识面相当广泛,我们需要不断通过各种途径更新自己的知识,不断充实自己,同时要懂得与他人交流意见,积极听取别人的建议,懂得不断学习的重要性。致 谢在枣庄学院的求学生涯在师长、亲友
18、的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。 伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快
19、乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!最后再一次感谢所有在创新设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。参考文献1 郑郁正.单片机原理及应用.四川大学出版社,20032 谭浩强.C程序设计(第二版).清华大学出版社,19993 王晓君.安国臣等. MCS51及兼容单片机原理与选型. 北京-电子工业出版社, 20034 李启炎. Protel 99SE应用教程. 上海-同济大学出版社 2005.25 胡烨, 姚鹏翼, 江思敏. Protel 9
20、9 SE电路设计与仿真教程. 北京-机械工业出版社, 20066 张义和,陈敌北。例说8051。北京:人民邮电出版社,20067 张洪润,张亚凡。单片机原理及应用。清华大学出版社,20048 AT89C51 DATA SHEEP Philips Semiconductors 1999.dec9Yang. Y., Yi. J., Woo, Y.Y., and Kim. B.: Optimum design for linearityand efficiency of microwave Doherty amplifier using a new loadmatching technique, M
21、icrow. J., 2001, 44, (12), pp. 203610 Vizimuller, P.: RF design guide-systems, circuits, and equations (ArtechHouse, Boston, MA, 1995)附录1:原理图附录2:源程序#include<reg51.h>#define sound_amount 5 /歌曲的数量sbit play_up=P13; /上一首歌sbit play_down=P35; /下一首歌sbit pause=P32; /播放暂停sbit speaker=P10; /无源蜂鸣器unsigne
22、d 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); /
23、普通延时子程序,可用于按键消抖void music_play(void); /播放歌曲/每三个数字,代表一个音符/第一个数字是音符的数值之一(第几个音),代表哆来咪发./第二个数字是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
24、,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,
25、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,
26、 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
27、,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,
28、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个半拍
29、;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,
30、 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,
31、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,
32、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,
33、 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,
34、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, /低音 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0x
35、FC,/1,2,3,4,5,6,7,i 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, /高音 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF; /超高音 / 频率-半周期数据表 低八位unsigned char code FREQL= 0x42, 0xC1, 0x17, 0xB6, /低音 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, /1,2,3,4,5,6,7,i 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, /高音 0x47, 0x77, 0xA2, 0
36、xB6, 0xDA, 0xFA, 0x16; /超高音 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_e
37、nable; 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_a
38、mount+1)music_num=1; delayms(500);/歌曲切换时延时0.5Sif(!play_down)&&(music_num!=0)delayms(5);if(!play_down)&&(music_num!=0) speaker=1;music_num=1;num=0; /从头开始播放if(music_num=0)music_num=sound_amount;delayms(500);/歌曲切换时延时0.5S void delayms(unsigned int t) /MS延时子程序unsigned int i,j;for(i=0;i<
39、;t;i+)for(j=0;j<123;j+);void delay(unsigned char t) /延时子函数,控制发音的时间长度,每个节拍0.4Sunsigned char t1;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)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 板块构造学说
- 患者就诊排队管理制度
- 算法设计与分析 课件 3.4-递归 - 典型应用 - 整数划分
- 2024年山南道路客运从业资格证考试模拟试题
- 2024年商洛客运从业资格证到期换证考试
- 2024年吉林客运模拟考试
- 2024年长沙客运从业资格证考试考什么
- 2024年拉萨客运驾驶员试题答案
- 人教部编版二年级语文上册《语文园地二》精美课件
- 吉首大学《风景园林花卉学》2021-2022学年第一学期期末试卷
- 文化行业文化遗产保护与数字化传承方案
- 黑臭河道整治工程施工组织设计
- 《地名、人名的拼写》教学设计
- 2024年中国长江三峡集团限公司“定向招聘”校园招聘(226人)高频考题难、易错点模拟试题(共500题)附带答案详解
- 2024届新高考数学大题训练:数列(30题)(解析版)
- 贸易居间费合同范本
- 部编版道德与法治七年级上册每课教学反思
- 2024-2030年中国碳纳米管(CNT)材料行业市场发展趋势与前景展望战略分析报告
- 人教版二年级数学上册第六单元《表内乘法(二)》说课稿(含14课时)
- 项目风险记录及跟踪表
- 房地产市场报告 -2024年第二季度广州写字楼办公楼出租租金市场分析报告与发展前景趋势展望
评论
0/150
提交评论