首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
单片机与串行时钟DS1307的接口设计
来源:本站整理  作者:佚名  2010-10-06 09:32:08



摘  要:在简单介绍串行时钟芯片DS1307的基础上,介绍了时钟电路的RS485接口设计。本文所设计的时钟电路具有体积小、抗干扰性能强、通用性好、调时方便等特点。
    关键词:串行时钟;接口;单片机;DS1307

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

1 串行时钟DS1307简介
   DS1307是I2C总线接口的日历时钟芯片,片内有8个特殊寄存器和56 B的SRAM,是一种低功耗、BCD码的8引脚实时时钟芯片。
    DS1307的主要技术性能如下:
    具有秒、分、时、日、星期、月、年的计数功能,并具有12小时制和24小时制计数模式, 可自动调整每月天数及闰年;
    具有自动掉电保护和上电复位功能;
    可输出不同频率的方波信号
    (1) DS1307的引脚排列图如图1所示。
    VCC:+5 V电源;
    VBAT:+3 V电池电源输入;
    X1,X2:32.768 kHz的晶振输入端;
    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指定的首地址(Word Address)依次写入N个字节数据,其格式为:

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

    其中:S为起始信号,1101000为DS1307的口地址,A应答信号,A非应答信号,P停止信号。
2时钟系统的硬件设计
    该系统由89C51单片机、时钟芯片DS1307,RS485接口电路及显示电路组成。主要原理框图如图3所示。


2.189C51部分
    本文利用89C51的P1.6,P1.7来模拟I2C总线的时钟线(SCL)和数据线(SDA)对时钟芯片DS1307的时钟数据进行读写操作,并把读来的数据送数码管显示。利用P3.0,P3.1实现串行输入输出,用P1.5来控制PC机输出数据对显示时间的影响,当P1.5=1时才允许显示传送,利用89C51的外部中断INT0对按键调整时间进行中断控制。
2.2DS1307部分
    通过DS1307的SDA,SCL将时钟芯片的00H~06H单元的秒、分、时、星期、日、月和年送到数码管显示。DS1307的写地址为11010000B,读地址为11010001B。
2.3RS485接口部分
    为便于远距离、高速率下的多机通信,采用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:

    发送一个字节数据子程序WRBYT;

    SETB P1.6
    CLR P1.6
    CLR P1.7
WLP1:DJNZ R0,WLP
    RET
发送应答信号子程序MACK:
MACK:CLRP1.7;
    SETB P1.6 ;
    CLR P1.7 ;
    SETB P1.6 ;
    RET
发送非应答信号子程序MNACK:
MNACK:SETB P1.7;
    SETB  P1.6 ;
    CLR  P1.7 ;
    CLR  P1.6 ;
    RET
    (2) 与PC机的串行通讯
    软件功能PC机将键盘输入的字符发送给单片机,单片机接受PC机发来的数据后回送同一数据给PC机,并在屏幕上显示出来。
    通讯约定波特率设置。
    数据格式8个数据位,一个停止位。
    传送方式PC机采用查询方式收发数据,单片机采用中断方式接收数据。
    (3) 单键时间调整
    软件功能为节省单片机资源用单键方式实现时间的调整,即利用89C51的中断0实现中断。
    当有键按下时,首先由秒显示闪烁,表示可以对秒进行调整,闪烁一定时间(如5 s),在此时间内如接收不到调整信号,则自动闪烁下一位,直至年调整为止。
4结语
    本文选择实时时钟芯片DS1307和单片机89C51设计了一个日历时钟系统,该系统体积小,具有RS485接口,通用性强、调时方便。已在许多智能显示屏中得到成功应用,也可用于实时测控系统。

参考文献

[1]江正战串行通信接口标准RS423/422/485及其应用[J]电子技术应用,1994
[2]北京四通股份公司工控二部内部资料串行时钟DS1307,DALLAS SEMIconductor

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:11,800.78000 毫秒