找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2843|回復(fù): 2
收起左側(cè)

51單片機(jī)之ADC0832風(fēng)速風(fēng)向傳感器附帶DHT11

[復(fù)制鏈接]
ID:539117 發(fā)表于 2020-4-30 11:39 | 顯示全部樓層 |閱讀模式
幫師兄做的,其中一部分是風(fēng)速風(fēng)向在lcd上顯示
#include“reg52.h”
#define uchar unsigned char
#define uint unsigned int

uchar wind_dat[16];
void ADC0832_delay_ms(uint z)
{
   uint i,j;
   for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}

/**********************************ADC0832********************************/
uchar choiceADC(uchar Channel) //獲取數(shù)值返回。入口:通道(0或1)。出口:數(shù)值。
{
         uchar i,Dat1=0,Dat2=0;
         CLK=0;
         DI=1;
         CS=0;
         CLK=1;
         CLK=0; //第一脈沖,開始位
         DI=1;
         CLK=1;
         CLK=0; //第二脈沖,模式選擇
         DI=Channel;//通道選擇,0或1
         CLK=1;
         CLK=0; //第三脈沖,通道選擇
         DI=1; //釋放輸入線
         for(i=0;i<8;i++)   //從高到低取一次數(shù)
         {
            CLK=1; //下降沿有效
            CLK=0;
            if(DO) Dat1|=0x80>>i;
         }
         for(i=0;i<8;i++)   //從低到高取一次數(shù)
         {
                  if(DO) Dat2|=0x01<<i;
                  CLK=1; //下降沿有效
                  CLK=0;
         }
         CS=1;
         DI=1;
         CLK=1;  //數(shù)據(jù)讀取完成,釋放所有數(shù)據(jù)線
         if(Dat1==Dat2) return Dat1; //校驗(yàn)兩次數(shù)相等,輸出
         else return 0;
}
void wind_receive()
{         
        wind_dat[0] ='D' ;
        wind_dat[1] ='I';
    wind_dat[2] ='R';
        wind_dat[3] =':';       
       
        if(choiceADC(0)*5/255%10*72==0&&choiceADC(0)*5/255%10*72==360)
        {
                wind_dat[4] ='N';
                wind_dat[5] =' ';
                }
        if(choiceADC(0)*5/255%10*72>0&&choiceADC(0)*5/255%10*72<90)
        {
                wind_dat[4] ='E';
                wind_dat[5] ='N';
                }
        if(choiceADC(0)*5/255%10*72==90)
        {
            wind_dat[4] ='E';
                wind_dat[5] =' ';
                }
        if(choiceADC(0)*5/255%10*72>90&&choiceADC(0)*5/255%10*72<180)
        {
                wind_dat[4] ='E';
                wind_dat[5] ='S';
                }
        if(choiceADC(0)*5/255%10*72==180)
        {
                wind_dat[4] ='S';
                wind_dat[5] =' ';
                }
        if(choiceADC(0)*5/255%10*72>180&&choiceADC(0)*5/255%10*72<270)
        {
                wind_dat[4] ='W';
                wind_dat[5] ='S';
                }
        if(choiceADC(0)*5/255%10*72==270)
        {
                wind_dat[4] ='S';
                wind_dat[5] =' ';
                }
        if(choiceADC(0)*5/255%10*72>270&&choiceADC(0)*5/255%10*72<360)
        {
                wind_dat[4] ='W';
                wind_dat[5] ='N';
                }
    wind_dat[6] =' ';
        wind_dat[7] ='S';
    wind_dat[8] ='P';
    wind_dat[9] ='E';
    wind_dat[10] =':';
        if(choiceADC(1)*5/255%10*6>10)
        {
        wind_dat[11] ='0'+(choiceADC(1)*5/255*6/10);
        wind_dat[12] ='0'+(choiceADC(1)*5/255*6%10);  
        wind_dat[13] ='M';
        wind_dat[14] ='/';
        wind_dat[15] ='S';
        }
        else
        {
        wind_dat[11] ='0'+(choiceADC(1)*5/255*6);
        wind_dat[12] ='M';
        wind_dat[13] ='/';
        wind_dat[14] ='S';
        wind_dat[15] =' ';
        }

}

void main()
{   
   uint i;
   LcdInit();   //1602初始化  
   while(1)
   {   
        wind_receive();
        LcdWriteCom(0x80+0x40);
        for(i=0;i<16;i++)       
         {                         
             LcdWriteData(wind_dat[i]);                          
        }                                      
   }



sensor.rar

37.76 KB, 下載次數(shù): 53, 下載積分: 黑幣 -5

溫濕度和風(fēng)速風(fēng)向在Lcd顯示

回復(fù)

使用道具 舉報(bào)

ID:539117 發(fā)表于 2020-4-30 11:42 | 顯示全部樓層
不是師兄是室友,打錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:304785 發(fā)表于 2020-7-31 17:37 | 顯示全部樓層
這個(gè)是實(shí)物的程序嗎?風(fēng)速和風(fēng)向傳感器分別用的什么可以告訴一下嗎?
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表