ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:168.29KB ,
资源ID:9799493      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9799493.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(音乐播放器 课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

音乐播放器 课程设计.docx

1、音乐播放器 课程设计专业课程设计报告题目:音乐播放器所在学院 专业班级 学生姓名 学生学号 指导教师 提交日期 2012年10月 22日 电气工程学院专业课程设计评阅表学生姓名 学生学号 同组队员 专业班级 题目名称 一、学生自我总结 通过这次课程设计,学习了解了用单片机实现的音乐发生器的设计方法。使我对单片机及其附属电路有了一定的了解,对课本上的知识有了近一步的掌握,也深刻明白了自己的不足。在课程设计过程中,我真正体会到了实践的重要性,很多自己认为万无一失的软件代码或者硬件电路,在调试的过程中都不会是一帆风顺的,此次课程设计经历了从概念到成品的漫长过程,在此过程中我学习了许多以前没有掌握而又

2、是电子类课程生必须掌握的知识,比如Proteus ISIS从设计的第一天起,我就被Proteus ISIS的强大功能所折服,学会了Proteus ISIS就相当于拥有一个电子设计开发平台。而通过学习Keil uVision4 让我深刻的认识基础知识的重要性,在多次查阅课本书籍,最后在老师的知道写完成了程序的编写。 学生签名: 年 月 日二、指导教师评定评分项目平时成绩报告(答辩)综合成绩权 重5050单项成绩教师评语: 教师签名: 年 月 日一、设计目的课程设计是通信工程专业的一门软硬件相结合实践的专业基础课,旨在提高学生的单片机应用、软件编程及小型工程项目开发能力。本设计将进一步加强学生对单

3、片机硬件的理解,增强对汇编或C语言的灵活运用。要求学生能结合单片机、模拟电路、数字电路、汇编 或C语言,实现基本的应用系统,学会Proteus和Keil使用,为以后从事相关行业打下实践基础。二、设计要求和设计指标设计一个简单音乐播放器,程序运行时播放生日快乐歌,不使用定时器中断,所有频率完全用延时实现。三、设计内容3.1仿真软件Proteus简介 Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,它支持单片机且元件库齐全,使用方便,是不可多得的专业单片机软件仿真系统。目前可支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列

4、、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片7。3.2编程软件Keil uVision4 9.0介绍 用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。Keil uVision4是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。3.3 AT89C51单片机简介 AT89C51是

5、一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种

6、灵活性高且价廉的方案1-3。3.3.1 主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路3.3.2管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当F

7、IASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储

8、器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号4。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P

9、3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将

10、跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚

11、也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.3.3振荡器特性 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度5。3.3.4芯片擦除 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何

12、非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 而播放音乐最简单的方法就是采用专用音乐芯片,该方法的缺点是音乐芯片只能一次性烧录,播放的内容不可变。而采用单片机播放音乐则能克服这一缺点,其播放的内容以及歌曲的数量都可以随时修改。同时,使用软件Proteus在产品开发的初期对设计进行仿真无疑是一种提高效率和降低成本的好办法,但是仿

13、真毕竟有一定的局限性,要实践起来可能会碰到一些问题。为此,本文通过Proteus软件对用AT89C51单片机播放音乐进行了仿真,指出了实际制作过程中需要注意的地方6。3.4电路设计 图所示是单片机音乐播放器的仿真原理图。在Proteus仿真软件中,只需要录入程序仿真,蜂鸥器即可播放音乐7。图3-2 音乐播放器仿真电路图3.5播放原理声音的频谱范围通常约为几十到几千赫兹,通过程序控制单片机的IO口可输出不同频率的矩形波。当该矩形波的频率位于声音频谱范围内时,在单片机的IO口接上喇叭就能发出声音。然后利用延时程序控制矩形波的高、低电平持续时间,即改变矩形波的频率,即可产生不同的音调,从而发出不同的

14、声音,再让矩形波输出的长短对应节拍,就可以实现单片机对音乐的演奏。单片机奏乐只需弄清楚两个概念,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。不同频率由不同的延时来决定,节拍决定每个音符的演奏长短。C调个音符频率与计数值T的对照表如下表所示:表3-1 C调各音符频率与计数值T的对照表音符频率(Hz)简谱码(T值)音符频率(Hz)简谱码(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164923#2RE#31163928中6LA88064968低3M33064

15、103#693264994低4FA34964103中7SI98865030#4FA#37064260高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565124#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假

16、设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。表3-2 节拍码对照表1/4节拍1/8节拍节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍71又3/4拍77/8拍82拍81拍92又1/4拍91又1/8拍A2又1/2拍A1又1/4拍B2又3/4拍B1又3/8拍C3拍C1又1/2拍D3又1/4拍D1又5/8拍E3又1/2拍E1又3/4拍F3又3/4拍F1又7/8拍3.6程序设计使用Kei

17、l uVision4编程,以下为音乐播放器的编程程序:#include#define uchar unsigned char #define uint unsigned int sbit BEEP=P37;/生日快乐歌的音符频率表,不同频率由不同的延时来决定uchar code SONG_TONE=212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0; /生日快乐歌曲节拍表,节拍决定每个音符的演奏长短 uchar code SONG_LONG=

18、9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,24,0; /延时 void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+); /播放函数 void PlayMusic() uint i=0,j,k; while(SONG_LONGi!=0|SONG_TONEi!=0) /播放各个音符,SONG_LONG为拍子长度 for(j=0;jSONG_LONGi*20;j+) BEEP=BEEP; /SONG_TONE延时表决定了每个音符的频率 for(k=0;kSONG

19、_TONEi/3;k+); DelayMS(10); i+; void main() BEEP=0; while(1) PlayMusic();/播放生日快乐 DelayMS(500); 3.6仿真结果与分析 通过Proteus ISIS对单片机音乐播放器进行了仿真,其音乐播放的效果很好。设计简单,原理清晰,适合单片机初学者、学习Keil uVision4编程和学习单片机系统PROTEUS设计与仿真使用。在设计过程中主要存在的问题是程序的编写,音频的编程,通过多次实验和尝试最后在老师的指导下完成程序编程。本次设计的元器件简单,只需要AT89C51单片机和蜂鸣器,主要采用延时控制系统,结合所学的

20、单片机的知识,实现系统的功能要求。结果如期,但感觉空间含有很大。四、本设计改进建议 本次设计的元器件简单,只需要AT89C51单片机和蜂鸣器,其基本功能只有单曲的播放功能。本设计还可以同时增设控制电路,拓展LED点阵屏幕,按键选歌,以及多组灯光闪亮等功能,换用更高档的芯片后,甚至可以实现MP3的丰富功能,在补充了相应知识后我将尝试实现更多的功能。五、总结 通过这次课程设计,学习了解了用单片机实现的音乐发生器的设计方法。使我对单片机及其附属电路有了一定的了解,对课本上的知识有了近一步的掌握,也深刻明白了自己的不足。在课程设计过程中,我真正体会到了实践的重要性,很多自己认为万无一失的软件代码或者硬

21、件电路,在调试的过程中都不会是一帆风顺的,此次课程设计经历了从概念到成品的漫长过程,在此过程中我学习了许多以前没有掌握而又是电子类课程生必须掌握的知识,比如Proteus ISIS从设计的第一天起,我就被Proteus ISIS的强大功能所折服,学会了Proteus ISIS就相当于拥有一个电子设计开发平台。而通过学习Keil uVision4 让我深刻的认识基础知识的重要性,在多次查阅课本书籍,最后在老师的知道写完成了程序的编写。 在这过程中我还深刻的认识到英文的重要性,在本次设计中所用的两个软件Proteus ISIS 和Keil uVision4都是英文版的很多功能都半知半解。但最后还是如期的完成任务,谢谢期间给予帮助我的老师很同学们。六、主要参考文献1杨 欣.51单片机应用从零开始M.北京:清华大学出版社,20082兰吉昌.51单片机应用设计百例M.北京:化学工业出版社,20093吴银琴.51单片机实践教程M.北京:科学出版社,20114赵建领.51单片机开发与应用技术详解M.北京:北京航空航天大学出版社,20105李学海.标准80C51单片机基础教程M.北京:北京航空航天大学出版社,20066欧伟明.单片机原理与应用系统设计M北京:电子工业出版社,20107江世明.基于Proteus的单片机应用技术M北京:电子工业出版社,2012

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1