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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数字音乐盒设计要点.docx

1、数字音乐盒设计要点数字音乐盒设计摘 要电子音乐已广泛的应用于社会生活的各个领域,其类型从音乐卡片到CD、MP3等多种多样。利用单片机控制的电子音乐发生器软硬件上具有独特的优点,系统的开发周期短,成本低,电路制作容易。更换歌曲时,硬件电路无需作任何修改,只需修改软件即可实现。本文设计了单片机控制的音乐发生器系统,主要有硬件电路设计和软件设计两部分。硬件方面选择内部存储资源丰富的AT89C51单片机,时钟采用12MHz晶体振荡电路,软件方面使用汇编语言,同时还可根据个人的习好通过软件改变节拍的延时时间,增加电子音乐的趣味性。关键字:AT89C51芯片,LED数码管,LED显示器,蜂鸣器。一、相关知

2、识介绍(一)单片机音乐盒介绍1.发音原理发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。音符的发音主要靠不同的音频脉冲。利用单片机内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出音乐。只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重

3、复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。 2.音符频率的产生音符及定时器初始值:例如:中音1(do)的音频=523HZ,周期T=1/523s=1912定时器/计数器0的定时时间为:T/2=1912/2=956定时器956的计数值=定时时间/机器周期=956/1=956(时钟频率=12MHZ) 装入T0计数器初值为65536-956=64580将64580装入T0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务时,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523HZ)的音符音频。将51单片机内部定时器工作在计数器模式1下,改变计数初值

4、TH0,TL0以产生不同的频率。下表1是C调各音符频率与计数初值T的对照表: 表1 C调各音符频率与计数初值T的对照表音符频率(Hz)/初值()音符频率(Hz)/初值()低1DO262/63627中1DO523/64580高1DO1042/65056低2RE294/63835中2RE589/64687高2RE1245/65134低3M330/64021中3M661/64780高3M1318/65157低4FA350/64107中4FA700/64822高4FA1397/65178低5SO393/64264中5SO786/64900高5SO1568/65217低6LA441/64402中6LA8

5、82/64969高6LA1760/65252低7SI495/64526中7SI990/65031音符、音符编码及定时器初始值:为了产生音符,必低须求出音符低音5高音5的计数初值。例如C调的1DO的THTL=65536-50000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1042=65056。为了方便写谱,对其进行简单的编码,在编程时,根据音符编码(表2)查找对应的计数初值。比如说音乐是C调的,那么出现低音的5SO,直接将代码写为1;出现低音6LA,直接写一个2的代码;出现低音7SI,直接写一个3代码。表

6、2 音符编码表音符音符编码音符音符编码不发音0低5SO1低6LA2低7SI3中1DO4中2RE5中3M6中4FA7中5SO8中6LA9中7SIA高1DOB高2REC高3MD高4FAE高5SOF高6LAG3.节拍频率的发生节拍的产生与编码:音乐中的节拍用延时时间产生。例如,1拍=0.4s,1/4拍=0.1s,以此类推。假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4拍的延时时间,其余节拍就是它的倍数。为了方便,将节拍数也进行了编码,并且计算了乐谱节拍编程时的延时时间,如表3和表4所示。 表3 节拍数编码表按1/4拍为一个延时时间的节拍编码与节拍对应的表按1/8拍为一

7、个延时时间的节拍编码与节拍对应的表节拍编码节拍节拍编码节拍节拍编码节拍节拍编码节拍11/466/411/866/822/488/422/888/833/4A10/433/8A10/844/4C12/444/8C12/855/4F15/455/8表4 乐谱节拍编程时的时间延时表乐谱节拍1/4拍的延时时间乐谱节拍1/8拍的延时时间4/4125 ms4/462 ms3/4187 ms3/494 ms2/4250 ms2/4125 ms音符编码和节拍编码完成后,在编程时,每个音符占一个字节,高四位是音符编码,低四位是节拍编码。(二)显示屏控制技术状况1.串行输入与并行输入LED显示屏的数据传输方式主要

