单片机音乐倒数定时器的设计_第1页
单片机音乐倒数定时器的设计_第2页
单片机音乐倒数定时器的设计_第3页
单片机音乐倒数定时器的设计_第4页
单片机音乐倒数定时器的设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、15/17基于单片机音乐倒数定时器的设计报告【摘要】计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置,与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。本设计采用A951单片机对定时器的设计来实现一个简单的多功能的音乐倒计时报警器,通过三个按键可设定任意时间的倒计时报警器来满足用户的简单要求,如烧开水,煮面等简单问题。【关键词】定时计数器;音乐代码;602液晶显示目录TO 14” zu HYPERNl To119491 引言1 HYPERLI l_oc3198499一、设计要求2 HYRLINK l Toc319993

2、二、设计目的2 HPERLINK ”Tc31984994” 三、设计的具体实现HYERLINK ”To94995” 1。系统概述2 HYPELINKl _Tc3119846”。1 总体方案论证2 HYPERLNK l _To311897。2 单片机选择方案3HYELINK l _Toc19848 .单元电路设计4 HYPRLINK l_Tc11899 2。1控制电路GEEoc31499 6 HYPERLIKl ”_Toc18” 2.2控制程序 HYERNK ”_Toc8006 3软件程设计和调试HYPERLINK _Tc119850” 3。1延时时间的计算7 PERLIK l”_oc31190

3、08 3.2工作方式设计8 HPRLINK l _To3119009”33有定时器产生各种频率的声音8YPLIl Toc319800 .4程序说明 YRLNK l Toc31985011 四、结论和展望1 HYPELIN ”_To3119012”五、心得和体会14 HPELINK l”Tc198503 六、参考文献1引言随着电子技术的飞速发展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。由集成芯片和一些外围电路构成的各种自动控制、自动报警、自动显示电路遍及各种电子产品和设备。数字系统和数字设备已广泛应用于各个领域,更新换代速度可谓日新月

4、异。计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置,与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用,本次设计的任意时间倒计时器,是基于单片机的基础,日常生活中相关的设备是很多的,诸如定时报警、报时自动打铃、时间程序自动控制、定时广播、自动闭路灯等都是以计时器为基础的。通过对基于单片机控制的倒数计时器的设计过程中,让自己对单片机有进一步的了解,激发兴趣,做到主动探索和学习。设计要求利用单片机结合LCD显示器设计一个倒数计时器,可以放在家中使用,例如煮方便面、煮开水或小睡片刻等,做一小段时间计时。当倒数计时为0时,则发

5、出一段音乐,通知倒数终了,该做重要的事情了。具体要求: = 1 * B文字型D(1*2)显示目前倒数的时间;显示格式为“COUNTON时时: 分分:秒秒”;具有3个按键操作来设置现在想要倒数的时间;一旦按键后则开始倒数计时,当计时为零则发出一阵音乐声响, 2 GB3程序开始执行,显示器显示“00”,按下操作键1S3动作如下:操作键S,可调整倒数时间时分秒;操作键S2,设置倒数计时时间为上升,显示“增加”;操作键3,设置倒数计时时间为下降,显示“减少; = 3 GB RS按下后显示如下:COUNT DWN 00:0:09倒数时间操作键S2:增加倒数计时,操作键S,减少倒数计时,操作键1按第四下设

6、置完成。 = * GB3 一旦按键后则开始倒数计时,当计时为0时则发出一段音乐。设计目的通过该设计能提高学生分析解决问题的能力。了解模拟电路及数字电路的相关知识.学习单片机定时器时间计时处理、按键扫描、LCD显示及音乐旋律演奏的设计方法。设计的具体实现系统概述总体方案论证要实现音乐倒数定时器可以用两种方案实现。方案一:利用ROG110可编程控制器POG-110 可编程器,是一种用数字简码控制的产品,它的特点是:自带一套用于输入数码的按键和显示程序的数码管,只要我们现场输入一列2位数码,编制的程序即能完成,即编,即用.每一种数字简码控制器,它都自带一套系统软件,每一套系统软件都有一套相对应的指令

