数字音乐盒的设计

合集下载

《数字音乐盒》设计报告

《数字音乐盒》设计报告

《数字音乐盒》设计报告
设计目标:
本数字音乐盒旨在提供一种方便、易用的音乐播放体验,让用户可以随时随地享受自己喜欢的音乐。

具体设计要求如下:
1. 支持多种音频格式,如MP3、FLAC等。

2. 采用简洁、直观的用户界面,方便用户操作。

3. 支持多种播放模式,如顺序播放、随机播放等,并且能够记忆用户播放模式。

4. 提供多种音效调节和均衡器设置,使用户可以自由调整音乐效果。

5. 支持歌词显示功能,使用户可以更好地理解音乐。

6. 支持歌曲收藏功能,使用户可以方便地收藏自己的喜爱歌曲。

设计思路与方案:
本数字音乐盒采用嵌入式系统设计,主要硬件部件包括音频芯片、显示屏幕和按键模块,其中音频芯片为核心部件,支持多种音频格式的解码和播放。

用户界面设计上,采用五向导航及确认键来进行操作,主界面分为“音乐播放”和“歌曲收藏”两大模块。

在“音乐播放”模块中,
用户可以选择不同的播放模式,包括顺序播放、随机播放和循环播放。

在播放过程中,用户可以通过前进、后退、暂停等操作来控制音乐播放进程。

同时,也提供了多种音效调节和均衡器设置,用户可以自行选择调整音乐效果。

在播放过程中,歌词会自动显示在屏幕上,方便用户理解歌曲。

在“歌曲收藏”模块中,用户可以收藏自己喜爱的歌曲,方便日后收听。

总结:
本数字音乐盒设计主要针对音乐爱好者,通过简洁、易用的界面设计和多种音效、播放模式等功能的设计,为用户提供了更为便捷、自由的音乐播放体验。

同时,歌曲收藏功能也使用户可以随时查找和收听自己喜爱的歌曲,满足用户对音乐的品质需求。

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计数字式音乐盒是一种音乐播放器,它通过数字技术存储和播放音乐。

基于单片机的数字式音乐盒可以使用单片机控制音乐的播放,实现音符和旋律的发声和控制。

本文将介绍如何设计一款基于单片机的数字式音乐盒。

一、音乐盒基本原理音乐盒是通过一个带有齿轮的转子,以弹簧的力量驱动,使得钢片受到磁力响应并发声,从而发出旋律。

数字式音乐盒是通过数字技术将音乐编码为数字信号,并存储在芯片中,通过解码器将数字信号还原为音符和旋律发声。

二、单片机控制电路设计1.芯片选择要设计一个数字式音乐盒,需要先选择一款合适的单片机,常用的有AT89C51、STC89C52等。

这里选择一款性能好且价格适中的STC89C52单片机。

2.存储器选型数字式音乐盒的数字信号需要存储在内存中,为了方便起见,使用一个4Mbit的Flash记忆芯片作为存储器。

3.音频输出电路数字信号需要通过解码器进行还原后才能通过音频输出电路输出。

可以使用一对耳机或者喇叭,同时需要用到音量电位器控制音量。

三、软件程序设计1.数字信号编解码算法的设计,可以使用目前较为流行的MIDI编码格式。

2.音乐信号输入模块设计,可以使用USB接口或SD卡接口。

3.数据接收模块设计,可以使用串行通信或者并行通信。

4.数字信号存储模块设计,使用Flash记忆芯片。

5.控制模块设计,实现单片机控制音乐盒的所有操作。

四、实现效果基于单片机的数字式音乐盒实现较为简单,但是需要注意以下几点:1.考虑使用定时器计算控制音乐的播放时间,保证旋律按照要求执行。

2.使用ADC(模拟-数字转换器)读取音量电位器值,对音量进行控制。

3.在使用USB接口时,需要有电路板,使得USB通信接口稳定,可靠。

基于单片机的数字式音乐盒是一种方便实用的音乐盒,通过数字技术的运用,实现了音乐的存储和播放,可广泛应用于各个领域中。

数字音乐盒设计

数字音乐盒设计

基于51单片机的可控数字音乐盒设计摘要本文是一篇基于AT89C51单片机的可控数字音乐盒的程序设计。

该音乐盒是一个依据单片机技术原理,通过PROTEUS仿真软件对硬件电路进行仿真制作以及利用KEIL软件对音乐盒源程序进行C语言编译,而设计制作出的一个多功能数字音乐盒。

该音乐盒通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐。

该程序通过把乐谱转化成相应的定时常数来驱动发音设备演奏出悦耳动听的音乐。

本音乐盒一共设计了五首歌曲,同时还设计了三种LED彩灯的变化花样。

在演奏歌曲时彩灯随音调闪烁。

在停止演奏歌曲时三种彩灯花样开始闪烁。

歌曲和花样均可随意切换。

与此同时,数码管也不断变化数字,以此显示歌曲和彩灯花样的序号。

关键词:数字音乐盒;AT89C51;KEIL;PROTEUS;数码管目录1前言------------------------------------------------------------------------------------------------------1 2单片机和音乐盒硬件的功能------------------------------------------------------------------------2 2.1AT89C51芯片的功能----------------------------------------------------------------------------2 2.2音乐盒的硬件及其功能-------------------------------------------------------------------------4 3数字音乐盒的主体设计方案------------------------------------------------------------------------5 3.1音乐盒的主体结构-------------------------------------------------------------------------------5 3.2 主设计软件的介绍-------------------------------------------------------------------------------53.2.1编程软件KEIL的简介-----------------------------------------------------------------53.2.2 仿真软件PROTEUS的简介-----------------------------------------------------------64 音乐盒硬件设计---------------------------------------------------------------------------------------8 4.1总设计框图----------------------------------------------------------------------------------------8 4.2 各部分硬件的作用-------------------------------------------------------------------------------84.2.1时钟振荡电路------------------------------------------------------------------------------84.2.2 LED和数码管的设计--------------------------------------------------------------------95 音调和节拍的设计-----------------------------------------------------------------------------------11 5.1 音调和节拍的设计以及音乐基础知识------------------------------------------------------115.2 音调和节拍的编码------------------------------------------------------------------------------136 源程序设计--------------------------------------------------------------------------------------------14 6.1音乐程序------------------------------------------------------------------------------------------14 6.2 LED花样程序-------------------------------------------------------------------------------------15 6.3 数码管程序---------------------------------------------------------------------------------------16 7数字音乐盒总设计图--------------------------------------------------------------------------------17 7.1 仿真总设计图------------------------------------------------------------------------------------17 7.2 实物总设计图------------------------------------------------------------------------------------18 8结论-----------------------------------------------------------------------------------------------------19 参考文献--------------------------------------------------------------------------------------------------20 致谢--------------------------------------------------------------------------------------------------------21 附录A总程序源代码及注释-------------------------------------------------------------------------221 前言随着科技越来越发达,单片机技术也越来越纯熟,单片机的应用也越来越广泛,可以说几乎很难找到哪个领域没有单片机的踪迹。

