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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3982|回復: 12
打印 上一主題 下一主題
收起左側(cè)

好心人看過來 基于STC12A5A60S2的濕度傳感器

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:162935 發(fā)表于 2017-2-14 21:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code table1[]={
0xbf,0x86,0xdb,0xcf,
0xe6,0xed,0xfd,0x87,
0xff,0xef,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uint adc_finished,n;
float a,c;
uchar shi,ge,bai,num;
int b;
sfr ADC_CONTR=0xBC;//adc控制寄存器,不可位尋址,用或運算來設置
sfr ADC_RES=0xBD;//轉(zhuǎn)換結(jié)果寄存器,高八位
sfr ADC_LOW2=0xBE;//轉(zhuǎn)換結(jié)果寄存器,低兩位
sfr P1ASF=0x9d;//設置p1的那一口為輸入口,不可位尋址.
/*以下都是控制寄存器的各位地址*/
#define ADC_POWER 0x80;//adc電源,第7位
#define ADC_FLAG 0x10;//轉(zhuǎn)換結(jié)束標志位,第4位
#define ADC_START 0x08;//轉(zhuǎn)換開始,第3位
#define ADC_SPEEDLL 0x00;//速度位,第5,6位
#define ADC_SPEEDL 0x20;
#define ADC_SPEEDH 0x40;
#define ADC_SPEEDHH 0x60;
#define ADC_CHS 0x00;//輸入通道為第p1.0,1,2,3三位可設置p10-p17
//位定義完成
void Delay(uint n)
{
    uchar x;

    while (n--)
    {
        x = 5000;
        while (x--);
    }
}
void adcinit()       //adc初始化函數(shù)
{         


P1ASF=0x01;          //設置p10 為ad轉(zhuǎn)換輸入口
ADC_CONTR=0xe0;      //打開電源,設最高速度
_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續(xù)正確讀取ADC控制寄存器的值
_nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
ADC_CONTR|=ADC_CHS;  //設置頻道
_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續(xù)正確讀取ADC控制寄存器的值
_nop_();_nop_();
}
float  huqushuju()                //adc轉(zhuǎn)換函數(shù),數(shù)據(jù)得到
{
adcinit();
ADC_RES=0;
ADC_LOW2=0;
ADC_CONTR|=ADC_START;//啟動ad轉(zhuǎn)換,置1為起動,轉(zhuǎn)換結(jié)束后自動置0
_nop_();
_nop_();                         
_nop_();                  
_nop_();

adc_finished=0;
while(adc_finished==0)
{
adc_finished=ADC_CONTR&ADC_FLAG;//檢測是否轉(zhuǎn)換結(jié)束,沒結(jié)束一直等
}

_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續(xù)正確讀取ADC控制寄存器的值
_nop_(); _nop_();
a=ADC_RES*4+ADC_LOW2;
a=100-100*a/1023;
a=a*10;


ADC_CONTR=0;
_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續(xù)正確讀取ADC控制寄存器的值
_nop_();
return a;
}

void display(uchar bai,uchar shi,uchar ge)
{
          uint i,t;
        for(i=0;i<3;i++)
        {
                switch(i)         //位選,選擇點亮的數(shù)碼管,
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0;P0=table[ge]; break;//顯示第0位
                        case(1):
                                LSA=1;LSB=0;LSC=0; P0=table1[shi];break;//顯示第1位
                        case(2):
                                LSA=0;LSB=1;LSC=0;P0=table[bai]; break;//顯示第2位
                                         
                }
                  t=1000;
                  while(t--);
        }
}


void main()
{  
  while(1)
  {
   huqushuju();
     b=(int)a;
     ge=b%10;
         shi=b/10%10;
         bai=b/100;
         display(bai, shi,ge);
        }
          
}


  這是我的程序 然后上電之后發(fā)現(xiàn)顯示的值都大于50,在干燥環(huán)境中為50.09,放到水里之后發(fā)現(xiàn)就增加了十幾
本來干燥環(huán)境下濕度為零的,是不是程序出錯了啊

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:164718 發(fā)表于 2017-2-15 10:46 | 只看該作者
干燥環(huán)境也不可能為0
回復

使用道具 舉報

