基于单片机的电子闹钟设计.doc
《基于单片机的电子闹钟设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子闹钟设计.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. -基于单片机的电子闹钟设计摘要本设计以AT89C51芯片为核心,辅以必要的外围电路,设计了一个构造简单,功能齐全的电子时钟,它由5V直流电源供电。关键词:单片机;led;闹钟;定时器AbstractThis design, adopting AT89C51 chip as the core part with some necessary peripheral circuits, is a simple electronic clock which uses 5V DC as the power supply.Keywords:single chip machine ,in fixed t
2、ime machine, alarm clock,LED1 引言1.1设计目的此次课程设计是在学习先修课程?单片机原理与系统设计?之后,为加强对学生系统设计和应用能力的培养而开设的综合设计训练环节。本课程设计应结合?单片机原理与系统设计?课程的根底理论,重点强调实际应用技能训练,包括单片机系统设计的软件和硬件两局部。其课程设计任务是使学生通过应用单片机系统设计的根本理论,根本知识与根本技能,掌握单片机应用系统各主要环节的设计、调试方法,初步掌握并具备应用单片机进展设备技术改造和产品开发的能力,培养学生的创新意识,提高学生的动手能力和分析问题、解决问题的能力。1.2设计要求结合单片机知识,以AT
3、89C51单片机为核心,利用七段LED数码管实现计时、校时及闹钟功能。1.3设计方法以AT89C51单片机为核心,外加晶振电路,使用8个七段数码管显示,LED采用动态扫描,用74ls245芯片作为驱动电路。通过四个独立按键对时间进展定时、校时,从而实现闹钟提醒功能。2 设计方案及原理2.1设计方案选AT89C51单片机作为系统核心,辅助外部产生时钟信号的晶振电路,再加上四个独立按键作为输入信号,使用8个七段数码管显示时间,芯片74ls245为数码管段选线的驱动,最后用蜂鸣器实现闹铃功能。使用单片机的定时器T0计时时间为50ms,计时20次作为1s的时间基准。第一局部,12MHz的晶振连接至单片
4、机的时钟信号输入端;第二局部,四个独立按键加上四个上拉电阻连接至单片机的P1口的低四位;第三局部,单片机的P0口通过由芯片74ls245构成的驱动电路连接至数码管的段选线,单片机的P3口连接至数码管的位选线;第四局部,单片机的P2.1通过一个NPN型三极管连接至蜂鸣器。8个七段数码管使用动态扫描显示时间,独立按键用软件编程实现对时间和闹钟时、分、秒的设置,再通过比拟所设置的闹钟与时间是否相等,到达闹铃发出声响的效果。2.2设计原理系统原理图如图2.1所示。AT89C51晶振按键段码驱动位码驱动 蜂鸣器8位数码管图2.1 系统原理图3 硬件设计硬件电路分四个模块:晶振电路、键盘电路、数码管显示电
5、路、蜂鸣器驱动电路。晶振电路使用12MHz晶体振荡器,经分频后供单片机工作。键盘采用4个独立按键配以4个上拉电阻实现对时钟和闹钟的设定及修改。由于通过数码管公共及的电流较大且防止过多地使用分立元件,采用了一片74ls245来驱动段码,用P3口作位码驱动。发音局部是通过三极管放大驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出连续嘀声,这样就可以省去硬件振荡电路,降低本钱。系统硬件电路图如图3.1所示。图3.1 系统硬件图4 软件设计源程序清单见附录。主程序流程图如图4.1所示。图4.1 主程序流程图5 系统仿真及调试硬件局部设置了的三个按键K1、K2、K3、K4。当按键K1第一次按
6、下时,停顿计时进入闹钟1的秒设置,当按键K1第二、第三次按下时,分别进入闹钟1的分设置和时设置,当按K1第四 、第五、第六次按下时分别进入闹钟2的秒、分、时设置,当按K1第七 、第八、第九次按下时分别进入闹钟3的秒、分、时设置,当按K1第十 、第二一、第十二次按下时分别进入时间的秒、分、时设置,在K1按下的各阶段,可用按键K2、K3进展时间和闹铃时间的时、分、秒进展加减设置;当按键K1第十三次按下时恢复到时间显示功能。当显示的时间和定时设置的时间一致时,蜂鸣器发出等时连续蜂鸣声,闹铃时间设置为60秒。在各个闹钟设置阶段,如果有K4按下,那么相应闹钟功能关闭或开启;如在闹铃时有K4按下那么提前停
7、顿闹铃。系统仿真图如图5.1所示。图5.1 系统仿真图6 总结通过两周的努力,完成了电子闹钟的设计目的,实现了时间的显示、校时、设置闹钟、闹铃等功能。这期间,我复习了单片机的相关知识,并结合查阅相关资料,设计了整体电路以及各模块的电路,对照硬件电路编写对应模块的子程序,最后将各个子程序整合到一个主程序中,完成了设计所需功能。在设计中,我发现选择适宜的元器件很重要,比方数码管有共阳极和共阴极两种,不同的选择会导致程序的不同,经过屡次调试最终选择了共阳极数码管。另外,我觉得软件的设计比硬件设计更重要,而且难度更大。比方写一个程序看其功能很少认为编写程序简单,但到编程的时候才发现一些细微的知识或低级
8、错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解的,更谈不上掌握。我在这次设计中收获颇多。我对所学的理论知识在实践中加深了认识,同时更加熟练掌握了Proteus、Keil等软件的使用。做任何事都需要耐心和细心,一点小的疏忽和懈怠可能导致整个设计失败。还有一点,自己的设计思路不可能凭空产生,只有借鉴别人已有的设计并充分消化吸收成为自己的东西,才能做出更好的设计作品。参考文献1 王思明.单片机原理及应用系统设计M.:科学,2012.2 陈明荧. 89C51单片机课程设计实训教材M.:清华大学,2003.3 X瑞新.单片机原理及应用教程M.:机械工业
9、,2005.4 杨文龙.单片机原理及应用M.:XX电子科技大学,2002.附录源程序清单:/*头文件*#include #include/*宏定义*#define uchar unsigned char #define uint unsigned int/*位声明*sbit key1=P10; sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit fmq=P21;/*数码管显示的数值*uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,/ 0 1 2 3 4 5 0x82,0xf8,0x80,0x90,0xbf,
10、0x0ff; / 6 7 8 9 - 灭void jia(); /定义时间加函数void jian(); /定义时间减函数/*数组定义,数组内含有8个数值*uchar table18,table28,table38,table48;/*时间显示初始值*uchar shi=12,fen=0,miao=0; /*定义全局变量*uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;uchar shi4,fen4,miao4;uchar flag, flag1, wss, t, t1, alm1, alm2, alm3;/ 1秒等时位闪次数校时闹1
11、 闹2 闹3uint flag2;/ 蜂鸣/*延时函数,用于动态扫描数码管*void delay(uchar i) uchar x,y; for(x=i;x0;x-) for(y=120;y0;y-); /*初始化函数*void init() TMOD=0x01; /工作方式1 TH0=0x3c; /定时时间为:50ms(65536-50000)/256 TL0=0x0b0; /(65536-50000)%256 ET0=1; /翻开定时器 EA=1; /开总中断 TR0=1; /启动定时器 /*显示子函数,用于显示时间数值*void display() uchar i,j; if(t!=10
12、|wss=0) table10=miao%10; /别离秒的个位与十位 table11=miao/10; else table10=table11=11;if(t!=11|wss=0) table13=fen%10; /别离分的个位与十位 table14=fen/10; else table13=table14=11;if(t!=12|wss=0) table16=shi%10; /别离时的个位与十位 table17=shi/10; else table16=table17=11; table12=table15=10; j=0x7f; for(i=0;i=7;i+) /从秒到时的扫描 P3=
13、j;/选通点亮八个数码管 P0=tabletable1i; /显示数值 delay(10);/调用延时程序 j=_cror_(j,1); /循环右移 /*显示子函数,用于显示定时1时间*void display1() uchar i,j; if(alm1=0) if(t!=1|wss=0) table20=miao1%10; /别离秒的个位与十位 table21=miao1/10; else table20=table21=11; if(t!=2|wss=0) table23=fen1%10; /别离分的个位与十位 table24=fen1/10; else table23=table24=1
14、1; if(t!=3|wss=0) table26=shi1%10; /别离时的个位与十位table27=shi1/10; else table26=table27=11; else table20=table21=table23=table24=table26=table27=10; table22= table25=10; j=0x7f; for(i=0;i=7;i+) /从秒到时的扫描 P3=j; /选通点亮八个数码管 P0=tabletable2i;/显示数值delay(10); /调用延时程序 j=_cror_(j,1); /循环右移 /*显示子函数,用于显示定时2时间*void d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 闹钟 设计
限制150内