精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

怎樣在RTC DS1307在LCD上設置并顯示時間

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-09 14:31 ? 次閱讀

步驟1:

怎樣在RTC DS1307在LCD上設置并顯示時間

將rtc連接到arduino

SDA連接到Arduino A4。

將SCL連接到Arduino A5。 br》將vcc連接到+ 5v

將gnd連接到gnd

步驟2:將Lcd

LCD連接到Arduino

1 GND

2 + 《3》 3電位器中心

4針12 Arduino。

5 GND 《6》針11 Arduino

11針5 Arduino

12針4 Arduino

13針3 Arduino

14 Pin 2 Arduino

15 +

16 Gnd

第3步:從成員WWC設置Rtc草圖。不要在U更改時間的情況下使用此示例。

串行輸入對我不起作用,所以我將時間花在了草圖上。

不要使用這個。僅用于必須輸入時間的示例。

//這組代碼允許輸入數據

void setTime(){

Serial.print(“請輸入當前年份,00-99 。-“);

year = 13;

Serial.println(year);

Serial.print(”請輸入當前月份,1-12。-“) ;

month = 9;

Serial.println(months [month-1]);

Serial.print(“請輸入當月的當前日期1-31 。-“);

monthday = 20;

Serial.println(monthday);

Serial.println(”請輸入星期幾,即1-7。 “);

Serial.print(” 1周日| 2周一| 3周二| 4星期三| 5周四| 6周五| 7周六-“);

工作日= 6;

Serial.println(days [weekday-1]);

Serial.print(“請以24小時格式輸入當前小時,0-23。-”);

hour = 13;

Serial.println(小時);

Serial.print(“請輸入當前分鐘,0-59。-”);

分鐘= 51;

Serial.println(minute);

秒= 15;

Serial.println(“已輸入數據?!保?

步驟4:從成員WWC設置Rtc草圖。

您必須輸入時間,上傳然后打開串口并按y并發送。

///////////////////////////////////////////

//RTC數據和時間設置器//

////

//此示例程序允許用戶//

//使用I2C設置RTC的日期和時間//

//。//

////

//代碼作者://

//eGizmo Mechatronix Central//

//塔夫脫(菲律賓馬尼拉)//

//http://www.egizmo.com//

//2013年4月15日//

///////////////////////////////////////////

#include

const int DS1307 = 0x68;//DS1307的地址,請參閱數據表

const char * days [] =

{“星期日”,“星期一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”} ;

const char * months [] =

{“ 1月”,“ 2月”,“ 3月”,“ 4月”,“ 5月”,“ 6月”,“ 7月”,“ 8月”,“ 9月” ,“ October”,“ November”,“ December”};

//初始化所有值:

字節秒= 0;

字節分鐘= 0;

字節小時= 0;

字節工作日= 0;字節月份= 0;字節月份= 0;字節年份= 0;無效設置(){ Wire.begin();

串行.begin(9600);

delay(2000);//此延遲允許MCU讀取當前日期和時間。

Serial.print(“當前日期和時間是:”);

printTime();

Serial.println(“到換行符以結束串行監視器右下角的設置“);

Serial.println(”您現在要設置日期和時間嗎?是/否“);

而(!Serial.available ())delay(10);

如果(Serial.read()==‘y’|| Serial.read()==‘Y’)

//這組函數允許用戶更改日期和時間

{

Serial.read();

setTime();

Serial.print(“當前日期和時間為:”);

printTime();

}

Serial.println(“謝謝。”);

}

//連續函數,用于將字節轉換為小數,反之亦然

void loop(){

}

byte decToBcd(byte val){

return((val/10 * 16)+(val%10));

}

byte bcdToDec(byte val){

return((val/16 * 10)+(val%16));

}

//這組代碼允許輸入數據

void setTime(){

Serial.print(“請輸入本年度,00- 99。 -“);

year = 13;

Serial.println(year);

Serial.print(”請輸入當前月份1-12。-“);

month = 9;-

Serial.println(months [month-1]);

Serial.print(“請輸入當月的當前日期1-31。-”);

monthday = 20;

Serial.println(月日);

Serial.println(“請輸入當前星期幾,1-7。”);

Serial.println(“ 1周日| 2周一| 3周二| 4周三| 5周四| 6周五| 7星期六-“);

工作日= 6;

Serial.println(天[weekday-1]);

Serial.print(”請輸入24小時的當前時間格式,0-23。-“);

小時= 13;

Serial.println(小時);

Serial.print(”請輸入當前分鐘,0-59。-“);

分鐘= 51;

Serial.println(分鐘);

秒= 15;

Serial.println(“已輸入數據。”);

//以下代碼傳輸數據發送到RTC

Wire.beginTransmission(DS1307);

Wire.write(字節(0));

Wire.write(decToBcd(秒));

Wire.write(decToBcd(分鐘));

Wire.write(decToBcd(hour));

Wire.write(decToBcd(工作日));

Wire.write(decToBcd(工作日));

Wire.write(decToBcd(工作日));

Wire.write(decToBcd(工作年));

Wire.write(byte(0));

Wire.endTransmission();

//結束數據傳輸

}

byte readByte(){

while(!Serial。 available())delay(10);

字節讀取= 0;

字節incomingByte = Serial.read();

而(incomingByte!=‘ n’){

if(incomingByte》 =‘0’&&進入字節《=‘9’)

讀取=讀取* 10 +(incomingByte-‘0’);

else;

進入字節= Serial.read();

}

Serial.flush();

返回讀數;

}

void printTime(){ const char * AMPM = 0;

readTime( );

Serial.print(days [weekday-1]);

Serial.print(“”);

Serial.print(months [month-1]);

Serial.print( “”);

Serial.print(月日);

Serial.print(“,20”);

Serial.print(年);

Serial.print(“”);

if(hour》 12){

hour-= 12;

AMPM =“ PM”;

}

else AMPM =“ AM”;

Serial.print(hour);

Seria l.print(“:”);

sprintf(緩沖區,“%02d”,分鐘);

Serial.print(緩沖區);

Serial.println(AMPM);

}

void readTime(){

Wire.beginTransmission(DS1307);

Wire.write(byte(0));

Wire.endTransmission();

Wire.requestFrom(DS1307,7);

秒= bcdToDec(Wire.read());

分鐘= bcdToDec(Wire.read());

小時= bcdToDec(Wire.read());

工作日= bcdToDec(Wire .read());

monthday = bcdToDec(Wire.read());

month = bcdToDec(Wire.read());

year = bcdToDec(Wire.read());

}

步驟5:現在將其上傳以查看LCD上的時間。

/*

* TimeRTC .pde

*示例代碼,說明帶有實時時鐘的時間庫。

*

*/

#include

#include

#include //返回時間為time_t的基本DS1307庫

#include

LiquidCrystal lcd(12,11,5,4,3,2);

void setup(){

Serial.begin(9600);

setSyncProvider(RTC.get);//從RTC獲取時間的函數

if(timeStatus()!= timeSet)

Serial.println(“無法與RTC同步”);

else

Serial.println (“ RTC設置了系統時間”);

}

void loop()

{

digitalClockDisplay();

delay(1000);

}

void digitalClockDisplay(){

//時間的數字時鐘顯示

Serial.print(hour());

printDigits(minute());

printDigits(second());

Serial.print(“”);

Serial.print(day());

Serial.print(“”);

Serial.print(month());

串行。 print(“”);

Serial.print(year());

Serial.println();

lcd.setCursor(2,0);//設置LCD光標位置(列,行)

lcd.print(hour());

lcd.print(“:”);

lcd.print(minute());

lcd.print(“”);

lcd.print(second());

lcd.print(“”);

lcd.print(“ Uhr”);

lcd.setCursor( 3,1);//設置LCD光標位置(列,行)

lcd.print(day());

lcd.print(“?!保?

lcd.print(month());

lcd.print(“。”);

lcd.print(year());

//將文本打印到LCD

//延遲讀取文本

//清除顯示

}

void printDigits(int digits){

//用于數字時鐘顯示的實用程序功能:打印冒號之前和前導0

Serial.print(“:”);

if(digits 《10)

Serial.print(‘0’);

Serial.print(digits);

}
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4411

    瀏覽量

    167095
  • RTC
    RTC
    +關注

    關注

    2

    文章

    528

    瀏覽量

    66310
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186651
收藏 人收藏

    評論

    相關推薦

    主板優化PCIe通道設置

    主板優化PCIe通道設置是提升系統性能的重要步驟,以下是具體的優化建議: 一、了解主板和PCIe規格 查閱主板手冊 :首先,需要了解主板支持的PCIe版本(如PCIe 3.0、PCIe 4.0等
    的頭像 發表于 11-06 09:30 ?666次閱讀

    RA8875怎樣相應圖層顯示所需要顯示的內容?

    怎樣相應圖層顯示所需要顯示的內容,小萌新求指教
    發表于 05-13 07:28

    STM8l052c6單片機的RTC讀取時間時一直卡死RTC_WaitForSynchro()的原因?

    STM8l052c6單片機的RTC讀取時間時一直卡死while (RTC_WaitForSynchro() != SUCCESS); 系統時鐘使用的是默認的2MHZ,
    發表于 05-10 06:11

    用STM32 的USB HOST接鍵盤,要怎樣才能讀取鍵盤的按鍵字符顯示屏幕

    用STM32 的USB HOST接鍵盤,用官方例程可以完成鍵盤的枚舉,接下來要怎樣才能讀取鍵盤的按鍵字符顯示屏幕? 小弟剛接觸USB通
    發表于 04-29 08:44

    STM8L RTC設置和讀取時間不一樣是什么原因導致的?

    我使用的是STM8L151,設置RTC鬧鐘時間,和讀出的時間不對。 讀出來的時間,固定是 RTC_Al
    發表于 04-28 06:39

    請問使用HAL庫硬件I2C時如何設置器件地址?

    我使用的模塊是包含了DS1307的AT24C32兩個I2C通訊的芯片,開始準備啟用硬件I2C,但測試了多天都沒有成功,后來只要改為GPIO模擬I2C才成功驅動這兩個芯片?,F在我仍想繼續嘗試用硬件I2C,但一直不知道如何在操作前設定器件的地址,我使用的是HAL庫,在此請各位指教,謝謝!
    發表于 04-17 07:31

    STM8L152的低功耗時lcd變暗的原因?

    _ITConfig(RTC_IT_WUT, ENABLE);//使能RTC呼醒中斷 RTC_SetWakeUpCounter(614);//設置呼醒
    發表于 04-16 07:04

    基于51單片機的路燈【固定時間,紅外,DS1302,LCD1602】(仿真)

    基于51單片機的路燈【固定時間,紅外,DS1302,LCD1602】(仿真)
    的頭像 發表于 04-10 00:44 ?492次閱讀
    基于51單片機的路燈【固定<b class='flag-5'>時間</b>,紅外,<b class='flag-5'>DS</b>1302,<b class='flag-5'>LCD</b>1602】(仿真)

    RTCDeepSleep模式喚醒后無效的原因?

    時間。 隨意配置。但是如果是Deepsleep模式喚醒后需要重新配置RTC時間,就不成功。 我看RTC是可以喚醒DeepSleep模式的。 只要我把
    發表于 02-19 08:20

    RTC重啟電源時會重置是為什么?

    )時,RTC 計數會被重置。 目前,我還沒有考慮過任何電源模式,也沒有考慮 WCO 使用 extern crystel。 請建議重新啟動時保存
    發表于 01-23 08:29

    Ds1307 RTC連接到CR2032電池,就會卡住的原因?

    每當我從電源向 ds1307 RTC 施加電壓時,它都能正常工作,但一旦我將其連接到 CR2032 電池,它就會卡住,時間不起作用。我檢查了電池的電壓,它是3v,但在電阻后,ds1307
    發表于 01-22 08:02

    PSoc4控制GPIO時,怎樣才能用modustoolBox為GPIO設置驅動模式?

    PSoc4 控制 GPIO 時,我想為 GPIO 設置驅動模式。 PSoC Creator 中,可以 “元器件目錄” 中選擇
    發表于 01-22 07:29

    單片機的RTC獲取網絡時間

    和設備時鐘的協議。它通過在網絡時間服務器通信,獲取準確的時間信息。工作原理:NTP使用一種分層的客戶端-服務器體系結構??蛻舳讼蚍掌靼l起請求,服務器回應包含其
    的頭像 發表于 12-23 08:00 ?1009次閱讀
    單片機的<b class='flag-5'>RTC</b>獲取網絡<b class='flag-5'>時間</b>

    嵌入式操作教程:LCD顯示灰度圖像的直方圖統計結果

    學習直方圖統計的原理,掌握圖像的讀取方法,實現在LCD顯示灰度圖像的直方圖統計結果。
    的頭像 發表于 11-30 16:10 ?1156次閱讀
    嵌入式操作教程:<b class='flag-5'>在</b><b class='flag-5'>LCD</b><b class='flag-5'>上</b><b class='flag-5'>顯示</b>灰度圖像的直方圖統計結果

    如何在樹莓派Pico編程使用DS1302時鐘模塊?

    常用的計時時鐘芯片有 DS1302、DS1307DS3231,各型號還有衍生型號。
    的頭像 發表于 11-28 09:16 ?1626次閱讀