ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:194.33KB ,
资源ID:30470311      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30470311.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机数字音乐盒设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机数字音乐盒设计.docx

1、单片机数字音乐盒设计单片机数字音乐盒设计摘 要:本设计是采用单片机为核心设计的数字音乐播放器。它可以实现音乐的播放,可以通过功能键来选择乐曲,播放或暂停,上一曲或下一曲,并可以通过LCD屏幕显示正在播放的歌曲的序号,以及播放时间。开机时有英文欢迎提示字符。本音乐播放器可以播放十首歌曲。主控芯片采用AT89C51,采用汇编语言进行编程,编程后利用KEIl C51进行编译,用Proteus软件来仿真。关键词:数字音乐盒;单片机;智能化 Digital Music Box Design CHENYING Instructor:HUKEYONG Abstract:This design is usin

2、g microcontroller as the core design of the digital music player . It can play music. It can function keys to select a song, play or pause on one or the next one. and the serial number of the song that is playing, as well as play time can be displayed through the LCD screen. English boot welcome pro

3、mpt characters. The music player can play ten songs.The master chip is AT89C51, assembly language is programming, programming by KEIl C51 compile,then using Proteus software to simulate. Key words:Digital Music Box, SCM, Intelligent1 引言 11.1 单片机总体功能简介 12 系统设计 12.1 总体设计方案 12.2 系统硬件设计 22.3 主要元器件介绍 42.

4、3.1 AT89C51单片机 42.3.2 LM016L液晶显示器 52.4 proteus软件介绍 63 软件设计及仿真 73.1程序流程 73.2 系统初始化程序设计 73.3 音调的确定 83.4项目仿真 9总结 10参考文献: 10附录一 11附录二 111 引言目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。它测量、处理、控制功能于一单片机是单片微型机的简称,故又称为微控制器MCU。通常由单块集成电路芯片组成,部含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。1.1 单片机总

5、体功能简介单片机是在工业测控需要背景下而产生的,在一个应用系统中。按照测控系统的特点和要求,单片机的应用可分为单机应用和多机应用两大类。我们这次要完成的单片机课程设计就是它的单机应用,下面介绍一下单片机应用领域的主要容。(1) 智能产品单片机与传统机械产品相结合,使传统机械产品结构简化,控制智能化,购成新一代机电一体化产品。目前,利用单片机构成的智能产品已广泛应用于家用电器、办公设备、数控机床、纺织机械、 工业设备等行业。(2) 智能仪表 目前,各种传感器、变送器、控制仪表已经普遍采用单片机应用系统。它测量、处理、控制功能于 一体,具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音等

6、功能。单片机构成的智能仪表,能使仪表具有数字化、智能化、多功能化、综合化等优点。(3) 测控技术用于单片机结构的各种工业控制系统中的数据采集系统具有工作稳定可靠、抗干扰能力强的优点。(4) 智能接口在计算机系统,特别是较大型的工业测控系统中,除通用外部设备外,还由许多外部通信、采集、多路分配管理、驱动控制等接口。这些外部设备与接口如果完全由主机进行管理,势必会造成主机负担过重,运行速度降低,接 口的管理水平也不可能提高。如果用单片机进行接口的控制与管理,单片机与主机可并行加工处理,可以大量降 低接口的通信密度,极大的提高了接口控制广利水平。在一些通用计算机外部设备上,以实现了单片机的键盘管理、

7、打印机控制、硬盘驱动控制等。2 系统设计2.1 总体设计方案(1)利用AT89C51单片机的I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。(2)LCD液晶显示歌曲的序号、播放时间,开机时显示英文欢迎字符。(3)用键盘控制10首歌曲的播放,并设置开机键、暂停键、上一曲、下一曲控制键。2.2 系统硬件设计硬件功能模块划分:单片机最小系统模块、按键模块、蜂鸣器电路模块、LCD液晶显示屏模块。系统结构框图如图2.1所示图2.1 数字音乐盒系统结构框图(1)单片机最小系统模块最小系统模块包括单片机、复位电路、晶振电路以及电源电路。如图2.2所示图2.2 单片机最小系统(2)按键模

8、块选用4X4矩阵键盘,如图2.3所示,14端口扫描行,58端口扫描列图2.3 按键模块4x4键盘构成与键盘对应功能如图2.4所示图2.4 键盘对应功能图(3)蜂鸣器电路模块蜂鸣器电路模块由单片机接口外接两个1K电阻、一个100欧电阻和一个NPN型三极管来驱动扬声器。其主要任务是输出大信号和大功率,对音频信号有效不失真的进行放大以推动扬声器发出声音。如图2.5所示2.5 蜂鸣器电路(4)LCD液晶显示屏模块LCD液晶显示屏如图2.6所示,D0D7为传送数据信息引脚,E为使能信号引脚,而当RS为1,R/W为0时,设定为将数据信息写入LCD的数据暂存区图2.6 LCD液晶显示屏模块2.3 主要元器件

