AVR单片机实现SD2405 IIC通信显示时间于数码管

需积分: 9 6 下载量 120 浏览量 更新于2024-09-13 收藏 4KB TXT 举报
本篇文档主要介绍了如何利用AVR单片机通过IIC(Inter-Integrated Circuit)总线与SD2405时钟芯片进行通信,以实现时间的读取并在数码管上显示。SD2405是一款具有日期和时间功能的实时时钟芯片,常用于需要实时时间显示的嵌入式系统中。 首先,作者引用了GCC编译器下的GccApplication1.c文件,这个文件创建于2016年7月15日。AVR单片机的编程通常涉及到头文件<avr/io.h>,该文件包含了对寄存器和特殊功能寄存器的定义,以及<util/delay.h>头文件,用于延时控制,确保通信稳定。 在IIC通信中,使用了一系列宏定义来设置I2C的不同状态和地址位。例如,SLA_W0x64和SLA_R0x65分别对应写和读操作的数据寄存器地址;START、RE_START、MT_SLA_ACK等定义了不同的控制信号,如开始、重复开始、发送地址时确认信号等。这些宏帮助简化了代码,并提供了清晰的控制逻辑。 函数`Start()`和`Stop()`用于启动和停止I2C通信,而`Wait()`则用于检查是否有中断发生。`TestAck()`用于检测接收到的ACK(应答)信号,`SetAck()`和`SetNoAck()`用于设置发送或接收数据时是否期望ACK。`Twi()`函数负责基本的I2C传输操作,`Write8Bit()`用于写入8位数据到SD2405。 核心部分是`led_disp(ucharn)`函数,它将一个字符转换为LED数码管显示所需的编码。通过`switch`语句,根据输入的n值(未在给定部分展示),选择相应的LED代码并存储在临时变量temp中。这表明该函数可能负责处理从SD2405获取的时间数据,并将其格式化为适合数码管显示的形式。 这篇文档详细描述了如何使用AVR单片机通过IIC接口与SD2405时钟芯片交互,包括初始化通信、设置地址和控制信号、数据传输以及时间数据显示的具体步骤。这对于理解如何在AVR平台上实现简单的时间同步和显示应用非常有用。
2021-04-22 上传
SD2405AL实时时钟模块介绍: SD2400系列是一种具有内置晶振、支持IIC串行接口的高精度实时时钟芯片,CPU可使用该接口通过5位地址寻址来读写片内32字节寄存器的数据(包括时间寄存器、报警寄存器、控制寄存器、通用SRAM寄存器)。 SD2400系列内置晶振,该芯片可保证时钟精度为±5ppm(在25℃下),即年误差小于2.5 分钟;该芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的偏差(分辨力3ppm),通过外置或内置的数字温度传感器可设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能。 SD2400系列内置的一次性工业级电池或充电电池可保证在外部掉电情况下时钟使用寿命为5~8年时间;内部具备电源切换电路,当芯片检测到主电源VDD掉到电池电压以下,芯片会自动转为由备电电池供电。 SD2400系列内置单路定时/报警中断输出,报警中断时间最长可设至100年;内置频率中断输出和倒计时中断输出。 SD2400系列采用了多种提高芯片可靠性的技术,可满足对实时时钟芯片的各种需要,是在选用高精度实时时钟时的理想选择。 该模块采用Gadgeteer接口,同时很好的兼容Arduino(UNO、MegaDue等)和Maple系列控制板,也可与其他微控制器协同使用。 SD2405AL实时时钟模块特性: 低功耗: 1.0μA 典型值(时钟电路部分,Ta=25℃)。 工作电压:3.3V~5.5V,工作温度:民用级0℃~70℃,工业级-40℃~85℃。 标准IIC总线接口方式, 时钟电路最高速度400KHZ(4.5V~5.5V)。 年、月、日、星期、时、分、秒的BCD码输入/输出,并可通过独立的地址访问各时间寄存器 闰年自动调整功能(从2000年~2099年)。 可选择12/24小时制式. 内置年、月、日、星期、时、分、秒共7字节的报警数据寄存器及1字节的报警允许寄存器。 内置12字节通用SRAM寄存器可用于存储用户的一般数据。 三种中断均可选择从INT脚输出,并具有两个中断标志位. 可设定并自动重置的单路报警中断功能(时间范围最长设至100年),年、月、日、星期、时、分、秒报警共有96种组合方式,并有单事件报警和周期性报警两种中断输出模式. 周期性频率中断输出:从32768Hz~1/16Hz……1秒共十五种方波脉冲. 自动重置的8位倒计时定时器,可选的4种时钟源(4096HZ、64HZ、1HZ、1/60HZ)。 内置晶振,出厂前已对时钟进行校准,时钟精度为±5ppm(在25℃±1℃下),即年误差小于2.5 分钟。 内置时钟精度数字调整功能,可通过程序来调整走时的快慢。用户采用外置或内置的温度传感器,设定适应温度变化的调整值,可实现在宽温范围内高精度的计时功能(在-10℃~50℃小于5 ppm, 在-40℃~85℃小于10ppm)。 内置备电自动切换功能 ,芯片依据不同的电压自动从VDD切换到VBAT或从VBAT切换到VDD。 在VBAT模式下,芯片具有中断输出允许或禁止的功能,可满足在备用电池供电时输出中断的需要。 内置的充电电池及充电电路,累计电池电量超过550mAh,电池使用寿命为5~8年时间;内置的一次性民用级电池使用寿命为3~5年,一次性工业级电池使用寿命为5~8年时间。 内置的16kbit~256kbit非易失性SRAM(C/D/E型),其读写次数为100亿次,且内部写延时小于300ns。 内置的2kbit~256kbitE2PROM(F/B/C/D/E型),其擦写次数100万次 内置IIC总线0.5秒自动复位功能(从Start命令开始计时),保证时钟数据的有效性及可靠性,避免总线挂死问题。 内置三个时钟数据写保护位, 避免对数据的误写操作,可更好地保护时钟数据。 内置VBAT模式IIC总线通信禁止功能,从而避免在电池供电时CPU对时钟操作所消耗的电池电量,也可避免在主电源上、下电的过程中因CPU的I/O端口所输出的不受控的杂波信号对时钟芯片的误写操作,进一步提高时钟芯片的可靠性。 内置上电复位电路及指示位;内置电源稳压,内部计时电压可低至1.5V。 芯片管脚抗静电(ESD)>4KV。 外形尺寸:36x31x14mm 实物购买链接:https://item.taobao.com/item.htm?spm=2013.1.20141001.2.LgLOhp&id=17280765860&scm=1007.10115.36023.100200300000000&pvid=5ade1258-3a58-432a-90dd-c2c12ae31961&idnum=0