在本教程中,我們將通過RTC模塊DS3231與MSP430連接來制作數字時鐘,并在16x2 LCD上顯示時間和日期。MSP-EXP430G2 是德州儀器提供的開發工具,又名 LaunchPad,用于學習和練習如何使用其微控制器。該板屬于 MSP430 超值系列類別,我們可以在其中對所有 MSP430 系列微控制器進行編程。
所需材料:
MSP430
DS3231 RTC 模塊
鍋 -10k
液晶模塊 16*2
連接線
面包板
什么是 RTC??
DS3231是RTC(實時時鐘)模塊。它用于維護大多數電子項目的日期和時間。該模塊有自己的紐扣電池電源,即使主電源被移除或MCU經過硬復位,它也能保持日期和時間。因此,一旦我們在此模塊中設置了日期和時間,它將始終跟蹤它。RTC IC有幾種類型可供選擇,如DS1307、DS3231等。
將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。
電路圖:
用于 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
+關注
關注
181文章
2405瀏覽量
230667 -
DS3231
+關注
關注
2文章
51瀏覽量
24044 -
數字時鐘
+關注
關注
2文章
153瀏覽量
20744
發布評論請先 登錄
如何利用DS3231構建一個基于Atmega16的數字掛鐘

基于DS3231的高精度時鐘接口設計
實時時鐘芯片DS3231應用筆記,使用指南,FAQ全集
DS3231時鐘星期不對
DS3231時鐘芯片讀寫程序分享
如何將DS3231 RTC模塊與NodeMCU連接
ds3231時鐘模塊怎么用_DS3231的操作與使用

nodemcu引腳_了解DS3231 RTC模塊與NodeMCU的接口

評論