基于12864液晶显示单片机音乐播放器的设计.doc

上传人:laozhun 文档编号:4147804 上传时间:2023-04-07 格式:DOC 页数:56 大小:834.50KB
返回 下载 相关 举报
基于12864液晶显示单片机音乐播放器的设计.doc_第1页
第1页 / 共56页
基于12864液晶显示单片机音乐播放器的设计.doc_第2页
第2页 / 共56页
基于12864液晶显示单片机音乐播放器的设计.doc_第3页
第3页 / 共56页
基于12864液晶显示单片机音乐播放器的设计.doc_第4页
第4页 / 共56页
基于12864液晶显示单片机音乐播放器的设计.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《基于12864液晶显示单片机音乐播放器的设计.doc》由会员分享,可在线阅读,更多相关《基于12864液晶显示单片机音乐播放器的设计.doc(56页珍藏版)》请在三一办公上搜索。

1、 存档编号 赣南师范学院学士学位论文基于12864液晶显示的单片机音乐播放器教学学院 物理与电子信息学院 届 别 2012届 专 业 电子科学与技术 学 号 080803030 姓 名 周谟龙 指导教师 袁寿财 完成日期 2012年5月 目 录摘要:1关键词:1Abstract:1Keywords:21.绪论31.1 前言31.2 设计任务与要求32. 12864液晶概述42.1名称含义42.2基本参数42.3电气特性52.4液晶模组接口62.5基本用途:62.6应用举例73. AT89S51 单片机概述83.1 AT89S51 单片机的结构83.1.1 管脚说明113.1.2 主要特性143

2、.1.3 振荡器特性153.2 AT89S51 单片机的工作周期163.3 AT89S51 单片机的工作过程和工作方式173.4 STC12C5616AD224.方案设计224.1 系统概述224.2 总体设计244.3 系统硬件选择244.4 硬件电路实现254.5 软件的程序实现265.结论335.1 主要结论33参考文献35致 谢36附录A:主函数和部分函数程序清单37A.1 主函数代码37A.2 播放音乐部分函数代码39A.3 LCD显示部分函数代码42A.4 音乐播放部分指令代码49A.5 部分头文件中包含的代码51A.5.1 延时函数头文件51A.5.2 音乐指令头文件代码51A.

3、5.3 LCD12864液晶头文件代码52摘要: 本次课程设计是基于STC12C5616AD系列的51单片机LCD12864液晶显示的音乐播放器。通过单片机音乐播放器系统设计和研究,对于切实掌握单片机相关知识具有重要的理论和实际意义。这次设计的音乐播放器是软件和硬件的结合,乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由功放放出,就产生了美妙和谐的乐曲。根据各音阶频率算出定时器定时常数,根据节拍给出该音阶持续的时间,最终实现播放歌曲的功能。系统包括硬件和软件两个部分。硬件部分包括单片机控制电路,处理器采用STC51系列单片机STC12C5616AD

4、、LCD12864液晶显示模块、功放驱动放大电路、LED控制电路等部分组成。软件部分分为以下几个模块:12864驱动显示、按键控制、播放模式和音乐播放等子程序。整个系统在软件控制下工作的。关键词:STC12C5616AD单片机;音乐播放器;LCD12864 液晶显示器Abstract:The design is liquid crystal display music player that based on the STC12C5616AD series 51 microcontroller LCD12864.The design and research of Microcontrolle

5、r Music Player system has important theoretical and practical implications for effective control about microcontroller knowledge. The design of the music player is a combination of software and hardware.The inssence of different notes in music isdifferent frequencies of sound. Through the Microcontr

6、oller to generate the pulse signals of different frequencies,by the use of the amplifier circuit, released by the amplifier to produce a wonderful and harmony music. Calculated the timer tinming constant by the scale frequency,then given the sustained time of the scale according to beat,and eventual

7、ly achieve the function of playing a song.The system includes both hardware and software.Hardwork,including microcontroller control circuit、the processor of STC51 series microcontroller STC12C5616AD、LCD12864 LCD modules、power amplifier driver amplifier circuit and LED control circuit,etc.Software,in

8、cluding 12 864 drivers、key control, playback mode and music player,etc. The entire system operation is under software control. Keywords: STC12C5616AD microcontroller; Music Player; LCD12864 liquid crystal displayer1.绪论 1.1 前言几千年来,各种乐器的发生无一不是依靠琴弦、簧片、哨片引起管柱震动而作为声源。随着现代电子技术的飞速发展,一种用新的声源来制造音响的新型乐器脱颖而出,这

