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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4816|回復: 1
打印 上一主題 下一主題
收起左側

數字溫度傳感器LM75驅動(可移植)

[復制鏈接]
跳轉到指定樓層
樓主
ID:75926 發表于 2015-4-10 17:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*******************************LM75*******************************/
#define I2C_SDA_HIGH()
#define I2C_SDA_LOW()
#define I2C_SCL_HIGH()
#define I2C_SCL_LOW()
#define I2C_SDA_Read()

I2C 發送時:SDA每發送8位數據 SDA 就要接收一位應答位
     接收時:SDA每接收8位數據 SDA 就要發送一位應答位
static void Delay(void)
{
    //實現延時4us
}
static void I2C_Start(void)
{
    I2C_SDA_HIGH();
    I2C_SCL_HIGH();
    Delay();
    I2C_SDA_LOW();
    Delay();
    I2C_SCL_LOW();
    Delay();
}

static void I2C_Stop(void)
{
    I2C_SDA_LOW();
    I2C_SCL_HIGH();
    Delay();
    I2C_SDA_HIGH();
    Delay();
}

void I2C_SendByte(uint8_t Byte)
{
    uint8_t Cnt;
    for(Cnt=0;Cnt<8;Cnt++)
    {
        if(Byte&0x80)
           I2C_SDA_HIGH();
        else
           I2C_SDA_LOW();
        Delay();
        Byte<<=1;
        I2C_SCL_HIGH();
        Delay();
        I2C_SCL_LOW();
        Delay();
    }
}

uint8_t I2C_ReceiveByte(void)
{
    uint8_t Byte=0,Cnt;
    for(Cnt=0;Cnt<8;Cnt++)
    {
        Byte<<=1;
        I2C_SDA_HIGH():
        Delay();
        I2C_SCL_HIGH();
        Delay();
        if(I2C_SDA_Read())
            Byte++;
        I2C_SCL_LOW();
        Delay();
    }
    return Byte;
}
static uint8_t I2C_WaitAck(void)//0:Ack  1:NoAck
{
    I2C_SDA_HIGH();
    Delay();
    I2C_SCL_HIGH();
    Delay();
    if(I2C_SDA_Read())
        return 1;
    I2C_SCL_LOW();
    Delay();
    return 0;
}

static void I2C_SendAck(void)
{
    I2C_SDA_LOW();
    Delay();
    I2C_SCL_HIGH();
    Delay();
    I2C_SCL_LOW();
    Delay();
}

static void I2C_SendNoAck(void)
{
    I2C_SDA_HIGH();
    Delay():
    I2C_SCL_HIGH();
    Delay();
    I2C_SCL_LOW();   
    Delay();
}
/****************LM75***********************/

static uint8_t LM75_SendByte(uint8_t Address,uint8_t Byte)//0 :成功  1:失敗
{
    I2C_Start();
    I2C_SendByte(Address);
    if(I2C_WaitAck())
        return 1;
    I2C_SendByte(Byte);
    if(I2C_WaitAck())
        return 1;
    I2C_Stop();
    return 0;
}

static uint8_t LM75_ReviceByte(uint8_t Address,uint8_t *pByte)
{
    I2C_Start();
    I2C_SendByte(Address);
    if(I2C_WaitAck())
        return 1;
    I2C_Start();
    *Byte=I2C_ReceiveByte();
    I2C_SendAck():
    *(Byte+1)=I2C_ReceiveByte();
    I2C_SendNoAck();
    I2C_Stop();
}


int main(void)
{
    uint8_t Data[2];
    I2C_Init()//初始化  代碼未給出
    LM75_SendByte(Address,0x00);
    LM75_SendByte(Address,Data);
  /*  MSB,D7,D6,D5,D4,D3,D2,D1,LSB ,x,x,x,x,x,x*/
  //  這16位數據中 MSB位為1表示溫度值為負數  //負數以補碼表示
  //  D7,D6,D5,D4,D3,D2,D1,LSB 這7位表示溫度值*2
  //  所以溫度的大小為 (Data[0]<<1|(Data[0]>>7))*0.5
    //注意處理MSB位為1的時候出現負數的情況
D7,D6,D5,D4,D3,D2,D1,LSB 要-1 取反才是真實值
   
}



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

使用道具 舉報

沙發
ID:162134 發表于 2017-3-16 16:09 | 只看該作者
學習一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品成人佐山爱一区二区 | 成人在线免费观看av | 亚洲精选久久 | 一区二区av | 国产福利资源在线 | 天天综合久久 | 日韩午夜在线播放 | 91精品国产欧美一区二区成人 | 成人精品久久 | www.精品国产| 亚洲一区二区视频在线播放 | 日韩精品在线观看免费 | 中文久久 | a级片播放 | 日韩最新网站 | 国产成人黄色 | 国产一区二区在线播放视频 | 久久久久一区 | 久久99国产精品 | 国产在线精品一区二区 | 久久视频精品在线 | 人人爽人人草 | 亚洲国产成人av好男人在线观看 | 黄色毛片黄色毛片 | 一级毛片高清 | 久久网日本| 九久久| 久久精品欧美视频 | 欧美国产日韩精品 | 欧美视频成人 | 国产精品久久久久久久久动漫 | 国内精品久久精品 | 日韩综合网 | 国产精品久久久久久吹潮 | 亚洲在线一区二区 | 精品视频国产 | 久草热在线 | 欧美一区二区三区久久精品 | 国产精品中文字幕在线 | 一区视频在线 | 国产精品美女www |