在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino篇—實時時鐘

冬至子 ? 來源:X的創客課堂 ? 作者:MRXY ? 2023-11-01 16:49 ? 次閱讀

學習目標

相關知識

DS1307時鐘模塊: DS1307串行實時時鐘(RTC)是低功耗,全二進制編碼的十進制(BCD)時鐘/日歷以及56字節的NV SRAM。地址和數據通過I2C雙向總線串行傳輸。時鐘/日歷提供秒,分鐘,小時,日期,日期,月份和年份信息

RTC模塊的接線:

圖片

I2C總線協議: 集成電路總線,它是一種串行通信總線,使用多主從架構。I2C總線只有兩根雙向信號線。一根是數據線SDA,另一根是時鐘線SCL。SCL:上升沿將數據輸入到每個EEPROM器件中;下降沿驅動EEPROM器件輸出數據。(邊沿觸發)

圖片

BCD碼: 用4位二進制數來表示1位十進制數中的0~9這10個數碼,是一種二進制的數字編碼形式,用二進制符號來表示十進制數。BCD碼有:8421碼、5421碼、2421碼等多種類型。

8421碼示例:

圖片

電路搭建

所需材料

ArduinoUNO * 1
DS1307 RTC模塊 * 1
LCD1602液晶顯示屏 * 1
電位器 * 1
杜邦線若干

電路連接

圖片

程序編寫

練習一:時間設置

如圖連接電路后,編寫程序實現將RTC模塊進行當前時間設置。

這里我們直接調用了DS1307RTC.h這個庫文件里面的例子實現校準時間的功能。

#include < Wire.h >
#include < TimeLib.h >
#include < DS1307RTC.h >
const char *monthName[12] = {
  "Jan", "Feb", "Mar", "Apr", "May", "Jun",
  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
tmElements_t tm;
void setup() {
  bool parse=false;
  bool config=false;


  // get the date and time the compiler was run
  if (getDate(__DATE__) && getTime(__TIME__)) {
    parse = true;
    // and configure the RTC with this info
    if (RTC.write(tm)) {
      config = true;
    }
  }


  Serial.begin(9600);
  while (!Serial) ; // wait for Arduino Serial Monitor
  delay(200);
  if (parse && config) {
    Serial.print("DS1307 configured Time=");
    Serial.print(__TIME__);
    Serial.print(", Date=");
    Serial.println(__DATE__);
  } else if (parse) {
    Serial.println("DS1307 Communication Error :-{");
    Serial.println("Please check your circuitry");
  } else {
    Serial.print("Could not parse info from the compiler, Time="");
    Serial.print(__TIME__);
    Serial.print("", Date="");
    Serial.print(__DATE__);
    Serial.println(""");
  }
}


void loop() {
}


bool getTime(const char *str)
{
  int Hour, Min, Sec;


  if (sscanf(str, "%d:%d:%d", &Hour, &Min, &Sec) != 3) return false;
  tm.Hour = Hour;
  tm.Minute = Min;
  tm.Second = Sec;
  return true;
}


bool getDate(const char *str)
{
  char Month[12];
  int Day, Year;
  uint8_t monthIndex;


  if (sscanf(str, "%s %d %d", Month, &Day, &Year) != 3) return false;
  for (monthIndex = 0; monthIndex < 12; monthIndex++) {
    if (strcmp(Month, monthName[monthIndex]) == 0) break;
  }
  if (monthIndex >= 12) return false;
  tm.Day = Day;
  tm.Month = monthIndex + 1;
  tm.Year = CalendarYrToTm(Year);
  return true;
}

練習二: 可顯示的時鐘

在LCD1602上實時顯示時間。

/*項目名稱:實時時鐘
 *項目時間:2022.03.14
 *項目作者:MRX
 */
#include < Wire.h >
#include < TimeLib.h >
#include < DS1307RTC.h >
#include < LiquidCrystal.h >
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


void setup() {
lcd.begin(16,2);
}


void loop() {
tmElements_t tm;
lcd.clear();
if (RTC.read(tm))
{
if(tm.Hour >=12)
{
lcd.setCursor(14,0);
lcd.print("PM");
}
if(tm.Hour< 12)
{
lcd.setCursor(14,0);
lcd.print("AM");
}
lcd.setCursor(0,0);
lcd.print("TIME:");
lcd.print(tm.Hour);
lcd.print(":");
lcd.print(tm.Minute);
lcd.print(":");
lcd.print(tm.Second);
lcd.setCursor(0,1);
lcd.print("DATE:");
lcd.print(tm.Day);
lcd.print("/");
lcd.print(tm.Month);
lcd.print("/");
lcd.print(tmYearToCalendar(tm.Year));
} else {
if (RTC.chipPresent()) {
lcd.setCursor(0,0);
lcd.print("RTC stopped!!!");
lcd.setCursor(0,1);
lcd.print("Run SetTime code");
} else {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Read error!");
lcd.setCursor(0,1);
lcd.print("Check circuitry!");
}
delay(500);
}
delay(500);
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 實時時鐘
    +關注

    關注

    4

    文章

    245

    瀏覽量

    65784
  • RTC
    RTC
    +關注

    關注

    2

    文章

    538

    瀏覽量

    66528
  • Arduino
    +關注

    關注

    188

    文章

    6469

    瀏覽量

    187069
  • SRAM芯片
    +關注

    關注

    0

    文章

    65

    瀏覽量

    12070
  • DS1307
    +關注

    關注

    1

    文章

    34

    瀏覽量

    14135
收藏 人收藏

    評論

    相關推薦

    STM32 RTC實時時鐘(一)

    STM32處理器內部集成了實時時鐘控制器(RTC),因此在實現實時時鐘功能時,無須外擴時鐘芯片即可構建實時時鐘系統。
    的頭像 發表于 07-22 15:41 ?4708次閱讀
    STM32 RTC<b class='flag-5'>實時時鐘</b>(一)

    【自制】Arduino:oled0-96實時時鐘顯示(mini桌面時鐘part12

    實時時鐘Arduino
    新創司XLOT
    發布于 :2022年03月01日 16:24:34

    FRDM-KL25Z系列講座之實時時鐘RTC

    大家好,附件里是FRDM-KL25Z系列講座之實時時鐘RTC
    發表于 05-07 22:33

    轉:基礎27--劉洋邊講邊寫STM32 .RTC實時時鐘實驗

    【眾想】大黃蜂STM32視頻教程 ----劉洋邊講邊寫基礎27--RTC實時時鐘實驗http://www.stmcu.org/module/forum/thread-606955-1-1.html
    發表于 07-23 16:15

    實時時鐘是什么

    定義:實時時鐘的縮寫是RTC(Real Time Clock).實時時鐘是一個獨立的定時器。RTC模塊擁有一組連續計數的計數哭奮,在相應軟件配置下,可提供時鐘日歷的功能。修改計數器的值可以重新設置系統當前的時間和日期。...
    發表于 08-09 06:18

    實時時鐘模DS1302程序列子

    實時時鐘模DS1302程序列子     /*********************************************************************//* 實時時鐘模塊
    發表于 07-08 16:26 ?142次下載

    ARM基礎應用實驗_實時時鐘

    ARM嵌入式應用程序架構設計實例精講--ARM基礎應用實驗03實時時鐘
    發表于 07-08 11:08 ?0次下載

    基于實時時鐘模塊 時鐘芯片DS1302

    基于實時時鐘模塊 時鐘芯片DS1302
    發表于 10-16 11:35 ?40次下載
    基于<b class='flag-5'>實時時鐘</b>模塊 <b class='flag-5'>時鐘</b>芯片DS1302

    實時時鐘芯片應用

    對于一些測控系統或者手持式設備,經常需要顯示以及設定時間。目前,市場上有多種實時時鐘芯片提供了這類功能。這種可編程的實時時鐘芯片內置了可編程的日歷時鐘以及一定的RAM存儲器,用于設定以及保存時間
    發表于 03-16 15:31 ?14次下載
    <b class='flag-5'>實時時鐘</b>芯片應用

    實時時鐘的硬件結構_實時時鐘故障怎么解決

     實時時鐘的縮寫是RTC(Real_Time Clock)。RTC 是集成電路,通常稱為時鐘芯片。
    的頭像 發表于 11-16 17:10 ?7165次閱讀
    <b class='flag-5'>實時時鐘</b>的硬件結構_<b class='flag-5'>實時時鐘</b>故障怎么解決

    Arduino的實驗例程之實時時鐘DS1302的詳細資料說明

    本文檔的主要內容詳細介紹的是Arduino的實驗例程之實時時鐘DS1302的詳細資料說明免費下載。
    發表于 03-01 11:42 ?25次下載

    淺談RTC實時時鐘特征與原理

    一、RTC實時時鐘特征與原理 查看STM32中文手冊 16 實時時鐘(RTC)(308頁) RTC (Real Time Clock):實時時鐘 實時時鐘是一個獨立的定時器。RTC模塊
    的頭像 發表于 06-30 15:54 ?1.1w次閱讀

    實時時鐘RTC】MSP430系統實時時鐘RTC學習日志(完善中)

    2012.1.11 讀取實時時鐘: 1、 RTCRDY 為0時,不能取讀取實時時鐘 RT0PS源于ACLK,為了實時時鐘日歷的正確的運行,ACLK必須是32768Hz。(易出錯) 定時
    發表于 12-16 16:56 ?10次下載
    【<b class='flag-5'>實時時鐘</b>RTC】MSP430系統<b class='flag-5'>實時時鐘</b>RTC學習日志(完善中)

    CW32實時時鐘(RTC)介紹

    CW32實時時鐘(RTC)介紹
    的頭像 發表于 10-24 15:36 ?1147次閱讀
    CW32<b class='flag-5'>實時時鐘</b>(RTC)介紹

    使用實時時鐘

    電子發燒友網站提供《使用實時時鐘庫.pdf》資料免費下載
    發表于 10-22 10:09 ?0次下載
    使用<b class='flag-5'>實時時鐘</b>庫
    主站蜘蛛池模板: 98色花堂国产第一页| www欧美在线观看| 午夜网站在线| 97爱sese| 精品一区亚洲| 亚洲五月综合缴情婷婷| 永井玛丽亚中文在线观看视频| 亚洲三级在线视频| 狠狠做久久深爱婷婷97动漫| 国产精品美女免费视频观看| 夜夜爱夜夜爽| 狠狠轮| 99热精品久久只有精品30| 天堂在线www| 成年人黄色大片大全| 色视频亚洲| 国产精品久久久久久久久齐齐| 美女黄页在线观看| 免费一看一级毛片全播放| 欧美黑人性受xxxx精品| 精品一区二区三区三区| 噜噜噜久久| 狠狠轮| 四虎永久在线精品免费影视| 97色资源| 视频网站黄色| 日本黄大乳片免费观看| 国产成人黄网址在线视频| 欧美黄色免费看| 怡红院国产| 最近观看免费高清视频| 国产在线干| 美女扒开尿口给男人看大全| 美女国产一区| 2021天天干| 欧美人与动另类在线| 久草资源站在线| 最近新韩国hd视频| 来吧成人综合网| 日本在线视| 免费久久精品国产片香蕉|