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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機DHT11+AT24C02濕度控制電風扇報警程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:407654 發表于 2019-1-22 11:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
花了幾個小時做了一個濕度報警,做了一個濕度報警現在分享給大家.引腳定義,已經存在制作前閱讀里面了

編寫環境Keil5
引腳定義
濕度計引腳定義
蜂鳴器 P2^0
LED報警燈 P1^6
風扇 P1^5
按鍵1 P3^4
按鍵2  P3^5
Dht11數據線 P1^7
AT24C02:
SCL   P1^0
SDA  P1^1
LCD1602
E P2^7
RW P2^6
RS  P2^5
數據線 P0
編寫時間2019.1.22

濕度上限+AT24C02+蜂鳴器+風扇+LCD1602

單片機源程序如下:
  1. #include <reg52.h>
  2. #include "1602.h"
  3. #include "dht.h"
  4. #include "2402.h"
  5. sbit speaker=P2^0;
  6. //定義LED燈

  7. sbit Led_qushi=P1^6;                //去濕燈
  8. sbit fan=P1^5;     
  9. sbit Key_HH1 = P3^4;
  10. sbit Key_HH2 = P3^5;


  11. //定義標識
  12. volatile bit FlagStartRH = 0;  //開始溫濕度轉換標志
  13. volatile bit FlagKeyPress = 0; //有鍵按下


  14. //定義溫濕度傳感器用外部變量
  15. extern U8  U8FLAG,k;
  16. extern U8  U8count,U8temp;
  17. extern U8  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
  18. extern U8  U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
  19. extern U8  U8comdata;
  20. extern U8  count, count_r;

  21. U16 temp;
  22. S16  humidity;
  23. S16 idata  HH;  //濕度上限
  24. char * pSave;

  25. //定義變量
  26. U16 RHCounter;


  27. //數據初始化
  28. void Data_Init() {
  29.     RHCounter = 0;
  30.     Led_qushi = 1;
  31.     HH = 85;
  32. }

  33. //定時器0初始化
  34. void Timer0_Init() {
  35.     ET0 = 1;        //允許定時器0中斷
  36.     TMOD = 1;       //定時器工作方式選擇
  37.     TL0 = 0x06;
  38.     TH0 = 0xf8;     //定時器賦予初值
  39.     TR0 = 1;        //啟動定時器
  40. }

  41. //定時器0中斷
  42. void Timer0_ISR (void) interrupt 1 using 0 {
  43.     TL0 = 0x06;
  44.     TH0 = 0xf8;     //定時器賦予初值

  45.     //每2秒鐘啟動一次溫濕度轉換
  46.     RHCounter ++;
  47.     if (RHCounter >= 1000) {
  48.         FlagStartRH = 1;
  49.         RHCounter = 0;
  50.     }
  51. }

  52. //存入設定值、
  53. void Save_Setting() {


  54.     pSave =  (char *)&HH;
  55.     wrteeprom(2, *pSave);          //存濕度上限值RH低8位
  56.     DELAY(500);
  57.     pSave ++;
  58.     wrteeprom(3, *pSave);          //存濕度上限值RH高8位
  59.     DELAY(500);

  60. }

  61. //載入設定值、
  62. void Load_Setting() {


  63.     pSave = (char *)&HH;
  64.     *pSave++ = rdeeprom(2);
  65.     *pSave = rdeeprom(3);

  66.     if ((HH>99)||(HH<0)) HH = 99;
  67. }

  68. /********************************************************************
  69. * 名稱 : Main()
  70. * 功能 : 主函數
  71. ***********************************************************************/
  72. void main() {
  73.     U16 i, j, testnum;

  74.     EA = 0;

  75.     Timer0_Init();  //定時器0初始化

  76.     Data_Init();
  77.     EA = 1;

  78.     L1602_init();
  79. //    L1602_string(1,1," Welcome to H   ");
  80.     //延時
  81.     for (i=0; i<500; i++)
  82.         for (j=0; j<1000; j++)
  83.         {;}
  84.     //清屏

  85.     L1602_string(1,1,"Sd:  %    H:  % ");


  86.     //載入濕度上限設定值
  87.     Load_Setting();
  88.     L1602_char(1, 13, HH/10+48);
  89.     L1602_char(1, 14, HH%10+48);
  90.     while(1) {
  91.         //溫濕度轉換標志檢查
  92.         if (FlagStartRH == 1) {  //定時器
  93.             TR0 = 0;
  94.             testnum = RH();
  95.             FlagStartRH = 0;
  96.             //讀出濕度,只取整數部分
  97.             TR0 = 1;
  98.             humidity = U8RH_data_H;
  99.             //顯示濕度
  100.             L1602_int(1,2,humidity);
  101.         }
  102.         if (!Key_HH1) {     //上下限處理
  103.             DELAY(5000);
  104.             DELAY(5000);
  105.             DELAY(5000);
  106.             DELAY(5000);
  107.             DELAY(5000);
  108.             DELAY(5000);
  109.             if (!Key_HH1) {
  110.                 if(HH>0)
  111.                     HH--;
  112.                 else HH=0;
  113.                 L1602_char(1, 13, HH/10+48);
  114.                 L1602_char(1, 14, HH%10+48);
  115.                 Save_Setting();
  116.             }
  117.         }
  118.         if (!Key_HH2) {
  119.             DELAY(5000);
  120.             DELAY(5000);
  121.             DELAY(5000);
  122.             DELAY(5000);
  123.             DELAY(5000);
  124.             DELAY(5000);
  125.             if (!Key_HH2) {
  126.                 if(HH>99)
  127.                     HH=99;
  128.                 else HH++;
  129.                 L1602_char(1, 13, HH/10+48);
  130.                 L1602_char(1, 14, HH%10+48);
  131.                 Save_Setting();
  132.             }
  133.         }
  134.         if (humidity > HH) {
  135.             fan=0;
  136.             Led_qushi = 1;  //濕度燈打開
  137.             speaker=0;
  138.             DELAY(5000);
  139.             Led_qushi = 0;  //濕度燈打開
  140.             speaker=1;
  141.             DELAY(5000);

  142.         } else {

  143.             fan=1;
  144.         }
  145.     }

  146. }
