• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: iicTMP75  

资源简介

模拟iic读取TMP75 今天花了一上午,把那几天没有弄出来的TMP75,搞出来了…… 其实我驱动程序都是写对了的,以前没有正确接收到温度的原因,在于C语言不扎实,想传个参数过去接收I2C的温度值 ,但是总会出错,接收到的数据总是0XFF,今天用了个最笨的方法,就是定义了两个全局温度变量来接收I2C的数据,结果一下子就不再是那个0XFF了,现在就把整个TMP75 驱动完成了 还有测试图片 精确率选的是12bits 0.625摄氏度,还是很准确de。

资源截图

代码片段和文件信息

#include “i2c.h“
#if 1

//#define  NOP()   _nop_()   /* 定义空指令 */ 
#define  _Nop()  _nop_()   /*定义空指令*/     
#define  NOPS();{_nop_();_nop_();_nop_();_nop_();_nop_();}


sbit     SCL=P0^1;     //I2C  时钟  
sbit     SDA=P0^0;     //I2C  数据    bit ack;                 /*应答标志位*/ 


UINT8 ack=0;

/*******************************************************************
                                起动总线函数
函数原型: void Start_I2c();
功能:启动I2C总线即发送I2C起始条件.
SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号
********************************************************************/
void I2C_Start(void)
{
SDA=1;         //发送起始条件的数据信号
SCL=1;
NOPS();
SDA=0;
NOPS();
SCL=0;          //钳住I2C总线,准备发送或接收数据
}
/********************************************************
结束 i2c传输
SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号
********************************************************/
void I2C_Stop(void)
{
SCL=0;
SDA=0;
NOPS();
SCL=1;
NOPS();
SDA=1;
}

INT8 I2C_WaitAck(void)
{
UINT8 errtime=255;

SCL=0;
SDA=1;
NOPS();
SCL=1;
NOPS();
while(SDA)
{
errtime--;
if(errtime==0)
{
SCL=0;
return 1;
}
}
SCL=0;

return 0;
}

UINT8 I2C_SendByte(UINT8 sdata)
{
UINT8 ret;
UINT8 i;

for(i = 0;i<8;i++)
{
SCL=0;
if((sdata< SDA=1;
else
SDA=0;

NOPS();
SCL=1;
NOPS();
}

if(I2C_WaitAck()==0)
ret=0;
else
ret=1;


return ret;
}

UINT8 I2C_RcvByte(void)
{
UINT8 ret=0;
UINT8 i;

SDA=1;
for(i=0;i<8;i++)
{
SCL=0;
NOPS();
SCL=1;
NOPS();
ret=ret<<1;
if(SDA==1)
ret|=0x01;
}
SCL=0;

return ret;
}

void I2C_SendACk(void)
{
SDA=0;
NOPS();
SCL=1;
NOPS();
SCL=0;
}

/*void I2C_SendNotAck(void)

SDA =1 ;
NOPS();
SCL = 1;
NOPS();
SCL = 0;
}*/

#endif

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2300  2015-07-30 10:33  TMP75.c

     文件        584  2015-07-30 10:33  TMP75.h

     文件       1937  2015-07-30 10:33  i2c.c

     文件        305  2015-07-30 10:33  i2c.h

----------- ---------  ---------- -----  ----

                 5126                    4


评论

共有 条评论

相关资源