板凳
ID:162935 發(fā)表于 2017-2-15 18:37 | 只看該作者
接近零吧 。但是溫度值只在50至65上變化
回復

使用道具 舉報

地板
ID:162935 發(fā)表于 2017-2-15 19:03 | 只看該作者
pyh_78 發(fā)表于 2017-2-15 10:46
干燥環(huán)境也不可能為0

差不多接近零吧 但是濕度值一直維持在50和65之間,這完全不合常理
回復

使用道具 舉報

5#
ID:164695 發(fā)表于 2017-2-16 09:06 | 只看該作者
差不多接近零吧 但是濕度值一直維持在50和65之間,這完全不合常理
回復

使用道具 舉報

6#
ID:123289 發(fā)表于 2017-2-16 18:26 | 只看該作者
通常,在普通的措施下(家里所能辦到的),濕度可以是5-98%RH,這已經(jīng)不錯了。
回復

使用道具 舉報

7#
ID:123289 發(fā)表于 2017-2-16 18:30 | 只看該作者
你首先確認驗證一下:干、濕環(huán)境下傳感器給的直接值是多少(無需變換計算),與傳感器的說明書中數(shù)據(jù)對比一下。你就會找到問題出在哪了。
回復

使用道具 舉報

8#
ID:123289 發(fā)表于 2017-2-16 18:37 | 只看該作者
本帖最后由 yzwzfyz 于 2017-2-16 21:46 編輯

干環(huán)境:將空鍋用微火空燒一會兒,鍋內(nèi)的環(huán)境可認為是干。
濕環(huán)境:將鍋中放些水,燒開后,水面附近環(huán)境可認為是濕。
回復

使用道具 舉報

9#
ID:164996 發(fā)表于 2017-2-16 21:14 | 只看該作者
不知道為什么,很高,我的dht11響應時間也是很慢的,突然飆到很高,要經(jīng)過一段時間才能顯示正常
回復

使用道具 舉報

10#
ID:162935 發(fā)表于 2017-2-18 10:09 | 只看該作者
yzwzfyz 發(fā)表于 2017-2-16 18:26
通常,在普通的措施下(家里所能辦到的),濕度可以是5-98%RH,這已經(jīng)不錯了。

但是濕度一直就是50以上 不下50就有問題了
回復

使用道具 舉報

11#
ID:162935 發(fā)表于 2017-2-18 10:10 | 只看該作者
yzwzfyz 發(fā)表于 2017-2-16 18:30
你首先確認驗證一下:干、濕環(huán)境下傳感器給的直接值是多少(無需變換計算),與傳感器的說明書中數(shù)據(jù)對比一 ...

這類傳感器并沒有濕度對應的一個電阻值
回復

使用道具 舉報

12#
ID:165151 發(fā)表于 2017-2-20 15:56 | 只看該作者
接近零
回復

使用道具 舉報

13#
ID:165621 發(fā)表于 2017-2-20 21:31 | 只看該作者
正常來說應該是接近0
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.干| 日本在线免费看最新的电影 | 国产精品亚洲成在人线 | 免费观看av | 成人免费视频一区 | 国产精品伦一区二区三级视频 | 久久久国产视频 | 国产成人叼嘿视频在线观看 | 亚洲成人av在线播放 | 久久夜色精品国产 | 国产精品久久久久久久久久久免费看 | 我要看免费一级毛片 | 久久久999精品 | 成人免费淫片aa视频免费 | 天天操操操操操 | 国产精品亚洲欧美日韩一区在线 | 亚洲91| 色婷婷综合成人av | 亚洲精品国产电影 | 亚洲免费在线视频 | 欧美黑人一区二区三区 | av一级| 国产精品国色综合久久 | 国产在线高清 | 婷婷色国产偷v国产偷v小说 | 精品国产一区二区三区久久久久久 | 精品一区欧美 | 在线观看深夜视频 | 91九色在线观看 | 农村黄性色生活片 | 国产日产精品一区二区三区四区 | 一区二区三区精品在线视频 | 久久久久国产精品一区二区 | 天天插天天操 | 久久综合久久综合久久 | 亚洲精品一区二三区不卡 | 久久久久久久久久久高潮一区二区 | 亚洲午夜视频 | 精品国产一区二区三区性色av | 亚洲二区在线 | 亚洲欧美一区二区三区视频 |