久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2414|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于單片機DHT22溫濕度LabView上位機監(jiān)控系統(tǒng)設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:190577 發(fā)表于 2023-7-17 21:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

一、系統(tǒng)方案
本設(shè)計采用AT89C52單片機作為主控制器,液晶1602顯示溫濕度,LabView上位機通信,上位機顯示溫度,同時上位機可以設(shè)置溫度上下限,當(dāng)測量溫度低于或高于上限,溫度報警,上位機可以控制下位機加熱設(shè)備啟動與關(guān)閉,實現(xiàn)上位機和下位機的交換數(shù)據(jù)。



二、硬件設(shè)計
原理圖如下:


三、單片機軟件設(shè)計
1單片機代碼主要是串口初始化、串口中斷服務(wù)程序。首先是串口初始化:
void uart_init()
{
    TMOD |= 0x20;//定時器1,工作模式2 8位自動重裝
    TH1 = 0xfd;
    TL1 = 0xfd;//設(shè)置比特率9600
    SM0 = 0;
    SM1 = 1;//串口工作方式1,8位UART波特率可變
    TR1 = 1;//啟動定時器1
    REN = 1;
    EA = 1;        //打開總中斷
    ES = 1; //打開串口中斷  
}
2、貼上51單片機負(fù)責(zé)串口發(fā)送的兩個函數(shù):
void SendByte(unsigned char dat) //發(fā)送一個字節(jié)的數(shù)據(jù),形參dat即為待發(fā)送數(shù)據(jù)。
{
    SBUF = dat; //將數(shù)據(jù)寫入到串口緩沖
    while(!TI); //等待發(fā)送完畢
    TI = 0;
}
void SendArray(unsigned char *Array, unsigned char Size)//通過串口發(fā)送一個數(shù)組,構(gòu)建for循環(huán),改變索引依次發(fā)送
{
    unsigned char i;

    for(i = 0; i < Size; i++)
    {
        SendByte(Array[i ]);
    }
}
在串口中斷中處理接收到的數(shù)據(jù):
void uart(void) interrupt 4                 //串口中斷
{
    unsigned char Res;
    static unsigned char Rec_state = 0;

    if(RI)    //收到數(shù)據(jù)
    {
        RI = 0;   //清中斷請求
        Res = SBUF;
        if(Res == 0xFF) //接收到幀頭
        {
            Rec_state = 1;
        }      
        else if(Rec_state == 1 && Res == 0xEE)//接收到幀尾
        {
            Rec_state = 0;
        }
        else if(Rec_state == 1)
        {
            switch(Res)//接收到數(shù)據(jù),繼電器控制
            {
                case 0x02: RY2 = 0; break;
                case 0x03: RY2 = 1; break;
                default : RY2 =1; break;
            }               
        }
    }
    else        //發(fā)送完一字節(jié)數(shù)據(jù)
    {
        //TI = 0;
    }
}
3、貼上DHT22讀溫濕度函數(shù)
unsigned char Read_Sensor(void)
{
    unsigned char i;
    //主機拉低(Min=800US Max=20Ms)
    DHT_PIN = 0;
    Delay_N1ms(18);  //延時18Ms

    //釋放總線 延時(Min=30us Max=50us)
    DHT_PIN = 1;         
    Delay_N10us(2);//延時30us
    //主機設(shè)為輸入 判斷傳感器響應(yīng)信號
    DHT_PIN = 1;

    Sensor_AnswerFlag = 0;  // 傳感器響應(yīng)標(biāo)志         

    //判斷從機是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運行         
    if(DHT_PIN ==0)
    {
        Sensor_AnswerFlag = 1;//收到起始信號
        Sys_CNT = 0;
    //判斷從機是否發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束         
    while((!DHT_PIN))
    {
        if(++Sys_CNT>300) //防止進入死循環(huán)
        {
            Sensor_ErrorFlag = 1;
            return 0;
        }
    }
    Sys_CNT = 0;
    //判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進入數(shù)據(jù)接收狀態(tài)
    while((DHT_PIN))
    {
        if(++Sys_CNT>300) //防止進入死循環(huán)
        {
            Sensor_ErrorFlag = 1;
            return 0;
        }
    }                  
        // 數(shù)據(jù)接收        傳感器共發(fā)送40位數(shù)據(jù)
        // 即5個字節(jié) 高位先送  5個字節(jié)分別為濕度高位 濕度低位 溫度高位 溫度低位 校驗和
        // 校驗和為:濕度高位+濕度低位+溫度高位+溫度低位
        for(i=0;i<5;i++)
        {
            Sensor_Data[ i] = Read_SensorData();
        }
    }
    else
    {
        Sensor_AnswerFlag = 0;          // 未收到傳感器響應(yīng)        
    }
    return 1;
}

四、上位機軟件設(shè)計
上位機是借助LabView來開發(fā)的,界面比較簡單,首先前面板設(shè)計UI界面,之后后面板通過圖形化編程完成軟件開發(fā),放上一個上位機前面板的截圖:

后面板截圖如下:
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产黄色在线观看 | 色爽| 91蝌蚪少妇偷拍 | www.日韩.com | 4438xxx| 久草新视频 | 日韩欧美中文 | 精品一区三区 | 视频一区在线观看 | 九九热精品在线 | 欧美理论片在线观看 | 亚洲精品乱码久久久久久 | 一级片在线播放 | 精品一区二区三区三区 | 五月天一区二区 | 免费成人黄色网址 | 97精品国产 | 国产高潮在线观看 | 99精品免费视频 | 国产精品免费一区 | 精品国产乱码久久久久久蜜臀网站 | 黄色大片视频 | 欧美女同视频 | 在线日韩 | 一区在线播放 | 男人天堂网av | 日韩高清国产一区在线 | 手机看片欧美 | 国产女人18毛片水18精品 | 亚洲一区二区欧美 | 欧美国产日韩一区二区 | 一级片毛片 | 色综合久久88色综合天天 | 久久久久久网 | 精品国产久| 在线成人 | 欧美三根一起进三p | 在线中文字幕 | 91视频在线观看视频 | 日韩欧美网站 | 黄色片视频在线观看 |