找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3470|回复: 1
打印 上一主题 下一主题
收起左侧

单片机同时采集两个DHT11温湿度传感器数据

[复制链接]
跳转到指定楼层
楼主
ID:398190 发表于 2018-9-15 07:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机同时采集两个温湿度传感器的数值 进行液晶lcd1602显示

单片机源程序如下:
  1. #include<reg52.h>
  2.   extern void InitLcd1602();
  3.   extern  void Delay(unsigned int j);
  4.   extern void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str);
  5.   extern void RH1();
  6.   extern  unsigned char  U8T_data_H1;
  7.   extern unsigned char U8T_data_L1;
  8.   extern unsigned char U8RH_data_H1;
  9.   extern unsigned char U8RH_data_L1;
  10.   extern  unsigned char  U8T_data_H_temp1;
  11.   extern unsigned char U8T_data_L_temp1;
  12.   extern unsigned char U8RH_data_H_temp1;
  13.   extern unsigned char U8RH_data_L_temp1;
  14.   extern unsigned char U8checkdata_temp1;


  15.   extern void RH2();
  16.   extern  unsigned char  U8T_data_H2;
  17.   extern unsigned char U8T_data_L2;
  18.   extern unsigned char U8RH_data_H2;
  19.   extern unsigned char U8RH_data_L2;  
  20. unsigned int cnt=0;
  21. unsigned char flag=0;
  22. unsigned char str3[5]={"12345"};
  23. unsigned char strt1[]={'0','0','0','0','\0'}; //温度
  24. unsigned char strt2[]={'0','0','0','0','\0'};

  25. unsigned char strh1[]={'0','0','0','0','\0'}; //湿度
  26. unsigned char strh2[]={'0','0','0','0','\0'};



  27.   unsigned char str4[]={'2','4','5','7'};
  28. void main()
  29. {       

  30.                  InitLcd1602();
  31.                 EA=1;
  32.                 TMOD=0X01;
  33.                 TH0=0XFC;
  34.                 TL0=0X67;
  35.                 ET0=1;
  36.                 TR0=1;
  37.                 while(1)
  38.                 {          

  39.                           if(flag==1)
  40.                           {
  41.                           
  42.                                         //200ms秒刷新处理函数
  43.                                    RH1();
  44.                                    RH2();
  45.                                    strt1[0]= (char)(0x30+U8T_data_H1/10);
  46.                                    strt1[1]=(char)(0x30+U8T_data_H1%10);
  47.                                    strt1[2]='.';
  48.                                    strt1[3]=(char)(0x30+U8T_data_L1%10);

  49.                                    strh1[0]= (char)(0x30+U8RH_data_H1/10);
  50.                                    strh1[1]=(char)(0x30+U8RH_data_H1%10);
  51.                                    strh1[2]='.';
  52.                                    strh1[3]=(char)(0x30+U8RH_data_L1%10);

  53.                                   
  54.                                    strt2[0]= (char)(0x30+U8T_data_H2/10);
  55.                                    strt2[1]=(char)(0x30+U8T_data_H2%10);
  56.                                    strt2[2]='.';
  57.                                    strt2[3]=(char)(0x30+U8T_data_L2%10);

  58.                                    strh2[0]= (char)(0x30+U8RH_data_H2/10);
  59.                                    strh2[1]=(char)(0x30+U8RH_data_H2%10);
  60.                                    strh2[2]='.';
  61.                                    strh2[3]=(char)(0x30+U8RH_data_L2%10);

  62.                        
  63.                                    LcdShowStr(0,0,"T:");
  64.                                    LcdShowStr(2,0,strt1);
  65.                                    //LcdShowStr(0,1,"T2:");
  66.                                    LcdShowStr(7,0,strt2);

  67.                                    LcdShowStr(0,1,"H:");
  68.                                    LcdShowStr(2,1,strh1);
  69.                                    //LcdShowStr(8,1,"H2:");
  70.                                    LcdShowStr(7,1,strh2);

  71.                                    //按键阈值设置
  72.                                    LcdShowStr(12,0,"M:00");
  73.                                          flag=0;
  74.                           }
  75.                 }

  76. }

  77. void InterruptTimer0()interrupt 1
  78. {
  79.         TH0=0XFC;
  80.         TL0=0X67;
  81.         cnt++;
  82.         if(cnt>=200)
  83.         {
  84.                 cnt=0;
  85.                 flag=1;
  86.         }

  87. }
复制代码

所有资料51hei提供下载:
项目_温湿度显示 - 9-14.rar (54.42 KB, 下载次数: 48)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-9-15 15:51 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表