9、就是目前人么熟知的电子音乐播放器。目前市场上的音乐器形形色色,例如,大家熟悉的MP3,随着电子技术的不断发展,音乐播放器的发展也会进一步发展。目前单片机的应用渗透到我们生活各个领域,几乎很难找到哪个领域没有单片机的痕迹。导弹的导航装置,飞机上各种仪表的控制,计算机的王若通讯与数据传输,工业自动化的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华汽车的安全保障系统,录影机、摄像机、全自动洗衣机的控制,以及程控玩具,电子宠物等等,这些都离不开嵌入式,离不开单片机。本课题即使在这种背景下,对基于12864液晶显示的51系列单片机音乐播放器的设计与实现进行了软硬件的设计,实现了单片机音乐播放器的

10、音乐演奏。1.2 设计任务与要求(1)该设计包括硬件和软件设计两个部分。模块划分为液晶显示、按键控制控制、音乐播放和LED显示模块子函数。(2)本系统设计由12864液晶模块驱动、音乐播放、单片机控制电路、LED控制电路及相关的控制管理软件组成。(3)系统可实现功能:系统可存储十几首乃至几十首自己喜欢的歌曲,由液晶显示其歌名、播放模式和菜单。通过按键控制,播放歌曲。具有播放、暂停、停止、上一首、下一首的功能。播放模式可通过按键选择常有的顺序播放、循环播放、单曲循环和随机播放。2. 12864液晶概述2.1名称含义 12864是128*64点阵液晶模块的点阵数简称,业界约定俗成的简称 2.2基本

11、参数 液晶屏类型: STN FSTN 模块显示效果: 黄绿底黑字 蓝底白字 白底黑字 视角: 6点钟 12点钟 驱动方式:1/64 DUTY 1/9 BIAS 背光: LED白色 LED黄绿色 控制器: KS0108或兼容 ST7920 T6963C 数据总线 :8 位并口/6800 方式 串口 温度特性 ;工作温度:-20+70 储藏温度:-30+80 点阵格式 :128 x 64 2.3电气特性 表2-1电气特性项目符号最小典型最大单位电源电压VDD-VSS4.755.05.25V液晶驱动电压VDD-VADJTa=0-11.0-11.5-12.0Ta=25-10.5-11.0-11.5Ta

12、=50-10.0-10.5-11.0输入信号电压VIH0.8 VDD-VDD+0.3VIL0-0.2 VDDLCM工作电流IDD-38mA背光驱动电流ILED-6080液晶驱动电流IEE-1.0- 2.4液晶模组接口 表2-2液晶模组接口引脚序号名称说 明1CS1#U1片选。2CS2#U2片选。3VSS电源地。4VDD电源输入(+5V)5V0液晶显示对比度调节。6DI数据输入。7R/W读写选择。R/W=1,读状态。R/W=0,写状态。8E读写使能。9-16D0-D7数据总线。17RST液晶模组复位。RST#=L,复位18VEE液晶驱动电源 19VLED+LED电源正(5.0V)。20VLED-

13、LED电源地。2.5基本用途: 该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。 2.6应用举例1、使用前的准备先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显示出黑色的底影。 此过程亦可以初步检测LCD有无缺段现象。 2、字符显示 带中文字库的128X64-0402B每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中 文字符或2个168点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供1282字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显

14、示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。 表2-3液晶模组接口80H 81H 82H 83H 84H 85H 86H

15、87H90H 91H 92H 93H 94H 95H 96H 97H88H 89H 8AH 8BH 8CH 8DH 8EH 8FH98H 99H 9AH 9BH 9CH 9DH 9EH 9FH2、图形显示先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址) 垂直地址范围 AC5.AC0 ,水平地址范围 AC3AC0 。绘图RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时会重新设为00H 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。 3、应用说明 用带中文字库的128X64显示模块时应

16、注意以下几点: 欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。 显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。 当字符编码为2字节时,应先写入高位字节,再写入低位字节。 模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表

17、中的指令执行时间说明。“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。3. AT89S51 单片机概述3.1 AT89S51 单片机的结构 AT89S51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功

18、能强大。AT89S51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。图3-1为AT89S51单片机的基本组成功能方块图。有图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。下面介绍几个主要部分。 图3-1 AT89S51 功能方块图1. 中央处理器(CPU)中央处理器是单片机最核心的部分,是单片机的大脑和心脏,主要完成运算和控制功能。AT89S51的CPU是一个字长为8位的中央处理单元,即它对数据的处理是按字节为单位进行的。2. 内部数据存储器(内部RAM) AT89S51 中共

