找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9838|回复: 6
打印 上一主题 下一主题
收起左侧

DS1302实时时钟的设计报告(51单片机课程设计指导)

  [复制链接]
跳转到指定楼层
楼主
这是我这几天做的DS1302实时时钟的设计报告,做的略微粗糙,请多多包含。
并且附加源代码(亲测无错)。


全部资料51hei下载地址:
基于单片机DS1302实时时钟的设计.rar (1.63 MB, 下载次数: 158)


《单片机原理与应用课程设计》
设计报告
2017——2018学年第2学期
课程名称:  单片机原理与应用课程设计
题    目:DS1302实时时钟的设计
学生姓名:专    业:
班    级:学    号:
指导教师:日    期:年月日

设计作品(40%)
设计报告(20%)
答辩情况(30%)
平时成绩(10%)
评语
选题难度合适,所选课题用应用价值;硬件电路设计完整;布局合理;层次清晰,综合运用单片机相关知识。
格式正确;内容完整;层次清晰;
能够完整展现课题的设计过程。
课题的基本要求和运行结果清晰明了;电路的原理和设计过程熟悉,能熟练回答所提问题。
考勤满足要求;学习态度端正。
得分




总评



摘要:本论文(设计)采用STC89C52单片机和DS1302实时时钟芯片为主要器件设计的实时时钟系统。能够准确的显示实时时间、日期、星期。通过8位低功耗数码管将时间信息显示出来,数码管由单片机直接驱动,无需其他驱动芯片,通过按键切换显示时间、日期、星期、闹钟等信息。系统设计有闹钟报警功能,当实时时间到达闹钟设计时间时,闹钟就会蜂鸣器报警,报警时间可通过按键自行设定。DS1302芯片配备有备用电池,可确保即便时掉电的情况下也能继续走时,无需人工重新设定时间。

关键词:单片机;DS1302;实时时钟;


DS1302实时时钟的设计

一、课题要求

1.用DS1302时钟芯片设计实时时钟

2.显示电路采用8位共阳LED数码管;

3.可以做到计时准确;

4. 通过按钮对实时时钟时间进化设置,使时钟正常运行。

二、方案设计与论证

按照系统设计功能的要求,确定由主控模块、时钟模块、显示模块、键盘接口模块、发声模块共5个模块组成。主控芯片使用AT89C52单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。采用DS1302作为计时芯片,可以做到计时准确,更重要的是,DS1302可以在电流很小的后备电源(2.5~5.5 V电源,在2.5 V时耗电小于300 nA)下继续计时,而且DS1302可以编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。显示电路采用8位共阳LED数码管,采用查询法查键实现功能调整。

图示 时钟芯片DS132设计时钟


  • 系统硬件设计

DS1302实时时钟的Proteus硬件仿真电路如图所示。时钟芯片的晶振频率为32.768 kHz,3个数据、时钟、片选口可不接上拉电阻;LED数码管采用动态扫描方式显示,PO口为段码输出口,P2口为扫描驱动口,扫描驱动信号经74HC244功率放大用作LED点亮电源:调时按键设计了2个,分别接在P3.5口和P3.6口,用于设定及加1调整;P3.7口连接了一个蜂鸣器,用于按键发声提醒。


DS1302实时时钟的Proteus硬件仿真电路图(仿真前)



1.DS1302模块





DS1302引脚图

图示为DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc大于等于2.5V之前,RST必须保持低电平。只有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。


2.单片机最小系统














3.时钟电路设计

DS1302是DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能,工作电压为2.5~5.5V。DS1302采用三线接口,与CPU进行同步通信,并可采用突发方式一次传送多个字节的时间数据或RAM数据。DS1302内部有一个31X8的用于临时性存放数据的RAM存储器。时钟设计电路图如图所示。






DS1302时钟电路

4.AT89C52引脚图









AT89C52为适应不同的产品需求,采用PDIP、TQFP、PLCC三种封装形式,本系统采用双列直插PDIP封装形式。

5.按钮电路



6.复位电路


单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。

单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。

复位电路由按键复位和上电复位两部分组成。


7.晶振电路



单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。

在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。

单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。

晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。








  • 系统软件设计

1.时钟读出程序的设计

  因为使用了时钟芯片DS1302,所以时钟程序只须从DS1302各个寄存器中读出年、月、日、周、时、分、秒等数据再处理即可,本次设计中仅读出时、分、秒数据。在首次对DS1302 进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后送给显示缓冲单元。时钟读出程序流程图见下图。



2.时间调整程序的设计


  调整时间用两个调整按钮,一个作为设定控制用,另一个作为加1调整用。在调整时间的过程中,要调整的那位应与别的位有所区别,所以增加了闪烁功能,即调整的那位一直在闪烁,直到调整下一位。闪烁原理就是使要调整的那位,每隔定时间熄灭一次,比如说50 ms,利用定时器计时,当达到50 ms时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。时间调整程序流程图如下图所示。

时间调整程序流程图









五、仿真调试与分析

调试分为Proteus硬件电路调试和程序软件调试:硬件电路调试主要是检查各元件的连接线是否接好,另外,可以通过编写一个小的调试软件来测试硬件电路是否正常;软件调试应分块进行,先进行显示程序调试,再编写DS1302芯片的读/写程序,最后通过多次修改与完善达到理想的功能效果。DS1302的晶振频率是计时精度的关键,在实际设计中可换用标准晶振或用小电容进行修正,在本仿真电路中不需要对计时精度进行校准。

DS1302实时时钟的Proteus硬件仿真电路图(仿真后)





  • 调试
点击按钮“调时设置”可看到小时闪烁并可以进行加1设置
点击按钮“加1”可看到小时加1

六、结论与心得

通过这一周的学习,我感到有很大的收获:首先这次课程设计使自己对课本上的知识可以应用于实际,使理论与实际相结合,加深自己对课本知识的理解,同时也锻炼了自己的动手能力:能够充分利用电脑去查阅资料,增加了许多课本以外的知识。更加了解了单片机原理及应用。增加了对DS1302和AT89C52芯片引脚结构和功能的理解及运用,在设计电路过程中,要考虑到整体的美观性,连接电路时对各线路的连接要细致。在验证面电路效果时,出现了很多问题,其主要问题各个接线点之间错解没接上的等。在这个过程中,锻炼了我的细心和耐性。


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:297735 发表于 2018-11-7 12:38 来自手机 | 只看该作者
看一下看一下
回复

使用道具 举报

板凳
ID:362076 发表于 2018-11-11 19:55 | 只看该作者
如果只是显示和调时,应该考虑一下,调时的取消问题,例如我设置到一半,突然发现有错误,想返回重新调时,那么就应该有取消的途径,同时,时间合法性确认也是程序中要考虑到的,因为用户的想法设计者永远想不到。
回复

使用道具 举报

地板
ID:509033 发表于 2019-5-27 20:24 | 只看该作者
感谢,有了写报告的方向思路,
回复

使用道具 举报

5#
ID:294235 发表于 2019-6-20 10:40 | 只看该作者
掉电那块能细细讲一下吗
回复

使用道具 举报

6#
ID:571240 发表于 2019-6-29 10:04 来自手机 | 只看该作者
楼主有proteus的仿真源文件吗?
回复

使用道具 举报

7#
ID:584547 发表于 2019-7-15 16:30 | 只看该作者
支持!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表