单片机音乐播放器报告.doc

上传人:jian****018 文档编号:9641558 上传时间:2020-04-06 格式:DOC 页数:20 大小:794KB
返回 下载 相关 举报
单片机音乐播放器报告.doc_第1页
第1页 / 共20页
单片机音乐播放器报告.doc_第2页
第2页 / 共20页
单片机音乐播放器报告.doc_第3页
第3页 / 共20页
点击查看更多>>
资源描述
科信学院单片机应用系统(三级项目)设计说明书(2014/2015学年第二学期)题 目 : 音乐播放器设计 专业班级 : 信息1班 学生学号 : 120072128 学生姓名 : 代星雨 指导教师 : 吴开兴、刘会军、 马永强、马小进 设计周数 : 2周 设计成绩 : 2015年6月26日1、项目设计目的21.1目的21.2课程设计任务21.3课程设计要求22、项目设计22.1总体设计22.2硬件设计32.3软件设计82.4硬件调试162.5软件调试163、项目设计总结或结论173.1课设总结173.2课程设计感想174、参考文献181、项目设计目的1.1目的应用单片机,利用它的原理组成一个音乐播放器。1.2课程设计任务利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)采用LCD或数码管显示信息。开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。可通过功能键选择乐曲,暂停,播放。1.3课程设计要求根据技术要求和现有开发环境,分析设计题目;设计系统实现方案;设计并绘制电路原理图;画出功能模块块的程序流程图;使用汇编语言(或C语言)编写实现程序;结合硬件调试、修改并完善程序;编写课程设计报告。2、项目设计2.1总体设计本次设计以低成本,灵活方便为原则,所以控制器选用主流的51系列单片机,考虑到51内部储存空间的限制,故选用容量为51两倍的AT89C52单片机作为总控制器,以矩阵键盘作为乐曲选择器,以0.5W 8扬声器等组成功放设备,以LCD1602液晶作为人机交互界面。时钟振荡电路用来为单片机产生时钟脉冲,本设计采用内部时钟方式。软件用来对单片机的各引脚进行控制LCD显示,同时在功放电路的输出端口产生不同频率的矩形波进而产生音乐,当按钮按下时程序要完成对歌曲的切换,对LCD显示内容的切换。总体方案图以及相关流程图:图2-1 图 总体方案图图2-2 主程序流程图图2-3显示流程2.2硬件设计当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动扬声器发出音乐。同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。2.2.1单片机电路微控制器采用AT89C52。AT89C52是美国ATMEL公司生产的与MCS-51系列单片机完全兼容的高性能CMOS 8位单片机,MCS-51系列单片机以其推出时间早、配套资源丰富、开发手段完善、性价比高等特点而得到了广泛的应用,是单片机的主流品种。AT89C52的内部资源主要包括:与MCS-51 系列完全兼容的高性能8位CPU;8K字节可重复编程的Flash存储器;256字节的SRAM;4个8位的并行口,共32条I/O口线;3个16位的定时器/计数器;6个中断源,2个中断优先级的中断系统;一个全双工的串行口;内部振荡器。 图2-4 单片机引脚图2.2.2晶振电路单片机的正常工作是在时钟的作用下完成的,晶振选用11.0592M的。时钟振荡电路由晶振(6MHZ)和电容组成,接单片机的XTAL1和XTAL2引脚。时钟振荡电路用来为单片机产生时钟脉冲,为内部时钟方式图2-5晶振电路图2.2.3复位电路复位电路由电解电容、电阻和按钮组成。复位分为上电复位和手动复位,上电复位在单片机一上电时对单片及进行复位,手动复位通过外部按钮来对单片机进行复位。两种复位方式的结果一样。复位电路的电路图如图所示。图2-6复位电路图2.2.4按键输入电路按键输入电路由4*4矩阵键盘组成,P1口作为输入控制按键,其中P1.0P1.3扫描行,P1.4P1.7扫描列。 键盘是由若干个按键组成的开关矩阵,它是最简单的单片机应用系统的输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通信。本设计采用4*4的键盘结构,如图 图2-7键盘结构图键盘的行线X0X3通过电阻接+5V,当键盘上没有键闭合时,所有的行线和列线都断开,行线都是高电平。当键盘上某一个键闭合时,该键所对应的行线和列线都被短路。例如6号键被按下时,行线X1和列线Y2被短路,此时X1的电平由Y2的电位决定。如果把行线接到单片机的输入口,列线接到单片机的输出口,则在单片机的控制下,先使列线Y0为低电平“0”,其余三根列线Y1、Y2、Y3都为高电平“1”,读行线状态。如果X0、X1、X2、X3都为高电平,则Y0这一列上没有键闭合。如果读出的行线不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态,如果Y0这一列上没有键闭合,使列线Y1为低电平,其余列线为高电平,用同样的方法检查Y1这一列上是否有键闭合。这种逐行逐列的检查键盘的状态过程称为对键盘的一次扫描。键盘按键分布如下:0123456789ABCDEF图2-8按键分布图 按键功能说明:表2.1按键功能说明表1A十首歌曲C下一首歌曲D上一首歌曲E暂停F开机画面图2-9 矩阵键盘图2.2.5功放发声电路采用LM386功放芯片,功放电路由P2.5口控制,放大器增益200图2-10 功放电路仿真图2.2.6输出显示电路输出显示电路选用LCD1602,用P3.3P3.4作为LCD的RS、R/W、E的控制信号;用P0.0P0.7作为LCD的D0D7的控制信号LCD 数码显示器结构液晶显示器又叫LCD数码显示器,液晶显示器的主要材料是液态晶体(简称液晶),它是一种有机材料,在特定的温度范围内,既具有液体的流动性,又具有某些光学特性,其透明度和颜色随电场、磁场、光及温度等外界条件的变化而变化。因此,在逻辑电路的输出信号作用下,可显示出某一确定的数字。液晶显示器是一种被动式显示器件,液晶本身不会发光,而是借助自然光和外来光显示数宇。外部光线愈强,它的显示效果愈好。而且不会像LED数码显示器那样会被强光所淹没。由于液晶显示器所需的功耗很小,因此它可由集成电路译码器直接驱动。文字型LCDLCD是一种通常5*7点阵图形来显示字符的液晶显示,能显示的每个字符都有一个代码,代码对应字符的点阵图形数据由字符发生器产生。通过驱动电路后在LCD显示出字符。引脚功能如下:表2.2 L1602引脚功能表引脚号符号状态功能1Vs电源地2Ddd正5V逻辑电源3Vo液晶驱动电源4RS输入寄存器选择:1数据0指令5R/W输入读写操作选择6E输入使能信号7至14DBo-DB7三态数据总线*15E1输入MDLS40466上两行使能信号*16E2输入MDLS40466下两行使能信号图2-11 LCD1602总电路仿真图图2-12总体电路仿真图2.3软件设计 2.3.1音乐发生器设计流程及思路(1)音乐基础在进行设计前,首先要对音乐知识有基本的理解,其次要明白单片机产生音乐脉冲的原理,最后完成硬件原理图和相关程序的设计。声音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉。人耳能听到的声音频率大约在1120000Hz,而音乐中使用的音一般在274100Hz。乐音体系中各音级的名称叫做音名,被广泛采用的是C D E F G A B(do re mi fa so la si则多用于歌唱,称为唱名)。乐音体系中音高关系的最小尽量单位叫做半音,两个半音构成一个全音。乐音中有几十个高低不同的音,但是最基本的只有这七个音,其他高、低音的音名都是在这个基础上变化出来的。在乐谱表上用来表示正在进行的音的长短的符号,叫做音符。不同的音符代表不同的长度。音符有一下几种:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符。此外,还有一种附点音符,它就是指带附点的音符,所谓附点就是记载音符右边的小圆点,表示增加前面音符时值的一半。音持续的长短即时值,一般用拍数表示,休止符表示暂停发音。音符与节拍数之间的对应关系如表2.1所示。表2.3 音符与节拍数之间的对应关系表简谱发音简谱码T值节拍码节拍数5低音SO16426011/4拍6低音LA26440022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/43中音MI66477761又1/24中音FA76482082拍5中音SO864898A2又1/26中音LA964968C3拍7中音TIA65030F3又3/41高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF65217一首音乐及时由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的音乐。(2)音频脉冲的产生音乐的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产生这样的方波频率信号。具体地说,只要知道某一音频的频率,求得它的周期,然后将次周期除以2,得到半周期的时间,利用定时/计数器计时这半个周期,计时到后就将输出脉冲的I/O反相。就可以在I/O端口上得到此脉冲。单片机工作在12MHz时钟频率下,其时钟周期为1us,因此可以利用STC90C52AD的内部定时/计数器T0,使其工作模式为1,工作在计数器状态下,改变计数初值TH0和TL0以产生不同频率的脉冲信号。T的值决定了计数初值TH0和TL0的值,TH0=T/256,TL0=T%256。计数值公式如下: 式中,:单片机内部时钟周期为1us,所以其频率为1MHz。:产生音符所需的频率。通过上式计算,可以求得各个音符频率的计数值T。C调各音符频率与计数值T的对照如表2.2所示。表2.4 C调各音符频率与计数值T的对照值低音频率T参数中音频率T参数高音频率T参数Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si19763030(3)音乐节拍的产生节拍是指音乐持续的长短,是除音符之外音乐的另一关键组成部分,在单片机系统中可以通过延时来实现。如果1/4拍的延时设为0.2s,则1拍的时间为0.8s。以此类推,可以求出其余节拍的值,节拍的延时时间值与音乐的曲调值有相对应的关系,表2.3所示为不同曲调下的1/4和1/8节拍的时间设定。如果单片机要实现自己播放音乐,那么必须在程序设计中考虑到节拍的设置,在89C51中,可以用一个直接存储一个音符,其中低4位是节拍码。节拍数和节拍码的对照表如表2.5所示。表2.5 各调节拍的时间设定曲调值(1/8节拍)DELAY曲调值(1/4节拍)DELAY调4/462ms调4/4125ms调3/494ms调3/4185ms调2/4125ms调2/4250ms表2.6 节拍数与节拍码的对照节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51.25拍55/8拍61.5拍63/4拍82拍81拍A2.25拍A1.25拍C3拍C1.5拍F3.75拍(4)音频功放音乐的播放最后是通过扬声器完成的,但是直接用单片机产生的音频脉冲不足以直接驱动扬声器来完成音乐的播放,因此这就要求在单片机端口与扬声器之间链接功率放大电路,以实现最终的目的。评定功率放大电路有3个重要的指标,即输出功率、效率、非线性失真。输出功率P0:功率放大器应在输出不失真的情况下给出最大的交流输出功率P0以推动负载工作,维持,功放元件一般工作在大信号状态,这就使功放元件的安全工作成为功率放大器的重要问题。效率:功率放大器的效率定义为功率放大器的输出信号功率P0和直流电源供给功率放大器功率PE之比,用表示。功率放大器要求高效率地工作,一方面是为了提高输出功率,另一方面是为了降低管耗。直流电源供给的功率除了一部分变成有用的信号功率以外,剩余部分编程晶体管的管耗。管耗过大将使功率管发热损坏。所以,最与功率放大器,提高效率也是一个重要问题。非线性失真:功率放大器为了获得足够大的输出功率,需要大信号激励,从而使信号动态范围往往超出晶体管的线性区域,导致输出信号失真。因此减小非线性失真,成为功率放大器的又一个重要问题。总的来说,要求功率放大器在保证系统安全运用的情况下,获得尽可能大的输出功率、尽可能高的效率和尽可能小的非线性失真。(5)部分代码:RS BIT P3.3 ;定义液晶显示端口标号RW BIT P3.4E BIT P3.5;*L50MS EQU 60H;工作内存定义 L1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;*ORG 0000h;主程序起始地址 LJMP mainORG 000BH;定时器中断子程序0 LJMP TT0ORG 001BH LJMP T1INTORG 1000Hmain: ;-;液晶初始化MOV SP,#70H MOV P0,#01H ;清屏 CALL ENABLE MOV P0,#38H ;8位,2行显示 57点矩阵 lCALL ENABLE MOV P0,#0FH ;屏显on,光标on,闪烁on lCALL ENABLE MOV P0,#06H ;计数地址加1,显示幕on lCALL ENABLE;-内存初始化 lcall initil ;-key1: lcall key lcall modd ljmp key1;-键盘扫描key: nop nop lcall ks jnz k1 ;有按键转到K1 lcall kaiji lcall SOPxn: ljmp keyk1: lcall modd lcall modd lcall ks jnz k2 ljmp keyk2: mov R2,#0feh ;读键盘 mov R4,#00hk3: mov A,R2 mov P1,A mov A,P1 JB acc.4,L1 ;为1跳转,第一行无按键 mov a,#00h ljmp lkL1: jb acc.5,L2 mov a,#04h ljmp lkL2: jb acc.6,L3 mov a,#08h ljmp lkL3: jb acc.7,next1 mov a,#0ch;-lk: add a,R4 push acck4: lcall delay1 ;若同时有其他按键,则等待 lcall ks jnz k4;-;按键值播放歌曲;-SOP: mov A,37h CJNE A,#01h,A11 LCALL MODD MOV 52H,#HIGH TABLE10 MOV 53H,#LOW TABLE10 LCALL INITILE2 lcall MAIN0A11: CJNE A,#02H,A22 LCALL MODD MOV 52H,#HIGH TABLE20 MOV 53H,#LOW TABLE20 LCALL INITILE2 lcall MAIN0A22: CJNE A,#03H,A33 LCALL MODD MOV 52H,#HIGH TABLE30 MOV 53H,#LOW TABLE30 LCALL INITILE2 lcall MAIN0 A99: CJNE A,#10H,AAA LCALL MODD MOV 52H,#HIGH TABLE100 MOV 53H,#LOW TABLE100 LCALL INITILE2 lcall MAIN0 AAA: RET 2.4硬件调试硬件调试:硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态调试:是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值 第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 2.5软件调试软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。上电后,数码管显示光标位,正常。按下按键F,LCD显示欢字符。按下按键1,播放第一首歌曲,LCD显示1,对应扬声器播放相应曲目,歌曲播放完毕后可自动循环播放。分别按下其他曲目对应按键,都能对应播放相应曲目,LCD显示相应曲目序号,歌曲播放完毕后可自动循环播放。按下按键C,播放之前曲目的下一曲,LCD显示相应曲目序号,扬声器播放相应曲目,歌曲播放完毕后可自动循环播放。按下按键D,播放之前曲目的上一曲,LCD显示相应曲目序号,扬声器播放相应曲目,歌曲播放完毕后可自动循环播放。按下按键E,播放暂停,LCD显示相应曲目序号,再次按下,继续播放,扬声器播放相应曲目,歌曲播放完毕后可自动循环播放。重复以上过程。与要求相同,调试成功。整体运行效果图图2-13 实物整体效果LCD效果图图2-14 LCD运行效果3、项目设计总结或结论3.1课设总结通过这两周的课程设计,使我更加扎实的掌握了有关单片机方面的知识,前期我们查阅相关资料,设计总体方案,然后设计每一步的实现过程,编写和修改程序。在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。真是觉知此事要躬行啊!课程设计是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电路的性能等等,掌握了焊接的方法和技术,我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就会出真知,收获颇丰。3.2课程设计感想 虽然在这次做音乐盒过程中遇到的一些问题,有的得到了很好的解决,有的问题还是没能找到解决的方法。不过不管怎样,我感觉我还是从中学到好了很多,特别是在这个解决问题的过程中,我学会了如何去发现问题、解决问题、还有如何去创新,有自己的一些想法。 感谢马老师带领我们一起做了这次非常有意义的课程设计。通过这次历练,不管是知识方面的还是思想方面的,我觉得我都有了很大的提升。有了这次做单片机课程设计的宝贵经历,我相信不管是以后的毕业设计还是将来的工作,都会从这次的课程设计中吸收经验和方法,这将是我人生的很大一笔财富。 另外,从这次课程设计中我也看到了自己的很多不足,很多地方我都需要学习需要进步。例如这次课程设计对我而言最大的阻碍就是看不懂汇编程序,所以有些自己的想法想通过程序实现的时候都因为看不懂程序而被迫罢手。所以,在以后的学习中,我要广泛学习,从多方面丰富自己的知识、提高自己的能力。知识很重要,但是动手实践比理论知识更重要在以后的学习时间里,我要自己多动手,做出一些有意义的东西。 4、参考文献1 杨刚,周群.电子系统设计与实践.电子工业出版社,2004:18-23 341-347 118-1222 何立民.单片机高级教程(应用与设计).北京航空航天大学出版社,2000:53983 涂时亮,张友德.单片微机控制技术.清华大学出版社,1994:86-87 146-1474 单片机原理及接口技术实验 朱定华 北京 北方交通大学出版社,2002.11项目设计评 语项目设计成 绩指导教师(签字) 年 月 日
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!