单片机与串行时钟DS1307的接口设计

2018-01-27 20:46:57编辑:王磊 关键字:DS1307  串行时钟  单片机

在简单介绍串行时钟芯片ds1307的基础上,介绍了时钟电路的rs485接口设计8本文所设计的时钟电路具有体积小、抗干扰性能强、通用性好、调时方便等特点。

0 引言

单片机构成的测控系统或智能显示屏中,经常需要实时日历时钟,为节省CPU资源,增强实时时钟电路的通用性,本文介绍DS1307的应用及其接口设计,该时钟系统用RS485接口,采用SN75176差分平衡驱动接收,具有抗干扰能力强,可与PC机进行远距离的通信也可以与其他控制电路相连;时钟调时可方便地用PC机或电路中设置的按键进行时间设定和修改。

1、串行时钟DS1307简介

DS1307是I2C总线接口的日历时钟芯片,片内有8个特殊寄存器和56B的SRAM,是一种低功耗、BCD码的8引脚实时时钟芯片。

DS1307的主要技术性能如下:

具有秒、分、时、日、星期、月、年的计数功能,并具有12小时制和24小时制计数模式,可自动调整每月天数及闰年;

具有自动掉电保护和上电复位功能;

可输出不同频率的方波信号

(1)DS1307的引脚排列图如图1所示。

VCC:+5V电源;

VBAT:+3V电池电源输入;

X1,X2:32.768kHz的晶振输入端;

SDA:数据线;

SCL:时钟线;

SQW/OUT:方波信号输出端。

(2)DS1307的特殊寄存器地址分配

DS1307内部有8个特殊寄存器即00H~07H单元,其中00H~06H分别为秒~年时间计数寄存器,07H为控制寄存器。其详细的空间分配如表1所示。

控制寄存器07H单元用于控制芯片7脚产生不同频率的方波信号。具体作用如表2所示。

其中:OUT为控制位,SQWE是使能位。

当SQWE=0时,如果OUT=0,则SQW/OUT引脚输出低电平,如果OUT=1,则SQW/OUT引脚输出为高电平。当SQWE=1时,由RS1,RS0决定引脚SQW/OUT输出不同频率的方波信号。RS1,RS0与输出频率的关系为表3所示。

(3)DS1307的工作时序

DS1307通过双向数据线SDA和时钟SCL与外界进行数据交换,其时序关系如图2所示。

从时序图2中可看出,DS1307有2种操作方式:

(1)写操作:把SDA数据线上的数据按RAM指定的首地址(WordAddress)依次写入N个字节数据,其格式为:

(2)读操作:按RAM指定的首地址依次读出N个字节数据,其格式为:

其中:S为起始信号,1101000为DS1307的口地址,A应答信号,A非应答信号,P停止信号。

2、时钟系统的硬件设计

该系统由89C51单片机、时钟芯片DS1307,RS485接口电路及显示电路组成。主要原理框图如图3所示。

2.1 89C51部分

本文利用89C51的P1.6,P1.7来模拟I2C总线的时钟线(SCL)和数据线(SDA)对时钟芯片DS1307的时钟数据进行读写操作,并把读来的数据送数码管显示。利用P3.0,P3.1实现串行输入输出,用P1.5来控制PC机输出数据对显示时间的影响,当P1.5=1时才允许显示传送,利用89C51的外部中断INT0对按键调整时间进行中断控制。

2.2 DS1307部分

通过DS1307的SDA,SCL将时钟芯片的00H~06H单元的秒、分、时、星期、日、月和年送到数码管显示。DS1307的写地址为11010000B,读地址为11010001B。

2.3 RS485接口部分

为便于远距离、高速率下的多机通信,采用RS485接口。由MC1489将RS232电平转换成TTL电平,由MC1488实现TTL电平到RS232电平的转换,并用SN75176传输线驱动、接收器实现差分平衡型电路的转换,以增强电路的抗干扰能力。

3、软件设计

该时钟系统软件有89C51与DS1307之间的数据交换、与PC机的串行通讯、按键时间调整及显示程序4大部分构成。下面择其主要程序简单介绍如下:

(1) 89C51对DS1307数据读、写操作

该程序是整个时钟电路的核心部分。利用单片机的P1.6,P1.7 I/O口,根据DS1307的数据传输格式用软件实现数据的读写操作;下面给出对DS1307进行写操作的部分参考子程序。

