0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过RTC模块DS3231与MSP430连接来制作数字时钟

科技观察员 来源:circuitdigest 作者:里沙布·耆那教 2022-11-11 16:55 次阅读

在本教程中,我们将通过RTC模块DS3231与MSP430连接来制作数字时钟,并在16x2 LCD上显示时间和日期。MSP-EXP430G2 是德州仪器提供的开发工具,又名 LaunchPad,用于学习和练习如何使用其微控制器。该板属于 MSP430 超值系列类别,我们可以在其中对所有 MSP430 系列微控制器进行编程

所需材料:

MSP430

DS3231 RTC 模块

锅 -10k

液晶模块 16*2

连接线

面包板

什么是 RTC??

DS3231是RTC(实时时钟)模块。它用于维护大多数电子项目的日期和时间。该模块有自己的纽扣电池电源,即使主电源被移除或MCU经过硬复位,它也能保持日期和时间。因此,一旦我们在此模块中设置了日期和时间,它将始终跟踪它。RTC IC有几种类型可供选择,如DS1307、DS3231等。

pYYBAGNuDe6ASoKLAABklFhj4XI882.jpg

将DS3231 RTC与MSP430连接:

下面给出了基于MSP430微控制器的数字时钟的电路图。如前所述,DS3231在I2C通信的帮助下工作,因此它将有一个串行时钟(SCL)和一个串行数据(SDA)引脚,必须连接到MSP430上的I2C引脚,即引脚9(引脚2.1,SCL)和引脚10(引脚2.2,SDA)。

MSP430 提供 3.3V Vcc,但我们需要 5V 才能将其与 LCD 和 RTC 模块连接。因此,我们将使用一个技巧,在USB电缆连接器附近有一个名为TP1的跳线可用。您可以从那里获取 5V。

电路图:

poYBAGNuDfKAChVKAADGmgkhC84295.png

用于 RTC 模块的 MSP430 编程:

在这里,我们使用Energia IDE进行编程。它与Arduino IDE相同,易于使用。如果您不熟悉MSP和energia,请使用Energia IDE开始使用MSP。为了连接RTC模块,我们需要该板的库。从此链接下载 RTC 库并安装它。

我们还需要预装在Energia IDE中的Wire(用于I2C通信)和液晶库。

本文末尾给出了此 MSP430 数字时钟的完整代码。代码简单易懂。在这里,我们将解释其中的几个部分。

首先,我们必须包含必要的库。

以下库用于 RTC 模块和 MSP430 之间的 I2C 通信。SDA 和 SCK 引脚已在此库中定义,因此我们不必单独声明这些引脚。

#include

然后,我们包括用于RTC时钟的RTClib.h库和用于LCD功能的LiquidCrystal.h。

#include "RTClib.h"

#include

在此之后,我们必须创建一个实例来初始化我们的 RTC 模块。

RTC_DS3231 rtc;

然后制作一个大小为 7 的数组,并存储所有七天的名称。

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

以下是液晶显示器使用的MSP430的引脚声明:(RS(P2.0),EN(P1.4),D4(P1.5),D5(P2.3),D6(P2.4),D7(P2.5))

LiquidCrystal lcd(8 ,6, 7,11,12,13);

在void setup()中,我们已经初始化了LCD屏幕和RTC的接口,并指定了显示器的尺寸(宽度和高度),begin()需要在任何其他库命令之前调用。

void setup () {

lcd.begin(16, 2);

lcd.setCursor(3,0);

lcd.print("RTC Clock");

delay(3000);

lcd.clear();

rtc.begin();

// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

}

注意:在上述函数中,注释行很重要。如果未设置时间和日期,请取消注释该行并上传程序。此函数存储编译时计算机的时间,因此请确保计算机的时间正确。

现在,显示的时间是正确的,但存在一个问题,每次重新启动/重置微控制器时,LCD都会显示您上传代码的时间。这是因为 rtc.adjust() 函数已经存储了您计算机的时间,因此当您重置时,它会从该时间开始。

要解决此问题,请先上传带有 rtc.adjust() 函数未注释的程序。然后,立即评论同一行并再次上传程序。现在,您的日期和时间已设置,不会受到重置微控制器的影响。

在循环函数中,我们从RTC模块中获取日期和时间,并存储在现在调用的预定义变量中,并使用lcd.print()函数将其显示在LCD上。

