很多电子爱好者都热衷制作电子时钟来练手,这些时钟会使用数码管、点阵屏、lcd液晶屏、oled屏、tft屏等显示模块,所使用的rtc时钟芯片也各不相同,ds1302、ds3231、ds12c887等。通过单片机等mcu驱动rtc模块,读取时间数据并交给显示模块进行展示,还可以加入按键来调节时钟,可以说是一个非常全面的练手项目。
本篇我们来学习ds1302的使用,通过库函数来驱动ds1302获取时间数据。
1
ds1302介绍
ds1302是使用非常广泛的rtc芯片,它是dallas公司推出的涓流充电时钟芯片,内部含有一个实时时钟/日历和31字节静态ram ,通过简单的串行接口与单片机进行通信。
主要特性
实时时钟具有能计算 2100 年之前的秒 分 时 日 日期 星期 月 年的能力 还有闰年调整的能力。31x8 位暂存数据存储 ram。串行 i/o 口方式使得管脚数量最少。宽范围工作电压 2.0-5.5v。读/写时钟或ram 数据时有两种传送方式单字节传送和多字节传送字符组方式。双电源管用于主电源和备份电源供应。管脚排列及描述
x1,x2:32.768khz晶振引脚gnd:地#rst:复位引脚i/o:数据输入/输出引脚sclk:串行时钟引脚vcc1:备用电源引脚,一般接纽扣电池vcc2:主电源引脚
管脚配置
我们使用的ds1302模块已经将ds1302时钟芯片和晶振及纽扣电池集中在一块小板子上
ds1302模块
2
安装驱动库
本篇使用ds1302库来驱动ds1302,无需关心ds1302的读写时序及内部寄存器相关信息。ds1302的驱动库也非常多,这里使用msparks提供的库。
将下载到的库进行解压,然后拷贝到arduino ide安装目录下的libraries文件夹下。
安装库
3
实验材料
uno r3开发板配套usb数据线公对母杜邦线ds1302模块4
实验步骤
1. 根据原理图搭建电路图。ds1302模块的vcc和gnd连接uno开发板的3.3v和gnd。ds1302模块的clk、dat、rst对应连接uno开发板的4、3、2引脚。
实验原理图如下图所示:
实验原理图
2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。#include ds1302 rtc(2, 3, 4); //对应ds1302的rst,dat,clkvoid initrtctime(void)//初始化rtc时钟{ rtc.writeprotect(false); //关闭写保护 rtc.halt(false); //清除时钟停止标志 time t(2020, 4, 25, 21, 50, 50, 7); //新建时间对象 最后参数位星期数据,周日为1,周一为2以此类推 rtc.time(t);//向ds1302设置时间数据}void printtime()//打印时间数据{ time tim = rtc.time(); //从ds1302获取时间数据 char buf[50]; snprintf(buf, sizeof(buf), %04d-%02d-%02d %02d:%02d:%02d, tim.yr, tim.mon, tim.date, tim.hr, tim.min, tim.sec); serial.println(buf);}void setup() { serial.begin(9600); //新模块上电需要设置一次当前时间, //下载完成后需屏蔽此函数再次下载,否则每次上电都会初始化时间数据 initrtctime();}void loop() { printtime(); delay(1000);}3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。
程序下载
5
实验现象
打开串口监视器,波特率设置成与程序中一致的9600,会看到输出时间数据。
实验现象
由于我们的ds1302模块带有纽扣电池来作为备用电池,当模块主供电vcc掉电后,走时也不会停止。你可以将开发板断电等待一些时间重新上电,再次打开串口监视器可以看到时间并没有停止。
AN-621: AD9832/AD9835的编程
嵌入式电脑的软硬件是如何来进行组合的
娃哈哈成立了一家智能机器人公司,宗庆后为法定代表人
SK-219再生式短波收音机,short wave radio
现代摩比斯研发出全球首款汽车QL Display
通过库函数来驱动DS1302获取时间数据
微型气象传感器优势分析
远景集团助推新加坡“智慧国度”战略
如何利用纳米光学天线的定向散射光场实现亚纳米位移感测的技术指标
从服务机器人到无人驾驶,这家企业赋能智能时代无限想象
量子计算机赛道上从不缺优秀竞争者,谁会是这场马拉松的最后赢家?
Linux内核观测技术eBPF中文入门指南
Allegro MicroSystems推出针对中/大型显示器的新型LED背光驱动器
fireflyAIO-3288J主板编译Ubuntu16.04固件简介
ta8659 8759的各引脚功能及电压
DBC陶瓷基板市场现状及未来发展趋势
海尔智家海外持续增长的“内生动力”是啥?
微雪电子转以太网模块RS232/485 TO ETH介绍
USB PD技术解析:从电源到设备,为快速充电提供支持
变压器绕组变形测试仪接线及操作步骤