数字日历时钟设计课件_第1页
数字日历时钟设计课件_第2页
数字日历时钟设计课件_第3页
数字日历时钟设计课件_第4页
数字日历时钟设计课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用课程实训液晶(LED)日历时钟项目实训单片机原理与应用课程实训液晶(LED)日历时钟项目实训1液晶(LED)日历时钟项目实训班级:电子1001组员:陶涛、张含、卞修杰、张辉辉、季必云、郑军、赵胜强、高晓军指导老师:朱孝立日期:2012年6月18日—2012年6月21日液晶(LED)日历时钟项目实训班级:电子10012三、软件流程与说明液晶(LED)日历时钟项目实训二、硬件工作原理2.1电路图2.2主要模块2.3主要元件3.1软件框图3.2重点函数编程一、项目概述四、调试过程与实验结果ZZZZZZZ三、软件流程液晶(LED)日历二、硬件工作原理2.1电路图3项目概述1.功能特性:液晶屏显示当前时间,并可通过按键调整2.技术指标参数:DS1302是51单片机系统常用的日历时钟,该芯片提供了秒、分、时、日、月、星期和年的信息。DS1302的读写操作要在严格的复位信号和时钟信号的配合下完成。3.开发器材:AT89S52单片机、日历时钟DS1302及SMC1602LCM液晶显示屏4.环境:SZ51单片机开发板Z项目概述1.功能特性:液晶屏显示当前时间,并可通过按键调整Z4电路图DS13021602LCDZ电路图DS13021602LCDZ5主要模块1.模块组成:本程序采用模块化设计的方法,主要由主函数,显示模块,日期模块组成。2.单片机主控制模块电路设计在这里我们们要了解一下关于AT89S52单片机的相关的资料从而使我们们对AT89S51有一个深入理解和印象。AT89S52单片机具有在线调试的功能,可以很方面的用于实时的时钟连接调试,在本系统中单片机的工作与复位电路图。所采用的12M的晶振用于单片机的工作,采用上电的方式进行复位。主要模块1.模块组成:本程序采用模块化设计的方法,主要由主函6DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(>1F)来替代。需要强调的是,DS1302需要使用32.768KHz的晶振。数字时钟芯片的详细的介绍,通过单片机可以很方便的控制时钟芯片的工作,下面看一下时钟芯片DS1302与系统的连接图如图2-3所示。DS1302是美国DALLAS公司推出的一种高性能、低功耗的7图2-3图2-383.键盘输入部分键盘在单片机系统中是一个很重要的部件。为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。在键盘的设计过程中,一般采用非编码键盘,在此的使用的过程中要注意消抖的问题,键盘的抖动对系统正常的工作影响很大,所以一定要消抖。在本系统的设计过程中,共有四个键分别是功能移位键、时间的“+”键、时间的“—”键、特殊时间转换键:与系统的连线图如图2-5下图2-5Z3.键盘输入部分图2-5Z9主要元件

AT89S52单片机日历时钟DS1302SMC1602LCM液晶显示屏Z主要元件AT89S52单片机Z10开始定义日期变量调用初始化函数液晶显示函数1外部中断函数结束开始控制外部中断程序DS1302写/读函数1602写指令函数延时函数结束主函数初始化函数开始定义日调用初液晶显1外部中结束开始控制外部DS11ZZ123.2.1主函数voidmain() //主函数{ ucharn; init(); while(num[n]!='\0') //写液晶的第一行显示 { writedat(num[n]); n++; } writecom(0x80+0x40); n=0; while(num1[n]!='\0') //液晶的第二行显示 { writedat(num1[n]); n++; } while(1) //对时间的不断刷新3.2.1主函数13{ 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);{14 writecom(0x89); writedat(0x30+day/16); writedat(0x30+day%16);

writecom(0x8d); writedat(xingqi[week][0]); writedat(xingqi[week][1]); writedat(xingqi[week][2]); }}3.2.3对1602编程voidwritecom(ucharcom) //写指令函数{ delay1(5); rs=0; rw=0; e=0; delay(); P0=com; delay();delay();delay(); e=1; delay();delay();delay(); e=0;}voidwritedat(uchardat) //写数据函数 writecom(0x89);15{ delay1(5); rs=1; rw=0; e=0; delay(); P0=dat; delay();delay();delay(); e=1; delay();delay();delay(); e=0;}3.2.4对秒控制switch(flag) { case1:writecom(0x0f);writecom(0x80+0x4a);//秒的控制让光标在秒的位置上闪烁 if(k2==0) { delay1(10); if(k2==0){16{ miao=miao/16*10+miao%16; miao++; if(miao==60) miao=0; } while(!k2); writedat(0x30+miao/10); //刷新秒的显示 writedat(0x30+miao%10); writecom(0x80+0x4a); miao=miao/10*16+miao%10; writebyte1302(0x8e,0x00);writebyte1302(0x80,miao); writebyte1302(0x8e,0x80); } if(k3==0) { delay1(10); if(k3==0) {{17delay1(10); if(k3==0) { miao=miao/16*10+miao%16; miao--; if(miao==-1) miao=59; } while(!k3); writedat(0x30+miao/10); writedat(0x30+miao%10); writecom(0x80+0x4a); miao=miao/10*16+miao%10; writebyte1302(0x8e,0x00); writebyte1302(0x80,miao); writebyte1302(0x8e,0x80); } break;Zdelay1(10);Z184.调试过程与实验结果刚开始我们只写了初步的程序,只能控制秒、分、时、并进行调整,接着经过我们共同的探讨和努力又在原有程序上加上了对年月日的按键调整,后来我们又对液晶显示屏上的星期进行了调整,利用的是DS1302芯片内部程序。最终我们实验结果是可调整到当前时间,并且可以通过按键调整。结果是:2012-06-21THU00:00:004.调试过程与实验结果19结束语学习心得这次硬件部件设计与调试实践,使我们学习了很多的东西。通过近一周的学习和实践,使我们对所学的知识进行了系统的复习和巩固,同时,通过课设,培养和锻炼了我们的动手能力,这一点非常重要,不仅对我们以后的学习有帮助,还可以为以后的工作打下一定的基础。这一次的实训对我们的帮助很大,使我们真正的认识到了理论与实际的区别,这将成为我们的学习目标和动力,更进一步的挖掘自己的能力,使自己获得进一步的提高。这段时间的学习,使我们了解到了理论和实际之间的差别,第一次真正接触到了实际中的问题,并通过和老师、同学交流,加强了自身的分析问题、解决问题的能力。同时,我们也发现了自己在某些方面的不足,这是我们以后要加以改进的方面。在组织电路图的过程中使我们也学会了如何搭建单片机的硬件电路,如何根据硬件电路图来编制相关的程序,使我们对硬件课程的学习有了更浓的兴趣,使我们对我们所学的这个方向有了更浓的兴趣。经过这次的练习,我们会更加严格要求自己,认真对待每一个课时,认真学好单片机这门课,争取有一个新的提高。Z结束语学习心得Z20单片机原理与应用课程实训液晶(LED)日历时钟项目实训单片机原理与应用课程实训液晶(LED)日历时钟项目实训21液晶(LED)日历时钟项目实训班级:电子1001组员:陶涛、张含、卞修杰、张辉辉、季必云、郑军、赵胜强、高晓军指导老师:朱孝立日期:2012年6月18日—2012年6月21日液晶(LED)日历时钟项目实训班级:电子100122三、软件流程与说明液晶(LED)日历时钟项目实训二、硬件工作原理2.1电路图2.2主要模块2.3主要元件3.1软件框图3.2重点函数编程一、项目概述四、调试过程与实验结果ZZZZZZZ三、软件流程液晶(LED)日历二、硬件工作原理2.1电路图23项目概述1.功能特性:液晶屏显示当前时间,并可通过按键调整2.技术指标参数:DS1302是51单片机系统常用的日历时钟,该芯片提供了秒、分、时、日、月、星期和年的信息。DS1302的读写操作要在严格的复位信号和时钟信号的配合下完成。3.开发器材:AT89S52单片机、日历时钟DS1302及SMC1602LCM液晶显示屏4.环境:SZ51单片机开发板Z项目概述1.功能特性:液晶屏显示当前时间,并可通过按键调整Z24电路图DS13021602LCDZ电路图DS13021602LCDZ25主要模块1.模块组成:本程序采用模块化设计的方法,主要由主函数,显示模块,日期模块组成。2.单片机主控制模块电路设计在这里我们们要了解一下关于AT89S52单片机的相关的资料从而使我们们对AT89S51有一个深入理解和印象。AT89S52单片机具有在线调试的功能,可以很方面的用于实时的时钟连接调试,在本系统中单片机的工作与复位电路图。所采用的12M的晶振用于单片机的工作,采用上电的方式进行复位。主要模块1.模块组成:本程序采用模块化设计的方法,主要由主函26DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(>1F)来替代。需要强调的是,DS1302需要使用32.768KHz的晶振。数字时钟芯片的详细的介绍,通过单片机可以很方便的控制时钟芯片的工作,下面看一下时钟芯片DS1302与系统的连接图如图2-3所示。DS1302是美国DALLAS公司推出的一种高性能、低功耗的27图2-3图2-3283.键盘输入部分键盘在单片机系统中是一个很重要的部件。为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。在键盘的设计过程中,一般采用非编码键盘,在此的使用的过程中要注意消抖的问题,键盘的抖动对系统正常的工作影响很大,所以一定要消抖。在本系统的设计过程中,共有四个键分别是功能移位键、时间的“+”键、时间的“—”键、特殊时间转换键:与系统的连线图如图2-5下图2-5Z3.键盘输入部分图2-5Z29主要元件