7、表,配套的指令表表明,只要输入什么样的数,程序将去做什么事,输入一列数,它就会按次序去完成你要求它做的所有的事。但是首先PROG-0模块总共只有6个I/O端口,这就必须扩展模块端口,用两部以上模块串联,但花钱要多;其次是程序过长,ROG110模块的EPROM存储器24C01只可输入128步程序;第三是受ROG-110模块跳转指令步数的限制。方案二:利用单片机、LCD显示器和压电喇叭单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。它在硬件结构、指令系统、I/O端口、功率消耗及可靠性等方面均有其独特之处,其最显著的特点之一就是具有非常有效的控制功能。而LCD显示器

8、具有体积小、重量轻、工作电压低、功耗极低、显示内容丰富、稳定可靠、成本低、控制驱动方便、接口简单易用、模块化结构紧凑等特点。综上所述,按照设计要求我选择第二种方案,即利用单片机和LCD显示器来实现定时倒数,通过压电喇叭来发出音乐.单片机选择方案采用801单片机8051单片机内部包含一个8位CP、一个片内振荡器及时钟电路、ROM程序存储器、AM数据存储器、两个6位定时器/计数器、可分别寻址64KB的程序存储器空间和64KB的数据存储器空间、32条可编程的I/O口线(4个8位并行I/O端口)、一个可编程全双工串行口、具有5个中断源和2个优先级的中断结构。可以有效实现本次设计中要求的各项功能.具体的

9、设计流程可见图1:主程序开始初始化变量及LCD接口初始化定时器LCD闪动表示程序开始执行LCD扫描显示器更新倒数时间数据,检查闹铃时间是否到了是否按K1,K2,K3主程序开始初始化变量及LCD接口初始化定时器LCD闪动表示程序开始执行LCD扫描显示器更新倒数时间数据,检查闹铃时间是否到了是否按K1,K2,K3键S1:调整倒数时间S2:倒数计时时间加S3:倒数计时时间减YN单元电路设计.1控制电路倒数计数器的控制电路可以见附图,其中主要分为以下几部分单片机80518051 基本资料如下:图2 801引脚图8051主要使用引脚功能说明如下:801的引脚40接+V电源,引脚20接电源地线。传统805

10、1工作时钟的最高为2MHz。EA引脚低电平动作用来存取外部程序OM控制。EA接地,由外部程序ROM来执行程序。EA接高电平,由内部ROM来执行程序。开机时必须加入芯片重置信号。(RET)RESET信号高电平动作,高电平时产生芯片重置。REET信号低电平时,由程序ROM地址0开始执行程序。在本次设计中采用的8051外接电路如图3所示:图3 0外接电路图01系列的单片机的时钟方式分为内部方式和外部方式。内部方式就是在单片机的引脚18、19外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号.外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系

11、统正常工作的基础.在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。用一个12MH晶振和两个30P瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容可以增加电路的稳定性,可以抗噪声增加稳定性,不容易死机.在81中之所以采用高性能的振荡电路,因为:单片机电子钟的计时脉冲基准是由外部晶振的频率经过12分频后提供,采用内部的定时/计数器来实现计时功能。所以,外接晶振频率精确度直接影响电子钟计时的准确性。 单片机电子钟利用内部定时计数器溢出产生中断(12晶振

12、一般为50m)再乘以相应的倍率来实现秒、分、时的转换。大家都知道从定时/计数器产生中断请求到响应中断需要38个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。复位电路图4 单片机复位电路本次设计使用的倒数计时C控制,使用的是1字*行设计.图中为位控制电路,以851 P0的6调输出控制线来实现控制,P0还有提升电阻以增强其驱动能力,控制信号如下:R/W=0,LD执行写入的动作,R寄存器选择控制线。N启用控制线。O亮度调整控制引脚.DD双向的数据总线。必须在有亮度照明的地方,才能看见时间,若使用LD,选择有背光

13、显示的模块,则在夜晚或黑暗的场合也可以使用,有背光显示的LD模块在引脚上,与无背光显示的模块兼容,指示价格较贵,一般显示的背光颜色为黄光,与手机的背光颜色相似。按键控制按键控制室控制程序执行时数据的输入或是特殊功能的设置及操作,使用805端口2的条输入口,由程序来控制,平时输入端为高电平,当有按键按下则相对位会呈现低电平,进过轮流扫描判断输入端是否为低电平,便可知道按下的是哪一个按钮.音乐喇叭8端口1的第3位是压电喇叭的驱动位,持续送出工作脉冲可以推动喇叭发出哔的声响,当工作频率越高时,声音越清脆,工作频率低时,声音则较低沉。电源输入J1为+5V电源输入,当电源加入时电源指示灯LD将亮起,用哪

