远程果蔬工厂监控系统设计 LabVIEW+51单片机程序

[复制链接]
查看6 | 回复0 | 2020-12-9 16:16:46 | 显示全部楼层 |阅读模式
果蔬的保鲜对储存环境的温湿度要求极高,因此对于果蔬工厂来说,对储藏果蔬仓库的环境的温湿度实时且准确的监测具有重要意义。本设计基于STC89C51单片机的果蔬工厂仓储环境的智能检测系统。系统采用无线zigbee组网进行远程数据传输,采用集温湿度传感器与A/D转换器为一体的DHT11芯片作为温湿度采集模块,上位机采用美国NI公司的Labview对环境采集的温湿度数据的进行显示。其他部分包括下位机LCD1602的显示,串行通信模块以及超限报警处理电路,分别实现了上下位机温湿度给定值的设定和超限报警处理。本文主要介绍了系统的硬件软件实现原理,对硬件结构原理和软件实现要点进行分析。系统结构设计明晰、实用,提高了测量精度和效率。
1.png

51单片机部分源码:
  1. #include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  2. #include "intrins.h"
  3. #include <math.h>
  4. #include "lcd1602.h"
  5. #include "dht11.h"
  6. #include "dht11_1.h"
  7. #include "usart.h"
  8. #define uchar unsigned char
  9. #define uint unsigned int        

  10. uint flag_1000=0;
  11. uchar rec_dat[12];
  12. uchar rec_dat1[12];
  13. uchar sbuf[8];

  14. /*******************************************************************************
  15. * 函 数 名         : Timer0Init
  16. * 函数功能                   : 定时器0初始化
  17. * 输    入         : 无
  18. * 输    出         : 无
  19. *******************************************************************************/
  20. void Timer0Init()
  21. {
  22.         TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
  23.         TH0=0XFC;        //给定时器赋初值,定时1ms
  24.         TL0=0X18;        
  25.         ET0=1;//打开定时器0中断允许
  26.         EA=1;//打开总中断
  27.         TR0=1;//打开定时器                        
  28. }

  29. /*------------------------------------------------
  30.                     主函数
  31. ------------------------------------------------*/


  32. void main(void)
  33. {
  34.         uchar i,j;
  35.         //Timer0Init();
  36.         LCD_Init();        
  37.         UartInit();                   // 串口初始化
  38.         LCD_Clear();//清屏
  39.         delay_ms(300);    //DHT11上电后要等待1S以越过不稳定状态在此期间不能发送任何指令
  40.         while (1)
  41.          {
  42.                    DHT11_receive();
  43.             DHT11_1_receive();        
  44.                 for(i=0;i<11;i++)
  45.                 {
  46.                         LCD_Write_Char(i,0,rec_dat[i]);
  47.                         LCD_Write_Char(i,1,rec_dat1[i]);
  48.                 }
  49.         //  if(        flag_1000==1)
  50.         //  {
  51.           //flag_1000=0;
  52.                         for(j=0;j<8;j++)
  53.                         {
  54.                         uart_send_byte(sbuf[j]);
  55.                         }
  56.                 //}
  57.         }
  58. }
  59. 完整源码见附件
复制代码

监控系统设计labview和51单片机源码.rar (79.6 KB, 售价: 5 工控币)
回复

使用道具 举报

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

本版积分规则