基于AT89C52音乐播放器的设计与研究.docx
- 文档编号:13994797
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:46
- 大小:171.97KB
基于AT89C52音乐播放器的设计与研究.docx
《基于AT89C52音乐播放器的设计与研究.docx》由会员分享,可在线阅读,更多相关《基于AT89C52音乐播放器的设计与研究.docx(46页珍藏版)》请在冰点文库上搜索。
基于AT89C52音乐播放器的设计与研究
基于AT89S52音乐播放器的设计
摘要
音乐播放设备在咱们生活中愈来愈多,尤其以播放MP3音乐格式为主的音乐播放器。
本文介绍了一种以AT89S52单片机为核心的音乐播放器设计,在该设计中采纳2*16个点阵液晶模块LCD1602作为显示界面,蜂鸣器作为发声元件,利用按时器进行中断操纵,采纳四个按键进行扫描操作播放音乐。
本设计的播放器播放自概念音乐格式的文件,依照自概念的文件格式生成的乐谱能够通过本播放器播放,具有硬件电路简单,软件运行靠得住等特点。
关键词音乐播放器/AT89S52/LCD1602
MusicplayerdesignbasedonAT89S52
Abstract
Thetypeofmusicplayerdevicesbecomemoreandmoreinourlives.EspeciallythosemusicplayerthatmainlyplayMP3musicformat.ThispaperintroducesthedesignofakindofmusicplayerthattakeAT89S52single-chipmicrocomputerasthecore,inthisdesign,use2*16dot-matrixLCDmodule1602asadisplayinterface,buzzerusedasaudiblecomponents,timerusedasainterruptcontrol,usingfourbuttonsoperationthemusicplayer.ThisplayersplayPre-definedmusicfiles,themusicgeneratedaccordingtothedefinitionofthefileformatcanplayoutthroughtheplayer,withsomecharactersofasimplehardwareelectriccircuitandareliablesoftwareandsoon.
Keywordsmusicplayer,AT89S52,LCD1602
中文摘要…………………………………………………………………………Ⅰ
英文摘要…………………………………………………………………………Ⅱ
前言……………………………………………………………………………………1
1系统设计方案…………………………………………………………………2
设计方案的选择……………………………………………………………2
整体设计方案………………………………………………………………3
2系统硬件设计……………………………………………………………………4
系统硬件原理框图………………………………………………………4
单片机最小系统电路……………………………………………………4
AT89S52芯片性能介绍………………………………………………4
电源电路………………………………………………………………8
时钟振荡电路…………………………………………………………8
复位电路………………………………………………………………8
键盘扫描模块……………………………………………………………9
液晶显示模块……………………………………………………………11
蜂鸣器发声模块…………………………………………………………13
发光管操纵模块…………………………………………………………14
3系统软件设计…………………………………………………………………15
主程序设计流程图…………………………………………………………15
子程序设计……………………………………………………………………18
音乐播放子程序设计………………………………………………………18
显示子程序设计………………………………………………………25
4抗干扰方法设计………………………………………………………………28
硬件抗干扰方法…………………………………………………………28
软件抗干扰方法…………………………………………………………28
终止语………………………………………………………………………………30
致谢…………………………………………………………………………………31
参考文献……………………………………………………………………………32
附录A系统硬件电路图……………………………………………………33
附录B汇编源程序……………………………………………………………34
前言
单片机自问世以来,以其集成度高、功能强、速度快、体积小、功耗低、利用方便、性能靠得住、价钱低廉等特点在工业操纵、智能仪器仪表、数据搜集和处置、通信系统、高级计算器、家用电器等领域取得普遍应用,而且正在慢慢取代现有的多片微机应用系统。
专门是当前用CMOS工艺制成的各类单片机,具有功耗低,利用温度范围大,抗干扰能力强等特点,能知足一些特殊要求的应用处合,扩大了单片机的应用范围。
另外,单片机还具有精度高,操纵功能强,小巧等优势,适用于机、电、仪一体化的智能产品。
把它用到仪器和仪表上,可使产品的体积缩小,功能增强,实现不同程度的智能化。
因此受到人们高度重视,并取得了一系列科研功效,成为传统工业技术改造和新产品更新换代的理想机种,更有广漠的进展前景[1]。
本论文旨在介绍一款基于AT89S52单片机的相对简单的电辅音乐播放器,由蜂鸣器播放所选音乐曲目并带有液晶显示界面显示所播曲目。
其中AT89S52单片机不仅具有一样单片机功用,而且其市场零售价已经低于825五、827九、8253、8250等专用接口芯片中的任何一种,而且它的实际功能远远超过以上芯片。
因此AT89S52作为接口芯片利用性价比更高。
以下本文将从硬件和软件设计角度来详细介绍设计方案,最后给出了本系统硬件电路图和汇编源程序。
1系统设计方案
设计方案的选择
依照题目要求,咱们在那个地址考虑了两种实现方案来相互较较,最终在两种方案内选择一个最可行方案来设计咱们的音乐播放系统。
方案一:
本方案采纳8031单片机作为操纵核心,以六位七段数码管作为显示界面,以音乐驱动芯片ISD4004作为音乐播放芯片,用CD4094和一些独立元件组成看门狗电路。
方案二:
本方案采纳比较流行的AT89S52单片机作为电路的操纵核心,以2*16点阵1602液晶芯片作为显示界面,通过单片机程序软件来操纵蜂鸣器发声音播放美好音乐。
从两种方案的可行性来看,彼此都有各自的优势和缺点,咱们在那个地址讨论下。
方案一:
此方案简易可行,元器件的价钱相对廉价,电路相对成熟且复杂。
但8031单片机内部没有程序存储器,需要扩展,增加了电路的复杂性而且这款单片机是非主流的淘汰产品,作为核心器件来用显得整个系统相对照较掉队。
并且采纳多款并行的芯片必将为系统寻址带来麻烦,而且占用大量的系统口线。
通过音乐驱动芯片ISD4004作为音乐芯片,尽管播放出来的音乐比较优美,但ISD4004录入音乐需要专用设备,很复杂。
利用CD4094和一些独立元件组成看门狗电路,由于独立元件比较多而且看门狗计时也不精准。
方案二:
此方案不仅简易可行,而且具有硬件电路简单、本钱较低、操作方便、灵敏靠得住等优势,另外元器件的性能和价钱比相对照较高,设计进程需要设计者对大学所学相关知识有一个专门好的总结和提升。
关于毕业设计来讲是个专门好的选择!
综合考虑两种方案,最终仍是选择第二种方案来设计咱们的系统。
整体设计方案
依照上节方案二采纳AT89S52单片机为核心,以液晶模块1602作为显示界面,以独立按键作为操纵端口,利用蜂鸣器播放所选音乐。
此方案的要紧设计功能如下:
(1)存储并播放3首歌曲。
(2)上/下选曲键选择播放曲目和播放/停止键播放或停止所选曲目。
(3)通过LCD显示器显示所选曲目名称。
(4)通过发光二极管的亮或灭显示播放或停止播放状态。
设计任务:
设计一款相对简单的音乐播放器,由蜂鸣器播放所选音乐曲目,由蜂鸣器播放所选音乐曲目并带有液晶显示界面显示所播曲目。
设计要求:
完成该系统的软硬件设计,学习把握利用单片机播放音乐的设计方式,提高学习新知识和新技术的能力,培育独立设计的能力。
2系统硬件设计
系统硬件原理框图
本设计硬件电路由电源电路模块、AT89S52单片机最小系统电路模块、键盘扫描电路模块液晶显示电路模块、蜂鸣器发声电路模块和发光管操纵电路模块几大电路模块组成。
其中最小系统电路模块包括电源电路模块、时钟振荡电路模块和复位电路模块。
本设计系统硬件大致框图如下:
液晶显示
模块
单片机最小系统电路
A
T
8
9
S
5
2
蜂鸣器发声模块
键盘扫描
模块
发光管控制模块
图系统硬件原理框图
单片机最小系统电路
AT89S52芯片性能介绍
单片机采纳美国ATMEL公司生产的AT89S52单片机。
AT89S52是低电压,高性能CMOS八位单片机,片内含8K字节的可反复擦写的只读程序存储器和256字节的随机存取数据存储器,器件采纳ATMEL公司的高密度、非易失存储技术生产与标准MCS-51指令系统及8052产品引脚兼容,片内置通用八位中央处置器和Flash存储单元,功能壮大适合于许多较复杂操纵应用处合。
AT89S52要紧性能参数:
与MCS-51产品指令和引脚完全兼容
8K字节可重复擦写Flash闪速存储器
1000次擦写周期
全静态操作:
0Hz—33MHz
三级加密程序存储器
256×8字节内部RAM
32个可编程I/O口线
3个16位按时/计数器
8个中断源
全双工可编程串行UART通道
低功耗空闲和掉电模式
功能特性概述:
AT89S52提供以下标准功能:
8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位按时/计数器。
一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时AT89S52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但许诺RAM,按时/计数器,串行通信口及中断系统继续工作。
掉电方式保留RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
而本毕业设计顶用到了,AT89S52的各个口,P1口接RZ-1602液晶显示电路,P2口接按键,P3口接晶振,蜂鸣器,工作指示灯,复位等电路。
AT89S52使一个功能壮大的芯片,各个口由以下功能:
P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复用口。
作为输出口历时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,现在可作输入口。
作输入口利历时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
IL与AT89S51不同的地方是,和还可别离作为按时/计数器2的外部计数输入(T2)和输入(T2EX)。
表1和的第二功能表
引脚号
功能特性
T2(定时/计数器2外部计数脉冲输入),时钟输出
T2EX(定时/计数2捕获/重装载触发和方向控制)
P2口是一个带有内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动吸(收或输出电流4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,现在可作输入口,作输入口利历时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I)。
IL在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些操纵信号。
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
现在,被外部拉低的P3口将用上拉电阻输出电流。
P3口除作为一样的I/O口线外,更重要的用途是它的第二功能。
表2P3口第二功能表
端口引脚
第二功能
RXD(串行输入口)
TXD(串行输出口)
(外中断0)
(外中断1)
T0(定时/计数器0)
T1(定时/计数器1)
(外部数据存储器写选通)
(外部数据存储器读选通)
RST复位输入,当振荡器工作时,RST引脚显现两个机械周期以上高电平将使单片机复位。
ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存许诺)输出脉冲用于锁存地址的低8位字节。
一样情形下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于按时目的。
如有必要,可通过对特殊功能寄放器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN程序贮存许诺(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每一个机械周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP外部访问许诺。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必需维持低电平。
需注意的是:
若是加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平,CPU那么执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程许诺电源Vpp,固然这必需是该器件是利用12V编程电压Vpp[2]。
XTAL1振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2振荡器反相放大器的输出。
图AT89S52管脚图
电源电路
系统直流9V或12V电池供电,由一片LM7805将9V/12V电源稳压在5V上。
5V电源给所有芯片和电路供电。
在电源电路中咱们利用了两个滤波电容,利用滤波电容要紧目的是为了排除电源波动对系统的干扰,提高系统的抗干扰能力,其中104电容是用来滤高频杂波干扰,220uF电容是用来滤低频杂波干扰。
图电源电路图
时钟振荡电路
AT89S52中有一个用于组成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2别离是该放大器的输入端和输出端。
那个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一路组成自激振荡器。
片外石英晶体或陶瓷谐振器及电容C一、C2接在放大器的反馈回路中组成并联振荡电路[3]。
那个地址咱们采纳电容30pF,晶振采纳12MHZ。
图时钟振荡电路图
复位电路
复位电路采纳RC充电电路组成上电复位单片机电路,当系统上电时,在上电初期,电容C充电,使复位脚持续高电平,当C充电抵达必然程度复位脚电位会慢慢变低,最后被电阻R完全拉低,高电平复位的时刻由充电的时刻决定,充电时刻又由R与C的阻值和容值之积决定。
一旦单片机复位脚拉低后就一直都低电平,只有下电后再上电才从头开始复位进程。
图复位电路图
键盘扫描模块
本方案采纳独立式按键接口设计,各按键彼此独立,每一个按键单独占用一根I/O口线,每根I/O口线的按键工作状态可不能阻碍其他I/O口线上的工作状态。
因此,通过检测输入线的电平状态能够很容易判定哪个按键被按下。
键盘工作方式采纳按时扫描方式,采纳按时器T0按时,通过读取输出数据,识别按键工作状态。
键盘按键所用开关为机械弹性开关,利用了机械触点的合断作用。
由于机械触点的的弹性作用,一个按键开关在闭合和断开的刹时均有连续串的抖动。
抖动时刻的长短由按键的机械特性决定,一样为10~100ms。
电平信号的波动,有可能令CPU误解为多次按键操作,从而引发误处置。
为了确保CPU对一次按键动作只确认一次按键,必需排除抖动的阻碍。
按键的消抖通常有软件和硬件两种排除方式。
若是按键较多,硬件消抖将无法胜任,常采纳软件消抖。
本设计尽管按键少但仍是采纳常规的软件延时的方式:
在第一次检测到有键按下时,执行一段延时子程序后,再确认电平是不是仍维持闭电平,若是维持闭合状态电平,那么确认真正有键按下,进行相应处置工作,排除抖动的阻碍[4]。
系统键盘由四个按键组成,键盘采纳动态扫描方式取得键值。
如图中的电位在没有按键按下的时候是高电平,当KEY1按下后,会迅速拉低成低电平,然后再判定KEY1键是不是松开,假设松开取得键值后挪用键盘按下功能程合状态序。
判定键盘程序流程如下图:
开始
有键按下?
N
Y
去键盘抖动
同一键按下?
N
Y
根据键值执行功能相应功能
循环
图键盘判定程序流程图
图键盘扫描模块图
液晶显示模块
LCD1602显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个操纵端口,工作电压5V而且带有字符对照度调剂和背光[5]。
液晶显示面板如下图。
图液晶显示面板
表3LCD引脚功能
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
双向数据口
2
VDD
电源正极
10
D3
双向数据口
3
VL
对比度调节
11
D4
双向数据口
4
RS
数据/命令选择
12
D5
双向数据口
5
R/W
读/写选择
13
D6
双向数据口
6
E
模块使能端
14
D7
双向数据口
7
D0
双向数据口
15
BLK
背光源地
08
D1
双向数据口
16
BLA
背光源正极
VDD:
电源正极,-,通常利用5V电压;
VL:
LCD对照度调剂端,电压调剂范围为0-5V。
接正电源时对照度最弱,接地电源时对照度最高,但对照度太高时会产生“鬼影”,因此通常利用一个10K的电位器来调整对照度,或直接串接一个电阻到地;
RS:
MCU写入数据或指令选择端。
MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平。
R/W:
读写操纵端。
R/W为高电平常,读取数据;R/W为低电平常,写入数据;
E:
LCD模块使能信号操纵端。
写数据时,需要下降沿触发模块。
D0-D7:
8位三态双向数据总线。
若是MCU的I/O口资源紧张的话,该模块也可只利用4位数据线D4-D7接口传送数据。
本充电器确实是采纳4位数据传送方式;
BLA:
LED背光正极。
需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右。
BLK:
LED背光地端。
大体操作时序:
读状态:
输入:
RS=L,RW=H,E=H输出:
D0~D7=状态字
写指令:
输入:
RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
无
读数据:
输入:
RS=H,RW=H,E=H输出:
D0~D7=数据
写数据:
输入:
RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
表4显示模式设置
指令码
功能
0
0
1
1
1
0
0
0
设置16*2显示,5*7点阵,8位数据接口
表5显示开/关及光标设置
指令码
功能
0
0
0
0
1
D
C
B
D=1开显示;D=0关显示
C=1显示光标;C=0不显示光标
B=1光标闪烁;B=0光标不显示
0
0
0
0
0
1
N
S
N=1当读或者写一个字符后地址指针加一,且光标加一
N=0当读或者写一个字符后地址指针减一,且光标减一
S=1当写一个字符,整屏显示左移(N=1或)右移(N=0)可以得到光标不动而屏幕移动的效果
S=0当写一个字符,整屏显示不动
其与单片机接口电路如下:
图液晶显示器模块图
蜂鸣器发声模块
蜂鸣器发声电路通过蜂鸣器实现发声,当三极管基级由单片机操纵变成高电平常,V1导通并工作在饱和区,由于集电极和发射极之间的电压差几乎等于0,故相当于蜂鸣器的另一个脚接地,蜂鸣器会发出蜂鸣声。
当三极管基级由单片机操纵变成高低电平常,V1不导通并工作在截止区,那么蜂鸣器的另一个脚接到高电平,蜂鸣器不发出蜂鸣声。
能够通过改变三极管基级的开关频率来操纵蜂鸣器发出各类不同频率的声音。
另外,蜂鸣器需要三极管驱动,而不能由单片机口线直接驱动,因为蜂鸣器的工作电流比较大(可能100mA),故单片机口线不能经受[6]。
图蜂鸣器发声模块图
发光管操纵模块
发光管操纵电路可通过发光管来提示操作者系统运行状态,本设计利用一个发光管来指示系统运行状态,当发光二极管变亮提示操作者系统处于播放音乐状态;当发光二极管熄灭提示操作者系统处于停止播放音乐状态。
此电路中串联电阻用来调剂发光管发光亮度,当AT89S52单片机操纵脚操纵变成高电平常,发光二极管不导通不发光;当L1单片机操纵脚操纵变成低电平常,发光二极管导通发光。
另外,此电路可由单片机口线直接驱动,因为导通工作电流比较小(可能10mA—20mA),单片机的口线能够经受[7]。
图发光管操纵模块图
3系统软件设计
主程序设计流程图
本软件采纳状态驱动程序编程方式,即将所有程序的运行状态统一编号,然后依照程序运行到的状态来执行相应功能[8]。
通过统一编号能够将程序的运行情形分析清楚,然后依照编号来完成功能。
如此做的益处是编程者能够将复杂的应用程序通过状态来细化程序,把一个大系统分割成一个一个小的状态系统,大大降低了程序的编程难度。
本系统分为二个运行状态。
以下是各个状态及其要实现的功能。
状态1:
程序上电后自动进入待播放曲目状态,此状态液晶显示预备播放曲目的名称。
在状态1下按上曲键/下曲键能够改变歌曲的播放顺序。
状态2:
播放歌曲状态。
状态1下按播放键后转为此播放曲目的状态。
按下停止键回到状态1。
如下图,系统初始化后LCD显示主界面“musicplayer",系统处于状态1,开始预备播放第一曲。
当有按键按下时,先判定是四个按键中的哪个键。
当判定是上曲键时,那么LCD显示上一首曲的名称;当判定是下曲键时,那么LCD显示下一首曲的名称;当判定是播放键时,那么系统状态转变成状态2,LCD显示相应曲目名称同时播放选择的相应曲目,而且发光二极管变亮;当判定是停止键时,那么系统状态恢复为状态1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C52 音乐 播放 设计 研究