14、个以指示电源供给正常,定时器在倒数时间到后压电喇叭会发出音乐旋律,并启动继电器使其状态为ON,控制继电器的ON/状态,可以直接控制家电开关。2。2控制程序本课程设计中,可以学习利用单片机定时器设计时间计时处理,其时分秒控制,定时器0计时中断程序每个5中断一次当做一个计数,每中断一次则计数加1,当计数00次时,表示1s到了,秒变量加,同理再判断是否1in钟到了,再判断是否1h到了,若计数到了则将相关变量清除为0。单片机定时器负责定时的技术,不会因为案件处理而中断时间描述的增加,时,分,秒数据是存在变量内并写入LCD而显示相关时间的。在主控程序循环中主要工作为扫描是否有按键,若有按键则做相应的功能

15、处理,同时也检查所倒数的时间是否为0,若为0表示倒数的时间终了,应该执行想对应的工作了,图为主程序控制工作流程。时间计时处理程序时等过了1s 后,则更新时间数据,将最新剩余倒数的分秒的时间数据转换为数字数据,并显示在LD上。程序中如何判断是否已过了1?可以设一旧秒数变量,当新旧秒数变量不一样时,则表示已过了1s,要做相关程序处理了。倒数计时闹铃的动作利用时间计时处理来做秒数倒数,当所设置的时间为0,压电喇叭则不断发出音乐声,LED持续闪动,启动继电器,有继电器可以控制家电开启或关闭。音乐声的产生也是有定时器来产生固定频率的方波信号推动压电喇叭,发出旋律。而定时器原先已利用设计时间计时处理了,怎

16、么能在设计来做音乐旋律的控制?在此设计定义一个音乐演奏标志,若音乐演奏标志为0则执行中断程序中计时程序的部分程序,若音乐演奏标志为则执行音乐发生控制程序。因此只要适当的运用程序设计技巧,计时中断程序中可以做许多种不同的工作,而这些工作是需要特定一段时间久必须要被触发而被执行的程序.倒数计数器控制程序文件名为SDSASM。注意:在程序中12行有以下的指令:INLUDE (DSDS1ASM); 加载程序一起来汇编及编译表示在主程序DSDS.ASM中还会自动加载另一程序DSD1。AM程序一起进来汇编及编译,只是为了方便程序编译用,一些测试正确的程序代码可以分别存档好方便管理,此外整个程序源代码长度也

17、不至于太长,不方便编辑。DSDS.AM主要的程序代码功能为以定时器演奏歌曲旋律的控制。软件程设计和调试31延时时间的计算若我们想设计程序执行5ms时间延时,程序可以设计如下/延时vod delay(uint z)int ,y;for(x=;x0;-)for(y=11;y;y-);如果执行8次此子程序,则延时时间约为1s2工作方式设计本次设计中采用的定时器模式来设计,在此方式中T、0可以进行3位的计时,其值保存在两个位的定时寄存器中。对于其中任一定时器,工作时钟可以由内部或是外部来提供,由C/位来决定做定时器还是计数器。定时器的时钟为系统工作时钟除以此次试验中采用12z石英震荡器则产生5s的计数

18、时间脉冲宽度。本次实验的定时器计时时间为1s,因此定时器0需计数000次,其定时器初值的加载可以计算如下:TH0=(5536500)/6T1=(65536-000)%56执行后的结果为,产生的脉冲宽度为Tm3.3有定时器产生各种频率的声音我们可以设定发音的频率来改变声音产生音乐,计时时间长短也是按照发音的频率而定的。由频率值推得定时器计数初值由下关系式得到:1/f() ;方波宽度Co(in)t/ ;定时器所得计数的次数0(65536500)/25;计数初值底字节TL=(655360)6;计数初值高字节软件的编译和调试使用的是KL软件,文件格式是C。3。4程序说明#includre51.efne

19、 ucnigedchar#define uintuigned itbitlcdeP10; lcdrs=P1;sbit lcw=P2;bit speaker=3;sbit s1=P0;sbit s=P1;sb 3P32;sbtr=37;ucha ode table oun own!”;char code tb” 00:00:09”;urcn,s1nm;sttc charmao9,shi=0,fen=0;/生日快乐歌的音符频率表,不同频率由不同的延时来决定uchar code SONGTONE=212,22,9,22,19,169,21,212,10,12,2,159,21,212,106,126