数字音乐盒设计方案

数字音乐盒设计方案

数字音乐盒设计方案1.1 智能音乐盒背景及意义音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。

当时为使教会的的钟塔报时,而将大小的钟表上机械装置,被称为“可发出声音的组钟”。

1598年,意大利籍耶稣会士利玛窦第一次来到,随行礼物中就有八音琴一台。

这是有史书记载的最早进入中国的八音琴。

经过各种的发明创造,1780年前后,拉匀芳的瑞士人从人偶自动钟的原理获得启示,发明了一种令人赞叹的机制——机械鸟鸣钟。

1796年,日瓦钟匠的发明,给机械音乐盒带来了革命性的改变,使音乐盒的体积缩小达到极限,而在接下来的世纪得以成功的发展。

1870年,德国的发明家首创了盘式音乐盒。

17世纪初,音乐盒的工业成为瑞士超过制表和缝制蕾丝业的第一大产业,这使得位于瑞士侏罗山边的小镇闻名于世。

1.2 国外单片机应用音乐盒概况1992年,中国第一台具有自主知识产权的八音琴在中国韵升的诞生,标志着中国,全方位地参与全球音乐盒这块巨大蛋糕的市场竞争,经过十多年的努力,韵升对八音琴的制造技术进行了更多的技术更新,取得了多个国家和地区50余项发明专利。

这使得音乐盒无论在音质,音量,谱曲,和外观设计等方面都有了更大的改进。

目前,韵升八音琴已占据全球八音琴市场份额的1/4,仅次于日本Sankyo,位居全球第二位。

音乐盒300多年的产品发展,同时也是人类文明300多年发展的历史鉴证。

每个不同时期的音乐盒造型,都能折射出当时不同的社会心态和文明发展现状,它也成了时代的一面镜子。

现今,音乐盒的制造,延袭传统,结合现代,正日益成为人们或为了典藏一段岁月,或为了收藏一份情感,或出于对音乐的追求,或对于旧时代的怀念,或为了居室的美化,等等,而得到众多品位人士的追求。

韵升八音琴店在新天地里设立了自己在的第一家店面,这也是惟一一家国品牌的八音琴专卖店。

在66平方米的店面中设了将近120多种八音琴,只要走进去就能感受到八音琴那清澈、透亮的音质所带来的美妙享受。

在这里,八音琴的价格并不是很贵,很适合作为礼品送给自己的朋友,其中,30音的八音琴价格在500元左右,50音的八音琴价格几乎上千。

数字音乐盒课程设计

数字音乐盒课程设计

数字音乐盒课程设计一、课程目标知识目标:1. 让学生掌握数字音乐的基础知识,包括音符、音阶、节奏等概念;2. 培养学生运用电子设备进行音乐创作的能力,了解数字音乐盒的基本原理;3. 让学生了解不同音乐风格的特点,拓展音乐视野。

技能目标:1. 培养学生运用音乐软件进行创作、编辑和播放数字音乐的能力;2. 提高学生团队协作能力,学会与他人共同完成音乐作品;3. 培养学生创新思维,能够独立设计并制作具有个人特色的数字音乐作品。

情感态度价值观目标:1. 培养学生对音乐的热爱和兴趣,激发他们积极参与音乐活动的热情;2. 培养学生尊重他人作品,树立正确的版权意识;3. 通过音乐创作,培养学生审美观念,提高审美情趣。

分析课程性质、学生特点和教学要求,本课程目标旨在让五年级学生在掌握音乐基础知识的基础上,运用现代科技手段创作音乐作品。

课程将帮助学生将所学知识应用于实际操作中,培养他们的创新精神和团队协作能力,同时提高音乐素养,为今后的音乐学习打下坚实基础。

二、教学内容1. 数字音乐基础知识:音符、音阶、节奏、拍子等基本概念的学习,使学生能够理解音乐的基本元素。

- 教材章节:第一章《音乐的基础知识》- 内容列举:音符的识别、音阶的构成、节奏的练习。

2. 数字音乐创作:运用音乐软件(如GarageBand)进行音乐创作,了解数字音乐盒的工作原理。

- 教材章节:第二章《数字音乐创作》- 内容列举:音乐软件的介绍与操作、音色的选择与搭配、简单旋律的创作。

3. 音乐风格学习:学习不同音乐风格的特点,分析经典作品,培养学生音乐鉴赏能力。

- 教材章节:第三章《音乐风格》- 内容列举:流行音乐、古典音乐、民族音乐等风格的学习与鉴赏。

4. 团队协作与创作实践:分组进行音乐创作,培养学生团队协作能力和创新思维。

- 教材章节:第四章《音乐创作实践》- 内容列举:团队协作流程、音乐创作方法、作品展示与评价。

5. 音乐作品展示与评价:展示学生创作的数字音乐作品,进行自评、互评和教师评价,提高学生的审美观念。

数字音乐盒设计说明

数字音乐盒设计说明

文理学院综合课程设计(一)Integrated Curriculum Design(1)所在院系信息工程系专业名称电子信息工程班级1001题目数字音乐盒设计指导教师成员数字音乐盒的设计1 设计目的(1)熟悉用于单片机C语言的一些用法。

(2)掌握单片机的基本功能。

(3)了解程序是如何控制硬件。

2 设计思路音乐部分用控制I/O口高低电平变化的快慢来改变发出音符的频率(即不同唱名的音)按键部分利用中断来控制播放/暂停、上曲/下曲功能3 设计过程3.1方案论证该程序总体分为三个部分:音乐部分、按键部分、显示部分。

音乐部分实现不用频率不同节拍的音构成完整曲目;按键部分实现播放/暂停(key1)、上曲/下曲功能;(key2/key3)显示部分实现开机问候语和曲目播放中曲名的显示;3.2程序设计音符部分:while(x<uchar a)//此处uchar a填的数决定音符响的时长,uint b填的数决定音符频率{speaker=1;delayus(uint b);speaker=0;delayus(uint b)}x=0;按键部分(播放/暂停)void keyscan(){if(key1= =0){delayms(10);if(key1= =0){ET0=~ET0;//通过控制中断开关ET0来实现播放暂停}}上一曲/下一曲部分}void T0_time()interrupt 1{LCD部分程序(显示歌曲状态为暂停)while(1){if(key1= = 0){delayms(10);if (key1= =0)}LCD 部分程序break;}}void INT0_time()interrupt 0 {keyscan();}按键部分(上曲/下曲){key1 部分if(key2= =0){delayms(10);if(key2= =0){n--;if(n= =0)n=3;}}if(key3= =0){delayms(10);if(key3= =0){n++;if(n= =4)n=1;}}}while(x<uchar a){speaker=1;delayus(uint b);if(n!=c)//c填的是曲目序号break;speaker=0;delayus(uint b);if(n!=c)break;}4程序调试与结果分析4.1程序调试在程序没有写完之前,如果前面声明了子函数,但是后面没有用到的话,会出现警告。