9、介绍2.3.1 AT89C51单片机本系统采用的是51系列的AT89C51单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, 为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.7为AT89C51单片机的管脚图。图2.7

10、 AT89C51单片机管脚图VCC:正电源端GND:单片机的接地端XTAL1/XTAL2:片振荡电路输入/输出端,两端跨接晶体或瓷谐振器,与单片机部反相器构成稳定的自激振荡器。发出的脉冲直接送入片定的控制部件RESET:复位端EA/VPP:寻址外部ROM控制端/编程电源输入端。ALE/PROG:地址锁存允许/编程脉冲输入端。PSEN:寻址外部程序存储器,选通外部EPROM的端口(OE)。P0.0P0.7 P1.0P1.7 P2.0P2.7:准双向I/O口。P3.0P3.7:具有特定的第二功能(准双向I/O口)。2.3.2 LM016L液晶显示器LM016L液晶模块采用HD44780控制器,HD

11、44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,

12、 CGROM由8位字符码生成5*7点阵字符160种和5*10点阵字符32种。图2.8为LM016L液晶显示屏的引脚图图2.8 LM016L 液晶显示屏引脚图VSS:一般接地VCC:接电源(+5V)V0:液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。RS:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。R/W:R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E:E(或EN)端为使能(enable)端,下降沿使能。DB0DB7:底4位三态、 双向数据总线 0

13、6位RS、R/W寄存器选择控制如表2.1所示:表2.1 RS、R/W寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据2.4 proteus软件介绍 Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上

14、讲,是弥补了实验和工程应用间脱节的矛盾和现象。运行proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿

15、真程序和电路的运行情况。Proteus软件所提供的元件资源Proteus软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等。3 软件设计及仿真3.1程序流程先从主程序开始,接着初始化变量及 LCD 接口,使 LCD进入了开机状态,等待选择按键,包括播放键,暂停键,停止键。键盘采用动态扫描方式,每次扫描一行键盘,送此行低电平,读输入口的状态值,判断有没有键按下。如有键按下,则根据读入口的值选择显示值并送至显示值寄存单元,判断键值;启动计数器T0,根据次值为偏移地址找到要选择的音乐的代码的首地址,根据代码产生一定的频率脉冲,驱动蜂鸣器,放出声音;同时启动定时器T1,计算音乐

16、的播放时间,并且启动LCD,在LCD上显示序号和播放时间。程序流程图如图3.1所示图3.1 主程序流程图和LCD显示流程图3.2 系统初始化程序设计RS BIT P2.0 ;引脚定义,定义液晶显示端口标号RW BIT P2.1E BIT P2.2L50MS EQU 60H ;工作存定义L1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63HORG 0000HLJMP MAINORG 000BH ;定时器T0溢出中断入口地址LJMP TT0ORG 001BH ; 定时器T1溢出中断入口地址LJMP T1INTORG 1000HMAIN

17、: ;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL DISPLAY MOV P0,#38H ;8位,2行显示 LCALL DISPLAY MOV P0,#0FH ;屏显on,光标on,闪烁on LCALL DISPLAY MOV P0,#06H ;计数地址加1,显示幕on LCALL DISPLAYLCALL INITIL ;存初始化INITIL: MOV R3,#08H MOV R0,#30H3.3 音调的确定 不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1

18、、2、3、4、5、6、7,相当于汉字“都喏米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。两个音之间的距离有两个“半音”,就叫“全音”。在钢琴等键盘乐器上,CD、DE、FG、GA、AB两音之间隔着一个黑键,他们之间的距离就是全音;EF、BC两音之间没有黑键相隔,它们之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上号或者b号的叫变化音。叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。高音DO的频率(1046Hz)刚好

19、是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。 要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。 利用AT89S52的部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法

20、。此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。C调各音符频率与计数值T的值如表3.1所示:表3.1 C调音符频率与计数值T低音频率T参数中音频率T参数高音频率T参数Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa349143317

21、2Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si197630303.4项目仿真 使用keil软件进行编译,生成hex文件。 导入protus软件进行仿真。结果如下图3.2 (a)按下开机键 (b)按下第三首图3.2 仿真结果按下一曲、上一

