1、闹铃声由交流蜂鸣器产生,电路图如下。当P2.4输出不同频率的方波,.蜂鸣器便会发出不同的声音。3.整体硬件电路图四、软件设计1计时模块利用单片机定时器0完成计时功能。定时器0计时中断程序每隔1ms中断一次并当作一个计数,每中断一次计数加1,当计数1000次时,则表示1s到了,秒变量加1。当秒变量达到60时,秒变量清零同时分变量加1。分变量达到60时,分变量清零同时时变量加1。当时变量达到24时,时变量清零。由于实验要求由LED闪动做秒显示,因此每隔0.5s即计数500次时,P11(驱动LED灯)取反一次,从而实现LED灯闪动一次为1s,秒变量加1。该模块流程图如下:程序如下:void Dela
2、y(int m) /延时函数 int y=m/10; while(-m);void Init_Timer0() /计时器初始化函数 TMOD=0x11; TH0=0xEE; TL0=0x00; ET0=1; TR0=1; EA=1;void Init_Timer1() /计时器初始化函数 ET1=1; TR1=0;void time0(void) interrupt 1 /计时函数 TH0=0xee; i+; if (i=199) P1=_cror_(P1,1); /循环位移 second+; if(second=60) second=0; minute+; if(minute=60) min
3、ute=0; hour+; if(hour=24) hour=0; i=0; 2.显示模块为在各位LED上分别显示不同的字符,需要采用循环扫描显示的方法,即在某一时刻只选通一条位选线,并输出该位的字段码,其余位则处于关闭状态。可见,各位LED显示的字符并不是同时出现的,但由于人眼的视觉暂留及LED的余辉,可以达到同时显示的效果。程序流程图如下:采用动态显示时,需要确定LED各位显示的保持时间。由于LED从导通到发光有延时,时间太短会造成发光微弱,显示不清晰;如果显示时间太长,则会占用较多的CPU时间。void display( uint x,uint y) /数码管显示函数 qian = x/
4、10; bai = x%10; shi = y/10; ge =y%10; s1=0 ; if(j=1)/设置模式下调整位闪烁函数 s_flag+; if(s_flag=20) P0=0xff; else P0 = digsegqian; if(s_flag=40) s_flag=0; else P0 = digsegqian; Delay(500); s1=1; s2 = 0; if(j=1) P0=0xff; P0 = digsegbai; else P0 = digsegbai; s2 = 1; s3 = 0; if(j=2) P0 = digsegshi; else P0 = digs
5、egshi; s3 = 1; s4 = 0; P0 = digsegge; else P0 = digsegge; s4 = 1;3按键判断及处理程序按键的闭合与否,反映在电压上就是呈现出高电平或低电平。由于机械触点的弹性作用,在闭合及断开的瞬间,电压信号伴随有一定时间的抖动,抖动时间与按键的机械特性有关,一般是510ms。为了保证CPU确认一次按键动作,既不重复也不遗漏,必须消除抖动的影响。通过软件消除抖动的方法为:在程序执行过程中检测到有按键按下时,调用一段延时(约10ms)子程序,然后判断该按键的电平是否仍然保持在闭合状态,如果是,则确认有键按下。按键判断流程图如下:按键处理流程图如下:
6、char check_K1(void) /按键检测函数 if(KEY1=0) Delay(2000); /防抖动 if(KEY1=0) while(KEY1=0) ; return 1; return 0;char check_K2(void) if(KEY2=0) if(KEY2=0) while(KEY2=0) ;char check_K3(void) if(KEY3=0) if(KEY3=0) while(KEY3=0) ;char check_K4(void) if(KEY4=0) if(KEY4=0) while(KEY4=0) ;4.音乐响铃模块音乐闹铃程序:单片机演奏一个音符,是
7、通过引脚,周期性的输出一个特定频率的方波。这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。众所周知,周期为频率的倒数,可以通过音符的频率计算出周期;演奏时,要根据音符的不同,把对应的半个周期的定时时间初始值,送入定时器,再由定时器按时输出高低电平。另外,音乐的节拍是由延时实现的。在单片机音乐演奏程序中,包括了两个数据表,其中存放了事先算好的各种音符频率所对应的半周期的定时时间初始值。有了这些数据,单片机就可以演奏低音、中音、高音,三个八度共21个音符。演奏乐曲时,就根据音符的不同数值,从表中找到定时时间初始值,送入定时器即可控制音调。通过调用延迟来实现节拍数。乐曲的数
8、据,也要写个数据表:表中每三个数字,说明了一个音符,它们分别代表:第一个数字是音符的数值;第二个数字是123之一,代表低音、中音、高音;第三个数字是时间长度,以半拍为单位。乐曲数据表的结尾是三个0。音节与频率的关系如下表所示音调X低音1F921中音1FC8F高音1FE47低音2F9E1中音2FCEE高音2FE77低音3FA8C中音3FD44高音3FEA2低音4FAD8中音4FD6B高音4FEB6低音5FB68中音5FDB4高音5FEDA低音6FBE9中音6FDF4高音6FEFA低音7FC5B中音7FE2D高音7FF16code unsigned char yinyue=1,1,5,5,6,6,
9、5,0,4,4,3,3,2,2,1,0,5,5,4,4,3,3,2,0,5,5,4,4,3,3,2,0;/蜂鸣器音乐音符表uint music1=0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0xfc;/不同频率对应计数器处初值(高八位)uint music2=0x21,0xe1,0x8c,0xd8,0x68,0xe9,0x5b,0x8f; /不同频率对应计数器初值(低八位)for(y=0;y=32;y+) /音乐播放 display(hour,minute); if(check_K2() TR1=0; beep=1; break; if(y=32) y=0; if(y
10、inyuey=0) Delay(60000); else TH1=music1yinyuey-1; TL1=music2yinyuey-1; beep=0; TR1=1; Delay(20000); Delay(40000); 5.主函数流程图void main() uint flag=0; P1=0x7f; Init_Timer0(); Init_Timer1(); display(hour,minute); while(1) if(check_K3() /显示模式切换 flag+; if(flag=3) flag=0; if(setflag=0) if (flag=0) display(h
11、our,minute); if (flag=1) display(minute,second); if(flag=2) if(alarmflag=1) s1=0;s2=0;s3=0;s4=0; P0=0xbf; Delay(500); s2=1;s2=1;s3=1;s4=1; if(alarmflag=-1) display(a_hour,a_minute); if(check_K4() alarmflag= -alarmflag; if(check_K1() setflag+; j=1; if(setflag=1|setflag=2) Set_timer(); if(a_hour=hour&
12、minute=a_minute&second2&alarmflag=-1) /闹钟时间判定 for(y=0; 五、软件实现功能1.设置当前时间2.设置时间时,显示屏闪烁3.采用“时时分分”或“分分秒秒”的形式显示当前时间4.以1s为间隔进行流水灯操作5.开启或关闭闹钟6.设置闹钟时间7.到达闹钟时间后,蜂鸣器响起,显示屏闪烁闹钟时间,按下指定键后,蜂鸣器关闭8.蜂鸣器发出指定音乐的声音六、实验感想经过为期两周的单片机课设,通进对两个软件学习和完成一个时钟秒表设计并进行简单调试,我学到了很多东西! 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学
13、生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 在我的课设时也遇到过这样或那样的问题,感谢同学们和助教的帮助,在他们的指导下,在自己的的努力下,我最终顺利的完成了实验。在整个的课设的过程中我学习了很多的东西,使我眼界打开,感受颇深。简单的软件与硬件学习使我了解到了人生学习的真谛,课设虽然结束了,但学习还没结束,电子的世界将为我打开,只有继续以从中获得感受作为指导思想走下去,在不断前进中去提升自己,才能真正提升自己的能力。七、参考文献1戴胜华,蒋大明,杨世武等.单片机原理与应用M.北京:北京交通大学出版社,20082 程一风.基于单片机的电子时钟的仿真J.无线互联科技 ,2013,(8):88-88.3 万定勇.基于AVR单片机的异步电子时钟的制作J.城市建设理论研究(电子版) ,2013,(19).4 胡恩.电子时钟设计J.安徽科技,2012,(2):43-46.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1