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

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

QQ登錄

只需一步,快速開始

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

SHT11溫濕度傳感器

  [復(fù)制鏈接]
ID:69265 發(fā)表于 2015-7-9 20:51 | 顯示全部樓層 |閱讀模式
仿真時(shí)候沒(méi)反應(yīng),編譯沒(méi)問(wèn)題。參考書上找的,書上的是STC15F2K60S2單片機(jī)(主函數(shù)里有一句CLK_DIV=0x03;//STC降頻工作,與傳統(tǒng)8051兼容),我仿真用的是AT89C51。數(shù)碼管7SEG-CC 360反饋意見截圖16570213768487.png

下面是程序:
#include <reg51.h>
#include <intrins.h>
#include <absacc.h>
#include <math.h>
#include <float.h>

#define uchar unsigned char
#define uint unsigned int

uint i,ii,any;
uchar vv,crc0,crc1,imm,error=0;
float TEMP=0,HUMI=0;
uchar code table[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x01,0};
sbit DIN=P2^3;
sbit LOAD=P2^4;
sbit CLK=P2^5;
sbit SCL_sht=P3^6;
sbit SDA_sht=P3^7;
sbit D1=P1^6;
sbit ERR=P1^1;
/*********************7219命令函數(shù)******************************/
void LEE(uint e)
{
        uint zz;
        LOAD=0;
        for(zz=0x8000;zz>0;zz>>1)
        {
        if(zz&e) DIN=1;
        else DIN=0;
        _nop_();CLK=1;CLK=0;
        }
        LOAD=1;
}
/*********************7219顯示函數(shù)*******************************/
void Disp()
{
        uint TEMP_,HUMI_;
        uchar sign_;
        TEMP_=fabs(TEMP)*10;
        HUMI_=HUMI*10;
        if(TEMP>=0) sign_=1;
        else sign_=0;
        if(!error)
        {
        if(TEMP>=100) LEE(table[TEMP_%10000/1000]+0xf100);
        else  LEE(table[10+sign_]+0xf100);
        LEE(table[TEMP_%1000/100]+0xf200);
        LEE(table[TEMP_%100/10]+0xf300+0x80);
        LEE(table[TEMP_%10]+0xf400);
        LEE(table[HUMI_%10000/1000]+0xf500);
        LEE(table[HUMI_%1000/100]+0xf600);
        LEE(table[HUMI_%100/10]+0xf700+0x80);
        LEE(table[HUMI_%10]+0xf800);
        }
        else
        {
        LEE(0xf14f);
        LEE(0xf277);
        LEE(0xf377);
        LEE(0xf47e);
        LEE(0xf501);
        LEE(0xf601);
        LEE(0xf701);
        LEE(0xf801);
        }
}
/***********************延時(shí)函數(shù)****************************/
void delay()
{                                //延時(shí)12us,晶振=12MHz
        _nop_();_nop_();_nop_();_nop_();_nop_();
        _nop_();_nop_();_nop_();_nop_();_nop_();
}
/*************************SHT啟動(dòng)傳輸函數(shù)**********************/
void SAT_sht11()
{
        SCL_sht=0;delay();
        SDA_sht=1;SCL_sht=0;delay();
        SDA_sht=0;delay();
        SCL_sht=0;delay();
        SCL_sht=1;delay();
        SDA_sht=1;delay();
        SCL_sht=0;delay();
        SDA_sht=0;delay();
}
/************************SHT11寫入函數(shù)**********************/
void write_sht11(uchar y)
{
        for(ii=0x80;ii>0;ii>>1)
        {
        if(y&ii) SDA_sht=1;
        else SDA_sht=0;
        delay();
        SCL_sht=1;delay();
        SCL_sht=0;delay();
        }
        SDA_sht=1;delay();
        SCL_sht=1;delay();
        if(SDA_sht) {
                if(!(error&0x08)) error+=0x04;
        }
        SCL_sht=0;
}
/********************SHT軟復(fù)位函數(shù)************************/
void soft_rest_sht11()
{
        SAT_sht11();
        SDA_sht=1; SCL_sht=0; delay();
        for(ii=0;ii<20;ii++){
                SCL_sht=1;delay();
                SCL_sht=0;delay();
        }
        if(error&0x08){
           write_sht11(0x1e);
           for(ii=0;ii<1000;ii++) delay();
        }
        SAT_sht11();
        error &= 0x03;
}
/*******************讀取SHT11函數(shù)**********************/
void read_sht11(bit x_ack)
{
        vv=0; SDA_sht=1; delay();
        for(ii=0;ii<8;ii++){
                SCL_sht=1;delay();
                vv<<=1;
                if(SDA_sht) vv|=1;
                delay();
                SCL_sht=0;delay();
        }
        SDA_sht=!x_ack; delay();
        SCL_sht=1;delay();
        SCL_sht=0;delay();
        SDA_sht=1;
}
/***********************SHT11校驗(yàn)函數(shù)*******************/
void crc_8()
{
        for(ii=0;ii<8;ii++){
                if(crc1&0x80){
                        crc1<<=1;
                        crc1^=0x31;
                }
                else crc1<<=1;
        }
}
/***********************SHT11工作函數(shù)*****************/
void Sht11(uchar yi)
{
        if(error&0x0c) soft_rest_sht11();
        else SAT_sht11();
        write_sht11(yi);
        for(ii=0;ii<65532;ii++){
                delay();
                if(!SDA_sht) break;
        }
        if(!SDA_sht) {
                any=0;
                read_sht11(1);
                any=vv; any<<=8;
                crc1=0; crc1^=yi; crc_8();
                crc1^=vv; crc_8();
                read_sht11(1);
                any+=vv; crc1^=vv; crc_8();
                read_sht11(0);
                crc0=0;
                for(ii=1;ii<0xe0;ii<<=1){
                        crc0<<=1;
                        if(vv&ii) crc0++;
                }
                crc0=vv;
        }
        else
        crc1=!crc0;
}
/*************************溫、濕度測(cè)量函數(shù)*******************************/
void EEi_sht11()
{
        Sht11(0x03);
        if(crc1!=crc0){
                if(!(error&0x08))
                error+=0x04;
        }
        else {
                any&=0x3fff;
                TEMP=any*0.01-39.65;
        }

        Sht11(0x05);
        if(crc1!=crc0||!any){
                if(!(error&0x08))
                error+=0x04;
        }
        else {
                error&=0x03;
                D1=~D1;
                any&=0x0fff;
                HUMI=0.0367*any-2.0468-0.0000015955*any*any;
                HUMI+=(TEMP-25)*(0.01+0.00008*any);
                if(HUMI>99.90||HUMI<0)
                HUMI=100;
        }
}
/**************************定時(shí)器T0中斷函數(shù)*********************/
void Timer0() interrupt 1
{
        TH0=0xa2; TL0=0;
        i++;
        if(i>62){
                i=0;
                EEi_sht11();
        }
        Disp();
        if(!error) ERR=1;
        else {
                ERR=0;
                imm++;
                if(imm>200){
                        imm=0;
                        error=0;
                }
        }
}
/***************************7219初始化化函數(shù)*******************/
void MAX7219_init()
{
        LEE(0xf900);
        LEE(0xfa0e);
        LEE(0xfb07);
        LEE(0xfc01);
        LEE(0xff00);
}
/******************************主函數(shù)**************************/
void main()
{        //CLK_DIV=0x03;
        MAX7219_init();
        TMOD=0x01;
        TH0=0xa2; TL0=0;
        TR0=1;
        EA=1; ET0=1;
        while(1);
}


評(píng)分

參與人數(shù) 2威望 +50 黑幣 +51 收起 理由
小魏12 + 1
admin + 50 + 50 共享資料的積分獎(jiǎng)勵(lì)!

查看全部評(píng)分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:69265 發(fā)表于 2015-7-9 20:53 | 顯示全部樓層
本帖最后由 shifanghui 于 2015-7-10 19:43 編輯

基礎(chǔ)比較差

SHT75溫濕度傳感器測(cè)試電路.zip

83.23 KB, 下載次數(shù): 101

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2015-7-10 15:36 來(lái)自觸屏版 | 顯示全部樓層
你現(xiàn)在的問(wèn)題是什么?能仿真成功,做成實(shí)物達(dá)不到效果嗎?
回復(fù)

使用道具 舉報(bào)

ID:69265 發(fā)表于 2015-7-10 19:42 | 顯示全部樓層
admin 發(fā)表于 2015-7-10 15:36
你現(xiàn)在的問(wèn)題是什么?能仿真成功,做成實(shí)物達(dá)不到效果嗎?

有兩句語(yǔ)句打錯(cuò)了,現(xiàn)在可以了。
回復(fù)

使用道具 舉報(bào)

ID:69265 發(fā)表于 2015-7-10 19:42 | 顯示全部樓層
admin 發(fā)表于 2015-7-10 15:36
你現(xiàn)在的問(wèn)題是什么?能仿真成功,做成實(shí)物達(dá)不到效果嗎?

有兩句語(yǔ)句打錯(cuò)了,現(xiàn)在可以了。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:86017 發(fā)表于 2015-7-18 11:19 | 顯示全部樓層
好東西啊
回復(fù)

使用道具 舉報(bào)

ID:86023 發(fā)表于 2015-7-18 13:27 | 顯示全部樓層
恩 不錯(cuò)啊  我想弄個(gè)帶年月日星期,溫濕度,農(nóng)歷,鬧鐘的萬(wàn)年歷

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:86218 發(fā)表于 2015-7-20 10:41 | 顯示全部樓層
能仿真成功,做成實(shí)物達(dá)不到效果嗎?

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:97226 發(fā)表于 2015-11-26 14:03 | 顯示全部樓層
奧松電子生產(chǎn)的AM2322溫濕度傳感器可以取代SHT11。
回復(fù)

使用道具 舉報(bào)

ID:98321 發(fā)表于 2015-12-4 19:29 | 顯示全部樓層
可以DHT11直接替換么
回復(fù)

使用道具 舉報(bào)

ID:152224 發(fā)表于 2016-12-9 21:03 | 顯示全部樓層
很好。還會(huì)在來(lái)的
回復(fù)

使用道具 舉報(bào)

ID:185661 發(fā)表于 2017-5-5 22:26 | 顯示全部樓層
好東西,收下了
回復(fù)

使用道具 舉報(bào)

ID:205227 發(fā)表于 2017-6-6 23:47 | 顯示全部樓層
admin 發(fā)表于 2015-7-10 15:36
你現(xiàn)在的問(wèn)題是什么?能仿真成功,做成實(shí)物達(dá)不到效果嗎?

樓主還記得是哪里出錯(cuò)了嗎 剛開始學(xué)習(xí)能指點(diǎn)一下嗎
回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2017-6-7 08:49 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:205227 發(fā)表于 2017-6-7 12:54 | 顯示全部樓層
cjjcjj1 發(fā)表于 2017-6-7 08:49
你好!你現(xiàn)在 SHT11 是什么情況?

現(xiàn)在改好了 謝謝
回復(fù)

使用道具 舉報(bào)

ID:215752 發(fā)表于 2017-7-3 22:47 | 顯示全部樓層
admin 發(fā)表于 2015-7-10 15:36
你現(xiàn)在的問(wèn)題是什么?能仿真成功,做成實(shí)物達(dá)不到效果嗎?

濕度傳感器采集通過(guò)ad轉(zhuǎn)換后是從大到小顯示的,怎么把它通過(guò)程序變過(guò)來(lái)?大神求指導(dǎo)
回復(fù)

使用道具 舉報(bào)

ID:217045 發(fā)表于 2017-7-4 11:29 | 顯示全部樓層
你現(xiàn)在的問(wèn)題是什么?能仿真成功,做成實(shí)物達(dá)不到效果嗎?
回復(fù)

使用道具 舉報(bào)

ID:368810 發(fā)表于 2020-9-9 10:41 | 顯示全部樓層
SHT系列的可以對(duì)土壤濕度進(jìn)行監(jiān)測(cè)嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品av久久久久电影 | 国产在线一区二区三区 | 超碰97人人人人人蜜桃 | 日韩在线中文 | 91精品久久久久久久久中文字幕 | 欧美成人免费在线视频 | 日韩成人在线免费视频 | 九九热在线免费视频 | 欧美a在线| 美女久久视频 | 欧美操操操 | 日韩美女在线看免费观看 | 日日久 | 黄色毛片视频 | 精品欧美一区二区精品久久久 | 五月婷婷色 | 99亚洲精品 | 国产精品国产三级国产aⅴ无密码 | 日韩精品 电影一区 亚洲 | 欧美国产精品一区二区三区 | 久久久久久国产精品mv | 婷婷在线网站 | 日韩成人免费视频 | av一二三区 | 亚洲国产精品99久久久久久久久 | www.99热.com| 亚洲三区视频 | 中文字幕精品一区二区三区精品 | 日韩一区二区三区精品 | 夜夜艹天天干 | 91麻豆精品国产91久久久久久久久 | 日日噜噜夜夜爽爽狠狠 | av手机在线免费观看 | 精品成人一区 | 久久久久一区二区三区四区 | 999精品在线观看 | 91影院| 欧美色性| 亚洲一区二区三区免费视频 | 97视频成人| 三级在线免费观看 |