19、有256个RAM单元,但其中能作为寄存器供用户使用的仅有前面128个,后128个被专用寄存器占用。3. 内部程序存储器(内部ROM)AT89S51 共有4 KB掩膜ROM,用于存放程序、原始数据等。4. 定时器/计数器AT89S51 共有2 个16 位的定时器/计数器,可以实现定时和计数功能。5. 并行I/O 口AT89S51 共有4 个8 位的I/O口(P0、P1、P2、P3口),可以实现数据的并行输入、输出。6. 串行口AT89S51有1 个全双工的可编程串行口,以实现单片机和其他设备之间的串行数据传送。7. 时钟电路AT89S51 单片机内部有时钟电路,但晶振和微调电容需要外接。时钟电路

20、为单片机产生时钟脉冲序列。8. 终端系统AT89S51 的中断系统功能较强,可以满足一般控制应用的需要。它共有5 个中断源:2 个外部中断源/INTO和/INT1 ;3 个内部中断源,即2个定时/计数中断,1个串行口中断。由上所述,AT89S51虽然是一块芯片,但它包括了构成计算机的基本部件,因此可以说它是一台简单的计算机。AT89S51 较详细的内部结构如 图 3-2 所示。图 3-2 AT89S51 内部结构框图3.1.1 管脚说明ATMEL公司的AT89S51是一种高效微控制器。采用40引脚双列直插封装(DIP)形式,如图3-3所示。AT89S51单片机是高性能单片机,因为受引脚数目的限

21、制,所以有不少引脚具有第二功能。图3-3 DIP 封 装 引 脚 图 图 3-4 SMT 的 封 装 图 VCC:供电电压。GND:接地。P0口: P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口: P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时

22、,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口: P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口

23、管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89S51的一些特殊功能口,如下表所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制

24、信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部

25、程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.2 主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循

26、环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 3.1.3 振荡器特性(1)XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,如图3-5所示。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。图3-5 晶体振荡器电路图及出腿连接示意图(2) 芯片擦除 整个EPROM阵列

27、和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2 AT89S51 单片机的工作周期单片机有了硬件和软件就可以在控制器发出的控制信号作用下有条不紊地工作,控制信号必须定时发出,为了定时计算机内部

28、必须有一个准确的定时脉冲。这种定时脉冲是由晶体振荡器产生的,并组成下面几种工作周期,如图3-6所示。图 3-6 振荡周期、状态周期、机器周期和指令周期振荡周期:是指为单片机提供时钟脉冲信号的振荡源的周期。 即由单片机的晶体振荡器产生的时钟脉冲的周期。状态周期:每个状态周期为振荡周期的 2 倍, 是振荡周期经二分频后得到的。在一个状态周期中有两个时钟脉冲,通常称它为P1、P2。机器周期:一个机器周期包含 6 个状态周期S1S6, 也就是 12 个振荡周期。在一个机器周期内, CPU可以完成一个独立的操作。 指令周期:它是指CPU完成一条操作所需的全部时间。控制部件是单片机的神经中枢,以主振频率为

29、基准(主振周期即为振荡周期),控制器控制CPU的时序,对指令进行译码,然后发出各种控制信号,它将各个硬件环节组织在一起。一般情况下,算术逻辑操作发生在时相P1期间,而内部寄存器之间的传送发生在时相P2期间,这些内部时钟信号无法从外部观察,故用XTAL2引脚振荡信号作参考。3.3 AT89S51 单片机的工作过程和工作方式单片机工作过程遵循现代计算机的工作原理(冯诺依曼原理),即程序存储和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据, 通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机能自动地逐一取出程序中的指令,加以分析并执行规定的操作。 单

30、片机的工作方式有:复位、程序执行、掉电保护和低功耗、编程、校验与加密等方式。1复位方式通过某种方式, 使单片机内各寄存器的值变为初始状态的操作称为复位。复位方式是单片机的初始化操作。单片机除了正常的初始化外,当程序运行出错或由于操作错误而使系统处于死循环时,也需要按复位键重启机器。MCS51单片机复位后, 程序计数器PC和特殊功能寄存器复位的状态如图3-7所示。 复位不影响片内RAM存放的内容, 而ALE、在复位期间将输出高电平。由图3-7 可以看出,复位后:(1)(PC)=0000H 表示复位后程序的入口地址为0000H,即单片机复位后从0000H单元开始执行程序;(2)(PSW)=00H,

