资源简介
湿度传感器原理图及程序,里面有shtxx型湿度传感器的资料,以及程序,还有原理图,欢迎大家下载,下载完了别忘了评分,这样消耗的积分就会还给你!

代码片段和文件信息
#include “shtxx.h“
void shtxx_init(void)
{
shtxx_temp = shtxx_humi = 0;
SHTXX_SCK_LOW();
SHTXX_DAT_1();
shtxx_reconnect();
}
void shtxx_reconnect(void)
{
SHTXX_DAT_1();
SHTXX_SCK_LOW();
for(uint8 i=0; i<9; i++)
{
SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
}
SHTXX_START();
}
uint8 shtxx_softrst(void)
{
uint8 error = 0;
shtxx_reconnect();
error += shtxx_write_byte(SHTXX_SOFT_RST);
return error;
}
//写命令函数
//参数:命令类型
//返回:0成功,1失败
uint8 shtxx_write_byte(uint8 cmd)
{
uint8 ack;
for (uint8 i=8; i>0; i--)
{
if (BITCHK(cmd (i-1))) //trans ‘1‘
{
SHTXX_DAT_1();
SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
}
else //trans ‘0‘
{
SHTXX_DAT_0();
SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
}
}
//SHTxx 会以下述方式表示已正确地接收到指令:
//在第8 个SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。
//在第9 个SCK 时钟的下降沿之后,释放DATA(恢复高电平)。
BITCLR(SHTXX_DAT_DDR SHTXX_DAT_BIT);
SHTXX_SCK_HIGH();
ack = BITCHK(SHTXX_DAT_PIN SHTXX_DAT_BIT);
SHTXX_SCK_LOW();
return ack;
}
uint8 shtxx_read_byte(uint8 dat_crc)
{
uint8 dat8 = 0;
for (uint8 i=8; i>0; i--)
{
BITCLR(SHTXX_DAT_DDR SHTXX_DAT_BIT);
c4680504cSHTXX_SCK_HIGH();
if (BITCHK(SHTXX_DAT_PIN SHTXX_DAT_BIT))
BITSET(dat8 (i-1));
SHTXX_SCK_LOW();
}
if (dat_crc)
{
SHTXX_DAT_0();
SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
}
else
{
SHTXX_DAT_1();
SHTXX_SCK_HIGH(); SHTXX_SCK_LOW();
}
SHTXX_DAT_1();
return dat8;
}
int8 shtxx_measure(uint8 mode)
{
uint8 error = 0;
SHTXX_START();
switch (mode)
{
case SHTXX_MODE_TEMP:
error = shtxx_write_byte(SHTXX_CMD_TEMPTURE);
for(uint16 i=0; i<65535; i++)
{
_delay_us(5);
BITCLR(SHTXX_DAT_DDR SHTXX_DAT_BIT);
if (!(BITCHK(SHTXX_DAT_PIN SHTXX_DAT_BIT))) break;
}
BITCLR(SHTXX_DAT_DDR SHTXX_DAT_BIT);
if (BITCHK(SHTXX_DAT_PIN SHTXX_DAT_BIT)) error += 1;
shtxx_temp = shtxx_read_byte(1);
shtxx_temp = (shtxx_temp << 8) + shtxx_read_byte(1);
shtxx_crc = shtxx_read_byte(0);
break;
case SHTXX_MODE_HUMI:
error = shtxx_write_byte(SHTXX_CMD_HUMIDITY);
for(uint16 i=0; i<65535; i++)
{
_delay_us(5);
BITCLR(SHTXX_DAT_DDR SHTXX_DAT_BIT);
if (!(BITCHK(SHTXX_DAT_PIN SHTXX_DAT_BIT))) break;
}
BITCLR(SHTXX_DAT_DDR SHTXX_DAT_BIT);
if (BITCHK(SHTXX_DAT_PIN SHTXX_DAT_BIT)) error += 1;
shtxx_humi = shtxx_read_byte(1);
shtxx_humi = (shtxx_humi<<8) + shtxx_read_byte(1);
shtxx_crc = shtxx_read_byte(0);
break;
default:
break;
}
return error;
}
void shtxx_calc(void)
{
uint32 rh_line = 0;
//所有湿度常量放大10000000
const uint32 C1 = 40000000;
const uint32 C2 = 405000;
const uint32 C3 = 28;
const uint32 T1 = 100000;
const uint32 T2 = 8000;
//温度常量放大100
t_c = shtxx_temp - 4000; //结果除以100
rh_line = C2*shtxx_humi - C3*shtxx_humi*shtxx_humi - C1;
rh_true = (t_c/100-25)*(T1+T2*shtxx_humi) + rh_line;
if (rh_true>100000
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4775 2008-03-12 11:40 湿度传感器\shtxx.c
文件 1681 2008-04-01 13:10 湿度传感器\shtxx.h
文件 43659 2008-04-07 11:08 湿度传感器\湿度\main.Sch
文件 4705 2008-04-07 11:12 湿度传感器\湿度\shtxx.c
文件 1710 2008-04-02 15:20 湿度传感器\湿度\shtxx.h
文件 580945 2009-07-28 16:54 湿度传感器\环境监控源码及仿真\_【远传】环境监控源码及仿真(1).rar
文件 140105 2009-07-28 16:53 湿度传感器\环境监控源码及仿真\_【远传】环境监控源码及仿真.rar
目录 0 2009-07-28 17:04 湿度传感器\湿度
目录 0 2009-07-28 17:02 湿度传感器\环境监控源码及仿真
目录 0 2009-07-28 17:04 湿度传感器
----------- --------- ---------- ----- ----
777580 10
- 上一篇:基于51单片机的智能导航小车
- 下一篇:spring-boot-activiti集成
相关资源
- 详细讲解柔性电子传感器和构造
- 单片机控制SHT75温湿度传感器测试
- stm32单片机IIC通讯采集sht20温湿度传感
- 基于STM32F103ZE的STH3x温湿度传感器代码
- DHT11温湿度传感器项目代码.rar
- hdc1080.pdf
- SHT30温湿度传感器程序
- STM32温湿度传感器DHT11代码,通过串口
- STM32-SHT20温湿度传感器驱动程序
- STM32F103C8T6-DHT11温湿度传感器.rar
- 传感器入门-----介绍了力传感器、温度
- STM32F103--SHT30温湿度传感器
- DHT11温湿度传感器例程
- 数字温湿度传感器DHT11详解及例程利用
- stm32f103+dht11温湿度传感器例程
- 温湿度传感器DHT11资料+程序
- 乐鑫Esp8266驱动 ds18b20、dht11 温湿度传
- 基于STM32F103的温湿度SI7021程序
- SHT30 温度、湿度传感器 STM32F130ZET6
- CC2530+DHT11温湿度传感器+HC-SR04超声波传
- STM32+超声波传感器HC_RS04+光照传感器
- STM32F103驱动DHT22温湿度传感器、BH175
- STM32F4ZGT6控制烟雾与温湿度传感器
- DHT11数字温湿度传感器实验.rar
- STM8s读取AM2303温湿度传感器MODBUS协议
- sht20 sht30 温湿度传感器 stm8-stm32
- 温湿度传感器DHT11的Proteus仿真.zip
- STM32F103步进电机、压力传感器、温湿
- 基于STM32单片机的DHT11 温湿度传感器
- DHT11温湿度传感器串口显示,也可直接
评论
共有 条评论