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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc15智能家居源碼(溫濕度傳感器、光照傳感器、空氣質量傳感器)

[復制鏈接]
跳轉到指定樓層
樓主
ID:323323 發表于 2018-5-6 11:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
溫濕度傳感器、光照傳感器、空氣質量傳感器

單片機源程序如下:
  1. #include "stc15.h"
  2. #include "string.h"
  3. #include "i2c.h"
  4. #include "stdio.h"  
  5. #include "uart.h"
  6. #include "normal.h"
  7. #include "string.h"
  8. #include <stdio.h>
  9. #include <intrins.h>

  10. unsigned char buf[40]={0};
  11. #define uchar unsigned char
  12. #define uint unsigned int
  13. uint hum,temp;
  14. uchar hum_h,hum_l,temp_h,temp_l,check;
  15. uchar bai,shi,ge,bail,shil,gel;
  16. char i=0;
  17.        


  18. sbit dht=P1^3;
  19. sbit in1=P2^1;
  20. sbit in2=P2^2;
  21. sbit in3=P2^3;
  22. sbit in4=P2^4;
  23. sbit zongxian=P2^5;
  24. sbit fenxian=P2^6;



  25. void delay(unsigned int time)
  26. {
  27.          unsigned char a,b;
  28.         for(;time>0;time--)
  29.                 for(b=4;b>0;b--)
  30.                         for(a=113;a>0;a--);
  31. }


  32. void delay2(uint t)
  33. {
  34.         unsigned char i;
  35.         for(t;t>0;t--)
  36.         {
  37.                 _nop_();
  38.                 i = 25;
  39.                 while (--i);
  40.         }
  41. }


  42. //void delay2(uint i)
  43. //{
  44. // while(i--);
  45. //}
  46. void delay1(uint z)
  47. {
  48. uint x,y;
  49. for(x=z;x>0;x--)
  50. for(y=110;y>0;y--);
  51. }
  52. void star()        //開始接受信號
  53. {
  54. dht=0;
  55. delay2(5);
  56. dht=1;
  57. delay2(4);
  58. while(!dht);
  59. while(dht);

  60. }
  61. uchar read_byte() //讀取接受的信號
  62. {
  63.   uchar n,byte=0,dat;
  64.   for(n=0;n<8;n++)
  65.   {
  66.    while(!dht);
  67.    delay2(4);
  68.    dat=0;
  69.    if(dht)
  70.     dat=1;
  71.    while(dht);
  72.         byte<<=1;
  73.         byte|=dat;
  74.        
  75.    }
  76.    return byte;
  77. }
  78. void read_hum_temp()
  79. {
  80.    star();
  81.    hum_h=read_byte();
  82.    hum_l=read_byte();
  83.    temp_h=read_byte();
  84.    temp_l=read_byte();
  85.    check=read_byte();
  86.    while(!dht);
  87.    dht=1;

  88. }
  89. void shujvzhuanhua() //數據轉化
  90. {
  91. uchar a;
  92. a=hum_h+hum_l+temp_h+temp_l;
  93. if(a==check)
  94. {
  95.   hum=temp=0;
  96.   hum=((hum|hum_h)<<8)|hum_l;
  97.   temp=((temp|temp_h)<<8)|temp_l ;
  98.   bai=temp/100+0x30;
  99.   shi=temp%100/10+0x30;
  100.   ge=temp%10+0x30;
  101.   bail=hum/100+0x30;
  102.   shil=hum%100/10+0x30;
  103.   gel=hum%10+0x30;

  104. }
  105. else
  106.   bai=shi=ge=bail=shil=gel=0;

  107. }
  108. void chuankou2() interrupt 8
  109. {       
  110.         R2I_RST();
  111.         T2I_RST();
  112.         i=S2BUF;
  113.         if(i=='s')
  114.         {
  115.                 P53=0;
  116.                
  117.                
  118.         }
  119.         if(i=='j')       
  120.         {
  121.                 P52=0;
  122.         }
  123.        
  124.         if(i=='g')
  125.         {
  126.                 zongxian=0;
  127.                 delay_ms(1);
  128.                 fenxian=0;
  129.                
  130.         }
  131.     if(i=='m')
  132.         {
  133.                 zongxian=1;
  134.                 fenxian=1; //檢測下降沿
  135.        
  136.         }
  137. }


  138. //void delay1(unsigned int x)
  139. //{
  140. //        while(x--);
  141. //}
  142. void main()
  143. {
  144.         int i;
  145.         unsigned char raw_data[13]={0};
  146.         uint32_t Lux=0;
  147.         uint16_t data_16[2]={0};
  148.         CLK_DIV=0x00;
  149.         P1M0=0x00;
  150.         P1M1=0x00;
  151.         P2M0=0xff;
  152.         P2M1=0x00;//驅動電機模塊需要大電流,推挽輸出
  153.         P3M0=0x00;
  154.         P3M1=0x00;
  155.         P5M0=0xff;
  156.         P5M1=0x00;
  157.         P53=1;
  158.         P52=1;
  159.         uart1_int();
  160.         uart2_int();
  161.         IE2=0x00;
  162.         SCL=1;
  163.         SDA=1;
  164.         EA_ON();
  165.         ES_OFF();
  166.         ES2_OFF();
  167.         zongxian=1;
  168.         fenxian=1;
  169.         while(1)
  170.         {       
  171.                
  172.                 if(Single_ReadI2C(0xb6,0x00,raw_data,4))   //光照
  173.             {
  174.                      data_16[0]=(((uint16_t)raw_data[0])<<8)|raw_data[1];
  175.                         data_16[1]=(((uint16_t)raw_data[2])<<8)|raw_data[3];
  176.                         Lux=(((uint32_t)data_16[0])<<16)|data_16[1];
  177.                 }
  178.                 delay_ms(1100);
  179.                
  180.                 delay_ms(1);

  181.                 read_hum_temp();
  182.                 shujvzhuanhua();
  183.                 ES2_OFF();
  184.                 P53=1;
  185.                 P52=1;
  186.                 printf("t3.txt=\"%f\"\xff\xff\xff",hum/10.0);
  187.                 printf("t1.txt=\"%f\"\xff\xff\xff",temp/10.0);
  188.                 printf("t5.txt=\"%f\"\xff\xff\xff",Lux/100.0);
  189.                 printf("add 1,0,%f\xff\xff\xff",hum/10.0);
  190.                 printf("add 1,1,%f\xff\xff\xff",temp/10.0);
  191.                 printf("add 1,3,%f\xff\xff\xff",Lux/100.0);
  192.                 delay_ms(1);
  193.                 sprintf(buf,"*%f~?%f!+%f-",Lux/100.0,temp/10.0,hum/10.0);//轉化成字符
  194.                 delay_ms(1);
  195.                
  196.                 for(i=0;i<strlen(buf);i++)
  197.                 {
  198.                         delay_ms(1);
  199.                         uart2_sendata(buf[i]);
  200.                 }
  201.                 ES2_ON();
  202.                 delay_ms(1);
  203.                 memcpy(buf,"\0",40);//數組清零
  204.                 delay_ms(1);
  205.                
  206.         }
  207. }

