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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機智能家居仿真程序設計 屏幕無顯示 求幫助

[復制鏈接]
跳轉到指定樓層
樓主
該智能家居基于51單片機控制, 同時外接DS1302和DS18B20以及LCD液晶屏等,對智能家居智進行簡易的控制。
該設計運用到的芯片:STC89C58+DS18B20+DHT11+DS1302+LCD12864+紅外人體感應器+無線遙控
功能:
1.數字可調萬年歷
2.顯示空氣中溫度和濕度
3.對環境溫度和濕度可以自動控制
4.測量水的溫度
5.無線控制
6.防盜報警
7.低功耗模式
8.開機圖片
9.EEPROM數據保存



單片機源程序如下:
  1. /****************************************/
  2. /************DHT11驅動程序***************/
  3. /****************************************/
  4. #include<reg52.h>
  5. #include<intrins.h>
  6. #include"DHT11.h"
  7. #include"delay_ms.h"
  8. unsigned int w_s;
  9. unsigned char sd_shi,sd_ge,wd_shi1,wd_ge1,dsq_0,sign_wd,sign_sd; //先要在這進行聲明,然后在頭文件(DHT11.h)中用extern進行外部變量聲明
  10. unsigned char set_up_sd,set_up_wd;                          //濕度報警和溫度報警閥值
  11. char shidu,wendu;

  12. void delay_us(unsigned int x)          //DHT11專用延時
  13. {
  14.   while(x--);
  15. }
  16. void init_DHT11()                            //初始化DHT11
  17. {
  18.         unsigned char k=250;
  19.         DHT=0;
  20.         delay_us(2100);                                        //延時18.925ms
  21.         DHT=1;
  22.         delay_us(2);                                                //延時34us,等待DHT11響應,變低電平
  23.         while((DHT==0)&&k--);                        //判斷DHT11是否響應,且要防止掉入死循環,先是低電平然后,等待DHT11變高電平
  24.         k=250;
  25.     while((DHT==1)&&k--);                        //判斷DHT11是否開始傳輸數據(再次進入低電平表示開始傳輸數據)
  26. }

  27. unsigned char Read_OneChar()           //從DHT11讀出一個字節數據
  28. {
  29.      unsigned char g;
  30.          unsigned char temp;
  31.      for(g=0;g<8;g++)
  32.          {
  33.             temp=temp<<1;                                //從高字節開始讀起,每讀一位向左移一位
  34.             while(!DHT);                                //判斷是否DHT11信號是否變高電平(這步非常非常關鍵)
  35.                 delay_us(3);                                        //變高后延時44us左右,這樣如果是“1”則還是高電平,“0”就是低電平了
  36.                 if(DHT==1)                                        //進行“1”和“0”的判斷
  37.                  {
  38.                         temp=temp|0x01;
  39.                         delay_us(1);
  40.                  }
  41.          }
  42.          return(temp);        
  43. }

  44. unsigned int return_wendu_shidu()      //讀取溫度濕度
  45. {
  46.     unsigned char sd_h,sd_l,wd_h,wd_l,crc;
  47.         unsigned int sd_wd;
  48.          init_DHT11();                               //初始化DHT11
  49.          sd_h=Read_OneChar();                           //濕度高8位
  50.          sd_l=Read_OneChar();                           //濕度低8位
  51.          wd_h=Read_OneChar();                           //溫度高8位
  52.          wd_l=Read_OneChar();                           //溫度低8位
  53.          crc=Read_OneChar();                           //CRC校驗8位

  54.      sign_sd=sd_h;                                           //報警濕度
  55.          sign_wd=wd_h;                                            //報警溫度

  56.          sd_wd=0x00ff&sd_h;
  57.          sd_wd=sd_wd<<8;
  58.          sd_wd=sd_wd|wd_h;                                   //高8位為濕度整數部分,低8位為溫度整數部分
  59.          return(sd_wd);                                 
  60. }

  61. void qushu_DHT11(unsigned int qs)           //取數將數據分離
  62. {
  63.     unsigned char sd_H,wd_H;                   //因為進來的數據是int型,高八位為濕度,低八位為溫度
  64.         wd_H=0x00ff&qs;                                           //所以要將數據分離開來,再次分成char型,然后再進行取數
  65.         qs=qs>>8;                                                   //取濕度數據
  66.         sd_H=qs;                                                   //直接將int型給char型,會自動保留低八位
  67.         sd_shi=sd_H/10;                                           //關于為什么要這樣,因為這樣可以不用設置全局變量
  68.         sd_ge=sd_H%10;                                           //沒有全局變量就容易將程序模塊化!!!
  69.         wd_shi1=wd_H/10;
  70.         wd_ge1=wd_H%10;
  71. }
復制代碼

Keil代碼與Proteus仿真下載: 01.7z (298.08 KB, 下載次數: 27)



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品福利视频 | 91国内视频在线 | 色婷综合网 | 日本中文字幕一区 | 人妖av| 中文字幕亚洲免费 | 射久久| 日韩精品一区在线观看 | 色性av| 中文字幕在线观看视频一区 | 欧美精品一区二区三区蜜臀 | 欧美一区二区三区视频 | 精品永久 | 久久精品伊人 | 国产免费一区二区 | 久草免费在线视频 | 日本福利在线观看 | 日韩影音| 欧美日韩国产一区二区三区 | 欧美综合一区二区 | 五月婷婷激情网 | 国产一区免费视频 | 狠狠草视频 | 久草网在线视频 | 婷婷精品| 在线看片国产精品 | 国产日韩欧美 | 久久9精品| 91亚洲一区 | 久久久久久久一区 | 亚洲免费在线观看 | 精品国产一区探花在线观看 | 日本视频中文字幕 | 午夜影视在线观看 | 久久久久久黄 | 91美女在线观看 | 久久综合av | 农村黄性色生活片 | 精品一二 | 亚洲精品日本 | 国产欧美日韩综合精品一区二区 |