22、曲、暂停等功能键,均能实现。总结 此次设计的整个过程中,出现了各种小问题,例如因为代码错误某一首歌无法播放,我通过查找资料重新修改了音乐代码,解决了这个问题。虽然设计结果不是很完美,但是,在这整个设计期间,使我学到了很多在这之前没有学到的知识、技能。使我把大学期间所学到的知识进行了一个总结和复习,也使我对所学的知识有了进一步的思考。也让我从另一个方面认识了我所学专业的重要性。脚踏实地,认真严谨,实事的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。 参考文献: 1王为青,邱文勋.51

23、单片机应用开发案例精选人民邮政,2007.2单片机基础广第 朱月秀 王秀山编 航空航天大学,2001.3 居义. 单片机课程设计指导. 清华大学, 2009. 44-61页.4 骏莲. 倪云峰.单片机原理与应用基础.清华大学.2009附录一仿真电路图如下:附录图1 仿真电路图附录二以下是以下是十首歌音乐播放器的单片机控制源程序:RS BIT P2.0 ;引脚定义,定义液晶显示端口标号RW BIT P2.1E BIT P2.2L50MS EQU 60H ;工作存定义L1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H org 00

24、00hljmp mainORG 000BH ;定时器T0溢出中断入口地址LJMP TT0ORG 001BH ;定时器T1溢出中断入口地址LJMP T1INTorg 1000hmain: ;液晶初始化MOV SP,#70H MOV P0,#01H ;清屏CALL DISPLAYMOV P0,#38H ;8位,2行显示lCALL DISPLAYMOV P0FH ;屏显on,光标on,闪烁onlCALL DISPLAYMOV P0,#06H ;计数地址加1,显示幕onlCALL DISPLAYlcall initil ;存初始化 WAIT:lcall key ; 键盘扫描是否有键按下lcall mo

25、dd ljmp WAIT ;若无则等待key:nopnoplcall ksjnz k1 ;有按键转到K1lcall kaijilcall SOPxn:ljmp keyk1:lcall moddlcall moddlcall ksjnz k2ljmp keyk2:mov R2,#0feh ;读键盘mov R4#00hk3:mov A,R2mov P1,Amov A,P1JB ACC.4,L1 ;为1跳转,第一行无按键mov a,#00hljmp lkL1:jb acc.5,L2mov a,#04hljmp lkL2:jb acc.6,L3mov a,#08hljmp lkL3:jb acc.7,

26、next1mov a,#0chlk:add a,R4push acck4:lcall delay1 ;若同时有其他按键,则等待lcall ksjnz k4mov r3,#07h clr amov r0,#30hmov r1,#31hmm1:mov a,r1mov r0,ainc r0inc r1djnz r3,mm1pop accmov r0,a RETnext1:inc R4 ;-列扫描mov a,R2JNB acc.3,n2ljmp n1n2:ljmp keyn1:rl amov R2,aljmp k3ks:mov a,#0f0h ;判断P1口mov P1,anopnopmov a,P1c

27、pl aanl a,#0f0hRETDELAY1:SETB RS0dl:mov R5,#0ahdl2:mov R6,#63dl3:nop nopdjnz R6,dl3djnz R5,dl2 CLR RS0 RETinitil: ;30H-37H初值为0mov r3,#08hmov r0,#30hm1:mov r0,#00hinc r0djnz r3,m1 RETmodd: ;显示MOV P0,#8EHlCALL DISPLAY mov A,37H mov DPTR,#TABLE3 MOVC A,A+DPTRlCALL WRITE2 RETkaiji: ;开机提示字mov a,37hcjne a

28、,#0fh,DFFMOV P0,#80H ;设光标地址 lCALL DISPLAYMOV DPTR,#TABLE1 ;写数据lCALL WRITE1 DFF:RET;按键值播放歌曲SOP:mov a,37hcjne a,#01h,A11LCALL MODDMOV 52H,#HIGH TABLE10MOV 53H,#LOW TABLE10LCALL INITILE2lcall MAIN0A11:CJNE A,#02H,A22LCALL MODDMOV 52H,#HIGH TABLE20MOV 53H,#LOW TABLE20 LCALL INITILE2 lcall MAIN0A22:CJNE

29、A,#03H,A33LCALL MODDMOV 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30 LCALL INITILE2 lcall MAIN0 A33:CJNE A,#04H,A44LCALL MODDMOV 52H,#HIGH TABLE40MOV 53H,#LOW TABLE40 LCALL INITILE2 lcall MAIN0A44:CJNE A,#05H,A55LCALL MODDMOV 52H,#HIGH TABLE50MOV 53H,#LOW TABLE50 LCALL INITILE2 lcall MAIN0A55:CJNE A,#06H,A66LCALL MODDMOV 52H,#HIGH TABLE60MOV 53H,#LOW TABLE60 LCALL INITILE2 lcall MAIN0 A66:CJNE

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1