前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DS 1302时钟芯片的51单片机程序设计

DS 1302时钟芯片的51单片机程序设计

作者头像
单片机技术宅
发布2020-03-17 10:15:59
8630
发布2020-03-17 10:15:59
举报
文章被收录于专栏:初学单片机初学单片机
今天我们来讲的是时钟芯片DS1302.在之前的文章中已经简单介绍过这块芯片的原理,在此我们主要讲的是程序设计部分。关于DS1302的一个简介大家可以自行百度,在此小代就不做过多的说明。

一、 DS1302时钟芯片的原理

DS1302是美国推出的一片带有RAM的实时时钟芯片,它能对年月日周,时分秒进行技术,具有闰年补偿那功能,动作电压2.5-5.5V,采用三线接口和MCU连接。计时的时钟来源为外接的32.768K晶振产生。三线接口分别为RST、IO和SCLK。RST是复位/片选信号,当RST为高电平是,允许DS1302进行操作,在传送数据过程中RST置为低电平则会终止此次数据的传送,IO变为高阻态。IO为串行数据输入输出端口,SCLK为串行传输的时钟信号线,只有在SCLK为低电平是,才能将RST置为高电平。

DS1302内部有14个和时间相关的寄存器,还有2个控制寄存器,还有31个RAM单元,本文我们只对和时间相关的寄存器做介绍。

具体请看下表

DS102芯片内部寄存器

在以上表格中需注意:

1、秒寄存器的最高位CH为时钟停止位,为0时振荡器工作,为1是停止。

2、时寄存器的最高位是12小时制和24小时制的选择位,此位为1是12小时制,此时第5位AP=1位下午,AP=0为上午,反之亦然。

DS1302的串行数据传输是从低位开始的,不管是读操作还是写操作。具体看时序图:

DS1302时序图

我们来总结下如何对DS1302操作:

1)首先要通过8eH将写保护去掉,这样我们才能将日期,时间的初值写时各个寄存器。

2)然后就可以对80H、82H、84H、86H、88H、8AH、8CH进行初值的写入。同时也通过秒寄存器将位7的CH值改成0,这样DS1302就开始走时运行了。

3)将写保护寄存器再写为80H,防止误改写寄存器的值。

4)不断读取80H-8CH的值,将他们转化为十进制后显示出来就可以啦,之前我们说过,DS1302读出的数据是BCD码,所以需要转换一下。

二、DS1302的接口电路

DS1302接口电路

三、DS1302的C51程序设计

此处提供的程序主要是DS1302芯片的读写操作的驱动程序,完整程序将会在后面的教程里提供。(小代提供的程序保证是源码,可完全运行的源码,将会在视频教程中全部讲解,在此提供图片形式代码,需要请自行动手敲进去,小代不提倡初学直接来复制粘贴)。

DS1302初始化函数

DS1302读操作函数

DS1302写操作函数

DS1302写数据到某个地址函数

DS1302读某地址数据函数

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单片机技术宅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档