20、,159,69,19,119,11,126,159,142,9,0;/uchr ode SON_TONE=2,212,90,22,159,16,0;/生日快乐歌节拍表,节拍决定每个音符的演奏长短ucha coeONG_LNG=9,3,12,1,1,24,9,3,12,12,12,24,9,,12,2,2,1,2,9,3,12,12,12,24,0;/uchacdeSONG_LNG=9,3,1,12,12,2,;/延时oid dela(uint )untx,y;f(x=z;0;)fo(y=10;y0;y-);oi writ_c(uchar x)2x;lcs=0;dw=;c=1;dla(2);cd

21、e=;lc=0;vd writedat(uchar x)lcdr=1;ld=0;P2=x;/elay();lce=;deay(2);lcd=;oid writesfm(ar add,ucar dae)uca sh,e;shi=ate10;gedate%10;wrtecom(080+0 x0+add);wrtedate(030+shi);writete(030+ge);/播放函数oid PayMusi() unt =0,,k;while(SNG_NGi!=0|SONGTNi!=0)/播放各个音符,SONGONG为拍子长度for(=0;jONG_LOGi*0;j+)speker=eaker;/SO

22、G_TONE延时表决定了每个音符的频率or(k=0;SON_TEi/;+);dlay(10);i+;i iit()uch num;rie_o(0);wrie_co(0 x0c);write_(0 x6);write_com(x01);wrie_om(0 x8);fo(num=;nu;um+)wrie_date(tblenum);del(5);writeom(0 x80+0 x40);for(nm=;num;num+)rtedate(tabe1nm);ely(5);TMOD0 x1;H0=(5536-500)25;L0=(65536500)%256;A=1;ET0=1;TR0=1;void ky

23、an()/rd0;if(1=0)del();i(1=0)s1num+;wle(!s1);if(s1n=1)TR=0;write_com(0 x80+0 x4+10);ritcm(0f);if(s1nu=)iteco(0 x8+0 x40+7);if(s1nm=)write_com(0 x800 x4+4);if(1=4)snum=0;write_(x0c);TR0=1;i(s1nm!=0)if(s20)delay();f(2=0)whle(!s2);if(snu=1)miao+;f(mao=0)mao0;write_sfm(10,miao);write_co(x00 x40+10);if(s1

24、nu=2)fe+;i(en=0)fen=0;wite_fm(,fe);rtec(x80+407);if(s1um3)sh+;if(si=24)shi0;wri_sfm(4,sh);wiecom(80+0 x40+4);f(s=)deay(5);if(s3=)whle(!s);if(snu=)/if(mia=0)iao59;itesfm(10,mao);wrie_com(0 x8+0 x0+10);/mio;i(miao=)miao=59;writefm(,miao);wrcom(000+1);(sum=2)fn-;i(f=-1)en59;write_sfm(7,fe);ritecom(0 x8

25、0+040+7);if(1nm=3)si-;i(si=-1)s=23;wrie_sfm(,hi);wite_com(x80+0 x404);oi main()init();whi(1)ksca();if(miao=0&fen0hi=0)R0;laMusic();d imer0() interupt 1T0=(6556-5000)/25;L0(655300)256;cunt+;f(ount=18)cunt=;io-;if(mio=1)miao;fen-;i(fen=-)en9;i;if(sh=1)=23;write_sfm(4,shi);write_sfm(7,fen);writesfm(10,

26、iao);结论和展望本次设计比较复杂,而且设计的基础知识很多,也很重要,对我们未来的工作和学习有着一定的奠基作用,是对单片机、数电、模电等知识的总结很归纳。本次设计参考资料较多,而且由于没有设计完成电路制版,所以对设计的程序没有办法验证其正确性,只能说明理论上的程度可以实现。如何实现各方面的知识相结合,怎么样合理利用器件管脚,对于单片机汇编语言的掌握,以及各个指令相互之间的配合都是在这个课程设计中有所体现的,也是我以后需要加强的。在801单片机本身须加上系统工作时钟,在此使用12Hz的石英振荡晶体,此与串行传输接口波特率时钟设计有关,在此利用C线路产生RET信号用于系统重置,另外接有手动开关按键,只要按下此按键就可以

温馨提示

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

评论

0/150

提交评论