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

標題: STC12C5A60S2+DHT11溫濕度傳感器+數碼管 [打印本頁]

作者: bai_yun    時間: 2017-12-3 13:00
標題: STC12C5A60S2+DHT11溫濕度傳感器+數碼管
附件文件為c,h的文本格式。


單片機源程序如下:
  1. /************************************************
  2. 項  目:溫、濕度測量程序
  3. 單片機:STC12C5A60S2
  4. 傳感器:DHT11
  5. 日  期:04.09
  6. ************************************************/

  7. #include <stc12c5a60s2.h>
  8. #include "delay.h"

  9. #define uint unsigned int
  10. #define uchar unsigned char

  11. sbit io = P2^0;                        //定義數據端口

  12. uchar data_byte;                //定義全局變量
  13. uchar RH,RL,TH,TL;                //定義全局變量

  14. unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};        // 顯示段碼值0~9
  15. uchar  TempData[5];                         //存儲顯示值的全局變量

  16. /******************** DHT11測試模塊**********************/
  17. void start()                        //開始信號
  18. {
  19.         io=1;
  20.         delayus(10);
  21.         io=0;
  22.         delayms(30);                //10~60之間
  23.         io=1;
  24.         delayus(100);                //關鍵時間:35-250之間
  25. }

  26. /**********************接收一個字節**********************/
  27. uchar receive_byte()                       
  28. {
  29.         uchar i,temp,count;
  30.         for(i=0;i<8;i++)
  31.         {
  32.                 count=2;
  33.                 while((!io)&&count++)               
  34.                 temp=0;
  35.                 delayus(150);                                //關鍵時間:10~23之間
  36.                 if(io==1)temp=1;
  37.                 count=2;
  38.                 while((io)&&count++);
  39.                 if(count==1)break;
  40.                 data_byte<<=1;
  41.                 data_byte|=temp;
  42.         }
  43.         return data_byte;
  44. }

  45. /************************接收數據************************/

  46. void receive()                                       
  47. {
  48.         uchar T_H,T_L,R_H,R_L,check,num_check;
  49.         uchar count;

  50.         start();                                        //開始信號               
  51.         io=1;       
  52.         if(!io)                                                //讀取DHT11響應信號
  53.         {
  54.                 count=2;
  55.                 while((!io)&&count++);        //DHT11高電平80us是否結束
  56.                 count=2;
  57.                 while((io)&&count++);               
  58.                 R_H=receive_byte();
  59.                 R_L=receive_byte();
  60.                 T_H=receive_byte();
  61.                 T_L=receive_byte();       
  62.                 check=receive_byte();
  63.                
  64.                 io=0;                                       
  65.                    delayms(1);                                //拉低延時               
  66.                 io=1;               
  67.                 num_check=R_H+R_L+T_H+T_L;
  68.                        
  69.                 if(num_check=check)
  70.                 {
  71.                         RH=R_H;
  72.                         RL=R_L;
  73.                         TH=T_H;
  74.                         TL=T_L;
  75.                         check=num_check;               
  76.                 }               
  77.         }
  78. }

  79. /**********************************************************************
  80.                                                         顯示子函數
  81. **********************************************************************/
  82. void display()
  83. {       
  84.           P2=0xef;
  85.         P0=TempData[0];               
  86.         delayms(20);
  87.         P2=0xff;
  88.        
  89.         P2=0xdf;
  90.         P0=TempData[1];       
  91.         delayms(20);
  92.         P2=0xff;

  93.         P2=0xbf;
  94.         P0=TempData[2];
  95.         delayms(20);
  96.         P2=0xff;

  97.         P2=0x7f;
  98.         P0=TempData[3];       
  99.         delayms(20);
  100.         P2=0xff;
  101. }

  102. /*******************************************************************
  103.                                                定時器初始化子函數
  104. *******************************************************************/
  105. void InitTimer(void)                       
  106. {                                                                                                                                          
  107.         TMOD |= 0x01;                          //定義定時器T0,工作方式1   

  108.         TH0=(65536-20000)/256;
  109.         TL0=(65536-20000)%256;                        //50ms

  110.         ET0=1;
  111.         TR0=1;
  112.         EA = 1;                                //開總中斷
  113.        
  114. }

  115. /***************************主函數**************************/
  116. void main()
  117. {
  118.         P0M0=0xFF;                                                //定義P0口為推挽輸出 1111 1111
  119. //        P2M0=0xF0;                                                //定義P2.4 ~ P2.7口為推挽輸出  1111 0000

  120.         InitTimer();

  121.         delayms(10);
  122.        
  123.         while(1)
  124.         {       
  125.                
  126.                 receive();               
  127.                
  128.                 TempData[0]=DuanMa[RH/10];                               
  129.                 TempData[1]=DuanMa[RH%10];                                                               
  130.                
  131.                 TempData[2]=DuanMa[TH/10];                       
  132.                 TempData[3]=DuanMa[TH%10];
  133.                
  134.                 delayms(20);
  135. ……………………

  136. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
程序文件.rar (1.94 KB, 下載次數: 159)




作者: gxlin    時間: 2017-12-6 17:09
請傳電路圖參考
作者: bbsbbc    時間: 2018-2-7 11:07
非常給力,頂頂頂
作者: 雪兒烏鴉    時間: 2018-4-17 16:16
謝謝分享,下來看看怎么樣
作者: pjp69    時間: 2019-11-27 23:07
感謝分享,很不錯!
作者: pjp69    時間: 2019-11-27 23:08
感謝分享,很不錯




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品日韩精品 | 欧美日韩在线一区二区三区 | 国产精品美女久久久久久久久久久 | 黄色大片免费播放 | 视频一二三区 | 欧美激情精品久久久久 | 中文字幕一区二区三区四区五区 | 日韩在线精品视频 | 日韩第一夜| h在线看 | 欧美综合一区二区 | 欧美黄色免费网站 | 欧美日韩精品久久久免费观看 | 亚洲国产成人一区二区 | 国产在线观看福利 | 欧区一欧区二欧区三免费 | 亚洲精品一区二三区不卡 | 人成久久 | 日韩成人免费视频 | 国产高清区 | 久久人爽爽人爽爽 | 亚洲国产精品精华素 | 国产精品999| 一区二区三区四区国产 | 91欧美激情一区二区三区成人 | 国产中文字幕网 | 国产高清在线精品 | 国产一级一级毛片 | 综合国产第二页 | 亚洲日韩欧美一区二区在线 | 国产精品久久网 | 老牛嫩草一区二区三区av | 亚洲一二三区在线观看 | 午夜免费观看 | 最新中文字幕在线 | 91一区二区三区 | 一区二区高清不卡 | 亚洲一区二区精品视频 | 成年男女免费视频网站 | 成人三级在线观看 | 日韩视频在线免费观看 |