AT89S52单片机日历时钟DS1302SMC1602LCM液晶显示屏Z主要元件AT89S52单片机Z30开始定义日期变量调用初始化函数液晶显示函数1外部中断函数结束开始控制外部中断程序DS1302写/读函数1602写指令函数延时函数结束主函数初始化函数开始定义日调用初液晶显1外部中结束开始控制外部DS31ZZ323.2.1主函数voidmain() //主函数{ ucharn; init(); while(num[n]!='\0') //写液晶的第一行显示 { writedat(num[n]); n++; } writecom(0x80+0x40); n=0; while(num1[n]!='\0') //液晶的第二行显示 { writedat(num1[n]); n++; } while(1) //对时间的不断刷新3.2.1主函数33{ 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);{34 writecom(0x89); writedat(0x30+day/16); writedat(0x30+day%16);

writecom(0x8d); writedat(xingqi[week][0]); writedat(xingqi[week][1]); writedat(xingqi[week][2]); }}3.2.3对1602编程voidwritecom(ucharcom) //写指令函数{ delay1(5); rs=0; rw=0; e=0; delay(); P0=com; delay();delay();delay(); e=1; delay();delay();delay(); e=0;}voidwritedat(uchardat) //写数据函数 writecom(0x89);35{ delay1(5); rs=1; rw=0; e=0; delay(); P0=dat; delay();delay();delay(); e=1; delay();delay();delay(); e=0;}3.2.4对秒控制switch(flag) { case1:writecom(0x0f);writecom(0x80+0x4a);//秒的控制让光标在秒的位置上闪烁 if(k2==0) { delay1(10); if(k2==0){36{ miao=miao/16*10+miao%16; miao++; if(miao==60) miao=0; } while(!k2); writedat(0x30+miao/10); //刷新秒的显示 writedat(0x30+miao%10); writecom(0x80+0x4a); miao=miao/10*16+miao%10; writebyte1302(0x8e,0x00);writebyte1302(0x80,miao); writebyte1302(0x8e,0x80); } if(k3==0) { delay1(10); if(k3==0) {{37delay1(10); if(k3==0) { miao=miao/16*10+miao%16; miao--; if(miao==-1) miao=59; } while(!k3); writedat(0x30

温馨提示

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

评论

0/150

提交评论