《数字音乐盒》设计报告

《数字音乐盒》设计报告
精英团队,稳步发展:我们拥有丰富的人力资源,主要类型有学术研究,软件开发,管理信息技术,图形技术,市场营销等。公司目前拥有骨干四名,同时扮演着员工角色,其中都是本科生。公司在产品开发和设计时查阅了不少专家的相关著作和论文,令我公司在科研,开发和市场营销以及售后服务等方面齐头并进。
持续创新,系列服务:经过很艰辛的努力,我们已经取得了一定的成果,并将在接下来的一段时间推出由本公司自主研发的音乐盒。同时,我们还会为用户提供相关的技术服务,方案制作和系统开发的服务。
图1-2音乐盒硬件电路原理图
3:音符频率和节拍的产生方法
3.1音符频率我们知道,之所以 Nhomakorabea不同的音调正是因为不同的音符对应不同的频率。表1-3给出了我们从低音1到高音7所对应的频率。即在编程时我们要根据音调的变化调整频率的变化。
3.2利用定时器/计数器0产生音符频率
利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出每次取反,就可以在P3.7的引脚输出相应的方波频率。改变计数初值就可以改变频率。即要产生音频输出方波,首先要算出某一个音频的周期(1/f),然后将此周期除以2,得到半个周期的时间。定时器的定时时间等于半个周期,定时时间到就将输出脉冲取反,重复上述过程,就可以在P3.7脚上得某一音频的脉冲。
例如:中音1(DO)的频率=523Hz,周期T=1/523s=1912毫秒;
定时器/计数器0的定时时间为:T/2=956毫秒;
定时956毫秒的计数值=定时时间/机器周期=956毫秒/1毫秒=956(时钟频率=12MHz)
装入TH0、TL0的计数初值THTL=65536-956=64580.
将64580装入TH0、TL0寄存器中,启动T1工作后,每计数956次时将产生溢出中断,进入中断服务程序是,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523Hz)的音符频率。

数字音乐盒设计

数字音乐盒设计

数字音乐盒设计单片机课程设计报告数字音乐盒设计摘要本设计是基于51系列单片机,蜂鸣器,显示数码管LED的数字音乐盒设计,通过利用I/O一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏各种乐曲(本设计为三首,若有必要,可以增加),通过LCD可以显示不同的信息,并且可以通过功能键来选择乐曲,暂停,播放,前进,后退等功能。

音乐盒的电路设计过程在硬件与软件方面进行同步。

其中,硬件方面选择内部存储资源丰富的AT89C52 单片机,时钟采用12MHz晶体振荡电路。

软件方面从分析电路各个功能子模块的功能、流程图设计,再到程序的编写设计均进行了综合的考虑。

编程语言从程序总体设计以及高效性和硬件要求方面考虑,采用汇编语言进行编写。

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面复习与准备。

在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,如何调试等,没有一定的基础就不可能很好的实现。

