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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1764|回復: 3
打印 上一主題 下一主題
收起左側

51單片機+DHT111數碼管顯示出錯

[復制鏈接]
跳轉到指定樓層
樓主
ID:626743 發(fā)表于 2021-7-24 20:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
首先感謝進來看的朋友,表示感謝。請問我這個DHT11數碼管顯示,為什么數碼管只顯示最后一位?
主函數:
#include<reg52.h>
#include"dht11.h"
#include"delay.h"
#include"uart.h"

sbit B1 = P2^2;
sbit B2 = P2^1;
sbit B3 = P2^0;
unsigned char tempH,tempL,humiH,humiL;

unsigned char Temp_Humi[4];
unsigned char code Temp_Table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void Show_temp(void)
{

        uint i=0;
        Temp_Humi[0] = tempH/10;
        Temp_Humi[1] = tempH%10;
        Temp_Humi[2] = humiH/10;
        Temp_Humi[3] = humiH%10;
        for(i=0;i<4;i++)
        {
                switch(i)
                {       
                        case (0) : B1 = 0 ;B2 = 0 ;B3 = 0 ; break;
                        case (1) : B1 = 0 ;B2 = 0 ;B3 = 1 ; break;
                        case (2) : B1 = 0 ;B2 = 1 ;B3 = 0 ; break;
                        case (3) : B1 = 0 ;B2 = 1 ;B3 = 1 ; break;
                }                                                                                                                         
                P0 =  Temp_Table[Temp_Humi[i]];
                Delay40us();
        }

}
int main(void)
{       
        Timer0Init();
        UartInit();
        Dht11_Star();
        if(Dht11_Check()<0)       
                printf("error! \r\n");
        else
                printf("ok!  \r\n");
        while(1)
        {       
                Dht11_Read_Dat(&tempL,&tempH,&humiH,&humiL);
                Delay4ms();
                Show_temp();
                printf("temp: %bu%bu  humi: %bu%bu\r\n",Temp_Humi[0],Temp_Humi[1],Temp_Humi[2],Temp_Humi[3]);
        }
}






DHT11時序讀取

#include<intrins.h>
#include"dht11.h"
#include"delay.h"

void Dht11_Star(void)
{
        DATE = 0;
        Delay20ms();
        DATE = 1;
        Delay30us();                
               
}

char Dht11_Check(void)
{
        uint t = 0;
        while(DATE)
        {
                t++;
                _nop_();
                if(t>4000)
                {
                        return -1;
                }
        }
        t=0;
        while(!DATE)
        {
                t++;
                _nop_();
                if(t>100)
                        return -2;
        }
                t=0;
        while(DATE)
        {
                t++;
                _nop_();
                if(t>100)
                        return -3;
        }
        return 0;                               
}

uchar Dht11_Read(void)
{
        uint i,t=0;
        uchar temp=0;
        for(i=0;i<8;i++)
        {
                while(!DATE)
                {
                        t++;
                        _nop_();
                        if(t>60)
                                return -1;
                }
                Delay40us();
                temp <<= 1;
                if(DATE)
                {
                        temp |= 1;
                        t=0;
                        while(DATE)
                        {
                                t++;
                                _nop_();
                                if(t>80)
                                        return -1;
                        }
                }
        }
        return temp;
}

short Dht11_Read_Dat(char *tempL,char *tempH,char *humiH,char *humiL)
{
        uchar i;
        uchar buff[5];
        Dht11_Star();
        if(Dht11_Check() == 0)
        {
                for(i=0;i<5;i++)
                {
                        buff[i]= Dht11_Read();
                }
                Delay40us();
                if((buff[0]+buff[1]+buff[2]+buff[3]) == buff[4])
                {
                        *humiH=buff[0];
                        *humiL=buff[1];
                        *tempH=buff[2];
                        *tempL=buff[3];
                        return 0;
                }
                else
                        return -1;
        }
        else
                return -2;
}

51hei圖片_20210724202228.png (127.62 KB, 下載次數: 48)

51hei圖片_20210724202228.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:747478 發(fā)表于 2021-7-25 01:54 來自手機 | 只看該作者
把show-temp函數里delay延時改成4ms試試
回復

使用道具 舉報

板凳
ID:626743 發(fā)表于 2021-7-25 14:38 | 只看該作者
wangshangxing 發(fā)表于 2021-7-25 01:54
把show-temp函數里delay延時改成4ms試試

謝謝 解決了
回復

使用道具 舉報

地板
ID:965153 發(fā)表于 2021-9-9 20:45 | 只看該作者
怎么可以用dht11檢查溫度 當溫度大于三十攝氏度 濕度大于60%時亮警燈阿
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91色视频在线观看 | 精品自拍视频在线观看 | 天天爽综合网 | 精品美女 | 日韩高清国产一区在线 | 精品丝袜在线 | 久久精品国产亚洲一区二区三区 | 国产一级在线观看 | www.久久| 精品欧美一区二区在线观看视频 | 中国一级特黄真人毛片免费观看 | 国产一区二区自拍 | 亚洲三区在线观看 | av黄色免费在线观看 | 亚洲日本激情 | 国产精品久久久亚洲 | 亚洲一区二区三区 | 色婷婷久久久亚洲一区二区三区 | 福利久久 | 国产高清自拍视频在线观看 | 亚洲日本成人 | 欧美日韩精品亚洲 | 亚洲欧洲日韩精品 中文字幕 | 香蕉av免费 | 国产精品99久久久久久宅男 | 中文字幕中文字幕 | 日韩视频在线播放 | 男女搞网站 | 欧美极品在线 | 91精品一区 | 亚洲毛片在线观看 | 国产毛片毛片 | 91精品国模一区二区三区 | 一区二区三区欧美大片 | 国产黄色小视频在线观看 | 黄色免费在线观看 | 日日摸天天添天天添破 | 亚洲综合在线一区二区 | 精品欧美一区二区三区久久久小说 | 91精品久久久久久综合五月天 | 亚洲国产精品一区在线观看 |