学物联网,来万物简单IoT物联网!!
一、产品简介
DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。
DS1302 与单片机之间能简单地采用同步串行的方式进行通信,只需要三个数据线:
(1)RST 复位
(2)I/O 数据线
(3)SCLK串行时钟
引脚定义
- VCC:3.3V
- GND:地
- CLK:时钟输出
- DAT:数据输入输出
- RST:复位引脚
二、技术参数
- 工作电压:2V-5.5V
- 接口简单:GPIO三线接口
- 工作温度:-40°C~85°C
- 低功耗:工作电压2V,电流300nA
- 电源供应:支持主电源和备份电源
- 电路板尺寸:4.4cm*2.3cm
三、软件接口
DS1302(o_clk, o_rst, dio_num) - 创建RTC时钟对象
- 函数原型
ds1302Obj = DS1302(o_clk, o_rst, dio_num)
- 参数说明
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
o_clk | Pin | 是 | 传入Pin对象 |
o_rst | Pin | 是 | 传入Pin对象 |
dio_num | Pin num | 是 | 传入Pin Num数 |
- 返回值
DS1302对象成功,返回DS1302对象;DS1302对象创建失败,抛出Exception
- 示例代码-无回调函数
from machine import Pin
import ds1302gpiodionum = 18
gpioclk = Pin(16 , Pin.OUT , Pin.PULL_DOWN)
gpiorst = Pin(17 , Pin.OUT , Pin.PULL_DOWN)
ds1302_obj = ds1302.DS1302(gpioclk,gpiorst,gpiodionum)
print('start init ds1302')
- 输出
start init ds1302
setDatetime() - 设置RTC时钟信息
- 函数功能:
设置RTC时钟信息
- 函数原型:
DS1302.setDatetime(data)
- 参数说明:
data日期格式分别为:年-月-日-时-分-秒-星期
- 返回值:
无
getDatetime() - 获取RTC时钟信息
- 函数功能:
获取RTC时钟信息
- 函数原型:
data = DS1302.getDatetime()
- 参数说明:
无
- 返回值:
成功返回data日期格式分别为:年-月-日-时-分-秒-星期
- 示例:
from machine import Pin
import ds1302gpiodionum = 18
gpioclk = Pin(16 , Pin.OUT , Pin.PULL_DOWN)
gpiorst = Pin(17 , Pin.OUT , Pin.PULL_DOWN)
ds1302_obj = ds1302.DS1302(gpioclk,gpiorst,gpiodionum)
print('start init ds1302')
ds1302_obj.getDatetime([2023, 6, 13 , 0, 0, 30, 1])
print(ds1302_obj.getDatetime())
- 输出
start init ds1302
[2023, 6, 13, 0, 0, 31, 1]
四、接口案例
- 案例代码
import utime # 延时函数在utime库中
from machine import Pin
import ds1302ds1302_obj = Nonedef ds1302_init():gpiodionum = 18gpioclk = Pin(16 , Pin.OUT , Pin.PULL_DOWN)gpiorst = Pin(17 , Pin.OUT , Pin.PULL_DOWN)ds1302_obj = ds1302.DS1302(gpioclk,gpiorst,gpiodionum)print('start init ds1302')if __name__ == '__main__':ds1302_init()ds1302_obj.setDatetime([2023, 6, 13 , 0, 0, 30, 1])while True:print(ds1302_obj.getDatetime())utime.sleep(1)
- 输出
start init ds1302
[2023, 6, 13, 0, 0, 31, 1]
[2023, 6, 13, 0, 0, 32, 1]
[2023, 6, 13, 0, 0, 33, 1]
[2023, 6, 13, 0, 0, 34, 1]
[2023, 6, 13, 0, 0, 35, 1]
[2023, 6, 13, 0, 0, 36, 1]
参考文献及购买链接
[1] RTC时钟模块购买链接