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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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)



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

使用道具 舉報

沙發
ID:231936 發表于 2017-12-6 17:09 | 只看該作者
請傳電路圖參考
回復

使用道具 舉報

板凳
ID:139071 發表于 2018-2-7 11:07 | 只看該作者
非常給力,頂頂頂
回復

使用道具 舉報

地板
ID:306141 發表于 2018-4-17 16:16 | 只看該作者
謝謝分享,下來看看怎么樣
回復

使用道具 舉報

5#
ID:649542 發表于 2019-11-27 23:07 | 只看該作者
感謝分享,很不錯!
回復

使用道具 舉報

6#
ID:649542 發表于 2019-11-27 23:08 | 只看該作者
感謝分享,很不錯
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕不卡在线观看 | 成年人黄色免费视频 | 久久久精品久久 | 成人在线观看免费 | 日日夜夜免费精品 | 亚洲性人人天天夜夜摸 | 久久久久久久久久久高潮一区二区 | 亚洲第一在线 | 免费视频一区 | 操亚洲 | www.日韩| 一级在线 | 99草免费视频 | 一区二区三区国产好的精 | 亚洲精品一 | 99亚洲精品| 狠狠av| 免费看一区二区三区 | 久久精品一级 | 中文字幕日韩专区 | 精品国产欧美一区二区三区成人 | av一区二区三区四区 | 伊人久久精品 | 精品久久香蕉国产线看观看亚洲 | 亚洲一区二区三区桃乃木香奈 | 国产视频久久久 | 精品91久久| 日本电影网站 | 国产精品永久免费 | 日韩午夜影院 | 精品一级 | 九九久久这里只有精品 | 妖精视频一区二区三区 | 久久久国产一区二区三区 | 狠狠爱免费视频 | 成人片免费看 | 超碰在线播 | 久久精品亚洲精品 | 一区二区av | 亚洲一区二区三区四区在线观看 | 欧美一区二区三区视频在线观看 |