復制代碼

所有資料51hei提供下載:
濕度上限 AT24C02 蜂鳴器 風扇 LCD6022019.1.22.rar (58.7 KB, 下載次數: 32)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美在线观看视频 | 欧美日韩国产一区二区三区不卡 | 欧洲妇女成人淫片aaa视频 | 精品一区二区三区四区外站 | 欧美精品福利视频 | 欧美成年网站 | 视频在线一区 | 国产免费va | 久久久妇女国产精品影视 | 国产在线中文 | 午夜小视频在线播放 | 亚洲国产aⅴ精品 | 在线观看www高清视频 | 中文字幕在线免费观看 | 欧美日韩一区二区视频在线观看 | 欧美乱人伦视频 | 久久久久成人精品亚洲国产 | 亚洲欧美一区二区三区国产精品 | www.jizzjizz| 91精品国产91久久久久久密臀 | 区一区二区三在线观看 | 亚洲电影成人 | 成人深夜小视频 | 91精品国产色综合久久 | 久久久久久天堂 | 中文字幕一区二区三区日韩精品 | 国产精品一区二区无线 | 久久久久久精 | 一区二区三区免费 | 岛国在线免费观看 | 欧日韩不卡在线视频 | 久久久久久国产精品 | 中文字幕视频在线观看 | 国内精品视频一区二区三区 | 日本免费一区二区三区四区 | 亚洲色图综合 | 日韩一区二区视频 | 亚洲成人精品久久久 | 麻豆精品国产91久久久久久 | 国产精品久久久久久久久久免费看 | 美日韩精品 |