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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

51單片機(jī) 用LCD1602顯示DHT11采集的溫濕度,仿真溫濕度顯示不出來(lái),求指點(diǎn)

查看數(shù): 3227 | 評(píng)論數(shù): 5 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2020-7-1 18:27

正文摘要:

#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int          sbit Data=P3^5;    uchar rec_dat[9]; sbit RS=P3^0 ...

回復(fù)

ID:663230 發(fā)表于 2020-8-12 17:29
void main()
{
         unsigned char i;
         lcd_init();
         DHT11_delay_ms(100);
                While(1)
{
DHT11_receive();
         write_com(0x80);
                   for(i=0;i<12;i++)
         write_dat(lcd[i]);        
         write_com(0xc0);
         for(i=0;i<9;i++)                       
         write_dat(rec_dat[i]);        
         DL();  
}  
}        
把數(shù)據(jù)采聚寫(xiě)在while()循環(huán)內(nèi),這樣不斷刷新數(shù)據(jù)。
ID:687261 發(fā)表于 2020-7-2 16:48
我不久前曾做過(guò)這個(gè),想提醒一下吧,DHT11部分,需要嚴(yán)格按照他的時(shí)序來(lái)寫(xiě),精確到微秒級(jí)us,不然就達(dá)不到提取溫濕度信號(hào)的作用,其他的注意分號(hào),大小寫(xiě)之類的就差不多了,如果只是采集信息的話

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

ID:795043 發(fā)表于 2020-7-2 15:58

RE: 51單片機(jī) 用LCD1602顯示DHT11采集的溫濕度,仿真溫濕度顯示不出來(lái),求指點(diǎn)

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit Data=P3^6;
unsigned char rec_dat[9];

sbit RS=P3^0;
sbit RW=P3^1;
sbit E=P3^2;
unsigned char code lcd[]={"123456789"};



void lcd_init();
unsigned char r_status();
//void w_com(unsigned char com);
//void w_data(unsigned char dat);
void delay(unsigned int k);
void DL();

void delay(unsigned int k)
{
        unsigned int i,j;
        for(i=0;i>k;i++)
         for(j=0;j>200;j++);
}
void DHT11_delay_us(uchar n)
{
    while(--n);
}

void DHT11_delay_ms(uint z)
{
   uint i,j;
   for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}

void DHT11_start()
{
   Data=1;
   DHT11_delay_us(2);
   Data=0;
   DHT11_delay_ms(30);  
   Data=1;
   DHT11_delay_us(30);
}

uchar DHT11_rec_byte()   
{
   uchar i,dat=0;
  for(i=0;i<8;i++)   
   {         
      while(!Data);   
      DHT11_delay_us(8);   
      dat<<=1;           
      if(Data==1)   
         dat+=1;
      while(Data);   
    }  
    return dat;
}

void DHT11_receive()     
{
    uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
    DHT11_start();
    if(Data==0)
    {
        while(Data==0);      
        DHT11_delay_us(40);  
        R_H=DHT11_rec_byte();   
        R_L=DHT11_rec_byte();   
        T_H=DHT11_rec_byte();      
        T_L=DHT11_rec_byte();   
        revise=DHT11_rec_byte();

        DHT11_delay_us(25);

        if((R_H+R_L+T_H+T_L)==revise)   
        {
            RH=R_H;
            RL=R_L;
            TH=T_H;
            TL=T_L;
        }
        rec_dat[0]='0'+(RH/10);
        rec_dat[1]='0'+(RH%10);
        rec_dat[2]='R';
        rec_dat[3]='H';
        rec_dat[4]=' ';
        rec_dat[5]=' ';
        rec_dat[6]='0'+(TH/10);
        rec_dat[7]='0'+(TH%10);
        rec_dat[8]='C';
       
    }
}


void write_com(unsigned char com)
{
        unsigned char m;
        do{
                  m=r_status();
                  m&=0x80;
                DL();
          }while(m!=0);
         RS=0;
         P2=com;
   delay(5);
                //DL();
   E=1;
                delay(5);
   //DL();
   E=0;
}               

void write_dat(unsigned char dat)
{
        unsigned char m;
        do{
                m=r_status();
                m&=0x80;
                DL();
          }while(m!=0);
          RW=0;
                RS=1;
                P2=dat;
                delay(5);
                //DL();
                E=1;
                delay(5);
                //DL();
                E=0;
}

void lcd_init()
{
        write_com(0x38);
        write_com(0x0f);
write_com(0x01);
        write_com(0x06);
        write_com(0x80);
}
unsigned char r_status()
{
        unsigned char s;
        RS=0;
        RW=1;
        E=1;
        DL();
        s=P2;
        E=0;
        RW=0;
        return(s);
}


void main()
       
{
        //while(1);
        {
        unsigned char i;
        lcd_init();
        DHT11_delay_ms(100);   
  DHT11_receive();
        write_com(0x80);
  for(i=0;i<12;i++)
        write_dat(lcd[i]);       
        write_com(0xc0);
        for(i=0;i<9;i++)                      
        write_dat(rec_dat[i]);       
        DL();  
}       
        while(1);
}

void DL()
{
        _nop_();
        _nop_();
        _nop_();
}



ID:795043 發(fā)表于 2020-7-2 15:57
現(xiàn)在顯示的問(wèn)題解決了,但怎么在我這個(gè)新的程序的while中加入延時(shí)循環(huán)采集呀
ID:739545 發(fā)表于 2020-7-2 09:05
w_data(str2[i]);一直 在寫(xiě)空,在while(1)中又不采集數(shù)據(jù),自然什么都沒(méi)有了

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产午夜精品视频 | 精品欧美一区二区三区久久久小说 | 国产精品一区二区久久久久 | 亚洲欧美在线视频 | 午夜影院普通用户体验区 | 久久精品国产99国产 | 久久激情网 | 亚洲性视频 | 欧美一区二区久久 | 黄网站在线播放 | 中文字幕在线一区 | 天天干狠狠操 | 99亚洲精品 | 久久久久久久久久久久久9999 | 久久久综合久久 | 久久精品这里 | 欧美一级在线观看 | 久久看精品 | 国产成人在线视频播放 | 一区二区免费在线 | 亚洲欧美国产精品一区二区 | 玖玖色在线视频 | 成人片网址 | 亚洲精品久久久久国产 | 伊人超碰 | 综合久 | 浴室洗澡偷拍一区二区 | 国产黄色小视频在线观看 | 亚洲精品白浆高清久久久久久 | 久久久久一区二区三区 | 欧美午夜在线 | 韩国电影久久 | 成人中文字幕av | 成人深夜福利 | 国产成人免费视频网站视频社区 | 亚洲成人av一区二区 | 成人精品一区 | 免费三级av | 欧美一区二不卡视频 | 在线观看国产视频 | 日日摸夜夜添夜夜添精品视频 |