发送起始位子程序SAT:


(2) 与PC机的串行通讯

软件功能 PC机将键盘输入的字符发送给单片机,单片机接受PC机发来的数据后回送同一数据给PC机,并在屏幕上显示出来。

通讯约定 波特率设置。

数据格式 8个数据位,一个停止位。

传送方式 PC机采用查询方式收发数据,单片机采用中断方式接收数据。

(3) 单键时间调整

软件功能 为节省单片机资源用单键方式实现时间的调整,即利用89C51的中断0实现中断。

当有键按下时,首先由秒显示闪烁,表示可以对秒进行调整,闪烁一定时间(如5 s),在此时间内如接收不到调整信号,则自动闪烁下一位,直至年调整为止。

4、结语

本文选择实时时钟芯片DS1307和单片机89C51设计了一个日历时钟系统,该系统体积小,具有RS485接口,通用性强、调时方便。已在许多智能显示屏中得到成功应用,也可用于实时测控系统。

关键字:DS1307  串行时钟  单片机

来源: 互联网 引用地址:http://www.eeworld.com.cn/mndz/article_2018012726922.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:巴特沃斯滤波器matlab实现
下一篇:基于ARM和DS1307的实时时钟系统设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

DS1302时钟与LCD1602液晶显示

    DS1302是一个实时时钟芯片,它在实时显示时间中应用。它可以对年、月、日、周、时、分、秒进行计时。DS1302的引脚及原理图如下:    它与CPU的连接需要SCLK(7)、I/O(6)和RST(5)三个引脚,VCC2和VCC1分别为主电源和备份电源,X1和X2分别接外部振荡器。在于CPU的通信中I/O用来传输数据,RST作为复位信号,SCLK用来控制数据字节的读写。DS1302的读写时序如下:    程序中对芯片的操作主要是参考芯片的时序状态,时序中说明只要有对数据的操作RST就需要置1,在读数据的前8个时钟中在SCLK处于高电平的过程中会获取控制字信息
发表于 2018-06-25 21:56:15
DS1302时钟与LCD1602液晶显示

stm32+DS1302+TM1638驱动程序

number which has been pressed*params       : none*return       : the number of the key. 0-8.  "return 0" represents no key has been pressed.***********************************************************************************************/2.DS1302与STM322.1硬件连接   Vcc--
发表于 2018-06-25 21:52:54

STM32与DS1302的接口电路

(1)硬件 CLK---PA4,  DAT--- PA5, RST--- PA6(2)硬件初始化 CLK与RST均为输出,而DAT是开漏型的输出。因为在这种方式下,IO口的读仍然存在,因此是真正的双向IO模式。/*DSCK -PA4 DAT PA5 RST DAT*/#define ds1302Clk GPIO_Pin_4   //与时钟线相连的芯片的管脚#define ds1302Dat GPIO_Pin_5   //与数据线相连的芯片的管脚#define ds1302Rst GPIO_Pin_6   //与复位端相连的芯片的管脚/* PA 4,6,为输出*/ 
发表于 2018-06-25 21:52:13

一个完整的DS1302时钟在STM32上的应用实例

一个完整的DS1302时钟在STM32上的应用    /*DS1302时钟芯片*/  uint8_t read[] = {0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};//读秒、分、时、日、月、周、年的寄存器地址   uint8_t write[] = {0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//写秒、分、时、日、月、周、年的寄存器地址  uint8_t start_time2[8]={0,0,10,5,5,6,18};//初始化时间:2018年5月5号10:00:00星期六   
发表于 2018-06-25 21:51:37

STM32与DS1302设计时钟芯片,超详细

DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES 复位(2)I/O 数据线(3)SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mWDS1302 是由DS1202 改进而来增加了以下的特性:双电源
发表于 2018-06-25 21:50:57
STM32与DS1302设计时钟芯片,超详细

基于STM32的DS1302时钟芯片驱动

/************************************************************************************************************************** 函数 : DS1302.H* 功能 :  DS1302头文件* 参数 :  无* 返回 :  无* 依赖 :  底层读写函数* 最后修改时间 : * 说明 : DS1302采用GPIO模拟SPI的方式DS1302 LSB格式,上升沿写 下降沿读  BCD码存储* 参考
发表于 2018-06-25 21:49:52

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved