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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4980|回復: 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 取反才是真實值
   
}



回復

使用道具 舉報

ID:162134 發表于 2017-3-16 16:09 | 顯示全部樓層
學習一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩中文字幕在线观看 | 国产成人精品一区二区三区在线观看 | 亚洲不卡| 99视频免费在线观看 | 中文字幕av久久爽av | 久久在线免费视频 | 亚洲人成在线播放 | 免费激情网站 | 四虎www | 午夜在线视频观看日韩17c | 亚洲小视频在线观看 | 精品在线免费视频 | 欧美日韩中文 | av国产精品| 日韩性生活视频 | 国产午夜精品久久久 | 欧美自拍视频 | 一区二区不卡视频 | 日韩中文字幕 | 免费成人深夜夜国外 | 国精产品99永久一区一区 | 国产日韩亚洲 | www.黄色片 | 国产精品美女在线观看 | 激情综 | 日韩精品国产精品 | cao在线 | 天天躁日日躁狠狠躁av麻豆男男 | 黄色大片免费观看 | 一级片免费在线观看 | 精品少妇v888av | 999精品在线 | 久久精品久久久久久久 | 黄色一级视频 | 国产色在线| 成人免费福利视频 | 午夜在线视频观看 | 香港三日本三级少妇66 | 黄色片网站视频 | 精品国产乱码久久久久久影片 | 免费黄色一级视频 |