用C51驱动RTC模块DS3231SN

老小孩
原创
发布时间: 2025-07-03 16:16:43 | 阅读数 0收藏数 0评论数 0
封面
在电子DIY中经常会用到RTC模块来获取精确的时间,今天这篇文章就说一下DS3231SN模块,并用C51驱动它。DS3231是一个超高精度I2C实时时钟芯片,带有集成的温度补偿晶振。误差范围:温度范围为0摄氏度到40摄氏度(±2PPM),温度范围为-40摄氏度到85摄氏度(±3.5PPM,每天±0.432秒)。包含时钟(24小时格式或12小时格式)、日历(年,月,日,星期)、两个可编程时间报警和一个可编程方波输出。

准备工作:

材料:

  1. 51最小系统板
  2. 0.96 mini OLED屏幕
  3. DS3231模块
  4. 杜邦线
1

连接硬件

用杜邦线连接各硬件

屏幕:

sbit IIC_SCL=P0^0;

sbit IIC_SDA=P0^1;

RTC:

sbit I2C1_SCL = P3^4;

sbit I2C1_SDA = P3^5;


2

编写屏幕驱动

需要写的函数:

IIC开启函数

IIC停止函数

IIC写字节函数

IIC写命令函数

设置OLED坐标函数

清屏函数

显示8X16字符串函数

屏幕初始化函数


3

编写RTC驱动

因为它也是IIC驱动的,所以也的写IIC的驱动,注意跟屏幕的IIC区分名称。需要写的函数:

IIC开启函数

IIC停止函数

IIC写字节函数

IIC写命令函数

向DS3231写寄存器函数

从DS3231读寄存器函数

设置RTC时间函数

获取RTC时间函数

延时函数

4

编写main.c

主要是初始化屏幕,初始化DS3231,先给RTC设置个初始化时间,然后在主循环中间隔1秒获取时间,并显示在OLED屏幕上。

5

调试看结果

调试程序,解决BUG,烧录到系统板上,看结果。文件在附件。

RAR
DS3231.rar
58.97KB
阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载