31、 其中RS1(PSW.4)=0,RS0(PSW.3)=0,表示复位后单片机选择工作寄存器0组;(3)(SP)=07H 表示复位后堆栈在片内RAM的08H单元处建立;(4) P0口P3口锁存器为全1状态,说明复位后这些并行接口可以直接作输入口,无须向端口写1。定时器/计数器、串行口、中断系统等特殊功能寄存器复位后的状态对各功能部件工作状态的影响。 能部件工作状态的影响。 图 3-7 PC与SFR复位状态表单片机在时钟电路工作以后, 在RST/VPD端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2us。复位方法一般有上电自动复位和外部

32、按键手动复位以及“看门狗”复位三种类型。前两种见 图3-8所示。 “看门狗”电路则是一种集成有单片机的电源监测、按键复位以及对程序运行进行监控,防止程序“跑飞”而出现死机而设计的电路。图3-8 (a)上电复位电路; (b)上电/外部复位电路2程序执行方式程序执行方式是单片机的基本工作方式。由于复位后PC=0000H,因此程序执行总是从地址0000H开始,为此就得在0000H处开始的存储单元安放一条无条件转移指令,以便跳转到实际程序的入口去执行。3待机方式待机方式也称空闲方式,是一种节电工作方式。在待机工作方式中,振荡器保持工作,时钟脉冲继续输出到中断、串行口、定时器等功能部件,使它们继续工作,

33、但时钟脉冲不再送到CPU,因而CPU停止工作。4掉电方式掉电方式,也被称为停机方式。在掉电方式中,振荡器工作停止,单片机内部所有功能部件停止工作。它同样是一种为降低功耗而设计的节电工作方式。待机方式和掉电方式都是为了进一步降低功耗而设计的节电工作方式,它们特别适合于电源功耗要求很低的应用场合。这类系统往往是直流供电或停电时依靠备用电源供电,以维持系统的持续工作。CHMOS型单片机的节电方式是由特殊功能寄存器PCON控制,其具体使用可参考相关书籍和手册。空闲和掉电模式外部引脚状态 如下图 3-9 所示:图 3-9 空闲和掉电模式外部引脚状态 5. 编程和校验方式对于内部集成有EPROM可以进入编

34、程或校验方式。(1)内部EPROM编程编程时,时钟频率应定在3-6MHz的范围内,其余各有关引脚的接法和用法如下:P1口和P2口的P2.0P2.3为EPROM的4k地址输入,P1为8位地址;P2.4P2.6以及PSEN应为低电平;P0口为编程数据输入;P2.7和RST应为高电平;RST的高电平可为2.5V,其余的都以TTL的高低电平为准;EA/VPP端加+21V的编程脉冲,此电压要求稳定,不能大于21.5V,否则会损坏EPROM在出现正脉冲期间,ALE/PROG端加上50ms的负脉,完成一次写入。(2)EPROM程序校验在程序的保险位未设置前,无论在写入的当时或写入以后,均可将片上程序存贮器的

35、内容读出进行检验,在读出时,除P2.7脚保持为TTL低电平之外,其他引脚与写入EPROM的连接方式相同。要读出的程序存贮器单元地址由P1口和P2口的P2.0P2.3送入,P2口的其他引脚及保持低电平,ALE、EA和RST接高电平,检验的单元内容由P0口送出。在检验操作时,需在P0的各位外部加上电阻10k。(3)程序存贮器的保险位AT89S51内部有一个保险位,亦称保密位,一旦将该位写入便建立了保险,就可禁止任何外部方法对片内程序存贮器进行读写。将保险位写入以建立保险位的过程与正常写入的过程相似,仅只P2.6脚要加TTL高电平而不是像正常写入时加低电平,而P0、P1和P2的P2.0P2.3的状态

36、随意,加上编程脉冲后就可使保险位写入。保险位一旦写入,内部程序存贮器便不能再被写入和读出校验,而且也不能执行外部存贮器的程序。只有将EPROM全部擦除时,保险位才能被一起擦除,也才可以再次写入。通过以上对单片机硬件系统的简单介绍,应该已经掌握了单片机的内部结构及工作的原理和过程,但是单片机要实现它的强大控制功能特性,只有硬件是不能工作的,还必须依靠它的指令才能发挥单片机的强大作用。下面介绍单片机的指令系统。3.4 STC12C5616AD 此单片机不仅具有AT89S51单片机的所有功能,而且还具有1个时钟/机器周期,飞思卡尔芯片解密,增强型8051内核,速度比普通8051快812倍,本系统使用