8、有串行和并行两种。日前普遍采用串行控制技术,显示屏每个单元内部的不同驱动电路和各级联单元之间,每个时钟仅传送一位数据。采用这种方式的驱动IC种类较多,不同显示单元之间的联线较少,可减少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比,具体工程实现也较为容易。2.动态扫描与静态锁存技术LED显示屏控制系统实现显示信息的刷新技术有动态扫描和静态锁存两种方式。一般室内显示屏多采用动态扫描技术,即一行发光二极管共用一行驱动寄存器,根据共用一行驱动寄存器的发光二极管像素数目,分为1/4、1/16扫描等。室外显示屏基本上采用静态锁存技术,即每一个发光二极管都对应有一个驱动寄存器,无需时分工作,

9、从而保证了每一个发光二极管的亮度占空比为100%。动态扫描法可以大大减少控制器的I/O口,因此应用较广。3.自动检测及远程控制技术LED显示屏的构成复杂,特别是室外显示屏,环境亮度、环境温度条件等都直接影响显示屏的正常运行。在LED显示屏的控制系统中,因根据需要对温度、亮度、电源等进行自动检测控制,也可根据需要,远程实现对显示屏的亮度、色度调节、图像水平和垂直位置的调节以及工作方式的转换等。二、总体方案论证与设计本设计是基于单片机的数字音乐盒设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。要求利用I/O口产生一定频率的方波,驱动蜂鸣器,发出

10、不同的音调并采用LCD显示信息,从而演奏乐曲,开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称),可通过功能键选择乐曲,暂停,播放。本设计采用4*4键盘,16*2 LCD,七段显示数码管LED。下面对各模块的设计逐一进行论证比较。(一)单片机的选取首先选择单片机中最为普遍的MCS51系列。其中AT89C2051是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和F

11、lash存储单元,功能强大的AT89C2051单片机可应用于许多高性价比的应用场合。主要性能: 和MCS-51产品兼容 2KB可重编程FLASH存储器(1000次) 2.7-6V电压范围 全静态工作:0Hz-24KHz 2级程序存储器保密锁定 128*8位内部RAM 15条可编程I/O线 两个16位定时器/计数器 6个中断源 可编程串行通道 高精度电压比较器(P1.0,P1.1,P3.6) 直接驱动LED的输出端口由于完成核心功能音频输出只需一个I/O口,并且额外功能LED移位显示可根据所选单片机的剩余I/O口进行设计,因此AT89C2051足以满足基本要求。其20个引脚体积小巧,内部2k字节

12、的程序存储器容量适中,低压低频工作条件,并且价格低廉容易购得。(二)LED显示方式动态显示。对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。动态显示方式,可以避免静态显示的问题。但设计上如果处理不当易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定、无闪烁。动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间1ms时显示亮度较好,无闪烁感

13、。(三)LED驱动模式采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端(共阴或共2端),LED发光管的另一脚接通用I/O口,控制其亮灭。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。(四)系统总体结构框图系统结构框图如图1所示:图1系统结构框图三、系统硬件的设计本设计中用到了AT89C51单片机,4*4键盘,蜂鸣器,2 LCD等硬件电路常用元器件。(一)AT89C51 芯片功能和硬件连接AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-

14、51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.AT89C51的主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2.管脚说明 管脚说明如图2所示:图2管脚VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级

15、开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出

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

17、出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:管口管脚备选功能 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口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地

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

19、PP:/EA保持低电平时,在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任

20、何要求,但必须保证脉冲的高低电平要求的宽度。4.芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。(二)LED显示器LED(Light Emitting Diode)是发光二极

21、管英文名称的缩写。LED显示器是由发光二极管构成的,所以在显示器前面冠以“LED”。LED显示器在单片机系统中的应用非常普遍。1.LED显示器的结构常用的LED显示器为8段。每一个段对应1个发光二极管,这种显示器有共阳极和共阴极两种:共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这样就要为LED

