果蔬的保鲜对储存环境的温湿度要求极高,因此对于果蔬工厂来说,对储藏果蔬仓库的环境的温湿度实时且准确的监测具有重要意义。本设计基于STC89C51单片机的果蔬工厂仓储环境的智能检测系统。系统采用无线zigbee组网进行远程数据传输,采用集温湿度传感器与A/D转换器为一体的DHT11芯片作为温湿度采集模块,上位机采用美国NI公司的Labview对环境采集的温湿度数据的进行显示。其他部分包括下位机LCD1602的显示,串行通信模块以及超限报警处理电路,分别实现了上下位机温湿度给定值的设定和超限报警处理。本文主要介绍了系统的硬件软件实现原理,对硬件结构原理和软件实现要点进行分析。系统结构设计明晰、实用,提高了测量精度和效率。 单片机源程序如下:
- #include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
- #include "intrins.h"
- #include <math.h>
- #include "lcd1602.h"
- #include "dht11.h"
- #include "dht11_1.h"
- #include "usart.h"
- #define uchar unsigned char
- #define uint unsigned int
- uint flag_1000=0;
- uchar rec_dat[12];
- uchar rec_dat1[12];
- uchar sbuf[8];
- /*******************************************************************************
- * 函 数 名 : Timer0Init
- * 函数功能 : 定时器0初始化
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void Timer0Init()
- {
- TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
- TH0=0XFC; //给定时器赋初值,定时1ms
- TL0=0X18;
- ET0=1;//打开定时器0中断允许
- EA=1;//打开总中断
- TR0=1;//打开定时器
- }
- /*------------------------------------------------
- 主函数
- ------------------------------------------------*/
- void main(void)
- {
- uchar i,j;
- //Timer0Init();
- LCD_Init();
- UartInit(); // 串口初始化
- LCD_Clear();//清屏
- delay_ms(300); //DHT11上电后要等待1S以越过不稳定状态在此期间不能发送任何指令
- while (1)
- {
- DHT11_receive();
- DHT11_1_receive();
- for(i=0;i<11;i++)
- {
- LCD_Write_Char(i,0,rec_dat[i]);
- LCD_Write_Char(i,1,rec_dat1[i]);
- }
- // if( flag_1000==1)
- // {
- //flag_1000=0;
- for(j=0;j<8;j++)
- {
- uart_send_byte(sbuf[j]);
- }
- //}
- }
- }
复制代码
上位机程序:
远程果蔬工厂监控系统设计.rar
(79.6 KB, 下载次数: 125)
|