37、其做设计,不仅因为它只有28脚所占空间较小,而且其内部FLASH为16K,非常适合设计所需。以下为STC12C5616AD 引脚图。图 3-10 STC12C5616AD 引脚图。4.方案设计4.1 系统概述本系统采用功放作为发生装置,其声音效果是蜂鸣器无法相比的,而用12864是为了操作者更能直观的对自己所喜欢的音乐进行播放。 该设计包括硬件和软件设计两个部分。模块划分为LCD显示、按键控制、播放音乐和LED显示等模块子函数。电路结构做成可划分为:12864液晶控制电路、单片机控制电路、LED控制电路,功放放大电路及相关的控制管理软件组成。用户终端完成按键处理、音乐播放、音乐存储、本地显示等

38、功能。就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是有硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计、在线调试等几个阶段,就本设计来说也包括这些过程。它们的进程框图如图4-1 所示。图 4-1 单片机应用系统研制过程框图4.2 总体设计从设计的要求来分析该设计须包含如下结构:功放驱动电路、LCD显示电路、单片机、晶振电路、复位电路、LED显示控制电路按键控制及相关的控制管理软件组成;它们之间的构成框图如图4-2总体设计框

39、图所示:图4-2 总体设计框图处理器采用51系列单片机STC12C5616AD。整个系统是在系统软件控制下工作的。本系统硬件电路先对来说较简单,这样节约了设计成本,主要还是靠软件来实现,通过模块化编程,把每一个部分都通过模块化来实现,这样在调用时相对简单,更方便音乐的修改。4.3 系统硬件选择从以上的分析可知在本设计中要用到如下器件: STC12C5616AD、12864液晶驱动、LED、按键、功放等一些单片机外围应用电路,以及单片机的手工复位电路和晶振电路等等。系统所需元件如下页所示。表4-1元器件清单见下表:编号名称型号数量R5电阻3301R1、R2、R3、电阻10K3R4电位器10K1C

40、1、C2电容30pF2C3 (极性)电容10uF1D1发光二极管LED1Q1、Q2三极管9015/80502U1 集成电路STC12C5616AD1 Y1石英晶振12MHZ1S1S5按键轻触按键5LS1、LS2功放8R2JP120P12864插座1USB电源线电源线5.5*2.1128PIC底座28P1LCD12864LCD12864模块模块14.4 硬件电路实现经分析本设计的电路原理图如下图4-3所示图4-3 基于12864液晶显示的单片机音乐播放器设计4.5 软件的程序实现按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图4-4所示;图4-4 主程序工作流程图本主程序实现的功能是:

41、先存入自己想要的歌曲以数组的方式存放到单片机中,同时以菜单的方式用126864液晶显示出歌名,播放模式。通过按键选择播放的曲目,播放模式(随即,循环,单曲,顺序)播放,暂停等方式。以下附上主函数程序清单#includereg52.h /调用头文件#includemusiccode.h /调用音乐代码头文件#include lcd12864.h /调用液晶显示头文件#includestdlib.h /调用头文件,产生随机数用#include /调用头文件,输入输出头文件char oldCur=0,oldMode=0,oldSplay=0;void main() timerinit(); /定时器

42、初始化 Init_12864(); /12864液晶初始化 CGRAM(); /写入自定义字符 play(jintian,10); TR1 = TR0 = 0; curr = 0; /默认选中第一首 DisplayUpdata(); /液晶显示更新 while(1) key_select(); / 按键选择函数 if(oldMode!=mode) /判断播放模式是否改变 oldMode=mode; DisplayUpdata(); /液晶显示更新 if(oldCur != curr ) /判断选中歌曲是否改变 oldCur=curr; DisplayUpdata(); /液晶显示更新 swit

43、ch(curr) /判断选中歌曲 case 0: play(jintian,10); / 今天 break; case 1:play(bingyu,7); /冰雨 break; case 2:play(zhu,5); / 猪八戒背媳妇 break; case 3:play(xingyue,8); /星月神话 break; case 4:play(qingzang,8); /青藏高原 break; case 5:play(liang,5); /梁祝 break; case 6:play(qiannv,4); /倩女幽魂 break; case 7:play(huanghun,5); /黄昏 break; case 8:play(red,8);/红河谷 break; case 9:play(fause,8); /错错错 break; case 10:play(ting,6); /听听我的心) break; case 11:play(bas,1); /简谱 break; case 12:play(yinxing,6);/隐形的翅膀 break;default :TR1 = TR0 = 0;break; 注:各功能函数清单见附录A。 所编写的程序,通过Keil 编译软件已经编译通过,同时运行效果已经通过仿真软件Proteus仿真,可以达到预定设计的目的,仿真效果图如下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号