数字日历时钟设计PPT文件格式下载.ppt
《数字日历时钟设计PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《数字日历时钟设计PPT文件格式下载.ppt(20页珍藏版)》请在冰豆网上搜索。
SZ51单片机开发板Z电路图电路图DS13021602LCDZ主要模块主要模块1.模块组成:
本程序采用模块化设计的方法,主要由主函数,显示模块,日期模块组成。
2.单片机主控制模块电路设计在这里我们们要了解一下关于AT89S52单片机的相关的资料从而使我们们对AT89S51有一个深入理解和印象。
AT89S52单片机具有在线调试的功能,可以很方面的用于实时的时钟连接调试,在本系统中单片机的工作与复位电路图。
所采用的12M的晶振用于单片机的工作,采用上电的方式进行复位。
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.55.5V。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。
有主电源和备份电源双引脚,而且备份电源可由大容量电容(1F)来替代。
需要强调的是,DS1302需要使用32.768KHz的晶振。
数字时钟芯片的详细的介绍,通过单片机可以很方便的控制时钟芯片的工作,下面看一下时钟芯片DS1302与系统的连接图如图2-3所示。
图2-33.键盘输入部分键盘在单片机系统中是一个很重要的部件。
为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。
在键盘的设计过程中,一般采用非编码键盘,在此的使用的过程中要注意消抖的问题,键盘的抖动对系统正常的工作影响很大,所以一定要消抖。
在本系统的设计过程中,共有四个键分别是功能移位键、时间的“+”键、时间的“”键、特殊时间转换键:
与系统的连线图如图2-5下图2-5Z主要元件主要元件AT89S52单片机日历时钟DS1302SMC1602LCM液晶显示屏Z开始开始定义日定义日期变量期变量调用初调用初始化函数始化函数液晶显液晶显示函数示函数1外部中外部中断函数断函数结束结束开始开始控制外部控制外部中断程序中断程序DS1302写读函数写读函数1602写指令函数写指令函数延时函数延时函数结束结束主函数主函数初始化函数初始化函数Z3.2.1主函数voidmain()/主函数ucharn;
init();
while(numn!
=0)/写液晶的第一行显示writedat(numn);
n+;
writecom(0x80+0x40);
n=0;
while(num1n!
=0)/液晶的第二行显示writedat(num1n);
while
(1)/对时间的不断刷新if(flag=0)readtime1302();
writecom(0x80+0x44);
writedat(0x30+shi/16);
writedat(0x30+shi%16);
writecom(0x80+0x47);
writedat(0x30+fen/16);
writedat(0x30+fen%16);
writecom(0x80+0x4a);
writedat(0x30+miao/16);
writedat(0x30+miao%16);
writecom(0x83);
writedat(0x30+nian/16);
writedat(0x30+nian%16);
writecom(0x86);
writedat(0x30+month/16);
writedat(0x30+month%16);
writecom(0x89);
writedat(0x30+day/16);
writedat(0x30+day%16);
writecom(0x8d);
writedat(xingqiweek0);
writedat(xingqiweek1);
writedat(xingqiweek2);
3.2.3对1602编程voidwritecom(ucharcom)/写指令函数delay1(5);
rs=0;
rw=0;
e=0;
delay();
P0=com;
e=1;
voidwritedat(uchardat)/写数据函数delay1(5);
rs=1;
P0=dat;
3.2.4对秒控制switch(flag)case1:
writecom(0x0f);
/秒的控制让光标在秒的位置上闪烁if(k2=0)delay1(10);
if(k2=0)miao=miao/16*10+miao%16;
miao+;
if(miao=60)miao=0;
while(!
k2);
writedat(0x30+miao/10);
/刷新秒的显示writedat(0x30+miao%10);
miao=miao/10*16+miao%10;
writebyte1302(0x8e,0x00);
writebyte1302(0x80,miao);
writebyte1302(0x8e,0x80);
if(k3=0)delay1(10);
if(k3=0)miao=miao/16*10+miao%16;
miao-;
if(miao=-1)miao=59;
k3);
writedat(0x30+miao%10);
break;
Z4.调试过程与实验结果调试过程与实验结果刚开始我们只写了初步的程序,只能控制秒、分、时、并进行调整,接着经过我们共同的探讨和努力又在原有程序上加上了对年月日的按键调整,后来我们又对液晶显示屏上的星期进行了调整,利用的是DS1302芯片内部程序。
最终我们实验结果是可调整到当前时间,并且可以通过按键调整。
结果是:
20120621THU00:
00:
00结束语学习心得这次硬件部件设计与调试实践,使我们学习了很多的东西。
通过近一周的学习和实践,使我们对所学的知识进行了系统的复习和巩固,同时,通过课设,培养和锻炼了我们的动手能力,这一点非常重要,不仅对我们以后的学习有帮助,还可以为以后的工作打下一定的基础。
这一次的实训对我们的帮助很大,使我们真正的认识到了理论与实际的区别,这将成为我们的学习目标和动力,更进一步的挖掘自己的能力,使自己获得进一步的提高。
这段时间的学习,使我们了解到了理论和实际之间的差别,第一次真正接触到了实际中的问题,并通过和老师、同学交流,加强了自身的分析问题、解决问题的能力。
同时,我们也发现了自己在某些方面的不足,这是我们以后要加以改进的方面。
在组织电路图的过程中使我们也学会了如何搭建单片机的硬件电路,如何根据硬件电路图来编制相关的程序,使我们对硬件课程的学习有了更浓的兴趣,使我们对我们所学的这个方向有了更浓的兴趣。
经过这次的练习,我们会更加严格要求自己,认真对待每一个课时,认真学好单片机这门课,争取有一个新的提高。
Z