控制/MCU
一、 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读某地址数据函数
全部0条评论
快来发表一下你的评论吧 !