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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5299|回復: 4
打印 上一主題 下一主題
收起左側

STC15W4K32S4單片機DHT11多功能數顯溫濕度計源碼

  [復制鏈接]
跳轉到指定樓層
樓主
該設計采用的是LCD1602顯示,DHT11溫濕度傳感器采集環境中的溫濕度,同時采用DS1302時鐘模塊顯示當前日期和時間。

單片機源程序如下:
  1. #include "lcd1602.h"
  2. #include "dht11.h"
  3. #include "ds1302.h"

  4. unsigned char Table_LCD[]="0123456789";

  5. void IO_Init()
  6. {
  7.         /////////////////////////////////////////////////
  8.         //注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關的IO口均為
  9.         //      高阻態,需將這些口設置為準雙向口或強推挽模式方可正常使用
  10.         //相關IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
  11.         //        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
  12.         /////////////////////////////////////////////////
  13.         P0M1 = 0;        P0M0 = 0;        //設置P0.0~P0.7為準雙向口
  14.         P1M1 = 0;        P1M0 = 0;        //設置P1.0~P1.7為準雙向口
  15.         P2M1 = 0;        P2M0 = 0;        //設置P2.0~P2.7為準雙向口
  16.         P3M1 = 0;        P3M0 = 0;        //設置P3.0~P3.7為準雙向口
  17.         P4M1 = 0;        P4M0 = 0;        //設置P4.0~P4.7為準雙向口
  18.         P5M1 = 0;        P5M0 = 0;        //設置P5.0~P5.7為準雙向口
  19. }

  20. void main()
  21. {
  22.         unsigned char val;
  23.         IO_Init();
  24.         LCD_Init();
  25.         init_ds1302();
  26.         while(1)
  27.         {
  28.                 GetDHT11_Data();
  29.                 val=(tempH+tempL+humyH+humyL)&0xff;
  30.                 if(val==CheckData)
  31.                 {
  32.                         //顯示濕度
  33.                         Write_ComLCD1602(0x80+13);
  34.                         Write_DatLCD1602(Table_LCD[humyH/10]);
  35.                         Write_ComLCD1602(0x80+14);
  36.                         Write_DatLCD1602(Table_LCD[humyH%10]);
  37.                         Write_ComLCD1602(0x80+15);
  38.                         Write_DatLCD1602('%');
  39.                        
  40.                         //顯示溫度
  41.                         Write_ComLCD1602(0x80+0x40+13);
  42.                         Write_DatLCD1602(Table_LCD[tempH/10]);
  43.                         Write_ComLCD1602(0x80+0x40+14);
  44.                         Write_DatLCD1602(Table_LCD[tempH%10]);
  45.                         Write_ComLCD1602(0x80+0x40+15);
  46.                         Write_DatLCD1602('C');
  47.                 }
  48.                 read_ds1302();
  49.                 //顯示年
  50.                 Write_ComLCD1602(0x80);
  51.                 Write_DatLCD1602('2');
  52.                 Write_ComLCD1602(0x81);
  53.                 Write_DatLCD1602('0');
  54.                 Write_ComLCD1602(0x82);
  55.                 Write_DatLCD1602(Table_LCD[time_shi[6]]);
  56.                 Write_ComLCD1602(0x83);
  57.                 Write_DatLCD1602(Table_LCD[time_ge[6]]);
  58.                
  59.                 Write_ComLCD1602(0x84);
  60.                 Write_DatLCD1602('/');
  61.                
  62.                 //顯示月
  63.                 Write_ComLCD1602(0x85);
  64.                 Write_DatLCD1602(Table_LCD[time_shi[4]]);
  65.                 Write_ComLCD1602(0x86);
  66.                 Write_DatLCD1602(Table_LCD[time_ge[4]]);
  67.                
  68.                 Write_ComLCD1602(0x87);
  69.                 Write_DatLCD1602('/');
  70.                
  71.                 //顯示日
  72.                 Write_ComLCD1602(0x88);
  73.                 Write_DatLCD1602(Table_LCD[time_shi[3]]);
  74.                 Write_ComLCD1602(0x89);
  75.                 Write_DatLCD1602(Table_LCD[time_ge[3]]);
  76.                
  77.                 //顯示星期
  78.                 Write_ComLCD1602(0x80+11);
  79.                 Write_DatLCD1602(Table_LCD[time_ge[5]]);
  80.                
  81.                 //顯示時
  82.                 Write_ComLCD1602(0x80+0x40);
  83.                 Write_DatLCD1602(Table_LCD[time_shi[2]]);
  84.                 Write_ComLCD1602(0x80+0x41);
  85.                 Write_DatLCD1602(Table_LCD[time_ge[2]]);
  86.                
  87.                 Write_ComLCD1602(0x80+0x42);
  88.                 Write_DatLCD1602(':');
  89.                
  90.                 //顯示分
  91.                 Write_ComLCD1602(0x80+0x43);
  92.                 Write_DatLCD1602(Table_LCD[time_shi[1]]);
  93.                 Write_ComLCD1602(0x80+0x44);
  94.                 Write_DatLCD1602(Table_LCD[time_ge[1]]);
  95.                
  96.                 Write_ComLCD1602(0x80+0x45);
  97.                 Write_DatLCD1602(':');
  98.                
  99.                 //顯示秒
  100.                 Write_ComLCD1602(0x80+0x46);
  101.                 Write_DatLCD1602(Table_LCD[time_shi[0]]);
  102.                 Write_ComLCD1602(0x80+0x47);
  103.                 Write_DatLCD1602(Table_LCD[time_ge[0]]);
  104.         }
  105. }
復制代碼

所有資料51hei提供下載:
多功能數顯溫濕度計.zip (48.31 KB, 下載次數: 172)


評分

參與人數 2黑幣 +55 收起 理由
秋水長天 + 5 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:243748 發表于 2018-3-24 18:06 來自手機 | 只看該作者
好資料,謝謝分享
回復

使用道具 舉報

板凳
ID:296886 發表于 2018-3-25 21:39 | 只看該作者
學習一下,挺好的
回復

使用道具 舉報

地板
ID:933070 發表于 2021-6-7 20:42 | 只看該作者
有原理圖嗎
回復

使用道具 舉報

5#
ID:982170 發表于 2021-12-6 15:36 | 只看該作者
我使用oled12864單獨只顯示溫濕度,需要刪除那些程序?

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产中文一区二区三区 | 国产精品视频网站 | 欧美三级在线 | 久久av一区| 亚洲精品视频免费 | 天天色影视综合 | 亚洲国产aⅴ精品 | 欧美日韩三级 | 69堂永久69tangcom| 国产一区 | 亚洲午夜久久久 | 超碰人人人人 | 一级全黄视频 | 天天夜碰日日摸日日澡 | 国产91在线 | 中日 | 久久久亚洲一区 | 亚洲免费在线 | 99国产精品久久久久老师 | 亚洲国产精品成人综合久久久 | 拍真实国产伦偷精品 | 久久久久久久一区二区 | 日韩电影一区二区三区 | 一级片网站视频 | 日本久草视频 | 欧美精品乱码久久久久久按摩 | 少妇一区在线观看 | 精品一级电影 | 国产四区 | 91精品国产欧美一区二区成人 | 久久久精品影院 | 国产91在线播放 | 红色av社区| 免费看日韩视频 | 久久伊人影院 | 国产精品一区二区三区久久久 | 亚洲一区免费 | 美女人人操 | 97视频久久 | 色吧久久 | 日韩精品一区二区三区视频播放 | 天天玩天天操天天干 |