找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3384|回复: 3
收起左侧

DHT11温湿度单片机例程与原理图

[复制链接]
ID:202975 发表于 2018-5-28 17:34 | 显示全部楼层 |阅读模式
温湿度例程
0.png 0.png

  1. #include<reg52.h>    //包含单片机寄存器的头文件
  2. #include<intrins.h> //包含_nop_()函数定义的头文件
  3. #include "1602.h"
  4. #include "dht11.h"
  5. #include "ds1302.h"
  6. #include "timer.h"
  7. #define uchar unsigned char
  8. #define uint  unsigned int
  9. #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
  10. sbit BEEP=P0^0;
  11. sbit K1=P1^1;
  12. sbit K2=P1^0;
  13. sbit K3=P1^2;
  14. sbit K4=P1^3;
  15. sbit K5=P1^4;
  16. char work_mode=0;
  17. char SET_TIME_MODE=1,SET_TEMP_MODE=1,SET_RH_MODE=1;
  18. xdata char set_H=10,set_M=10,set_S=10;
  19. xdata int SET_TEMP_H=400,SET_TEMP_L=100;
  20. xdata int SET_RH_H=60,SET_RH_L=10;

  21. void SET_TIME(char SET_TIME_mode)
  22. {
  23.         switch(SET_TIME_mode)
  24.         {
  25.                 case 1:
  26.                 PRINT_SET_TIME_hour();       
  27.                 break;//时
  28.                 case 2:
  29.                 PRINT_SET_TIME_minute();       
  30.                 break;//分
  31.                 case 3:
  32.                 PRINT_SET_TIME_second();       
  33.                 break;//秒
  34.         }
  35. }
  36. void SET_TEMP(char SET_TEMP_mode)
  37. {
  38.         switch(SET_TEMP_mode)
  39.         {
  40.                 case 1:
  41.                 PRINT_SET_TEMP_H();//设置温度高限       
  42.                 break;//时
  43.                 case 2:
  44.                 PRINT_SET_TEMP_L();//设置温度低限
  45.                 break;//分
  46.         }
  47. }

  48. void SET_RH(char SET_RH_mode)
  49. {
  50.         switch(SET_RH_mode)
  51.         {
  52.                 case 1:
  53.                 PRINT_SET_RH_H();//设置温度高限       
  54.                 break;//时
  55.                 case 2:
  56.                 PRINT_SET_RH_L();//设置温度低限
  57.                 break;//分
  58.         }
  59. }



  60. void main()
  61. {

  62.         char code sys_Data[2][11]={"SYSTEM Init","Please Wait"};
  63.         char xdata i;
  64.         BEEP=1;
  65.         LCD_1602_Init();
  66.         Initial_DS1302();
  67.                
  68.         lcd_pos(2);
  69.         for(i=0;i<11;i++)
  70.         lcd_wdat(sys_Data[0][i]);
  71.         lcd_pos(42);
  72.         for(i=0;i<11;i++)
  73.         lcd_wdat(sys_Data[1][i]);
  74.         delay(2500);
  75.         TIMER_Init();
  76. //        DS1302_SetTime(DS1302_HOUR,10);        //设置的时间是10:54:30
  77. //        DS1302_SetTime(DS1302_MINUTE,54);
  78. //        DS1302_SetTime(DS1302_SECOND,30);   

  79. while(1)
  80. {
  81.         switch(work_mode)
  82.         {
  83.                 case 0:break;//正常输出
  84.                 case 1:SET_TIME(SET_TIME_MODE);break;//修改时间
  85.                 case 2:SET_TEMP(SET_TEMP_MODE);break;//修改温度
  86.                 case 3:SET_RH(SET_RH_MODE);break;//修改湿度
  87.                 default:break;
  88.         }

  89. }

  90. }
复制代码


温湿度.7z

159.27 KB, 下载次数: 37, 下载积分: 黑币 -5

回复

使用道具 举报

ID:1 发表于 2018-5-29 04:30 | 显示全部楼层
代码有问题,赠送积分收回
回复

使用道具 举报

ID:303213 发表于 2018-5-28 21:34 | 显示全部楼层
好像下载出现了问题?
回复

使用道具 举报

ID:53978 发表于 2018-5-28 22:42 | 显示全部楼层
复制代码编译错误
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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