数字音乐盒的设计
《数字音乐盒》设计报告

《数字音乐盒》设计报告
设计目标:
本数字音乐盒旨在提供一种方便、易用的音乐播放体验,让用户可以随时随地享受自己喜欢的音乐。
具体设计要求如下:
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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系统原理图)。