单片机与sd2405日历钟间i2c通讯汇编编程毕业设计论文(编辑修改稿)内容摘要:

的范围内校正时钟的偏差 (189ppm~ +189ppm,分辨力为 ),并通过外置的温度传感器可设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能。 SD2405 特性 : A 典型值 (内部电池供电, Ta=25℃ )。 : ~ ,工作温度: 40℃~ +85℃。 IIC 总线接口方式,最高速度 400KHZ(~ )。 、月、日、星期、时、分、秒的 BCD 码输入 /输出,并可通过独立的地址访问各时间寄存器。 (从 2020 年~ 2099 年 )。 12/24 小时制式 . 、月、日、星期、时、分、秒共 7 字节的报警数据寄存器及 1 字节的报警允许寄存器。 12 字节通用 SRAM 寄存器可用于存储用户的一般数据。 INT 脚输出,并具有两个中断标志位 . (时间范围最长设至 100 年 ),年、月、日、星期、时、分、秒报警共有 96 种组合方式,并有单事件报警和周期性报警两种中断输出模式 . :从 32768Hz~ 1/16Hz„„ 1 秒共十五种方波脉冲 . 8 位倒计 时定时器,可选的 4 种时钟源 (4096HZ、 64HZ、 1HZ、1/60HZ)。 ,可通过程序来调整走时的快慢。 用户采用外置的温度传感器,设定适应温度变化的调整值,可实现在宽温范围内高精度的计时功能。 :芯片依据不同的电压自动从 VDD 切换到 VBAT或从 VBAT 切换到 VDD。 华南理工大学毕业设计(论文) 8 VBAT 模式下,芯片具有中断输出允许或禁止的功能,可满足在备用电池供电时输出中断的需要。 IIC 总线 秒自动复位功能 (从 Start 命令开始计时 ),保证时钟数 据的有效性及可靠性,避免 IIC 总线挂死问题。 ,避免对数据的误写操作,可更好地保护时钟数据。 VBAT 模式 IIC 总线通信禁止功能,从而避免在电池供电时 CPU 对时钟操作所消耗的电池电量,也可避免在主电源上、下电的过程中因 CPU 的 I/O端口所输出的不受控的杂波信号对时钟芯片的误写操作,进一步提高时钟芯片的可靠性。 ,内部计时电压可低至。 (ESD)4KV。 过 4KV的群脉冲 (EFT)干扰。 ,出厂前已对时钟进行校准,时钟精度为177。 5ppm(在 25℃177。 1℃下 ),即年误差小于 分钟。 ,累计电池电量超过 550mAH,电池使用寿命为 5~8 年时间。 : 16 脚的 DIP 封装, SD2405API 为工业级型号。 SD2405 管脚说明 图 23 SD2405管脚图 表 21 SD2405AP 管脚功能表 脚号 名称 功能 特征 16 NC 没有与芯片内部连接 悬空或接地 2 TEST 内部电池电压测试脚,其电池通过 100K 电阻输出到该脚 悬空 (不可与其它脚相连,仅用于测试 ) 华南理工大学毕业设计(论文) 9 8 GND 负电源 (GND) 9 SDA 串行数据输入 /输出脚,此管脚通常用一电阻上拉至 VDD,并与其它漏极开路或集电器开路输出的器件通过线与方式连接 . N 沟道开路输出, CMOS 输入;当芯片由内部后备充电电池供电时,该引脚功能被禁止 . 10 SCL 串行时钟输入脚,由于在 SCL 上升 /下降沿处理信号,要特别注意 SCL 信号的上升 /下降升降时间,应严格遵守说明书。 CMOS 输入 . 当芯片由内 部 后备充电电池供电时,该引脚功能被禁止 . 11 INT 报警中断输出脚,根据控制寄存器来设置其工作的模式,它可通过重写控制寄存器来禁止 . N沟道开路输出 12 VDD 正电源 ~ 15 VOUT 稳压输出脚 可供电流≤ 30mA,电压 精度 177。 2% 电路连接图 (1)ATmega8515 芯片电路 图 24 ATmega8515 芯片电路 华南理工大学毕业设计(论文) 10 (2)SD2405 时钟芯片电路 图 25 SD2405 时钟芯片电路 (3)电源电路 图 26 电源电路 (4)复位和晶振电路 图 27 复位和晶振电路 华南理工大学毕业设计(论文) 11 (5)显示电路 图 27 显示电路 华南理工大学毕业设计(论文) 12 第三章 基于 Atmega8515 日历时钟软件电路的设计 IIC 总线 串行 IIC 接口 SD2405AP 通过两线式 IIC 串行接口方式接收各种命令并读写数据。 两线式串行 IIC 接口方式描述如下: (1)开始条件 当 SCL 处于高电平时, SDA 由高电平变成低电平时构成一个开始条件,对SD2405AP 的所有操作均必须由开始条件开始。 (2)停止条件 当 SCL 处于高电平时, SDA 由低电平变成高电 平时构成一个停止条件,此时 SD2405AP 的所有操作均停止,系统进入待机状态。 图 31 实时时钟的串行接口 (3)数据传输 当 SCL为低电平,且 SDA线电平变化时,则数据由 CPU传输给 SD2405AP(高位在前、低位在后,下同 );当 SCL 为高电平,且 SDA 线电平不变时,则 CPU读取 SD2405AP发送来的数据;当 SCL 为高电平,且 SDA电平变化时, SD2405AP收到一个开始或停止条件。 图 32 实时时钟数据传输时序 华南理工大学毕业设计(论文) 13 (4)确认 数据传输以 8 位序列进行。 SD2405AP 在第九个时 钟周期时将 SDA 置位为低电平,即送出一个确认信号 (Acknowledge bit,以下简称“ ACK” ),表明数据已经被其收到。 图 33 实时时钟确认信号 数据 /指令传输格式 当 CPU 发出开始条件与实时时钟建立连接后, CPU 首先通过 SDA 总线连续输出 7 位器件地址和 1 位读 /写指令来唤醒 SD2405AP. (1)器件代码: 其中高 7 位 BIT7~BIT1 称“器件代码”,它代表实时时钟的器件地址,固定为“ 0110010”; BIT0 为读 /写位,” 1”为读操作,” 0”为写操作。 (2)数据传输格 式: 在数据发送 /接收时停止信号到来时,将结束其数据传输,同时内部五位地址归零 (注:内部五位地址的缺省值为 00000B).如果只有开始信号,而没有结束信号,接着重新产生起始信号,则还要重新设置器件代码 (在传输方向需要改变时,就用这种传输方式,如下面的读数据方式 1). 主设备向从设备写入数据过程图 主设备向从设备直接读取数据过程图 华南理工大学毕业设计(论文) 14 数据传输时改变其传输方向过程图 (3)SD2405AP 数据传输的写模式 先送 7 位器件地址 (0110010),第 8 位送入写命令 (“ 0” ),第 9 位是 SD2405AP 的 响应位 (ACK), SD2405AP 进入写状态; 接下来一个字节,高 3 位是传输模式 (写状态时,传输模式定义为” 000” ),低 5 位确定 SD2405AP 的内部地址 (00H~1FH),第 9 位是 SD2405AP 的响应位; 开始写数据,每写完 1 个字节的数据之后,都经过 1 位的响应信号才能写下1 字节的数据;如果要结束写数据过程,则在 ACK 后送出停止命令即可 . SD2405AP 写数据示例 (向 14H, 15H 地址写数据 ): 1.除了 WRTC WRTC WRTC3 三个写允许位,对寄存器 (00H~1FH)的写操作必 须确认芯片处于写允状态,否则写无效 . 2.写时间同步:每次对实时时间寄存器的写操作时,都会对秒以下的内部计数器清零,使时间同步。 3.从当前地址开始,每次读写完一个字节地址自动加 1 直到 1FH,读写完华南理工大学毕业设计(论文) 15 1FH 后地址自动加 1 后为 00h. 4.如果写入的时间数据不存在,则不改写相对应的时间寄存器的值 . 5.为了提高数据的可靠性,当写完成后,应将芯片置于写禁止状态。 (4)SD2405AP数据传输的读模式 SD2405AP 有两种读数据方法: I)读方法 1:从指定的内部地址中读取数据与写模式的前两步一样;重新发出开始命 令以改变两线接口数据传输方向;再送 7 位器件地址 (0110010),第 8位送入读命令 (“ 1” ),第 9 位是 SD2405AP 的响应位 (ACK), SD2405AP 进入读状态;开始读数据,每读完 1 个字节的数据之后, CPU 都要送出 1 位的响应信号 (ACK,低电平 )才能读下 1 字节的数据;如果想要结束读数据过程,则 CPU要送出 1 位的响应信号 (ACK_,高电平 ), ACK_后送出停止命令即可 . SD2405AP 读数据方法 1 示例 (从 7H~9H 地址读取数据 ): II)读方法 2:直接读取数据 (从内部地址 00h 开始 ) 开始信号 后,先送 7 位器件地址 (0110010),第 8 位送入读命令 (“ 1” ),第9 位是 SD2405AP 的响应位 (ACK), SD2405AP 进入读状态;每读完 1 个字节的数据之后, CPU都要送出 1 位的响应信号 (ACK,低电平 )才能读下 1 字节的数据;如果想要结束读数据过程,则 CPU要送出 1 位的响应信号 (ACK_,高电平 ), ACK_后送出停止命令即可 . SD2405AP 读数据方法 2 示例 (从 00H 地址开始读取数据 ): 华南理工大学毕业设计(论文) 16 SD2405 寄存器 图 31 SD2405 寄存器列表 实时时钟数据寄存器是 7 字节的存储器,它以 BCD 码方式存贮包括年、月、日、星期、时、分、秒的数据。 年数据 [06H 地址 ](00~99):设置千年 (20XX)的后两位数字 (00~99),通 过自动日历功能计至 2099 年。 (注意: 2020 年 为闰年 ) 月数据 [05H 地址 (01~12): 每月包含的天数通过自动日历功能来更改。 1, 3, 5, 7, 8, 10, 12: 1~31 4, 6, 9, 11: 1~30 2(闰年 ): 1~29 2(普通 ): 1~28 日数据 [04H 地址 ](01~31) 星期数据 [03H 地址 ](00~06):七进制计数器, 00 对应星期天, 01 对应星期 一,依次类推 . 小时数据 [02H 地址 ](00~23 或 00~11):小时的最高位 12_/24 是 12 或 24 小时制选择位。 华南理工大学毕业设计(论文) 17 当 12_/24=1 时, 24 小时制;当 12_/24=0 时, 12 小时制。 12 小时制时, H20 为 AM/PM 指示位, H20=0 为 AM, H20=1 为 PM, 见下表: (位 H20H10H8H4H2H1) 当读取小时数据时,要屏蔽掉小时的最高位 12_/24,否则在 24 小时制时会因为 12_/24=1 而显示不对 . 分数据 [01 地址 ](00~59) 秒数据 [00H 地址 ](00~59) 例如:设时间为 2020 年 12 月 20 日星期三 18 点 19 分 20 秒 (24 小时制 ),则寄存器 00~ 07H的赋值应分别为 20h、 19H、 98h、 03h、 20h、 12h、 06h。 要特别注意此处小时位的赋值,因为是 24小时制式,小时的 12_/24 位 =1,所以小时的赋值为 98h(1001 1000B)。 在上电复位时,芯片 内部不对实时时钟数据寄存器作清零或置位处理。 当芯片收到读实时时钟数据命令,则所有实时时钟数据被锁存 (时钟走时并不影响 ),此功能可以避免时间数据的错读现象。 程序流程图 华南理工大学毕业设计(论文) 18 A T M E G A 8 5 1 5 初 始 化S D 2 4 0 5 芯 片 初 始 化输 出 7 位 器 件 地 址 和 1 位 读 写 指 令M C U 读 取 A C K 信 号 是 否 为 “ 1 ”判 断 地 址 是 否 为 0 2 H小 时 数 据 去 除 前 3 位 保 留 真 实 数 据将 二 进 制 B C D 数 据 转 换 成 十 进 制 D E C 数 据M C U 发 送 N O A C K 信 号关 闭 S D 2 4 0 5 I I C 总 线 信 号将 数 据 保 存 在 数 组 里NYYN 华南理工大学毕业设计(论文) 19。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。