单片机数字音乐闹钟设计_第1页
单片机数字音乐闹钟设计_第2页
单片机数字音乐闹钟设计_第3页
单片机数字音乐闹钟设计_第4页
单片机数字音乐闹钟设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。本设计是以AT89C51芯片为核心,辅以必要的外围电路,设计了一个结构简单的数字音乐闹钟,它由5V直流电源供电。在硬件方面,除了CPU外,使用六个七段LED数码管来进行显示,LED采用的是动态扫描显示,通过LED能够较为准确地显示时、分、秒。四个简单的按键实现对时间的调整。软件方面采用汇编语言编程。整个电子钟系统能完成时间的显示、调时和定时闹钟的功能。选用单片机最小系统应用程序,添加比较程序、时间调整程序及音乐程序。通过时间比较程序触发蜂鸣,实现闹钟功能,完成设计所需求的软件环境。测试程序的可行性并用Proteus进行仿真。关键字:单片机LED闹钟目录摘要第一章概述.1第二章系统总体方案及硬件设计.22.1总体设计.22.3系统时钟电路设计.22.3系统复位电路的设计.22.4闹钟指示电路设计.22.5电子闹钟的显示电路设计.3第三章软件设计.43.1概述.43.2主模块的设计.43.3基本显示模块设计.53.4时间设定模块设计.53.5闹铃功能的实现.6第四章PROTEUS软件仿真.8总结.9致谢.10参考文献.11附录:源程序代码.12第0页共24页第1章概述本设计数字音乐闹钟的设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机数字音乐闹钟。定时闹钟设计可采用数字电路实现,也可以采用单片机来完成。定时闹钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。单片机具有集成度高、功能强、通用性好、特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。所以在该设计中采用单片机AT89C51来完成定时闹钟的设计。它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外,AT89C51的指令系统和引脚与8051完全兼容,片内有128B的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。AT89C51单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若闹铃时间到则播放音乐。按K4键退出音乐播放并返回时间显示界面。否则音乐一直播放。设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。采用四个开关来控制定时闹钟的工作状态,分别为:K1、设置显示时间和闹钟的小时;K2、设置显示时间的小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。设计准备中根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用Proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。第1页共24页第2章系统总体方案及硬件设计2.1总体设计电子闹钟应包括秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分。按键功能说明:K1、设置显示时间和闹钟的小时;K2、设置显示时间的小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。电子闹钟的系统框图如下所示:图1电子闹钟的主电路指的是图中虚线框内部分,主要涉及到CPU电路和按键按钮电路。主机的设计具体地说有:1)系统时钟电路设计;2)系统复位电路设计;3)按键与按钮电路设计;4)闹铃声指示电路设计。2.2系统时钟电路设计对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。但由于原理图中的C1、C2电容起着系统时钟频率微调和稳定的作用,因此,在本闹钟系统的实际应用中一定要注意正确选择参数(3010PF),并保证对称性(尽可能匹配),选用正牌厂家生产的瓷片或云母电容,如果可能的话,温度系数要尽可能低。实验表明,这2个电容元件对闹钟的走时误差有较大关系。2.3系统复位电路的设计智能系统一般应有手动或上电复位电路。复位电路的实现通常有两种方式:)RC复位电路;)专用监控电路。前者实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。本次毕业设计采用了上电按钮电平复位电路。2.4闹钟指示电路设计闹铃指示可以有声或光两种形式。本系统采用声音指示。关键元件是蜂鸣器。蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,元件内部已封装了音频振荡电路,在得电状态下即起振发声。市场上的有源蜂鸣器分为3、5、6等系列,以适应不同的应用需要。闹钟电路是用比较器来比较计时系AT89C51复位、时钟等电路按钮电路6位数码管显示电路闹铃声指示电路电源系统第2页共24页统和定时系统的输出状态,如果计时系统和定时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放大电路驱动扬声器发声,从而实现定时闹响的功能。2.5电子闹钟的显示电路设计本次课程设计采用了6位数码管显示电路。在6位LED显示时,为了简化电路,降低成本,采用动态显示的方式,6个LED显示器共用一个8位的I/O,6位LED数码管的位选线分别由相应的P2.0P2.5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。译码显示电路将“时”、“分”、“秒”计数器的输出状态靠七段显示译码器译码,通过6位LED七段显示器显示出来。到达定时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现闹铃。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。第3页共24页第3章软件设计3.1概述软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处理等方面。基于软件的秒脉冲信号通常有延时法和定时中断法。延时法一般采用查询方式,在延时子程序前后必然需要查询和处理的程序,导致误差的产生,因此其秒脉冲的精度不高;中断法的原理是,利用单片机内部的定时器溢出中断来实现。例如,设定某定时器每100ms中断1次,则10次的周期为1s。本系统中所使用的晶振频率为12MHZ。3.2主模块的设计主模块是系统软件的主框架。结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。它的合理与否关系到程序最终的功能的多少和性能的好坏。本系统的主模块的程序框图如下图2所示:图23.3基本显示模块设计基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的系统初始化定时初始化中断初始化串口初始化显示待机指示符设定闹铃时间判设置闹铃时间否?显示刷新启动走时有关变量初始化刷新显示判时或分变化否?秒指示判秒到否?闹铃判是否到闹铃时间?延时YYYY第4页共24页灵活性好。3.4时间设定模块设计时间设定模块的设计要点是按键的去抖处理与“一键多态”的处理。即只涉及4个键完成了6位时间参数的设定。软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否还保持着,如是则作为按键处理,否则,视为抖动,不予理睬。去抖中的延时时间一般参考资料多描述为10ms左右,实际应用中,应大于20ms,否则,会导致按一次作多次处理,影响程序正常执行。“一键多态”即多功能键的实现思想是,根据按键时刻的系统状态,决定按键采取何种动作,即何种功能。其流程图如下图3所示:图43.5闹铃功能的实现闹铃功能的实现涉及到两个方面:闹铃时间设定和是否闹铃判别与相应处理。闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。当时十位、时个位、分十位、分个位中任一位发生改变(进位)时,就必须进行闹铃判别。译码显示电路将“时”、“分”、“秒”计数器的输出送到七段显示译码驱动器译码驱动,通过六个七段LED显示器显示出来。闹铃电路根据计时系统的输出状态产生一脉冲信号,然后加上一个高频或低频信号送到放大电路驱动蜂鸣器发声实现报时。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。设置键吗?设置模块初始化将在编参数送显示缓冲区闪烁标志为真?将当前位的显示代码置暗代码调基本显示模块刷新显示设置键吗?当前编辑位下移(下一位)当前编辑的是分各位?结束设定键吗?根据当前位的性质分别进行处理(含上下限判断)第5页共24页其流程图如下所示:图5.1图5.2考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁,在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时。在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位,再与位选相互结合的方法来控制调时或定时中的闪烁。时,分,秒显示则是用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数,闹钟响。时十位、个位,分十位、个位改变了设置闹铃标志是否设置了闹铃清除闹铃标志判当前时间是设定时间中断返回中断返回闹铃判别处理第6页共24页第四章Proteus软件仿真本次课程设计所采用的程序调试软件为VM集成调试软件,所采用的仿真软件Proteus6Professional软件。本次试验的效果图如下所示:性能及误差分析该电子钟有四个按键:K1,K2、K3和K4键。K1、设置显示时间和闹钟的小时;K2、设置显示时间的小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。经测试该电子钟在软件的编程过程中所产生的误差比较小。另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累计误差很小,可以忽略。仿真部分采用Proteus6Professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。第7页共24页总结通过本次毕业设计较系统地掌握有关单片机控制的设计思想和设计方法,主要对AT89C51的结构、功能、内部资源等了解并对其进行测试和加以应用的知识得到学习。由于是在我们短学期实习之后才来始写的,我们实习做的是电子钟,所以对时钟有了一定的掌握。我在原来的功能上增加了音乐闹钟的功能。在本设计中尽量做到了硬件电路简单稳定,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。由于时间有限和本身知识水平的发挥,我们认为本系统还有需要改进和提高的地方,例如选用更高精度的元器件,硬件电路更加精确稳定,软件测量算法进一步的改进与完善等。第8页共24页致谢虽然这次毕业设计的时间不是很长,但毕业设计却是自己独立思考完成的,首先我对任务按时间进行了分工,每天按时完成任务,再然,课后的创新思考,也成了我近期的参考事项,最后,经过不断的实习演练,才能确保顺利完成优质的毕业设计。因为是自己的单独设计,刚开始时,心里总有些紧张与茫然,不知如何入手,但我们的指导老师具有高度的责任感与敬业精神,在他们的指导下,我才能顺利的完成这项工作,他们在指导我的同时也让我深深的感受到了生活中的激情与处事方式,我深深的感谢他们对我的栽培。通过这次毕业设计,使我对所学的理论知识有了实践的演练,操作能力得到了很大的提高。我认为理论知识毕竟是书本上的,是抽象的,而我们的生活是需要实际操作的,只有通过实际的操作演练与理论相结合,才能使我们真正的学到更多我们想象不到的知识,而在这三年的学习生活中我们就是缺少了理论和实践的紧密结合,而本次毕业设计则恰恰像一场及时雨,让我们通过亲身模拟学会如何把理论知识应用于实践。给了我充分的锻炼机会。获益非浅!感谢学校和老师对我们的栽培!第9页共24页参考文献1、潘永雄.新编单片机原理与应用.西安电子科技大学出版社,2002年2、张友德,赵志英,涂时亮.单片机微型机原理应用与实验.复旦大学出版社,2000年3、周航慈、朱兆优、李跃忠.智能仪器原理与设计.北京航空航天大学出版社,2005年4、江秀汉.可编程序控制器原理及应用(第二版).西安电子科技大学出版社,2003年5、沈庆阳、郭庭吉.单片机实践与应用.清华大学出版社,2002年6、窦振中.单片机外围器件实用手册存储器分册.北京航空航天大学出版社,1998年7、关德新,冯文全.单片机外围器件实用手册电源器件分册.北京航空航天大学出版社,1998年8、何立民.单片机应用技术选编,北京航空航天大学出版社,1993年9、李建忠.单片机原理及运用.西安电子科技大学出版社,2001年10、吴金戎、沈庆阳.8051单片机实践与应用.清华大学出版社,2001年11、赵晓安.MCS-51单片机原理及应用.天津大学出版社,2001年12、冯建华、赵亮.单片机应用系统设计与产品开发.人民邮电出版社,2004年13、何立民.MCS51系列单片机应用系统设计.北京航空航天大学出版社,1999年14、李荣正、陈学军.PIC单片机实验教程.北京航空航天大学出版社,2006年15、张义和、陈敌北.例说8051.人民邮电出版社,2006年第10页共24页附录源程序代码K1EQUP1.0;在程序开始前定义变量K2EQUP1.1K3EQUP1.2K4EQUP1.3ORG0000HLJMPMAINORG000BHLJMPTIMEORG001BHLJMPTIME1ORG0100HMAIN:MOVSP,#50HMOV20H,#00H;时间BINSECONDMOV21H,#00H;BINMINUTEMOV22H,#00H;BINHOURMOV23H,#01H;闹铃BINMINUTEMOV24H,#01H;BINHOURMOV25H,#00H;定义一个标志位MOV30H,#00H;时间BCDSECONDMOV31H,#00H;MOV32H,#00H;BCDMINUTEMOV33H,#00H;MOV34H,#00H;BCDHOURMOV35H,#00H;MOV36H,#01H;闹铃BCDMINUTEMOV37H,#00H;MOV38H,#01H;BCDHOURMOV39H,#00H;MOVTMOD,#11H;16位计数器T0,方式1MOVTH0,#03CH;赋初值MOVTL0,#0B0HMOVIE,#10000111B;开中断T0,EA=1SETBET1SETBET0SETBTR0;T0启动计数MOVR2,#14H;计数器MOVP2,#0FFH第11页共24页LOOP:LCALLTIMEPRO;调用现在时间与闹铃时间比较程序LCALLDISPLAY1;调用现在时间显示子程序JBK1,M1;判断按键是否按下LCALLXIAOZHEN1;调用消抖程序MOVC,25H.0JCA1A1:CLR25H.0LCALLSETTIME;调用设置现在时间子程序LJMPLOOPM1:JBK2,M2LCALLXIAOZHEN2MOVC,25H.0JCA2A2:CLR25H.0LCALLSETATIME;调用设置闹钟的程序LJMPLOOPM2:JBK4,M3A3:LCALLXIAOZHEN3MOVC,25H.0JCA4A4:CLR25H.0M3:LJMPLOOPSETTIME:L0LCALLDISPLAY1JBK2,L1LCALLXIAOZHEN4MOVC,25H.0JCA5A5:CLR25H.0INC22HMOVA,22HCJNEA,#18H,GO12MOV22H,#00HMOV34H,#00HMOV35H,#00HLJMPL0L1:JBK3,L2LCALLXIAOZHEN5第12页共24页MOVC,25H.0JCA6A6:CLR25H.0INC21HMOVA,21HCJNEA,#3CH,GO11MOV21H,#00HMOV32H,#00HMOV33H,#00HLJMPL0GO11:MOVB,#0AHDIVABMOV32H,BMOV33H,ALJMPL0GO12:MOVB,#0AHDIVABMOV34H,BMOV35H,ALJMPL0L2:JBK4,L0LCALLXIAOZHEN3MOVC,25H.0JCAXAX:CLR25H.0RETSETATIME:LCALLDISPLAY2;调用闹钟设置,闹铃响时的显示程序N0:LCALLDISPLAY2JBK3,N1LCALLXIAOZHEN6MOVC,25H.0JCA7A7:CLR25H.0INC24HMOVA,24HCJNEA,#24,GO22MOV24H,#00HMOV38H,#00H第13页共24页MOV39H,#00HLJMPN0N1:JBK1,N2LCALLXIAOZHEN7MOVC,25H.0JCA8A8:CLR25H.0INC23HMOVA,23HCJNEA,#60,GO21MOV23H,#00HMOV36H,#00HMOV37H,#00HLJMPN0GO21:MOVB,#0AHDIVABMOV36H,BMOV37H,ALJMPN0GO22:MOVB,#0AHDIVABMOV38H,BMOV39H,ALJMPN0N2:JBK4,N0LCALLXIAOZHEN3MOVC,25H.0JCA9A9:CLR25H.0RETTIMEPRO:MOVA,21HMOVB,23HCJNEA,B,BKMOVA,22HMOVB,24HCJNEA,B,BKSETB25H.0MOVC,25H.0第14页共24页JCXXXX:LJMPSTARTBK:RETSTART:JNBK4,S2MAIN1:MOV40H,#00H;设简谱码指针初始值NEXT:MOVA,40H;简谱码指针暂存累加器AMOVDPTR,#TABLE;设简谱码MOVCA,A+DPTRCJNEA,#00H,PLAY;取到的简谱码不是结束码,传PLAY取节拍码LJMPSTOP;是结束码,退出PLAY:MOVR1,A;R1暂存简谱码ANLA,#0FH;取节拍码MOVR2,AMOVA,R1ANLA,#0F0H;取音符码CJNEA,#00H,MUSIC;音符码不为0,调发音子程序CLRTR1;音符码为0,不发音LJMPDELMUSIC:SWAPADECAMOV52H,AADDA,52HMOVR3,AMOVDPTR,#TABLE1;取相应计数值MOVCA,A+DPTRMOVTH1,A;暂存高位字节MOV51H,AMOVA,R3INCAMOVCA,A+DPTR;取相应计数值的低位字节MOVTL1,A;暂存低位字节MOV50H,ASETBTR1;启动定时器DEL:LCALLDELAYINC40H;指向下一个简谱码LJMPNEXTSTOP:CLRTR1;停止计时器LJMPMAIN1第15页共24页TIME1:PUSHACC;现场保护PUSHPSWCPLP3.7;P3.7反相输出,演奏音乐MOVTL1,50H;重设计数值MOVTH1,51HPOPPSWPOPACCRETIDELAY:MOVR7,#02H;4/4曲调,演示125ms子程序DELA1:MOVR6,#125DELA2:MOVR5,#248DJNZR5,$DJNZR6,DELA2DJNZR7,DELA1DJNZR2,DELAYRETS2:LJMPLOOPTABLE1:DW64524,64580,64684,64777;简码值DW64820,64898,64968,65030,65058DW64400,64260TABLE:DB42H,62H,72H,41H,61H,41H,31H,22H,0B2H;歌曲三个和尚DB62H,61H,61H,71H,61H,41H,64HDB0B2H,0B2H,62H,61H,61H,71H,61H,41H,64HDB0B2H,0B2H,62H,61H,61H,71H,61H,41H,64HDB42H,62H,72H,41H,61H,41H,31H,22H,0B2HDB22H,31H,41H,31H,21H,0A2H,0B4HDB22H,31H,41H,31H,21H,0A2H,0B4HDB22H,31H,41H,31H,21H,0A2H,0B4HDB0A2H,21H,32H,42H,62H,61H,41H,62H,71HDB42H,41H,61H,42H,32H,22H,31H,21H,0A2HDB42H,41H,61H,42H,32H,22H,31H,21H,0A2HDB42H,41H,61H,42H,32H,22H,31H,21H,0A2HDB62H,61H,42H,62H,71H,61H,72H,62H,71HDB62H,61H,71H,32H,42H,64HDB00HXIAOZHEN1:LCALLDISPLAY1JBK1,XIAOZHEN1MOVC,K1第16页共24页JCXIAOZHEN1LCALLDELAY5MOVC,K1JCXIAOZHEN1STOP1:MOVC,K1JNCSTOP1LCALLDELAY5MOVC,K1JNCSTOP1SETB25H.0RETXIAOZHEN2:LCALLDISPLAY2JBK2,XIAOZHEN2MOVC,K2JCXIAOZHEN2LCALLDELAY5MOVC,K2JCXIAOZHEN2STOP2:MOVC,K2JNCSTOP2LCALLDELAY5MOVC,K2JNCSTOP2SETB25H.0RETXIAOZHEN3:LCALLDISPLAY1JBK4,XIAOZHEN3MOVC,K4JCXIAOZHEN3LCALLDELAY5MOVC,K4JCXIAOZHEN3STOP3:MOVC,K4JNCSTOP3LCALLDELAY5MOVC,K4JNCSTOP3SETB25H.0第17页共24页RETXIAOZHEN4:LCALLDISPLAY1JBK2,XIAOZHEN4MOVC,K2JCXIAOZHEN4LCALLDELAY5MOVC,K2JCXIAOZHEN4STOP4:MOVC,K2JNCSTOP4LCALLDELAY5MOVC,K2JNCSTOP4SETB25H.0RETXIAOZHEN5:LCALLDISPLAY1JBK3,XIAOZHEN5MOVC,K3JCXIAOZHEN5LCALLDELAY5MOVC,K3JCXIAOZHEN5STOP5:MOVC,K3JNCSTOP5LCALLDELAY5MOVC,K3JNCSTOP5SETB25H.0RETXIAOZHEN6:LCALLDISPLAY2JBK3,XIAOZHEN6MOVC,K3JCXIAOZHEN6LCALLDELAY5MOVC,K3JCXIAOZHEN6STOP6:MOVC,K3JNCSTOP6第18页共24页LCALLDELAY5MOVC,K3JNCSTOP6SETB25H.0RETXIAOZHEN7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论