资源简介
SHT75温湿度传感器的模拟IIC驱动程序,得到工程应用。
代码片段和文件信息
#include “SHT75.h“
InttoFloat Temperature_data={0x00};
InttoFloat Humidity_data={0x00};
/******************************************************************************
* 函数名称:void AT24C04_Start(void)
* 功 能:SHT75发送命令开始信号
* 入口参数:无
* 出口参数:无
* 修改日志:
******************************************************************************/
void SHT7X_Start(void)
{
SHT7X_SDA_OUT;SHT7X_SCL_OUT;
asm(“nop“);asm(“nop“);
SHT7X_SDA_H;
SHT7X_SCL_L;//初始化接口
SHT7X_SCL_H;
SHT7X_SDA_L;
SHT7X_SCL_L;
SHT7X_SCL_H;
SHT7X_SDA_H;
SHT7X_SCL_L;
}
/******************************************************************************
* 函数名称:void SHT7X_Connectionreset()
* 功 能:SHT75复位信号
* 入口参数:无
* 出口参数:无
* 修改日志:
******************************************************************************/
void SHT7X_Connectionreset()
{
unsigned char i ;
SHT7X_SDA_OUT; SHT7X_SCL_OUT;
asm(“nop“);asm(“nop“);
SHT7X_SDA_H;
SHT7X_SCL_L;//初始化接口
for(i=0;i<9;i++) //9 SCk cycles
{
SHT7X_SCL_H;
SHT7X_SCL_L;
}
SHT7X_Start();
}
/******************************************************************************
* 函数名称:unsigned char SHT7X_WriteOneByte(unsigned char value)
* 功 能:向SHT7X中写一个字节数据
* 入口参数:value:被写入的数据
* 出口参数:error:1:Salver无回应;0:Salver回应收到数据
* 修改日志:
******************************************************************************/
unsigned char SHT7X_WriteOneByte(unsigned char value)
{
unsigned char ierror=0;
for(i=0;i<8;i++)
{
if(value&0x80)
SHT7X_SDA_H;
else
SHT7X_SDA_L;
SHT7X_SCL_H;
value=value<<1;
SHT7X_SCL_L;
}
SHT7X_SDA_H; //释放SDA线,第9个时钟周期开始
SHT7X_SDA_IN;
asm(“nop“);asm(“nop“);
SHT7X_SCL_H; //clk #9 for ack
error=SHT7X_RSDA;//check ack (DATA will be pulled down by SHT11)
SHT7X_SCL_L;
SHT7X_SDA_H; //释放SDA线
return error; //error=1 in case of no acknowledge
}
/******************************************************************************
* 函数名称:unsigned char SHT7X_ReadOneByte()
* 功 能:向SHT7X中写一个字节数据
* 入口参数:无
* 出口参数:error:1:Salver无回应;0:Salver回应收到数据
* 修改日志:
******************************************************************************/
unsigned char SHT7X_ReadOneByte(unsigned char ack)
{
unsigned char idata8=0;
SHT7X_SDA_H;//释放SDA线
SHT7X_SDA_IN;//置数据线输入
asm(“nop“);asm(“nop“);
for(i=0;i<8;i++)
{
SHT7X_SCL_H;
data8=data8<<1;
if(SHT7X_RSDA)data8|=0x01;
SHT7X_SCL_L;
}
SHT7X_SDA_OUT;
asm(“nop“);asm(“nop“);
if(ack)
SHT7X_SDA_L;
else
SHT7X_SDA_H;
SHT7X_SCL_H; //clk #9 for ack
SHT7X_SCL_L;
SHT7X_SDA_H;
return data8;
}
/******************************************************************************
* 函数名称:unsigned char SHT7X_ReadOneByte()
* 功 能:向SHT7X中写一个字节数据
* 入口参数:无
* 出口参数:error:1:Salver无回应;0:Salver回应收到数据
* 修改日志:
******************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9894 2014-04-08 20:53 SHT7X.c
文件 2252 2014-04-08 20:53 SHT7X.h
评论
共有 条评论