您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 单片机课程设计报告--简易音乐播放器
1第一章前言伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理!第二章:简易音乐播放器的功能和原理说明音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED灯,让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能!表1需求分析名称简易音乐播放器目的实现简单的特定音乐播放功能输入单片机板子上的数字按键输出扬声器,LED灯功能(1)接收按键开关的信号,并将信号送入单片机(2)处理得到的结果通过LED信号灯进行显示,并通过扬声器播放音乐(3)可以播放4首程序中写好的音乐性能基于单片机的扬声器和程序的软件设计功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键电路以及扬声器组成。它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制扬声器发音。通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0来产生不同频率。当控制歌曲按键按下时,按照预先存放在单片机中的程序,就2会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过uln2003芯片驱动扬声器,播放出乐曲。该硬件电路中用P3.0,P3.1,P3.2,P3.3控制四个按键,“0”,“1”,“2”,“3”分别控制四首音乐。P1.0,P1.1,P1.2,P1.3控制四个LED灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3来控制扬声器,电路为12MHz晶振频率工作,起振电路中C1和C2为22pf。第三章:系统硬件电路设计1:硬件体系结构设计该简易音乐播放器主要有单片机核心芯片89C52,LED发光二极管,扬声器,晶振电路,按键电路,复位电路组成,通过芯片引脚输出定时器产生的各种固定频率的方波信号,然后在经由扬声器产生各种频率的声音。另外,该方案使用的是单片机板子的内部振荡电路,89C52芯片的X1,X2引脚外接石英晶体。它的系统组成如图所示。(1)晶振电路部分晶振的作用是给电路提供工作信号脉冲的,其实就是单片机的工作速度。本次设计选用12M晶振,则单片机的工作速度就是每秒12M。与此同时,也要注意单片机的工作频率范围。(2)复位电路部分当系统出现问题时可以重置系统,解决一些问题(3)LED显示部分显示系统在各种不同条件下的状态(4)89C52芯片整个设计的核心,接收和处理信号及程序(5)按键电路部分作为系统的输入89C52芯片复位电路按键电路扬声器LED显示晶体振荡电路3(6)扬声器部分用于发出不同频率的音调形成歌曲2硬件电路设计硬件电路分为单片机芯片最小系统(包括时钟电路,复位电路),扬声器电路,按键电路和LED电路等(1)单片机89C52芯片最小系统设计AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。它的引脚图如图2所示图2主要性能参数:与MCS-51单片机产品兼容8K字节在系统可编程Flash存储器1000次擦写周期4全静态操作:0Hz~33Hz三级加密程序存储器32个可编程I/O口线三个16位定时器/计数器八个中断源全双工UART串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符引脚介绍:VCC:电源GND:地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。5P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。该最小系统包括时钟电路,复位电路。在内部时钟电路中,必须在X1和X2引脚两端跨接石英晶体振荡器和两个微调电容从而形成振荡电路,按照单片机的板子C1和C2取的是22pf,而晶振的频率取值在1.2MHz和12MHz之间。复位电路就和电脑的重启部分差不多,当电脑使用中出现死机,按下重启按钮电脑内部的程序从头执行,其中,电容大小为10uf,电阻大小为10K。它在设计中电路图如图36图3(2)LED电路设计四个LED灯(发光二极管)分别由P1.0~P1.3控制,播放第一首歌时D0点亮,第二、三首歌时D1、D2点亮,第四首歌时D3亮,电阻的阻值由单片机板子上的电阻值决定。它的电路原理图如图4图4(3)扬声器电路设计由于本设计基于单片机板子,所以扬声器电路取自板子的设计,将信号通过一个名为uln2003的芯片进行放大,并推动扬声器发出声音也即音乐。高耐压、大电流复合晶体管ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成。它是大电流驱动阵列,多用于单片机、智能仪表、PLC,数字量输出卡等控制电路中。可直接驱动继电器等负载。在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。还具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各7类要求高速大功率驱动的系统。完全可以用来驱动扬声器发声!它的引脚图如图5所示。下附引脚介绍图5引脚介绍:引脚1:CPU脉冲输入端,端口对应一个信号输出端。引脚2:CPU脉冲输入端。引脚3:CPU脉冲输入端。引脚4:CPU脉冲输入端。引脚5:CPU脉冲输入端。引脚6:CPU脉冲输入端。引脚7:CPU脉冲输入端。引脚8:接地。引脚9:该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,实现续流作用。如果该脚接地,实际上就是达林顿管的集电极对地接通。引脚10:脉冲信号输出端,对应7脚信号输入端。参考电路接法引脚11:脉冲信号输出端,对应6脚信号输入端。引脚12:脉冲信号输出端,对应5脚信号输入端。引脚13:脉冲信号输出端,对应4脚信号输入端。引脚14:脉冲信号输出端,对应3脚信号输入端。引脚15:脉冲信号输出端,对应2脚信号输入端。8引脚16:脉冲信号输出端,对应1脚信号输入端。扬声器电路在设计中的电路图如图6所示:图6(4)按键电路设计单片机应用系统中的人机对话通道是用户为了对应用系统进行干预以及了解应用系统运行状态所设置的通道,主要有键盘,显示器等通道接口,为了控制系统的工作状态以及向系统中输入数据,应用系统设置键盘,借助键盘向系统输入程序,置数,送操作命令,控制程序的执行等。本设计采用4个按钮来实现选择歌曲的播放,电路的连接选用单片机板子上的电路。“0”、“1”“2”、“3”分别由单片机引脚P3.0,P3.1,P3.2,P3.3控制,它的设计电路图如图7所示。图79第四章:软件系统设计1:主程序在本设计中,主程序是整个软件模块的核心,它实现对程序的初始化以及各个函数的调用。voidmain(){ucharkey;P2=0;P0=0X00;while(1){key=keyscan();//调用键盘扫描扫描函数,switch(key){case0xee:P0=EL[0];P1=0xfe;//LED灯D0点亮yy1();//播放第一首音乐break;cas
本文标题:单片机课程设计报告--简易音乐播放器
链接地址:https://www.777doc.com/doc-6073580 .html