毕业论文

打赏
当前位置: 毕业论文 > 自动化 >

STC89C52单片机温室在线监控系统设计+流程图(6)

时间:2017-01-06 12:51来源:毕业论文
图10 主程序流程图 3.2 子程序流程图 3.2.1 LCD显示的流程图 主程序运行后,当要调用显示子程序时,先对显示模块进行初始化,初始化结束后,要将LCD显示


图10 主程序流程图
3.2 子程序流程图
3.2.1 LCD显示的流程图
主程序运行后,当要调用显示子程序时,先对显示模块进行初始化,初始化结束后,要将LCD显示的内容和LCD的地址发送到单片机,由单片机发出信号,检测显示设备LCD是否忙碌。若LCD空闲,则单片机将信息发送给LCD并将数据显示出来。若LCD处于忙碌状态,则需要等待,当完成当前数据处理后,再将单片机发出的数据显示出来。显示子程序的流程图如图11所示。
图11  LCD显示流程图
3.2.2 温湿度采集的流程图
DHT11 上电后,首先测试环境温湿度数据,并记录数据,DATA数据线由上拉电阻拉高一直保持高电平,处于输入状态,时刻检测外部信号。微处理器的I/O输出低电平(保持时间大于等于18ms),由于上拉电阻,微处理器的 I/O即 DHT11的 DATA数据线变高,等待 DHT11作出回答信号,DHT11的DATA引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后DHT11 的DATA引脚处于输出状态,输出80us的低电平作为应答信号,紧接着输出80us的高电平通知外设准备接收数据,微处理器的 I/O 此时处于输入状态,检测到 I/O 有低电平(DHT11回应信号)后,等待80us的高电平后的数据接收,由DHT11的 DATA引脚输出40位数据,微处理器根据 I/O电平的变化接收40 位数据,位数据0的格式为:50us的低电平和 26-28us的高电平,位数据1的格式为:50us的低电平加70微秒的高电平。DHT11 的DATA引脚输出 40 位数据后,继续输出低电平50 微秒后转为输入状态,由于上拉电阻随之变为高电平,接下来DHT11内部重测环境温湿度数据,开始记录数据,重新等待外部信号的到来[9]。
相应的流程图如图12所示。

图12 温湿度采集流程图
3.3 程序设计
本设计采用C语言编程,下面介绍main.c主程序编写,其他程序略
3.3.1 头文件和一些宏定义
#include <reg52.h>
    #include "1602.h"
    #include "dht.h"
    #include "2402.h"
3.3.2 管脚定义
    //定义三个LED灯
    sbit L2=P1^3;        
    sbit L3=P1^4;        
    sbit L4=P1^5;
    sbit L5=P1^6;        
    sbit Key_SET = P3^2;            //设置键
    sbit Key_UP= P3^3;                //加  键
    sbit Key_DOWN = P3^4;        //减  键
    sbit Key_SAVE = P3^5;            //保存键
    sbit Relay = P2^0;
3.3.3 常量、变量定义
//定义标识
    volatile bit FlagStartRH = 0;  //开始温湿度转换标志
    volatile bit FlagKeyPress = 0; //有键按下
    //定义温湿度传感器用外部变量
    extern U8  U8FLAG,k;
    extern U8  U8count,U8temp;   
    extern U8  U8comdata;
    extern U8  count, count_r;
U16 temp;
    S16 temperature, humidity;
    S16 idata TH, TL, HH, HL;  //温度上限和湿度上限
    char * pSave;
    U8 keyvalue, keySET, keySAVE, keyUP, keyDOWN;
    //定义变量
    U16 RHCounter;
U8 FlagSet,hide. STC89C52单片机温室在线监控系统设计+流程图(6):http://www.youerw.com/zidonghua/lunwen_1916.html
------分隔线----------------------------
推荐内容