22、提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称为段码。7段发光二极管,再加上1个小数点位,共计8位。因此提供给LED显示器的段码正好是1B。各段与字节中各位对应关系如下表5所示:表5 8段LED结构及外形代码位D7D6D5D4D3D2D1D0显示位dpgfEdcba2.LED显示器工作原理由N个LED显示块可以拼接成N位的LED显示器。如图是LED显示器的结构原理图3所示:图3 LED显示器结构原理图N个LED显示器有N个位选线和8*N位 根段码线。段码线控制显示字符的字型,而位选线为各个LED显示块中各段的公共端,它控制该LED显示位的亮或暗。LED显示器有静态

23、显示和动态显示两种。(三)键盘键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。1.键盘输入的特点键盘实质上是一级按键开关的集合。通常,键盘开关利用了机械触点的合、断作用。2.按键的确认键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。按键输入电路由4*4矩阵键盘组成, P1口作为输入控制按键,其中P1.0P1.3扫描行,P1.4P1.7扫描列。3.如何消除按键的抖动采用软件来消除按键抖动

24、的基本思想是:在一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10MS的子程序后,检测该行线为高电平,说明按键确实已经松开。(四)系统复位电路的设计智能系统一般应有手动或上电复位电路。复位电路的实现通常有两种方式:RC复位电路和专用监控电路。前者实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。本次课程设计采用了上电按钮电平复位电路,如图

25、4所示: 图4 复位电路(五)时钟电路模块时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的独石电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。时钟电路模块连接图如图5所示:图5 时钟电路模块连接图(六)输出显示电路用P2.0P2.2作为LCD的RS、R/W、E的控制信号;用P0.0P0.7作为LCD的D0D7的控制信号。由于P0口作为输出,应加上拉

26、电阻。(七)音频输出部分整个输出部分由一个100uF电容、两个S9013 NPN三极管和一个蜂鸣器/喇叭组成,音频输出原理图如图所示:100uF电容是用来滤波的,两个NPN三极管起到放大信号的作用,最后由蜂鸣器/喇叭表现出信号。用P3.7口控制蜂鸣器。输出显示电路如图6所示: 图6 音频输出原理图 (八)整体硬件电路整体硬件电路图如图7所示:图7 整体硬件电路原理图1.原理说明当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。(1)硬件电路中用P1.0P1.7控制按键,其中P1.0P

27、1.3扫描行,P1.4P1.7扫描列;(2)用P2.0P2.2作为LCD的RS、R/W、E的控制信号;(3)用P0.0P0.7作为LCD的D0D7的控制信号;(4)用P3.7口控制蜂鸣器;(5)电路为12MHz晶振频率工作,起振电路中C1,C2均为30pf。2.键盘按键键盘按键分布如下:0123ABCD按键功能说明:13三首歌曲A下一首歌曲B上一首歌曲C暂停D开机画面四、系统软件设计(一)主模块的设计主模块是系统软件的主框架。结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。它的合理与否关系到程序最终的功能的多少和性能的好坏。本系统的主模块的程序框图

28、如下图8所示:图8 主模块程序框图(二)外部中断源系统设计在本设计中中断源是采用外部中断0方式,其入口地址是0003H。其中断响应级别最高。1.定时器/计数器工作方式寄存器TMOD用于选择定时器/计数器的工作方式和工作模式。其格式如下表6:表6 定时器/计数器工作方式寄存器TMOD格式TMODD7D6D5D4D3D2D1D0GATEM1M0GATEM1M0T1方式字段T0方式字段下面表7是对TMOD各位进行说明:表7对TMOD各位功能M1M0工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位的常数自动重新装载的定时器/计数器11方式3,仅适用于T02.

29、门控位GATE工作方式选择位M1、M0。其中,在本设计中采用方式1的16位定时器/计数器。计数器模式和定时器模式选择位。=0,为定时器模式。=1,为计数模式。定时器/计数器控制寄存器TCON,其格式如下表8所示:表8 定时器/计数器控制寄存器TCON格式TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0ITO其各位的功能如下:TF1、TF0计数溢出标志位当计数器溢出时,该位置1。TR1、TR0计数运行控制位。(三)基本显示模块设计基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。程序流程如图9所示。图9 程序流程图(四)系统初始化程序RS BIT P2.0 RW BIT P2.1E BIT P2.2L50MS EQU 6

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

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