具体实现功能:1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)2(采用LCD显示信息3(开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)4(可通过功能键选择乐曲,暂停,播放。

目录1概述 (3)1.1 单片机总体功能简介 (4)1.2 AT89CS2芯片功能和硬件 (5)1.3 功能键介绍..................................................................... 6 2系统总体方案及硬件设计 (7)2.1系统设计要求 (7)2.2总体设计方案 (7)2.3系统硬件设计..................................................................... 7 3软件设计 (8)3.1程序设计流程图 (8)3.2计数器初始化 (10)3.3定时器初始化.................................................................. 10 4 Proteus软件仿真 (12)4.1 WAVE软件的使用 (12)4.2 Proteus仿真软件的介绍 (12)4.3 Proteus软件功能仿真...................................................... 13 5课程设计体会.................................................................. 15 参考文献 (16)- 2 -附1源程序代码............................................................... 17 附2系统原理图 (27)1 概述目前,各种传感器、变送器、控制仪表已普遍采用单片机应用系统。

单片机数字音乐盒设计

单片机数字音乐盒设计

单片机数字音乐盒设计
单片机数字音乐盒是一种基于单片机的音乐播放器,可以通过程序控制播放不同的音乐。

下面是一个简单的单片机数字音乐盒的设计思路:
1. 材料准备:
- 单片机:选择一种合适的单片机,如Arduino或者STM32等。

- 扬声器:选择一种合适的扬声器,可以是小型的音箱或者
蜂鸣器等。

- 按键:选择一组适量的按键,用于控制音乐的播放、暂停、切换等功能。

- 电源:准备一块适量的电源供电给单片机。

2. 程序设计:
- 编写单片机的控制程序,包括初始化单片机和音频模块、
判断按键输入、控制音乐的播放等功能。

- 将音乐转化为单片机可识别的数据,可以将音乐文件先转
化为.wav格式,再通过程序将.wav文件转化为单片机可以播
放的数据格式。

3. 连接电路:
- 将单片机与扬声器连接起来,通过合适的音频线连接扬声
器的输入端和单片机的输出端。

- 连接按键到单片机的输入口,使单片机可以接收到按键的
输入信号。

4. 调试测试:
- 将单片机与电源连接并上电。

- 通过按键测试音乐的播放、暂停和切换等功能。

- 如果出现问题,可以通过调试程序和检查电路连接等方式进行故障排除。

单片机课程设计《数字音乐盒的设计》

单片机课程设计《数字音乐盒的设计》

《单片机原理及接口技术》课程设计报告课题名称:数字音乐盒的设计学院:自动控制与机械工程学院专业:机械设计制造及其自动化班级:姓名:时间:2012年1月目录1.概述 (2)1.1设计任务 (2)1.2设计内容 (2)2.系统总体方案介绍 (2)2.1系统组成框图 (2)2.2音乐盒的功能结构图 (3)3.硬件设计 (3)3.1 总体设计框图 (3)3.2各部分硬件设计及其原理 (3)3.2.1 按键电路设计 (4)3.2.2 LED显示电路设计与原理 (4)3.2.3 时钟振荡电路 (4)3.3 硬件电路图及功能 (5)4.软件设计 (5)4.1软件程序设计 (5)4.1.1 程序流程图 (5)4.1.2 程序源代码(见附录A) (6)4.2音乐程序的设计原理 (7)4.2.1 建立音乐的步骤 (7)4.2.2 单片机音乐的产生原理 (7)5.调试 (9)5.1 检查硬件连接 (9)5.2 检查软件系统 (9)5.3 测试结果 (9)5.3.1.总体运行图 (9)6.课程设计体会 (9)7. 参考文献 (10)附录A 程序源代码及注释 (10)附录B C调各音符频率与计数值T的对照表 (28)附录C简谱对应的简谱码、T值、节拍数 (29)1. 概述本设计是以AT89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。

用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。

对于不同型号的单片机只需要相应的改变一下地址即可。

该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。

1.1 设计任务设计一个基于MCS-51系列单片机AT89C51系列单片机的音乐盒,利用按键切换演奏出不同的乐曲。

蜂鸣器发出某个音调,使用两个按键,一个用来选择上一首歌曲,另一个切换下一首歌曲。

数字音乐盒设计

数字音乐盒设计

数字音乐盒设计摘要电子音乐已广泛的应用于社会生活的各个领域,其类型从音乐卡片到CD、MP3等多种多样。

利用单片机控制的电子音乐发生器软硬件上具有独特的优点,系统的开发周期短,成本低,电路制作容易。

更换歌曲时,硬件电路无需作任何修改,只需修改软件即可实现。

本文设计了单片机控制的音乐发生器系统,主要有硬件电路设计和软件设计两部分。

硬件方面选择内部存储资源丰富的AT89C51单片机,时钟采用12MHz晶体振荡电路,软件方面使用汇编语言,同时还可根据个人的习好通过软件改变节拍的延时时间,增加电子音乐的趣味性。

关键字:AT89C51芯片,LED数码管,LED显示器,蜂鸣器。

目录一、相关知识介绍 (1)(一)单片机音乐盒介绍 (1)(二)显示屏控制技术状况 (3)二、总体方案论证与设计 (4)(一)单片机的选取 (4)(二)LED显示方式 (4)(三)LED驱动模式 (5)(四)系统总体结构框图 (5)(一)AT89C51 芯片功能和硬件连接 (6)(二)LED显示器 (8)(三)键盘 (9)(四)系统复位电路的设计 (10)(五)时钟电路模块 (10)(六)输出显示电路 (11)(七)音频输出部分 (11)(八)整体硬件电路 (12)四、系统软件设计 (13)(一)主模块的设计 (13)(二)外部中断源系统设计 (13)(三)基本显示模块设计 (14)(四)系统初始化程序 (15)(五)音调、节拍以及编码的确定方法 (15)(六)程序流程 (19)(七)文档顶端程序清单 (19)五、调试结果 (26)(一)系统总电路图 (26)(二)运行结果及分析 (26)设计小结 (28)参考文献 (29)致谢.....................................................................................................错误!未定义书签。

数字音乐盒

数字音乐盒

数字音乐盒的设计中文摘要数字音乐盒可以发出美妙的旋律,给人一种愉悦的感觉,在现代,各种音乐软件深受人们欢迎。

本设计是基于AT89C52单片机的音乐盒,不仅能发出美妙的音乐,还能通过功能按键对不同乐曲进行选择、暂停、播放。

本设计是用单片机为主控制,通过电路仿真实现的,在Proteus软件中绘制硬件电路原理图,用Keil软件进行编程与调试,最终生成hex文件,载入单片机,从而实现仿真效果。

关键词:音乐盒;单片机;Proteus;KeilStudy on Inhibiting Aflatoxins of Coating to PeanutsABSTRACTDigital music box can be a beautiful melody, give people a feeling of pleasure, in modern times, a variety of popular music software. This design is based on AT89C52 SCM music box, not only can make beautiful music, but also through the function key to select different music, pause, play. This design is to use SCM the main control, through circuit simulation, draw the hardware circuit principle diagram in Proteus software, programming and debugging of Keil software, finally generate the hex file, loaded single, so as to realize the simulation results.Key Words: Music box;MCU;Proteus;Keil一.概述 (1)1.1设计任务 (1)1.2设计内容 (1)二.系统总体方案介绍 (2)2.1.系统组成框图 (2)2.2音乐盒功能介绍图 (2)2.3主要软件介绍 (3)2.3.1 PROTEUS软件简介 (3)2.3.2 KEIL简介 (4)三.硬件设计 (5)3.1各部分硬件设计及其原理 (5)3.1.1 AT89C52简介 (5)3.1.2 LCD1602液晶显示电路设计与原理 (5)3.1.3 时钟振荡电路 (7)3.2 硬件电路图及功能 (8)四.软件设计 (10)4.1音调、节拍以及编码的确定方法 (10)4.1.1 音调的确定 (10)4.1.2 节拍的确定 (11)4.1.3 编码 (12)4.2 软件程序设计 (13)4.2.1 主程序 (13)4.2.2播放音乐子程序 (15)4.2.3程序源代码(见附录A) (15)五.调试 (16)5.1 检查硬件连接 (16)5.2 检查软件系统 (16)5.3 测试结果 (16)5.3.1.总体运行图 (16)5.3.2.显示屏显示图 (17)5.3.3.选择仿真图 (17)5.3.4.花样灯3种花样图 (18)5.3.5.硬件实物图 (19)5.4 测试结果与分析 (19)5.4.1测试结果 (20)5.4.2结果分析 (20)六.项目总结与心得 (22)6.1项目总结 (22)6.2心得体会 (22)参考文献 (24)附录A 程序源代码及注释 (25)引言人类的日常生活离不开音乐,音乐可以陶冶人的情操,给人带来美好的回忆,提高人们的精神文化享受。

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计一、引言音乐盒是一种能播放旋律的小型装置,常见于饰品或礼物中。

传统的音乐盒通常采用机械结构来产生音乐,但随着技术的进步,数字式音乐盒开始逐渐普及。

本文将以单片机为核心,设计一款数字式音乐盒,实现多种旋律的自由切换、音量调节和节拍设置。

二、硬件设计1.单片机选择由于单片机需要处理音乐播放的计算和控制,因此需要选择性能较高的单片机作为核心处理器。

常用的单片机有8051系列、PIC系列以及Arduino等。

本设计选择Arduino UNO作为单片机,因其性能稳定、易用性高。

2.音频模块与扬声器音频模块是用于产生音乐信号的模块,常见的有MP3解码芯片、DAC芯片等。

本设计选择MP3解码芯片作为音频模块,它可以播放预先录制好的音乐文件,并输出为模拟音频信号。

模拟音频信号经过放大电路后,驱动扬声器播放出声音。

3.控制模块与输入按键控制模块是用来接收用户输入指令,并进行相应的处理和控制的模块。

本设计选用几个按键作为输入,通过Arduino的数字IO口来接收按键信号,从而实现音乐切换、音量调节和节拍设置等功能。

4.电源模块电源模块用于为整个系统提供电能,一般选择DC电源或者电池供电。

本设计选择直流电源供电,通过稳压电路将输入电压稳定为单片机和其他模块所需的工作电压。

同时,为了方便携带和使用,电源模块还可以设计为可充电模式,减少电池更换的频率。

三、软件设计1.主程序框架软件设计的主程序框架分为三个模块:音乐播放控制模块、输入按键检测模块和音量调节模块。

主程序通过循环结构,不断检测按键输入,并根据用户的指令进行相应的处理和控制。

2.音乐播放控制模块音乐播放控制模块是整个设计的核心模块,它通过与MP3解码芯片的通信,实现音乐的自由切换。

MP3解码芯片可以将预先录制好的音乐文件保存在存储器中,通过与单片机的串行通信接口,将音乐数据传输到单片机中进行解码和播放。

音乐播放控制模块实现了音乐的播放、暂停、停止等操作,并提供了多个音乐旋律的选择。

数字音乐盒

数字音乐盒

数字音乐盒作者:高柱设计题目:数字音乐盒设计要求:1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)2.采用LCD显示信息3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)4.可通过功能键选择乐曲,暂停,播放。