復制代碼

所有資料51hei提供下載:
智能家居.zip (76.06 KB, 下載次數: 52)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久国产精品 | 中文字幕11页 | 精品国产青草久久久久福利 | 91精品国产综合久久久久久丝袜 | 欧美性受 | 日屁网站 | 日韩高清国产一区在线 | 在线第一页 | 综合久久综合久久 | 精品免费国产视频 | 一级黄色毛片子 | 亚洲人成免费 | 玖玖爱365 | 久久99国产精品 | 国产精品久久久亚洲 | 久久精品国产免费一区二区三区 | 久久综合一区二区 | 麻豆91精品91久久久 | 日韩成人在线视频 | 蜜月va乱码一区二区三区 | 一级片成人 | 91久久久久久久久久久 | 日本久久一区二区三区 | 国产成人免费视频 | 一本大道久久a久久精二百 欧洲一区二区三区 | 亚洲在线| jlzzjlzz国产精品久久 | 日韩视频专区 | 国产精品爱久久久久久久 | 天天拍夜夜爽 | 亚洲日韩中文字幕 | 欧美国产日韩一区二区三区 | 天天看夜夜 | 一区二区三区中文字幕 | 亚洲3级| 中文字幕一区二区三区在线乱码 | 国产在线一区二区三区 | 成人黄色a | 99re在线免费视频 | 国产黄色在线观看 | 亚洲人在线|