void loop () {

DateTime now = rtc.now();

lcd.clear();

lcd.setCursor(3,0);

lcd.print(now.day(), DEC);

lcd.print("/");….

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • msp430
    +关注

    关注

    178

    文章

    2223

    浏览量

    228467
  • DS3231
    +关注

    关注

    2

    文章

    51

    浏览量

    23729
  • 数字时钟
    +关注

    关注

    2

    文章

    144

    浏览量

    20115
收藏 人收藏

    评论

    相关推荐

    如何利用DS3231构建一个基于Atmega16的数字挂钟

    在这里,我们将DS3231 RTC IC 构建一个基于 Atmega16 的数字挂钟。DS3231 RTC 内部有一个高精度晶体,因此不需要
    的头像 发表于 09-08 15:34 2841次阅读
    如何利用<b class='flag-5'>DS3231</b>构建一个基于Atmega16的<b class='flag-5'>数字</b>挂钟

    基于DS3231的高精度时钟接口设计

    【作者】:方洁;陈伟;【来源】:《电子设计工程》2010年02期【摘要】:为避免电路系统在上电或断电后出现计时不准确的异常状况,提出采用高精度时钟芯片DS3231的解决方案。介绍DS3231的特点
    发表于 04-24 09:01

    实时时钟芯片DS3231应用笔记,使用指南,FAQ全集

    合适的器件。本还重点讨论了内置MEMS谐振器的DS3231M,用于替代晶振方案。 实时时钟RTC DS323x高精度实时时钟的功耗考虑
    发表于 03-14 11:05

    【以前的小制作分享】基于ATMEGA16,DS3231DS18B20的高精度日历温度显示

    ,PA4,PA5连接。原理为模拟SPI。2.DS3231为IIC协议模块,SCL,SDA分别与MEGA16的PC0,PC1连接。原理为硬件IIC(TWI)。3.
    发表于 11-04 22:06

    DS3231的接线方法及源代码

    3.DS3231的接线方法 DS3231时钟模块,通信用的是IIC接口在这只用到DS3231时钟
    发表于 08-17 14:43

    DS3231时钟星期不对

    做了一个DS3231时钟,可是星期每次都不对,加上autoweek函数后,按键的的值就写不到DS3231中了,不加autoweek可以挑时间,可以走,就是星期不对。求解答? DS3231
    发表于 06-20 04:35

    DS3231时钟芯片结构

    目录一、模块简介DS3231时钟芯片结构原理引脚图内部结构图DS3231典型应用电路DS3231时钟
    发表于 08-09 06:31

    DS3231时钟芯片读写程序分享

    @[TOC](咚咚咚————【封装驱动】DS3231时钟芯片读写程序,分享交流自己编写的程序。/********************************************主控芯片
    发表于 12-13 07:14

    如何将DS3231 RTC模块与NodeMCU连接

    ESP8266智能灯项目​viadean.com接口如何将DS3231 RTC模块与NodeMCU连接。学习在串行监视器上设置和显示DS3231
    发表于 01-25 07:23

    DS3231高精度I2C实时时钟(RTC)

      DS3231是低成本、高精度I2C实时时钟(RTC),具有集成的温补
    发表于 11-12 09:17 4233次阅读
    <b class='flag-5'>DS3231</b>高精度I2C实时<b class='flag-5'>时钟</b>(<b class='flag-5'>RTC</b>)

    ds3231时钟模块怎么用_DS3231的操作与使用

    DS3231是一款高精度I2C实时时钟器件,具有集成的温度补偿晶体振荡器。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟
    发表于 01-29 11:23 10.1w次阅读
    <b class='flag-5'>ds3231</b><b class='flag-5'>时钟</b><b class='flag-5'>模块</b>怎么用_<b class='flag-5'>DS3231</b>的操作与使用

    nodemcu引脚_了解DS3231 RTC模块与NodeMCU的接口

    ESP8266智能灯项目​viadean.com接口如何将DS3231 RTC模块与NodeMCU连接。学习在串行监视器上设置和显示DS3231
    发表于 11-30 19:51 14次下载
    nodemcu引脚_了解<b class='flag-5'>DS3231</b> <b class='flag-5'>RTC</b><b class='flag-5'>模块</b>与NodeMCU的接口

    基于DS3231时钟模块的stm32 程序,源码

    目录一、模块简介DS3231时钟芯片结构原理引脚图内部结构图DS3231典型应用电路DS3231时钟
    发表于 01-18 10:06 94次下载
    基于<b class='flag-5'>DS3231</b><b class='flag-5'>时钟</b><b class='flag-5'>模块</b>的stm32 程序,源码

    IIC实时时钟模块DS3231 EEPROM开源

    电子发烧友网站提供《IIC实时时钟模块DS3231 EEPROM开源.zip》资料免费下载
    发表于 08-08 10:23 6次下载
    IIC实时<b class='flag-5'>时钟</b><b class='flag-5'>模块</b><b class='flag-5'>DS3231</b> EEPROM开源

    采用DS3231实时时钟模块制作的LCD时钟

    电子发烧友网站提供《采用DS3231实时时钟模块制作的LCD时钟.zip》资料免费下载
    发表于 10-31 09:18 8次下载
    采用<b class='flag-5'>DS3231</b>实时<b class='flag-5'>时钟</b><b class='flag-5'>模块</b><b class='flag-5'>制作</b>的LCD<b class='flag-5'>时钟</b>