5.选作内容:显示乐曲播放时间或剩余时间硬件电路:本设计中用到了89C51单片机,4*4键盘,蜂鸣器,16*2 LCD,原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。

也可在LED显示歌曲号。

(1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。

(2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a,b,c,d,e,f,g,用P2.0~P2.7为数码管位选信号。

(3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。

用P0.0~P0.7作为LCD的D0~D7的控制信号。

(4)用P3.7口控制蜂鸣器。

(5)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。

电路图:补充:1602液晶虽然是字符型显示的液晶,但是也是可以显示简单汉字的(如年月日、星期等),另外由于是5*8点阵,所以可以根据需要也可以自己构造简单汉字显示。

实验控制流程图如下:键盘如下:0 1 2 34 5 6 78 9 A BC D E F按键功能说明:1~A:十首歌曲C:上一首歌曲D:下一首歌曲E:歌曲暂停F:开机画面程序调试中出现的问题及解决的办法:1.有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

数字音乐盒的设计与实现

数字音乐盒的设计与实现

数字音乐盒的设计与实现课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:数字音乐盒的设计与实现1 总体设计方案1.1 题目介绍与要求本次课程设计的任务是运用伟福Lab8000试验箱和keil软件设计并实现一个数字音乐盒,要求采用I/O产生一定频率的方波,从而驱动蜂鸣器发出不同的音调,演奏乐曲;并且需要采用七段数码管显示当前播放的歌曲序号和播放时间;还得通过数字键盘直接选择乐曲,控制选择上一曲和下一曲音乐,具有暂停和播放控制功能。

1.2设计思路1.2.1音调的产生频率的高低决定了音调的高低。

音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。

在两个八度音之间又分为十二个半音。

另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E 到F之间为半音,其余为全音。

由此可以计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。

要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

利用51单片机的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。

此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。

例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系公式如下:N=Fi/2/FrN:计算值;Fi:内部计时一次为1us,故其频率为1MHz;其计数值的求法如下:初值T=65536?NC调各音符频率与计数值T的对照表如表1.1所示。

基于单片机的数字音乐盒的设计

基于单片机的数字音乐盒的设计

基于单片机的数字音乐盒的设计摘要这次的数字音乐盒是建立在At89C51单片机程序上设计的,利用一系列单片机智能化设计的多功能实体。

用Proteus软件对所有系统进行仿真制作,而音乐盒源程序的C语言编译部分则是利用Keil软件来实现的。

本系统设计的音乐盒能产生不同的频率波形,主要是通过单片机控制定时器,使喇叭发出不同的音阶音律。

喇叭发出的音调定时常数被转化为乐谱,从而使音乐设备能够演唱出非常动听的音乐节律。

关键词:数字音乐盒;数码管;单片机;Proteus;KeilThe Designation Of Controllable Digital Music BoxBased On 51 ScmABSTRACT Digital music box that is built in At89C51 chip design procedure, using a series of single-chip design of intelligent multi function entity. For all the system simulation using Proteus software,and the music box source program of C language compiler is to use Keil software to implement. The music box design of the system can produce different frequency waveform, is mainly controlled by single chip microcomputer timer, the horn of different scale temperament. Timing constant pitch horn was transformed into the music, which makes music equipment can sing very pleasant music rhythm.Key words:Digital music box; Digital tube; AT89C51; PROTEUS; KEIL目录第1章前言 (1)1.1 课题背景 (1)1.2 课题研究的目的及意义 (1)1.3 论文的主要任务和所做的工作 (1)第2章单片机和音乐盒硬件的功能 (3)2.1 AT89C51芯片的功能 (3)2.2 音乐盒的硬件及其功能 (6)第3章数字音乐盒的主体设计方案 (8)3.1 音乐盒的主体结构 (8)3.2 主设计软件的介绍 (8)3.2.1 编程软件KEIL的简介 (8)3.2.2 仿真软件PROTEUS的简介 (9)第4章音乐盒硬件设计 (10)4.1 总设计框图 (10)4.2各部分硬件的作用 (10)4.2.1时钟振荡电路 (10)4.2.2 LED和数码管的设计 (11)第5章音调和节拍的设计 (13)5.1 音调和节拍的设计以及音乐基础知识 (13)5.2 音调和节拍的编码 (14)第6章 C源程序设计 (15)6.1 音乐程序 (15)6.2 LED花样程序 (15)6.3 数码管程序 (16)第7章数字音乐盒总设计图与总程序 (18)7.1 仿真总图设计图 (18)7.2 音乐播放切歌部分程序 (18)第8章结论 (19)参考文献 (20)附录A总程序源代码及注释 (21)第1章前言1.1 课题背景21世纪的科技是属于单片机的科技时代,现在单片机应用极其普遍,技术也愈来愈成熟,基本上现如今各行各业都能看到单片机的存在。

单片机课程设计数字音乐盒的设计

单片机课程设计数字音乐盒的设计

数字音乐盒的设计摘要本设计采用了扬声器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。

现选用AT89C51 单片机。

用PROTEUS 单片机仿真软件仿真。

利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

通过单片机P1 口控制,实现功能键盘控制;功能键盘采用按键开关,通过单片机P2 口控制,实现歌曲播放顺序的调换和暂停播放功能;扬声器由单片机的P3 口控制,实现歌曲播放;主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有液晶屏显示当前播放歌曲的序号,扬声器播放出音乐。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统的音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。

本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。

关键词:AT89C51 单片机,方波,音调目录1 绪论 (1)1.1设计简述 (1)1.2设计目的 (1)1.3主要问题 (1)1.4 技术指标 (1)2 设计方案简述 (2)2.1 设计功能要求 (2)2.2 总体设计原理 (2)2.3 总体设计框图 (2)3 硬件电路设计 (3)3.1 硬件电路 (3)3.2 时钟复位电路 (3)3.3 按键输入电路 (4)3.4 输出显示电路 (4)3.5 整体硬件电路 (5)3.6 原理说明 (6)3.7 键盘按键 (6)4 软件设计 (7)4.1 设计源程序代码(见附录) (7)4.2程序设计流程图 (7)5 仿真 (8)6 设计结果及分析 (10)总结 (11)致谢 (12)参考文献 (13)附录 (14)1 绪论1.1设计简述本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。

与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。

电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。

数字音乐盒的设计

数字音乐盒的设计

电子技术课程设计《数字音乐盒》课程设计报告院(系)名称信息工程学院专业班级10级测控技术与仪器学号 6学生姓名刘祖林指导教师杨全玖目录第一章摘要 (1)第二章概述............................................ 错误!未定义书签。

第一节单片机总体功能简介 (3)第二节AT89C51芯片功能和硬件 (4)第三节功能键介绍 (5)第三章系统总体方案及硬件设计 (5)第一节系统设计要求 (5)第二节总体设计方案 (5)第三节系统硬件设计 (6)第四节软件设计................................ 错误!未定义书签。

第四章程序设计流程图 .......................... 错误!未定义书签。

第五章P ROTEUS功能仿真 (8)总结 ........................................................ 错误!未定义书签。

致谢 (9)附1原程序代码..................................... 错误!未定义书签。

附2系统原理图 (14)第一章摘要本设计是基于51系列单片机,蜂鸣器,数码管LED的数字音乐盒设计,通过利用I/o一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏各种乐曲(本设计为四首,若有必要,可以增加),可以通过功能键来选择乐曲,暂停,播放,前进,后退等功能。

音乐盒的电路设计过程在硬件与软件方面进行同步。

其中,硬件方面选择内部存储资源丰富的AT89C51单片机,时钟采用12MHZ晶体振荡电路。

软件方面,从分析电路各个功能子模块的功能、流程图设计,在到程序的编写设计均进行了综合的考虑。

编成语言从程序总体设计以及高效性的硬件方面考虑,采用汇编语言进行编写。

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面复习与准备。

在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大的限制,每项功能实现时需要那种硬件,程序该如何编写,如何调试等,没有一定的基础就不可能很好的实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子技术课程设计《数字音乐盒》课程设计报告院(系)名称信息工程学院专业班级10级测控技术与仪器学号*********学生姓名刘祖林指导教师杨全玖目录第一章摘要 (2)第二章概述 (3)第一节单片机总体功能简介 (3)第二节AT89C51芯片功能和硬件 (4)第三节功能键介绍 (6)第三章系统总体方案及硬件设计 (7)第一节系统设计要求 (7)第二节总体设计方案 (7)第三节系统硬件设计 (7)第四节软件设计 (8)第四章程序设计流程图 .......................... 错误!未定义书签。

第五章P ROTEUS功能仿真 (12)总结 ........................................................ 错误!未定义书签。

致谢 . (15)附1原程序代码 (16)附2系统原理图 (22)第一章摘要本设计是基于51系列单片机,蜂鸣器,数码管LED的数字音乐盒设计,通过利用I/o一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏各种乐曲(本设计为四首,若有必要,可以增加),可以通过功能键来选择乐曲,暂停,播放,前进,后退等功能。

音乐盒的电路设计过程在硬件与软件方面进行同步。

其中,硬件方面选择内部存储资源丰富的AT89C51单片机,时钟采用12MHZ晶体振荡电路。

软件方面,从分析电路各个功能子模块的功能、流程图设计,在到程序的编写设计均进行了综合的考虑。

编成语言从程序总体设计以及高效性的硬件方面考虑,采用汇编语言进行编写。

在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面复习与准备。

在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大的限制,每项功能实现时需要那种硬件,程序该如何编写,如何调试等,没有一定的基础就不可能很好的实现。

具体实现功能:1、利用I/O一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏各种乐曲2、采用LED显示信息3、播放时显示歌曲序号4、可通过功能键选择乐曲,暂停,播放。

第二章概述目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。

它测量、处理、控制功能于一单片机是单片微型机的简称,故又称为微控制器MCU。

通常由单块集成电路芯片组成,内部含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。

因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

第一节单片机总体功能简介单片机是在工业测控需要背景下而产生的,在一个应用系统中。

按照测控系统的特点和要求,单片机的应用可分为单机应用和多机应用两大类。

我们这次要完成的单片机课程设计就是它的单机应用,下面介绍一下单片机应用领域内的主要内容。

(1)智能产品单片机与传统机械产品相结合,使传统机械产品结构简化,控制智能化,购成新一代机电一体化产品。

目前,利用单片机构成的智能产品已广泛应用于家用电器、办公设备、数控机床、纺织机械、工业设备等行业。

(2)智能仪表目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。

它测量、处理、控制功能于一体,具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音等功能。

单片机构成的智能仪表,能使仪表具有数字化、智能化、多功能化、综合化等优点。

(3)测控技术用于单片机结构的各种工业控制系统中的数据采集系统具有工作稳定可靠、抗干扰能力强的优点。

(4)智能接口在计算机系统,特别是较大型的工业测控系统中,除通用外部设备外,还由许多外部通信、采集、多路分配管理、驱动控制等接口。

这些外部设备与接口如果完全由主机进行管理,势必会造成主机负担过重,运行速度降低,接口的管理水平也不可能提高。

如果用单片机进行接口的控制与管理,单片机与主机可并行加工处理,可以大量降低接口的通信密度,极大的提高了接口控制广利水平。

在一些通用计算机外部设备上,以实现了单片机的键盘管理、打印机控制、硬盘驱动控制等。

第二节AT89C51芯片功能和硬件本系统采用的是51系列的AT89C51单片机进行的计算器设计。

下图为AT89C51单片机的管脚图。

(图1 AT89C51引脚图)VCC:正电源端GND:单片机的接地端XTAL1/XTAL2:片内振荡电路输入/输出端,两端跨接晶体或陶瓷谐振器,与单片机内部反相器构成稳定的自激振荡器。

发出的脉冲直接送入片内定的控制部件RESET:复位端EA/VPP:寻址外部ROM控制端/编程电源输入端。

ALE/PROG:地址锁存允许/编程脉冲输入端。

PSEN:寻址外部程序存储器,选通外部EPROM的端口(OE)。

P0.0~P0.7 P1.0~P1.7 P2.0~P2.7:准双向I/O口。

P3.0~P3.7:具有特定的第二功能(准双向I/O口)。

第三节功能键介绍(图2音乐盒功能键)START: 播放键判断SELECT: 选择键判断PUASE: 停止播放STOP: 停止键判断ORDER: 顺序键判断RAND: 随机键判断第三章系统总体方案及硬件设计第一节系统设计要求音乐盒的可实现功能:1 利用I/O口产生一定的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲;2 采用LED 显示信息;3 可通过功能键选择乐曲,暂停,播放。

第二节总体设计方案由于计算器需要比较多的输入输出口,所以选择使用内部存储资源比较的多AT89C51单片机,8位LED动态显示。

扬声器可以用一个准I/O口,采用AT89C51作为运算和控制单元完全满足系统的需要。

第三节系统硬件设计方波电路:51核片内由一个反相放大器构成振荡器,本系统采用内部方式,在XTAL1和XTAL2端外接石英晶体作为定时元件,内部反相放大器自激振荡,产生时钟。

时钟发生器对振荡脉冲二分频。

如下图所示:(图3 时钟发生器)第四节软件设计本设计的流程如下:(图4 系统流程图)先从主程序开始,接着初始化变量及LED接口,然后初始化方波发生器、晶振管,使LED显示信息,就进入了开机状态,等待动作——选择按键,包括播放键、暂停键、停止键,当然也可以选择返回:加入选择的是播放键,LED上就会显示歌曲编号,与此同时演奏相应的乐曲,此时,你就可以用按键控制乐曲的播放了。

第四章程序设计流程图电路图的设计及程序设计是否合理,通过proteus软件进行仿真;若不合理就需要修改,直至符合要求。

(1)软件的使用使用W A VE6000软件的目的是取得源程序的编译文件(2)Proteus软件介绍protues是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路。

Proteus ISIS的工作界面是一种标准的Windows界面,如下图所示包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮预览窗口、对象选择器窗口、图形编辑窗口。

运行Proteus程序后,进入软件的界面。

通过左侧工具栏的P命令,在Pick Devices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。

(图5 Proteus界面)第五章Proteus功能仿真下面是几张仿真图,由于本次设计是数字音乐盒,而声音没有仿真图,所以仿真图主要是LCD显示歌曲编号和LED灯的显示。

(图6 LED显示仿真)如图6:LED等全灭:播放没有开始D1亮:选择歌曲D2亮:顺序模式D3亮:随机模式全亮:播放暂停(图7LCD显示仿真)如图7:LCD显示的数字是歌曲的编号。

(图8音乐盒总体仿真图)总结本学期在做课程设计时,对单片机的硬件设计,软件设计掌握的深度不够,但通过次次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次自己独立完成课程设计,很有成就感。

在设计过程中我遇到了很多问题,有知识方面的,但也有个人不良习惯方面的,例如在W A VE上编译程序时,出现好几处错误,经仔细检查才知道并不是程序错误,而是自己输入不规范和输错造成的,这就提醒我在设计过程中一定要细心认真的完成每一步骤每一个环节,才能避免不必要的失误。

另外,我觉得只有在一个好的氛围里才能踏下心来做东西,在设计出现问题时,一定要戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,这是非常重要。

参考文献【1】《单片机原理及应用技术》【2】《MC-51单片机应用技术》【3】《电子制作》【4】《51 系列单片机设计实例》【5】《单片机C51程序设计教程与实验》致谢历时将近两个星期的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。

尤其要强烈感谢我的论文指导老师老师,对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进。

另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。

在此向帮助和指导过我的各位老师表示最中心的感谢!感谢这篇论文所涉及到的各位学者。

本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。

感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版灯过程中提供热情的帮助。

由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!附1 原程序代码#include<at89x52.h>#include<stdlib.h>#define K_Order P3_6#define K_Rand P3_7#define K_Start P3_0#define K_Select P3_1#define K_Puase P3_2#define K_Stop P3_3extern void Play_Music(unsigned char music_num); extern void Delay10us(unsigned char tmep);extern void Delay10ms(unsigned char tmep);extern void Delay1s(unsigned char tmep);extern void Press_Start(void);extern void Press_Select(void);extern void Press_Order(void);extern void Press_Rand(void);extern void Press_Puase(void);extern void Press_Stop(void);void music(unsigned int code *Song);static unsigned int count;static unsigned char startflag,selectflag,orderflag,randflag,stopflag,flag,Ledflag;static unsigned char i,k,temp,step,freq,music_num,randnum;unsigned char code *ptr;//LED显示代码,共阳极unsigned char code Seg[4]={ 0xF9,0xA4,0xB0,0x99};//song1八月桂花香unsigned char code Song1[]={0x18,0x30,0x1c,0x20,0x10,0x40,0x1c,0x10,0x18,0x10,0x20,0x10,0x1c,0x10,0x18,0x40,0x1c,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,0x20,0x80,0xff,0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xff,0x20,0x20,0x1c,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x20,0x1c,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1c,0x10,0x20,0x10,0x1c,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x15,0x1f,0x05,0x20,0x10,0x1c,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1c,0x10,0x18,0x40,0x1c,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80, 0x00};//song2波斯猫部分unsigned char codeSong2[]={0x40,0x19,0x40,0x19,0x40,0x19,0x4c,0x19,0x4c,0x19,0x48,0x19,0x4c,0x19, 0x40,0x19,0x40,0x19,0x40,0x19,0x4c,0x19,0x4c,0x19,0x48,0x19,0x4c,0x19,0x40,0x19,0x40,0x19,0x40,0x19,0x4c,0x19,0x40,0x19,0x39,0x19,0x33,0x19,0x30,0x19,0x30,0x19,0x33,0x19,0x33,0x19,0x30,0x32,0x30,0x32,0x30,0x32,0x39,0x19,0x40,0x19,0x39,0x19,0x40,0x19,0x4c,0x32,0x4c,0x32,0x39,0x32,0x39,0x32,0x39,0x32,0x40,0x19,0x4c,0x19,0x40,0x19,0x4c,0x19,0x55,0x32,0x55,0x32,0x30,0x32,0x30,0x32,0x30,0x32,0x39,0x19,0x40,0x19,0x39,0x19,0x40,0x19,0x4c,0x32,0x4c,0x32,0x55,0x32,0x39,0x19,0x4c,0x19,0x4c,0x32,0x4c,0x19,0x40,0x19,0x39,0x32,0x39,0x19,0x39,0x32,0x24,0x00,0x00};//song3两只老虎unsigned char code Song3[]={0x60,0x32,0x55,0x32,0x4c,0x32,0x60,0x32,0x60,0x32,0x55,0x32,0x4c,0x32,0x60,0x32,0x4c,0x32,0x48,0x32,0x40,0x32,0x40,0x32,0x4c,0x32,0x48,0x32,0x40,0x32,0x40,0x32,0x40,0x19,0x40,0x0d,0x39,0x0d,0x40,0x19,0x40,0x0d,0x48,0x0d,0x4c,0x32,0x60,0x32,0x40,0x19,0x40,0x0d,0x39,0x0d,0x40,0x19,0x40,0x0d,0x48,0x0d,0x4c,0x32,0x60,0x32,0x60,0x32,0x40,0x32,0x60,0x32,0x60,0x32,0x60,0x32,0x40,0x32,0x60,0x32,0x60,0x32,0x00};//song4兰花草unsigned char code Song4[]={0x72,0x19,0x4c,0x19,0x4c,0x19,0x4c,0x19,0x4c,0x19,0x4c,0x32,0x55,0x19,0x60,0x19,0x55,0x19,0x60,0x19,0x65,0x19,0x72,0x32,0x72,0x32,0x39,0x19,0x39,0x19,0x39,0x19,0x39,0x19,0x39,0x32,0x39,0x32,0x40,0x19,0x97,0x19,0x40,0x19,0x40,0x19,0x48,0x19,0x4c,0x32,0x4c,0x32,0x4c,0x19,0x39,0x19,0x39,0x19,0x40,0x19,0x4c,0x32,0x4c,0x32,0x55,0x19,0x60,0x19,0x55,0x19,0x60,0x19,0x65,0x19,0x72,0x32,0x97,0x19,0x97,0x19,0x60,0x19,0x60,0x19,0x65,0x19,0x72,0x32,0x72,0x32,0x4c,0x19,0x55,0x19,0x60,0x19,0x65,0x19,0x7f,0x19,0x39,0x32,0x39,0x32,0x00};///////////////////////////////-MAIN-///////////////////////////////void main(void){P1=0xff;//初始化设置?SP=0x60; TH0=0xD8; TL0=0xF0; TMOD=0x01;IE=0x83; IP=0x02; music_num=0; startflag=0; flag=0;while(1){ Press_Start();if(startflag==1){ Play_Music(music_num); Delay1s(200); Delay1s(200);}Press_Select();if(selectflag==1){ Delay1s(100); P2=0x0E; if(music_num>=0&&music_num<=3) //选择音乐使其在可选音乐的范围内{ P1=Seg[music_num++];} else music_num=0; Delay1s(100);}Press_Order();if(orderflag==1) { flag=0; while(1){ P2=0x0D; if(K_Start==0||flag==1)//flag指示上次是否播放音乐,如播放过{ if(music_num!=0)//则循环下去,直到有按键.P1=Seg[music_num-1];elseP1=Seg[music_num]; Play_Music(music_num); music_num++; flag=1; }if(music_num==5) music_num=0;Delay1s(100);if(K_Stop==0) break; } }Press_Rand();if(randflag==1){ flag=0; while(1){P2=0x0B;randnum=rand(); music_num=randnum%10;if((music_num>=0&&music_num<4)&&(flag==1||K_Start==0)){ flag=1;if(music_num!=0)P1=Seg[music_num-1]; elseP1=Seg[music_num]; Play_Music(music_num);} Delay1s(200);if(K_Stop==0) break; }}Press_Stop();if(stopflag==1){ P1=0xFF; P2=0xFF; music_num=0;} }while(1) ;}//*----------------子程序区段----------------//包括:按键判断程序、延时程序、中断处理程序、// 音乐播放程序、音乐选择程序//------------------------------------------*///按键判断程序,如果有按键,则相应标志位置1,否则置0void Press_Start(void)//播放键判断{ if(K_Start==0){ Delay10ms(100);if(K_Start==0) startflag=1; }else startflag=0;}void Press_Select(void)//选择键判断{ if(K_Select==0){ Delay10ms(100);if(K_Select==0) selectflag=1; }else selectflag=0;}void Press_Order(void)//顺序键判断{ if(K_Order==0) { Delay10ms(100);if(K_Order==0) orderflag=1;}else orderflag=0;}void Press_Rand(void)//随机键判断{ if(K_Rand==0) { Delay10ms(100);if(K_Rand==0) randflag=1; }else randflag=0;}void Press_Stop(void)//停止键判断{ if(K_Stop==0) { Delay10ms(100);if(K_Stop==0) stopflag=1; }else stopflag=0;}//-----------音乐播放子程序--------------void music(unsigned int code *Song){ ptr=Song;while(*ptr!=0x00){ if(K_Stop==0) Delay10ms(100);if(K_Stop==0)break; freq=*ptr++;if(freq==0xFF)//如果频率常数为0xFF,则休止100ms??Delay1s(10);else{step=*(ptr++); TR0=1;for(i=0;;i++){ P2_4=0;Delay10us(freq);P2_4=1;Delay10us(freq);if(count==step) break; }TR0=0; count=0;} }}//---------------------------------------------//音乐选择程序void Play_Music(unsigned char music_num){ switch(music_num){ case 1: music(&Song1); break;case 2: music(&Song2);break;case 3: music(&Song3); break;case 4: music(&Song4); break;}}//-----------------------------------//------------中断子程序------------- //定时器0中断void Intt0(void) interrupt 1 using 3{ count++; TH0=0xD8; TL0=0xF0;}//外部中断void Int0(void) interrupt 0 using 2{ if(K_Puase==0) { Delay10ms(100);if(K_Puase==0){ Ledflag=P2;while(1) { P2=0x00;Delay1s(100);P2=0x0f;if(K_Stop==0||K_Start==0) break; } P2=Ledflag; } }}//------------------------------------//-----------延时子程序--------------- void Delay10us(unsigned char temp){ unsigned char i,j;for(i=0;i<temp;i++) for(j=0;j<1;j++) ;}void Delay10ms(unsigned char temp){ unsigned char i,j; for(i=0;i<temp;i++) for(j=0;j<12;j++) ;}void Delay1s(unsigned char temp){unsigned char i,j;for(i=0;i<temp;i++)for(j=0;j<10;j++)for(k=0;k<120;k++);}附 2 系统原理图(图9系统原理图)。

相关文档
最新文档