《基于51单片机的音乐播放器制作32页》由会员分享,可在线阅读,更多相关《基于51单片机的音乐播放器制作32页(32页珍藏版)》请在金锄头文库上搜索。
1、第2章 方案论证的简介:AT89C51:是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C
2、51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要功能特性:1) 与MCS-51 兼容;2) 4K字节可编程FLASH存储器;3) 全静态工作:0Hz-24MHz;4) 1288位内部RAM;5) 两个16位定时器/计数器;6) 5个中断源;7) 可编程串行通道;8) 低功耗的闲置和掉电模式;9) 片内振荡器和时钟电路。AT89C52:是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通
3、用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。主要功能特性:1) 兼容MCS51指令系统;2) 8kB可反复擦写(大于1000次)Flash ROM;3) 32个双向I/O口;4) 256x8bit内部RAM;5) 3个16位可编程定时/计数器中断;6) 时钟频率0-24MHz;7) 2个串行中断,可编程UART串行通道;8) 2个外部中断源,共8个中断源;9) 2个读写中断口线,3级加密位;10) 低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。1.1.1 结论我们通过集成电路和2款单片机的属性和优缺点对比,我们觉得AT89C51单片机芯片更加适合本次实
4、验的中心控制芯片。31第2章 硬件设计2.1 硬件结构图3-1是以AT89C51单片机为核心的音乐播放器系统硬件设计结构框图。该系统主要是由复位电路、按键电路、时钟电路、中心模块、扬声器驱动等组成。其工作原理为:此音乐播放器,有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控制单片机,播放所要求的音乐,并通过放大电路和喇叭输出声音。图3-1 硬件结构图2.2 中心控制模块 中控采用的是AT89C51芯片,下面是AT89C51的引脚图:第3章 硬件设计图3-2 AT89C51引脚图各端口作用: P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平
5、。对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的触发输入(P
6、1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 l P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 l P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) l P1.5 MOSI(在系统编程用) l P1.6 MISO(在系统编程用) l P1.7 SCK(在系统编程用) P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(II
7、L)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C52特殊功能(第二功能)使
8、用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。 端口引脚第二功能 l P3.0 RXD(串行输入口) l P3.1 TXD(串行输出口) l P3.2 INTO(外中断0) l P3.3 INT1(外中断1) l P3.4 TO(定时/计数器0) l P3.5 T1(定时/计数器1) l P3.6 WR(外部数据存储器写选通) l P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时
9、,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器
10、取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。2.3 电源模块对于一个电子系统来说,电源部分的设计越发重要。对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅
11、是关心输入电压,输出电压和电流,还要考虑到总的功率,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的电源纹波,还有散热问题等等。本次设计基于AT89C51功率因数测量系统中使用到咯+5V的电源,电源设计的原理图如下。电路中使用到的芯片是7805,7805是稳压芯片,好处是应用比较简单,只需要接上几个电容就可以使用了。第3章 硬件设计图3-3 电源电路图2.4 控制电路控制电路,键1与P3.2相连、键2与P3.3相连、键3与P3.5相连。当电键按下时接口接低电平,实现对音乐播放器的控制。键1连通实现上一曲更换,键二连通实现下一曲更换,键三连通实现开始
12、暂停操作。2.5 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。复位电路采用RC充电电路组成上电复位单片机电路,当系统上电时,在上电初期,电容C充电,使复位脚持续高电平,当C充电到达一定程度复位脚电位会慢慢变低,最后被电阻R完全拉低,高电平复位的时间由充电的时间决定,充电时间又由R与C的阻值和容值之积决定。一旦单片机复位脚拉低后就一直都低电平,只有下电后再上电才重新开始复位过程。电路图如下所示:图3-4 复位电路图2.6 电路设计所需要的器件表
13、3-1 电路设计器件表类别序号型号数量(单位)用途电源178051个系统电源IC芯片2AT89c511片CPU3LM3861片实时时钟日历芯片电容430pF2个单片机时钟震荡电路510F1个复位电路60.1F1个7470F1个822F1个947F1个100.047F1个11100F1个晶振1212MHz1支电阻134.5K1支141K2支复位电路1510K1支限压保护164701支喇叭1774F3781个扬声器硬质板18焊接性1块基础电路二极管191N40011个电源部分20发光二极管1个检测电源第4章 软件设计第3章 软件设计3.1 音乐发声设计原理3.1.1 发声原理一首乐曲是由多个音符构
14、成的。每个音符都对应着一个确定的频率,乐曲中不同的音符,实质就是不同频率的声音;另外每个音符会根据乐曲的要求设定一个确定的节拍。可以控制单片机产生不同频率不同节拍的脉冲信号,由蜂鸣器发出就产生了美妙和谐的乐曲。 3.1.2 单片机产生不同频率脉冲信号的原理1、要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。 2、利用单片机内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方
15、法如下: 例如:频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。 计数脉冲值与频率的关系公式如下: N=Fi/2/Fr (4-1)其中N表示计数值;Fi表示内部计时一次为1uS,故其频率为1MHz;Fr表示要产生的频率。 3、其计数值的求法如下: T=65536-N=65536-Fi/2/Fr (4-2)计算举例: 设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、 高音DO(1046Hz)的计数值。 T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr