久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4127|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

這是我根據(jù)網(wǎng)上找的資料,做的一個(gè)LCD1602+DS1302+DS18B20制作的一個(gè)電子時(shí)鐘

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 Plan3t 于 2018-4-30 19:52 編輯

電路引腳:
DS18B20:
VCC——電源正極
GND——地
OUT——D10

DS1302:
VCC——正極
GND——地
CLK——D7
DAT——D6
RST——D5


IIC:
VCC——正極
GND——地  
SDA——A4
SCK——A5      
連接好之后可能會(huì)不能顯示,需要在LCD1602引腳A0端接一個(gè)電位計(jì)或者電阻,用來(lái)調(diào)整顯示屏對(duì)比度調(diào)整時(shí)間,在串口監(jiān)視器連續(xù)輸入16個(gè)數(shù),如2018042801170406,就是2018年4月28日 1點(diǎn)17分4秒 星期6


下面是整個(gè)程序,還有需要的庫(kù)
  1.   //#########################################
  2. /* 接口定義
  3.   CE(DS1302 pin5) ->  D5
  4.   IO(DS1302 pin6) -> D6
  5.   SCLK(DS1302 pin7) -> D7
  6. */
  7. //################################
  8. #include <stdio.h>
  9. #include <string.h>
  10. #include <DS1302.h>
  11. #include <DallasTemperature.h> // DS18B20 庫(kù)
  12. #include <LiquidCrystal_I2C.h> // I2C 1602
  13. #include <Wire.h> // I2C 庫(kù)
  14. #include <OneWire.h>
  15. #define ONE_WIRE_BUS 10    // DS18B20 連接arduino D10引腳

  16. // 初始連接在單總線上的單總線設(shè)備
  17. OneWire oneWire(ONE_WIRE_BUS);
  18. DallasTemperature sensors(&oneWire);
  19. LiquidCrystal_I2C lcd(0x27,16,2); //設(shè)置LCD1602的I2C地址為0x27
  20. uint8_t CE_PIN   = 5;
  21. uint8_t IO_PIN   = 6;
  22. uint8_t SCLK_PIN = 7;

  23. byte nian[8] =
  24. {
  25.         0b01000,
  26.         0b01111,
  27.         0b10010,
  28.         0b01111,
  29.         0b01010,
  30.         0b11111,
  31.         0b00010,
  32.         0b00000
  33. };
  34. byte yue[8] =
  35. {
  36.         0b01111,
  37.         0b01001,
  38.         0b01111,
  39.         0b01001,
  40.         0b01111,
  41.         0b01001,
  42.         0b10011,
  43.         0b00000,
  44. };
  45. byte ri[8] =
  46. {
  47.         0b11111,
  48.         0b10001,
  49.         0b10001,
  50.         0b11111,
  51.         0b10001,
  52.         0b10001,
  53.         0b11111,
  54.         0b00000
  55. };
  56. byte  temp[8]=
  57. {
  58.    0b10000,
  59.     0b01111,
  60.     0b01000,
  61.     0b01000,
  62.     0b01000,
  63.     0b01000,
  64.     0b01111,
  65.     0b00000, //溫度標(biāo)志— —攝氏度
  66. };

  67. // 日期變量緩存
  68. char buf[50];
  69. char day[10];
  70. // 串口數(shù)據(jù)緩存
  71. String comdata = "" ;
  72. int numdata[7] = {0}, j = 0, mark = 0;
  73. // 創(chuàng)建 DS1302 對(duì)象
  74. DS1302 rtc(CE_PIN, IO_PIN, SCLK_PIN);

  75. Time t;
  76. void print_time()
  77. {
  78.         // 從 DS1302 獲取當(dāng)前時(shí)間
  79.         t = rtc.time();
  80.         // 將星期從數(shù)字轉(zhuǎn)換為名稱(chēng)
  81.         memset(day, 0, sizeof(day));
  82.         switch (t.day)
  83.         {
  84.         case 7:
  85.                 strcpy(day, "Sunday");
  86.                 break;
  87.         case 1:
  88.                 strcpy(day, "Monday");
  89.                 break;
  90.         case 2:
  91.                 strcpy(day, "Tuesday");
  92.                 break;
  93.         case 3:
  94.                 strcpy(day, "Wednesday");
  95.                 break;
  96.         case 4:
  97.                 strcpy(day, "Thursday");
  98.                 break;
  99.         case 5:
  100.                 strcpy(day, "Friday");
  101.                 break;
  102.         case 6:
  103.                 strcpy(day, "Saturday");
  104.                 break;
  105.         }
  106.         // 將日期代碼格式化湊成buf等待輸出
  107.         snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d", day, t.yr, t.mon, t.date, t.hr, t.min, t.sec);
  108.         // 輸出日期到串口
  109.         Serial.println(buf);
  110. }


  111. void setup()
  112. {
  113.         Serial.begin(9600);
  114. Serial.println("Temperature Project");

  115.         rtc.write_protect(false);
  116.         rtc.halt(false);
  117.         lcd.init(); // 給LCD的I2C通訊初始化,需要執(zhí)行兩次
  118.         delay(20);
  119.         lcd.init(); // 給LCD的I2C通訊初始化
  120.         delay(20);
  121.         lcd.backlight();//點(diǎn)亮LCD背光燈
  122.         rtc.write_protect(false);
  123.         rtc.halt(false);
  124.         lcd.begin(16, 2);
  125.         lcd.createChar(0, nian);
  126.         lcd.createChar(1, yue);
  127.         lcd.createChar(2, ri);
  128.         lcd.createChar(3, temp);
  129.         
  130. }

  131. void loop()
  132. {

  133.         // 當(dāng)串口有數(shù)據(jù)的時(shí)候,將數(shù)據(jù)拼接到變量comdata
  134.        Serial.print("Requesting temperatures..."); // 串口發(fā)送字符
  135.        sensors.requestTemperatures(); // 傳感器發(fā)送命令獲取溫度
  136.        Serial.println("DONE"); // 串口發(fā)送字符并換行
  137.        Serial.print("Temperature for the device 1 (index 0) is: ");
  138.        Serial.println(sensors.getTempCByIndex(0));
  139.         while (Serial.available() > 0)
  140.         {
  141.                 comdata += char(Serial.read());
  142.                 delay(2);
  143.                 mark = 1;
  144.         }
  145.         //以逗號(hào)分隔分解comdata的字符串,分解結(jié)果變成轉(zhuǎn)換成數(shù)字到numdata[]數(shù)組
  146.         if (mark == 1)
  147.         {
  148.                 Serial.print("You inputed : ");
  149.                 Serial.println(comdata);
  150.                 t.yr = (comdata[0] - '0') * 1000 + (comdata[1] - '0')*100 + (comdata[2] - '0') * 10 + (comdata[3] - '0'); //year
  151.                 t.mon = (comdata[4] - '0') * 10 + (comdata[5] - '0'); //month
  152.                 t.date = (comdata[6] - '0') * 10 + (comdata[7] - '0'); //date
  153.                 t.hr = (comdata[8] - '0') * 10 + (comdata[9] - '0'); //hour
  154.                 t.min = (comdata[10] - '0') * 10 + (comdata[11] - '0'); //minute
  155.                 t.sec = (comdata[12] - '0') * 10 + (comdata[13] - '0'); //second
  156.                 t.day = (comdata[14] - '0') * 10 + (comdata[15] - '0'); //week
  157.                 // 將轉(zhuǎn)換好的numdata湊成時(shí)間格式,寫(xiě)入DS1302

  158.                 rtc.time(t);
  159.                 mark = 0;
  160.                 j = 0;//清空 comdata 變量,以便等待下一次輸入
  161.                 comdata = String("");// 清空 numdata
  162.                 for (int i = 0; i < 7 ; i++) numdata = 0;
  163.         }

  164.         //打印當(dāng)前時(shí)間
  165.         print_time();

  166.         lcd.setCursor(0, 0);
  167.         lcd.print(t.yr);
  168.         lcd.write(byte(0));
  169.         lcd.print(t.mon);
  170.         lcd.write(byte(1));
  171.         lcd.print(t.date);
  172.         lcd.write(byte(2));
  173.         lcd.print("  ");

  174.         lcd.setCursor(15, 0);
  175.         lcd.print(t.day);

  176.         lcd.setCursor(0, 1);
  177.         lcd.print(t.hr);
  178.         lcd.print(':');
  179.         lcd.print(t.min);
  180.         lcd.print(':');
  181.         lcd.print(t.sec);
  182.         lcd.print("   ");
  183.         lcd.setCursor(10, 1); // 定位光標(biāo)到第二行靠中位置
  184.         lcd.print(sensors.getTempCByIndex(0)); // 顯示溫度值,來(lái)源DallasTemperature.h的函數(shù)
  185.         lcd.write(byte(3)); // 不定位光標(biāo)則繼續(xù)前面語(yǔ)句繼續(xù)寫(xiě)字符
  186.         delay(1000);
  187. }
復(fù)制代碼



20180428_011708.jpg (2.81 MB, 下載次數(shù): 169)

20180428_011708.jpg

電子時(shí)鐘總庫(kù).zip

49.25 KB, 下載次數(shù): 29, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 2黑幣 +55 收起 理由
蔡定銀 + 5 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:318038 發(fā)表于 2018-4-30 19:23 | 只看該作者
本帖最后由 Plan3t 于 2018-4-30 19:39 編輯

我硬件軟件都做出來(lái)了 求一個(gè)大神根據(jù)我的這個(gè)東西能否幫我繪制一個(gè)原理圖和仿真圖呢 因?yàn)閜roteus這個(gè)軟件我目前實(shí)在不會(huì)用
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 97福利在线| 精品蜜桃一区二区三区 | 久久精品中文字幕 | 久久一区二区免费视频 | 国产高清视频在线 | 欧美激情黄色 | 久久久久久久久久毛片 | 99精品免费在线观看 | 91九色麻豆 | 久在线 | 色视频在线观看 | 国产日韩欧美 | 午夜成人在线视频 | 在线播放亚洲 | 在线观看毛片网站 | 久草视频在线播放 | 国产线视频精品免费观看视频 | 中文字字幕一区二区三区四区五区 | 91av在线不卡 | 精品国产免费人成在线观看 | 久久久精品影院 | 久久国产精品72免费观看 | 国产日韩久久 | 欧美日韩精品一区二区三区蜜桃 | 黄网站免费在线 | 精品国产欧美 | 亚洲欧美在线视频 | 国产在线播 | 91在线视频精品 | 亚洲精品日韩视频 | 欧美日韩一区二区电影 | 久久99久久99久久 | 欧美一级免费 | 国产毛片av | 麻豆久久久9性大片 | 亚洲精品久久久久久久久久久 | 日韩第一区 | 久久9视频| 91精品国产综合久久小仙女图片 | 日本黄色大片免费看 | 蜜桃视频在线观看免费视频网站www |