标题: 单片机DHT11温控设计 带上位机和下位机程序(RS-485总线) [打印本页]

作者: jidohgr    时间: 2017-7-22 18:54
标题: 单片机DHT11温控设计 带上位机和下位机程序(RS-485总线)
显示功能:在计算机终端和图形设备上以文字、图形等形式显示各个测控基站采集的信息和控制设备的状态。
数据通讯功能:主机和测控基站之间通过 RS-485 总线实现双向数据传输。
报警显示功能:当测控基站检测到温度值超标、可燃气体超标,立即将此信息发送给主机,主机接收到此信息后进行报警提示。
测控基站报警阈值设定功能:可以在主机上设定温度值超标的阈值,当温度值超过此阈值时才进行报警。
继电器控制功能:主机可发送命令驱动继电器动作,控制继电器的闭合让继电器处于需要的工作状态。
步进电机驱动功能:主机可发送命令驱动步进电机。可以驱动的项目如下:
正转;
反转
转速。
故障诊断功能:在主机上能实时反映测控基站的工作状态,自动诊断其是否在线并能进
行报警提示。
如果对您有帮助,那就很好了;

单片机源程序如下:
  1. /****************************************Copyright (c)****************************************************
  2. **                                       
  3. **                                 
  4. **
  5. **--------------File Info---------------------------------------------------------------------------------
  6. ** File name:                        
  7. ** Last modified Date:         
  8. ** Last Version:                  
  9. ** Descriptions:                                                        
  10. **--------------------------------------------------------------------------------------------------------
  11. ** Created by:                        FiYu
  12. ** Created date:                2016-9-18
  13. ** Version:                            1.0
  14. ** Descriptions:                iM-Net温湿度监控系统(RS485总线)                        
  15. **--------------------------------------------------------------------------------------------------------
  16. ** Modified by:                        FiYu
  17. ** Modified date:               
  18. ** Version:                                
  19. ** Descriptions:               
  20. ** Rechecked by:               
  21. **********************************************************************************************************/
  22. /****-----请阅读PDF文档  项目实战1:iM-Net温湿度监控系统(RS485总线)进行实验--***********/

  23. #include <intrins.h>
  24. #include <string.h>
  25. #include "uart.h"               
  26. #include "improtocol.h"        
  27. #include "gas.h"
  28. #include "DHT11.h"
  29. #include "relay.h"
  30. #include "timer.h"

  31. #define  UART_BUF_MAX  30
  32. /**********************
  33. 全局变量
  34. ***********************/

  35. uint8_t DevStat[8];//LED(1)  DHT11或DS18B20(4) MQ-2(1) 继电器(1) 步进电机(1)


  36. /***************************************************************************
  37. * 描  述 : 主函数
  38. * 入  参 : 无
  39. * 返回值 : 无
  40. **************************************************************************/
  41. int main()
  42. {                                          
  43.         uint16_t loop = 0;
  44.         /////////////////////////////////////////////////
  45.   //注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为
  46.   //      高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用
  47.   //相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
  48.   //        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
  49.   /////////////////////////////////////////////////
  50.         P0M1 = 0;        P0M0 = 0;        //设置P0.0~P0.7为准双向口
  51.         P1M1 = 0;        P1M0 = 0;        //设置P1.0~P1.7为准双向口
  52.         P2M0 = 0;        P2M1 = 0;        //设置P2.0~P2.7为准双向口
  53.         P3M1 = 0;        P3M0 = 0;        //设置P3.0~P3.7为准双向口
  54.         P4M1 = 0;        P4M0 = 0;        //设置P4.0~P4.7为准双向口
  55.         P5M1 = 0;        P5M0 = 0;        //设置P5.0~P5.7为准双向口

  56.         rs485_dr=0;     // 控制485接收
  57.         Timer0Init();
  58.         Uart1_Init();                // 初始化串口
  59.         Uart3_Init();           //初始化串口3
  60.         
  61.         EA = 1;         // 总中断打开
  62.   RELAY_PIN = RELAY_RELEASE;
  63.         
  64.         while(1)
  65.         {
  66.     loop++;
  67.                 if(Get_ConfigDev(MQ2_CONFIG_OS))//只有配置了MQ-2气体传感器的情况下,才会检测其状态
  68.                 {
  69.                         if(Check_MQ2_Stat() == GAS_ABNORMAL)DevStat[MQ2_STAT_OS] = GAS_ABNORMAL;
  70.                   else DevStat[MQ2_STAT_OS] = GAS_NORMAL;        
  71.                 }
  72.                
  73.                 if(UartReceFrame() == UART_FRAME_AVAIL)
  74.                 {
  75.       IM_RS485_Handle();
  76.       if(loop >= 20000)
  77.                   {
  78.                           if(Get_ConfigDev(DHT11_CONFIG_OS))DHT11(); //获取温湿度值,只有配置了DHT11,才会读取温度
  79.                           loop = 0;
  80.                   }
  81.     }
  82. ……………………

  83. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
项目实战1 - iM-Net温湿度监控系统(RS-485总线).rar (3 MB, 下载次数: 123)







作者: bbxyzzj    时间: 2017-7-23 08:31
感谢无私分享!
作者: fmqwh626    时间: 2018-5-9 08:54
赞。。。
作者: smartphone    时间: 2018-6-5 10:36
这个看了必须要回阿 感谢分享
作者: pengyongnet    时间: 2018-8-15 07:50
你好能分享下上位机吗,非常感谢
作者: 8779544    时间: 2018-8-15 09:24
您好,请问下上位机那个界面是怎么制作的
作者: gemxie    时间: 2018-11-12 15:26
学习学习咯,感谢分享了
作者: wuyacao    时间: 2020-6-16 21:09
感谢,上位机有吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1