




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1摘要3引言4第1章 数字音乐盒51.1 智能音乐盒背景及意义51.2 国内外单片机应用音乐盒概况51.3 本文研究的主要内容6第2章 设计方案82.1 设计方案82.2 系统整体设计8第3章 硬件电路93.1 AT89C52单片机简介93.2 主要特性103.2.1 管脚说明113.2.2 振荡器特性133.2.3 芯片擦除133.3 文字型LCD(162)133.3.1 LM017L说明133.3.2 引脚功能143.4 电路设计143.4.1 单片机时钟电路设计143.4.2 内部振荡方式153.4.3 外部振荡方式163.5 单片机复位电路163.6 整体电路设计173.6.1 硬件电路图173.6.2 硬件原理说明183.6.3 按键电路183.6.4 文字型LCD电路193.6.5 蜂鸣器电路203.6.6 按钮说明20第4章 软件电路设计224.1 程序流程图224.2 音乐程序的设计原理234.2.1 建立音乐的步骤234.2.2 单片机音乐的产生原理24第5章 单片机的仿真285.1 编程Keil uVision3软件285.2 Professional 7软件的使用295.3 调试结果30第6章 总结32参考文献34致谢35附录1 数字音乐仿真图36附录2 数字音乐盒程序37第 34 页 摘要本设计是采用单片机为核心设计的数字音乐盒。它可以实现音乐的播放,可以通过功能键来选择乐曲,播放或暂停,并且可以通过LCD屏幕显示正在播放的歌曲的序号,及乐曲播放时间,开机时有英文欢迎提示字符,本音乐盒可以播放十首音乐。主控芯片采用AT89C52,采用汇编语言进行编程,编程后利用KEIL C51来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能得以正常实现。本系统功能键有一个44的键盘组成,其中1号到A号键是歌曲序列号键,可以直接选择音乐;C号键选择当前播放音乐的上一首音乐,D号键选择当前播放音乐的下一首音乐,E号键使音乐暂停播放,F号键显示开机画面。键盘采用动态扫描方式。每次扫描一行键盘,送此行低电平,读输入口的状态值,判断有没有键按下。若有键按下,根据读入口的值选择显示值并送至显示值寄存单元,判断键值,启动计数器T0,根据次值为偏移地址找到要选择的音乐的代码的首地址,根据代码产生一定频率的脉冲,驱动蜂鸣器,放出音。同时启动定时器T1,计算音乐的播放的时间,并且启动LCD,在LCD上显示序号和播放时间。在制作过程中,我发现将音乐代码的首地址送出很难实现。因为其首地址是十六位的,而单片机中我们能用的十六位的寄存器只有DPTR,但是DPTR在下面必须要用到,所以不能用。所以我就想把十六位地址拆成俩个八位的地址分高低位去送。但是用#high addr用伟福编译不通过,所以我就用直接地址#high(4000h)去送,这样就可以编译了。关键词: AT89C52;LM017L;SPEAKR;音乐盒引言乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着FPGA集成度的提高,价格下降,EDA设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的EDA软件工具来应付这些问题,并不是一件简单的事情。FPGA预装了很多已构造好的参数化库单元LPM器件。通过引入支持LPM的EDA1软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品。单片机制作的八音盒弥补了这些。第1章 数字音乐盒1.1 智能音乐盒背景及意义音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的的钟塔报时,而将大小的钟表上机械装置,被称为“可发出声音的组钟”。1598年,意大利籍耶稣会士利玛窦第一次来到北京,随行礼物中就有八音琴一台。这是有史书记载的最早进入中国的八音琴。经过各种的发明创造,1780年前后,拉匀芳的瑞士人从人偶自动钟的原理获得启示,发明了一种令人赞叹的机制机械鸟鸣钟。1796年,日内瓦钟匠的发明,给机械音乐盒带来了革命性的改变,使音乐盒的体积缩小达到极限,而在接下来的世纪得以成功的发展。1870年,德国的发明家首创了盘式音乐盒。17世纪初,音乐盒的工业成为瑞士超过制表和缝制蕾丝业的第一大产业,这使得位于瑞士侏罗山边的小镇闻名于世。1.2 国内外单片机应用音乐盒概况1992年,中国第一台具有自主知识产权的八音琴在中国宁波韵升的诞生,标志着中国,全方位地参与全球音乐盒这块巨 大蛋糕的市场竞争,经过十多年的努力,韵升 对八音琴的制造技术进行了更多的技术更新, 取得了多个国家和地区50余项发明专利。这使 得音乐盒无论在音质,音量,谱曲,和外观设计等方面都有了更大的改进。目前,韵升八音琴已占据全球八音琴市场份额的1/4,仅次于 日本Sankyo,位居全球第二位。音乐盒300多年的产品发展,同时也是人类文明300多年发 展的历史鉴证。每个不同时期的音乐盒造型,都能折射出当时不同的社会心态和文明发展现状,它也成了时代的一面镜子。现今,音乐盒的制造,延袭传统,结合现代,正日益成为人们或为了典藏一段岁月,或为了收藏一份情感,或出于对音乐的追求,或对于旧时代的怀念,或为了居室的美化,等等,而得到众多品位人士的追求。韵升八音琴店在北京东方新天地里设立了自己在北京的第一家店面,这也是惟一一家国内品牌的八音琴专卖店。在66平方米的店面中陈设了将近120多种八音琴,只要走进去就能感受到八音琴那清澈、透亮的音质所带来的美妙享受。 在这里,八音琴的价格并不是很贵,很适合作为礼品送给自己的朋友,其中,30音的八音琴价格在500元左右,50音的八音琴价格几乎上千。但其美观的造型博得了很多白领人士的青睐。 每个不同时期的音乐盒造型,都能折射出当时不同的社会心态和文明发展现状,它也成了时代的一面镜子。音乐盒悠扬的乐声,经常勾起人们对美好往事的会议,甚至魂牵梦萦,坠入时光岁月的追忆中。300多年来席卷全球市场的机械音乐盒的最大魅力也许就在于它能将抽象的音乐,凝固成具象的艺术品,成为人们表达美好情感,追思逝去年华的最佳选择。 日本文字和中国文字本身就有许多相通的地方,八音盒译成中文就是“音乐盒”,据说在中世纪的欧洲,17世纪的钟楼经过调音,可以播放音乐了。18世纪末设计的八音是以钟声、电铃为音源,演奏比较单调的音乐,后来经过各种各样的改良,出现了圆桶八音,手动八音、人形自动八音、自动钢琴等。 1.3 本文研究的主要内容八音盒可以经常发出宜人的音乐旋律,能给生活增加不少的乐趣。用51系列单片机设计一个音乐盒。功能如下:1利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。2用字符型LCD显示当前播放的歌曲序号。3开机时有英文欢迎提示字符。4可通过功能键选择乐曲,暂停,播放。5显示乐曲播放时间或剩余时间(至少30秒)。第2章 设计方案2.1 设计方案本次设计利用89C52单片机结合内部定时器及LCD显示器,设计一个简易的微电脑八音盒,按下单键可以演奏预先设置的歌曲旋律。使用了文字LCD(162)显示目前演奏的歌曲编号,由键盘(2*4)来选择演奏歌曲;具有8个按键操作来选择演奏哪一首歌曲;演奏时可以按键中断。内建3首歌曲旋律下单键便可以演奏歌曲;内置自动定时器,若没有按键,则自动演奏歌曲。利用单片机定时器来产生固定频率的方波信号推动压电喇叭,发出旋律。音阶频率及定时器初值加载的关系及设计原理及方法,及按键扫描。在歌曲旋律设计方面采直觉式输入法,由程序中直接输入方便快速设计歌曲。本音阶能演奏3个7度音阶,总共21个音阶。2.2 系统整体设计图2-1电路方框 如图2-1所示,本产品拟采用以AT89C52单片机为核心芯片的电路来实现,主要由AT89C522芯片、电源、文字型LCD(162)显示、24按键、蜂鸣器5部分AT89C5224按键文字型LCD(162)蜂鸣器电源组成。第3章 硬件电路3.1 AT89C52单片机简介AT89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,AT89C2052是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如下图3-1所示。图3-1 AT89C523.2 主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 3.2.1 管脚说明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口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C52的一些特殊功能口,如下表所示:口管脚 备选功能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:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2.2 振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2.3 芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.3 文字型LCD(162)3.3.1 LM017L说明字符型LCD是一种通常用5*7点阵图形来显示字符的液晶显示器。能显示的每个字符都有一个代码,代码对应字符的点阵图形数据由字符发生器产生,通过驱动电路后在LCD显示出字符。字符型LCD有11条操作指令。如图2-2所示。图2-2文字型LCD(162)3.3.2 引脚功能字符型LCD由14个引脚组成功能如表3-1所示。表3-1字符型LCD引脚功能表引脚号符号状态功能1Vs电源地2Vdd正5V逻辑电源3Vo液晶驱动电源4RS输入寄存器选择:1.数据;0.指令5R/W输入读、写操作选择6E输入使能信号7至14DB0DB7三态数据总线*15 E1输入MDLS40466上两行使能信号*16E2输入MDLS40466下两行使能信号3.4 电路设计3.4.1 单片机时钟电路设计单片机的每一条指令的执行都是由若干个基本的微动作组合而成的。例如由取指令、指令译码、指令执行等微动作组合而成。这些微动作在时间上存在着严格的先后顺序,要想这些动作有条不紊地执行,就必须有一个时间基准来同步各部件的动作。单片机的时钟信号就是用来提供单片机内部各个微动作的时间基准。而根据连接方式不同,时钟信号的产生有内部振荡方式和外部振荡方式两种方式。3.4.2 内部振荡方式 在单片机的XTAL1脚和XTAL2脚之间并接一个晶体振荡器就构成了内部振荡方式。AT89C52单片机内部有一个高增益的反相放大器,XTAL1为内部反相放大器的输入端,XTAL2为内部反相放大器的输出端,在其两端接上晶振后,就构成了自激振荡电路,并产生振荡脉冲,振荡电路输出的脉冲信号的频率就是晶振的固有频率。在实际应用中通常 还需要在晶振的两端和地之间各并上一个小电容。实际的内部振荡方式的电路如图2.7所示。在图中,电容器C1、C2常称为微调电容,其作用有三个:快速起振、稳定振荡频率、微调振荡频率。AT89C52单片机允许外接033MHz的晶振,电容器C1、C2可取5pF33pF。一般情况下,使用频率较低的晶振时,C1、C2的容量可选大一点。为了减少寄生电容,更好地保证振荡器稳定可靠地工作,在实际装配电路时,晶振X和电容C1、C2应尽可能地安装在XTAL1、XTAL2引脚附近。内部振荡方式所得到时钟信号比较稳定,在实际电路中,一般是选用内部振荡方式。所以,在本次设计中才用了该振荡方式。图2.7内部振荡方式电路3.4.3 外部振荡方式把外部已有的时钟信号接至XTAL1引脚,而将XTAL2悬空,这样就构成了外部振荡方式。外部振荡方式适合于使单片机的时序与外部信号保持同步的场合。在实际应用中,为了使进入单片机的时钟信号为TTL电平,常将外部时钟信号经过一个带有上拉电阻的TTL反相门后,再接至XTAL1引脚。实际的外部振荡方式电路如图3-8示:图3-8外部振荡方式电路实际应用中,常常需要检查单片机的振荡电路是否正常工作,此时可用示波器查看XTAL2引脚上是否有正常的脉冲输出。若有,则表明振荡电路工作基本正常,否则振荡电路失常。由于XTAL1引脚为内部反相放大器的输入端,该引脚上的信号远比XTAL2引脚上的信号弱,因此切不可观察XTAL1引脚,否则有可能出现本来已起振的电路反而停振。3.5 单片机复位电路复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如下图(A)中右图所示。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如上图(B)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。 根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。 上图(A)中:Cl10-30uF,R11kO 上图127(B)中:C:1uF,RllkO,R210kOPS:AVR是低电平复位,恰好相反。3.6 整体电路设计3.6.1 硬件电路图利用Proteus软件设计八音盒硬件电路原理图如图3-4所示。在Proteus软件中,单片机模型本身包含了工作电源和可改变的工作频率,因此在仿真时无需设计电源电路和时钟电路。由于是利用Proteus软件进行仿真设计可以不考虑晶振电路,但在实际中需要考虑晶振电路。本设计需要一个文字型LCD(162)显示播放的歌曲的序号,及乐曲播放时间,开机时有英文欢迎提示字符。3.6.2 硬件原理说明当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱 动蜂鸣器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。也可在LED显示歌曲号。图3-4硬件电路图3.6.3 按键电路按键电路如图3-5所示:P1.0-P1.7控制按键,其中P1.0-P1.1扫描行,P1.4-P1.7扫描列。图3-5按键电路3.6.4 文字型LCD电路如图3-6所示文字型LCD(162)的D0-D07端口与AT89C52端口P0.0-P0.7相连接VSS与VEE两端接地。P2.0-P2.2作为LCD的RS,R/W,E的控制信号。用P0.0-P0.7作为LCD的D0-D7的控制信号。图3-6文字型LCD电路3.6.5 蜂鸣器电路如图3-7所示用P3.0口控制蜂鸣器。图3-7蜂鸣器电路3.6.6 按钮说明按钮如图3-8所示:1-3:三首歌曲,A:下一首歌曲,B:下一首歌曲C:歌曲暂停,D:开机画面。 图3-8按钮电路第4章 软件电路设计4.1 程序流程图根据电路可以得出流程图如图4-1所示:主程序开始,液晶初始化、清屏、内存初始化等变量及LCD接口初始化,还有计数器T0、定时器T1初始化。完成初始化后,LCD显示WELCOME字符。等待按键,是否有按键按下?若有LCD显示播放时间及歌曲号,并转到按键对应的程序执行;若无按键按下,处以等待状态。当按键按下后相应的程序执行完,转到“等待是否有按键按下?”处。图4-1程序流程图4.2 音乐程序的设计原理4.2.1 建立音乐的步骤1. 先把乐谱的音符找出,然后建立T值表的顺序。2. 把T值表建立在TABLE1,构成发音符是计数值放在“TABLE”。3. 简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。4.2.2 单片机音乐的产生原理1.要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。2.利用8052的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。3.例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如下: N=Fi2Fr N:计数值; Fi:内部计时一次为1us,故其频率为12MHz; Fr:要产生的频率;4.其计数值的求法如下: T=65536-N=65536-Fi2Fr 例如:设K=65536,F=1000000=Fi=1MHz,求低音DO(261MHz)、中音DO(523MHz)、音DO(1046MHz)的计数值。 T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr 低音DO的T=65536-500000/262=63627 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1047=650595.C调各音符频率与计数值T的对照表如表41所示:表41 C调各音符频率与计数值T的对照表音符频率(Hz)简谱码(T值)音符频率(Hz)简谱码(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898 低2RE29463835#5SO#83164934 #2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178 高1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高196765283表4-2 节拍与节拍码对照节 拍 码节 拍 数节 拍 码节 拍 数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍表4-3各调1/4节拍的时间设定 各调1/4节拍的时间设定曲 调 值DELAY曲 调 值DELAY调1/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒1/4拍的延迟时间=187毫秒DELAY: MOV R7,#02D2: MOV R4,#187 别的延迟值,只需修改这儿的值为相应值,即可。D3: MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY 节拍值放在R5,决定节拍 RET相关知识:每一音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,节拍与节拍码的对照如表4-2所示。 节拍与节拍码的对照。如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间 。假使1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DEALY时间,其余的节拍就是它的倍数,如表4-3所示为1/4和1/8节拍的时间设定。简 谱 发 音 简 谱 码 T值表44 简谱对应的简谱码、T值、节拍数简 谱发 音简 谱 码T值5低音SO1642606低音LA2644007低音TI3645241中音DO4645802中音RE5646843中音MI3647774中音FA7648205中音SO8648986中音LA9649687中音TIA650301高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF65217不发音0第5章 单片机的仿真5.1 编程Keil uVision3软件Keil C51 软件是单片机应用开发的优秀软件,它集编辑、编译、仿真于一体,界面友好功能强大,支持51汇编、PLM和C语言及混合编程。Kiel C51 能模拟开发软件在计算机上实现对单片机硬件的仿真、指令仿真、运行状态仿真,不需要在线的仿真器和目标板。软件的模拟调试功能强大,能实现单步、跟踪、检查和修改功能,并且还能模拟产生各种中断和I/O应答过程。开发系统仿真软件可以使学习者和开发者脱离硬件进行全软件仿真。Kiel C51 为学习者提供2K目标码限制的学习版,并在支持软件模拟仿真的同时配合SST公司的公版软件,用一片SST单片机实现简单的硬件仿真功能。在设计中主要是将程序编写到软件(如图5-1所示)上进行修改、调试生成dzfz.hex可执行文件。图5-1编程Keil uVision3软件5.2 Professional 7软件的使用Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。通过该软件将硬件电路模拟出来(如图5-2所示),然后,通过Kiel软件生成的可执行文件10.HEX导入到Professional 7软件中进行运行。图5-2 Professional 7运行界面5.3 调试结果本次设计通过Keil uVision3软件的编写程序和Professional 7软件对电路仿真调试后达到的效果(如图5.3所示)在汉字LCD显示“WELCOM”。图5-3 开机页面按键1则播放第一首歌曲大海,在汉字LCD显示如图5-4所示图5-4第一首歌曲按键2则播放第一首歌曲月亮代表我的心,在汉字LCD显示如图5-5所示图5-5第二首歌曲按键3则播放第一首歌曲精忠报国,在汉字LCD显示如图5-6所示图5-6第三首歌曲第6章 总结经过近两个月的努力,终于顺利完成了毕业设计。刚开始,我们头绪不是很清楚,不知道从哪里入手,但通过老师的耐心指导并和同学认真研究设计课题,跑图书馆查资料、确定基本设计方案、对所用芯片功能进行查找、调试、上机仿真等,经历了一次次的困难,却积累了很多宝贵的经验。在整个设计的过程中遇到的问题主要有以下三点,第一:基础知识掌握的不牢固,主要表现在一些常用的电路的形式和功能不清楚,对书本上的内容理解不够透彻。第二:对一些常用的应用软件缺少应用,体现在画电路图和系统的仿真的时候,对这些软件的操作不熟练,浪费了很多时间。第三:相关知识掌握的不够全面,缺少系统设计的经验。这次设计进一步端了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求,不能够一知半解,要力求明明白白。我觉得动手之前,头脑里必须清楚该怎么做,这一点是很重要的。就目前来说,我的动手能力虽然差一点,但我想,通过我的不懈努力,在这方面,我总会得到提高。这一点,我坚信。因为别人能做到的,我也一定能做到。在此次的毕业设计中我最大的体会就是进一步认识到了理论联系实践的重要性。一份耕耘,一份收获。通过这段时间的设计,让我明白科学的思维方法和学习方法是多么重要,只有这样才能够有很高的效率,才能够让自己的工作更完美。总而言之,此次毕业设计让我学到了好多平时在课堂上学不到的东西,增加了我的知识运用能力,增强我的实际操作能力。谢谢老师给我们提供这么好的机会,为我们之后走向社会奠定了一个好的基础。本次毕业设计让我学到了很多,也学会到了要怎么样去面对困难,不要对知识一知半截,要有的求实的能力,通过老师的帮助我学到了很多在平时的没有注意到的动东西及知识,更美没有深入的的去理解,通过这次我要更加的明确自己。更要注重自己在各方面的锻炼能力,把握机会。这次的设计非常的感谢老师们。参考文献1 蔡朝洋. 单片机控制实习与专题制作M 北京航空航天大学出版社,20062 林志琦. 单片机原理接口及应用(C语言版) M. 北京:中国水利水电出版社,20073 /p-18610473.html4 /p-11076423.html致谢感谢我的指导老师,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!本论文还得到了我黄建新老师的亲切关怀和细心指导,在设计过程中,自始至终凝聚着各位师的心血。恩师们那治学严谨的态度,渊博的学识感染着我。他那诲人不倦、宽厚朴实的作风给我们留下了不可磨灭的影响,是我学习的榜样,使我终生受益无穷。在此论文完成之际,特向恩师表达诚挚的谢意同时以最崇高的敬意。另外,也非常感谢所有的关心我的其他老师们和同学们,他们的关心也是我学习过程中不可缺少的组成部分。感谢时时刻刻关心、爱护我的父亲母亲,他们对我的支持和鼓励。使我得以完成学业的支柱。真诚的感谢所有的帮助过我的老师们,同学们、家人和朋友们。感谢对本设计进行评审的专家们,感谢他们给我提出的宝贵意见和建议。附录1 数字音乐仿真图 四川信息职业技术学院毕业设计说明书(论文)附录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 0000h ;*ljmp mainORG 000BHLJMP TT0ORG 001BHLJMP T1INTorg 1000hmain: ;-;液晶初始化MOV SP,#70H ;设置堆栈指针MOV P0,#01H ;清屏CALL ENABLE ;调用延时程序MOV P0,#38H ;8位,2行显示lCALL ENABLEMOV P0,#0FH ;屏显on,光标on,闪烁onlCALL ENABLEMOV P0,#06H ;计数地址加1,显示幕onlCALL ENABLE;-内存初始化lcall initil ;-key1:lcall keylcall modd ljmp key1;-键盘扫描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,next1mov a,#0ch;-lk:add a,R4push acck4:lcall delay1 ;若同时有其他按键,则等待lcall ksjnz k4;-mov r3,#07h clr amov r0,#30hmov r1,#31hmm1:mov a,r1mov r0,ainc r0inc r1djnz r3,mm1pop accmov r0,a RET;-next1:inc R4 ;-列扫描mov a,R2JNB acc.3,n2ljmp n1n2:ljmp keyn1:rl amov R2,aljmp k3;-ks:mov a,#0f0h ;判断P1口mov P1,anopnopmov a,P1cpl aanl a,#0f0hRET;-DELAY1:SETB RS0dl:mov R5,#0ahdl2:mov R6,#63dl3:nop nopdjnz R6,dl3djnz R5,dl2 CLR RS0 RET;- ;30H-37H初值为零;-initil: mov r3,#08hmov r0,#30hm1:mov r0,#00hinc r0djnz r3,m1 RET;-;显示 ;-modd: MOV P0,#8EHlCALL ENABLE mov A,37Hmov DPTR,#TABLE3 MOVC A,A+DPTRlCALL WRITE2 RET;-;开机提示字;-kaiji:mov a,37hcjne a,#0fh,DFFMOV P0,#80H ;设光标地址 lCALL ENABLEMOV 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 A,#03H,AAALCALL MODDMOV 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30 LCALL INITILE2 lcall MAIN0 AAA:RET ;*INITILE2:MOV L50MS,#20M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药学服务实务模拟试题及答案
- 2025-2030中国景区造雪机发展现状调研与前景预测分析报告
- 药事管理学试题(卷)与答案解析
- 2025-2030中国抗震支架市场产销规模与发展创新分析报告
- 2025-2030中国托品酸市场营销态势剖析及供需前景研究报告
- 2025-2030中国户外鞋行业营销模式与投资建议分析报告
- 2025年资本投资服务行业研究报告及未来行业发展趋势预测
- 2025年保鲜膜行业研究报告及未来行业发展趋势预测
- 2025年摩托车配附件行业研究报告及未来行业发展趋势预测
- 预防接种考试题及答案
- 心内科护理进修报告
- 引流管管口渗液的护理
- 食堂工人培训课件
- 扣件式钢管脚手架培训课件
- 部编版三年级语文上册说课标说教材
- 医德医风课件培训宣传
- 【艾瑞咨询】2024年中国健康管理行业研究报告494mb
- 2025-2030年中国连续性肾脏替代治疗(CRRT)行业市场现状供需分析及投资评估规划分析研究报告
- 现场员工计件管理制度
- 健康养老课件模板
- 2025java中高级面试题及答案
评论
0/150
提交评论