亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ds18b20.c

?? 溫度傳感器DS18B20的功能實(shí)現(xiàn)
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
****************************************************************************************************
* SSAC_A1
* Main Controller Board
* File name : DS18B20.c
* Use for   : Detect temperature
* Summary   : The C code for DS18B20

****************************************************************************************************
*/

#include  "DS18B20.h"
#include  "DS18B20_ports.h"

void Soft_Delay_us(int n)
{
  TACTL = TASSEL_2 + ID_2 + TAIE + TACLR + MC_2 ;           // SMCLK/8, contmode, interrupt enabled
  while(TAR < n) ;
   return;  
}

void    Soft_Delay_ms(int x){
  int i;
  for(i=0;i<x;i++)
    Soft_Delay_us(1000);
}
void    Soft_Delay_s(int x){
  int i;
  for(i=0;i<x;i++)
    Soft_Delay_ms(1000);
}
////////// Bit operation macro
#define Set_Bit(Address,Bit)    ((Address) |= (1 << Bit))
#define Clear_Bit(Address,Bit)  ((Address) &= ~(1 << Bit))
#define Test_Bit(Address,Bit)   ((Address) & (1 << Bit))
//--------------------------------------------------------------------------------------------------


//////////  Make a Master reset to DS18B20, and check the result 
            //  Input:
                    //  None
            //  Return: 
                    //  0: There is no DS18B20 or master reset operation false
                    //  1: There is and has be 1-Wire reset 
static unsigned char DS18B20_Master_Reset (void)
{
  unsigned char Value;
  
  Value = 0;
  
  DS18B20_Tx_Obtain ();   // Set to low for 720us to reset slave device
  Soft_Delay_us (480);    // 720us

  DS18B20_Tx_Release ();  // Release the 1-Wire Bus
    
  Soft_Delay_us (70);     // 68us. Check the reset result, slave will set the 1-Wire Bus to low
  P6DIR &= ~BIT3;
  Value = DS18B20_Rx ();
    
  Soft_Delay_us (410);    // 480us. Wait for cycle end
  
  if (Value) return 0;
  
  return 1;
}
//--------------------------------------------------------------------------------------------------

//////////  Write bit to DS18B20 
            //  Input:
                    //  Value: bit value will be writed
            //  Return: 
                    //  None
static void DS18B20_Write_Bit (unsigned char Value)
{
  
  if (Value == 0)  // Master Write "0" SLOT
  {
    DS18B20_Tx_Obtain ();
    Soft_Delay_us (65);   //  70us

    DS18B20_Tx_Release ();
    
    Soft_Delay_us (10);   //  No this line
  }  
  else            // Master Write "1" SLOT
  { 
    DS18B20_Tx_Obtain ();
    Soft_Delay_us (10);    //  7us
    
    DS18B20_Tx_Release ();
    
    Soft_Delay_us (65);   //  63us
  }
  
  //Soft_Delay_us (10);     // Wait for 1-wire restore
}
//--------------------------------------------------------------------------------------------------

//////////  Read bit from DS18B20 
            //  Input:
                    //  None
            //  Return: 
                    //  The bit value that has be read out
static unsigned char DS18B20_Read_Bit (void)
{
  unsigned char Value;
  
  DS18B20_Tx_Obtain ();   // Start a read time slot
  Soft_Delay_us (5);
  
  DS18B20_Tx_Release ();  // Release and sample 1-Wire Bus
  Soft_Delay_us (5);   // 13us
   P6DIR &= ~BIT3;
  Value = P6IN & BIT3;  // Wait for read cycle end
  Soft_Delay_us (55);   // 52us
  
  //Soft_Delay_us (10);     // Wait for 1-wire restore
  
  if ( !Value ) return 0;
  
  return 1;
}
//--------------------------------------------------------------------------------------------------

//////////  Write byte to DS18B20 
            //  Input:
                    //  The byte will be writed
            //  Return: 
                    //  None
static void DS18B20_Write_Byte (unsigned char Value)
{
  unsigned char i;
  for (i = 0; i < 8; i++)
  {
    DS18B20_Write_Bit ( Test_Bit (Value, i) );
  }
}
//--------------------------------------------------------------------------------------------------

//////////  Read byte from DS18B20 
            //  Input:
                    //  
            //  Return: 
                    //  The byte that has be read out
static unsigned char DS18B20_Read_Byte (void)
{
  unsigned char i;
  unsigned char Value;
  Value = 0;
  for (i = 0; i < 8; i++)
  {
    if ( DS18B20_Read_Bit () ) Set_Bit (Value, i);
  }
  
  return Value;
}
//--------------------------------------------------------------------------------------------------

//////////  Multi Write byte to DS18B20 
            //  Input:
                    //  * Value: The source data
                    //  Number: number of the data
            //  Return: 
                    //  None
static void DS18B20_Multi_Write_Byte (unsigned char * Value, unsigned char Number)
{
  unsigned char i;
  
  if (Number == 0) return;
  
  for (i = 0; i < Number; i++)
  {
    DS18B20_Write_Byte ( * (Value + i) );
  }
}
//--------------------------------------------------------------------------------------------------

//////////  Multi Read byte from DS18B20 
            //  Input:
                    //  * Value: The source data
                    //  Number: number of the data
            //  Return: 
                    //  None
static void DS18B20_Multi_Read_Byte (unsigned char * Value, unsigned char Number)
{
  unsigned char i;
  
  if (Number == 0) return;
  
  for (i = 0; i < Number; i++)
  {
    * (Value + i) = DS18B20_Read_Byte ();
  }
  
}
//--------------------------------------------------------------------------------------------------




//////////  8-bit CRC check, X8+X5+X4+1, to check the data get from DS18B20 
            //  Input:
                    // Crc_Org: Oringal crc value
                    // * Value: the data need do a crc check
                    // Length: The length of data 
            //  Return: 
                    //  Return = crc result
static unsigned char DS18B20_Crc_Check (unsigned char Crc_Org, unsigned char * Value, unsigned char Length)
{
  unsigned char i;
  
  while (Length--)
  {
    for (i = 0x01; i != 0; i <<= 1)
    {
      if ( (Crc_Org & 0x01) != 0)  // LSB of crcorg
      {
        Crc_Org >>= 1;
        Crc_Org ^= 0x8C;
      }
      else
      {
        Crc_Org >>= 1;
      }
      
      if ( ((* Value) & i) != 0)
      {
        Crc_Org ^= 0x8C;
      }      
    }
  Value ++;  
  }
  return Crc_Org;
}
//--------------------------------------------------------------------------------------------------

//////////  Laser ROM check 
            //  Input:
                    // * UID: Laser rom data to check
            //  Return: 
                    //  0: Opt. false
                    //  1: Opt. OK
static unsigned char DS18B20_UID_Check (unsigned char * UID)
{
   
  if ( * (UID + 0) != 0x28 ) return 0;    // DS18B20's family code is 0x28. To avoid always 0 error
  
  if ( DS18B20_Crc_Check (0x00, UID, 7) != * (UID + 7) ) return 0;  // CRC check error;
  
  return 1;
}
//--------------------------------------------------------------------------------------------------

//////////  Scratchpad check 
            //  Input:
                    // * SCT: scratchpad
            //  Return: 
                    //  0: Opt. false
                    //  1: Opt. OK
static unsigned char DS18B20_SCT_Check (unsigned char * SCT)
{
     
  if ( ((* (SCT + 4)) & 0x9F) != 0x1F) return 0;    // To avoid always 0 error
  
  if ( (DS18B20_Crc_Check (0x00, SCT, 8)) != (* (SCT + 8)) ) return 0;   // Crc check error
  
  return 1;
}
//--------------------------------------------------------------------------------------------------

//////////  Temperature format transfer 
            //  Input:
                    //  
                        // * sct: The data need to transfer. 8 bytes
                        // * result: 3 bytes, is insignificant byte, integer byte, low bytes
            //  Return: 
                    //  None
static void DS18B20_Temperature_Format_Transfer (unsigned char * sct, unsigned char * result)
{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看中文网站| 亚洲激情综合网| 中文字幕永久在线不卡| 亚洲图片一区二区| 韩国av一区二区三区| 99re这里只有精品视频首页| 欧美美女黄视频| 欧美激情在线一区二区| 亚洲成人精品影院| 国产精品自在欧美一区| 在线中文字幕一区| 亚洲精品一区二区三区99| 亚洲欧美在线观看| 日本不卡在线视频| 成av人片一区二区| 欧美人妇做爰xxxⅹ性高电影| 精品成人一区二区| 一区二区三区美女| 国产精品一区2区| 欧美精品乱码久久久久久按摩| 日本一区二区三区电影| 日韩国产精品久久久| 成人一区二区三区视频在线观看| 欧美区视频在线观看| 日本一区二区三区dvd视频在线| 午夜精品久久久久久久| 风间由美中文字幕在线看视频国产欧美| 色欧美乱欧美15图片| 久久午夜老司机| 亚洲成av人片在www色猫咪| 成人小视频在线观看| 日韩欧美国产综合一区 | 国产乱子轮精品视频| 欧美午夜不卡视频| 日本一区免费视频| 成人精品小蝌蚪| 精品久久五月天| 午夜av区久久| 91久久人澡人人添人人爽欧美| 久久精品一级爱片| 麻豆成人91精品二区三区| 在线免费观看日本一区| 日本一区二区电影| 国产一区二区三区电影在线观看| 91精品欧美福利在线观看| 亚洲综合偷拍欧美一区色| 成年人网站91| 国产精品蜜臀av| 国产成人日日夜夜| 久久亚洲二区三区| 激情六月婷婷久久| 日韩视频一区二区三区在线播放 | 欧美性大战xxxxx久久久| 日韩一区在线免费观看| 国产做a爰片久久毛片| 日韩一级免费观看| 日韩精品色哟哟| 欧美高清视频一二三区 | 777xxx欧美| 午夜精品福利一区二区蜜股av| 色妹子一区二区| 亚洲三级视频在线观看| 不卡av在线免费观看| 国产精品视频你懂的| 成人精品gif动图一区| 欧美国产97人人爽人人喊| 国产老肥熟一区二区三区| 精品国产乱码久久久久久老虎| 精品一区二区三区在线播放| 日韩三级伦理片妻子的秘密按摩| 日精品一区二区| 日韩一区二区免费在线电影| 奇米色一区二区| 欧美大片免费久久精品三p| 麻豆久久久久久| 精品福利一区二区三区免费视频| 精品亚洲欧美一区| 久久这里只有精品视频网| 国产精品香蕉一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 国产精品精品国产色婷婷| 高清国产一区二区| 亚洲欧洲色图综合| 色婷婷久久久综合中文字幕 | 欧美日韩一级二级| 日韩国产精品久久久| 精品久久久久久久人人人人传媒 | 国产午夜一区二区三区| 成人精品一区二区三区四区| 亚洲色欲色欲www| 欧美色倩网站大全免费| 日本不卡一区二区三区高清视频| 日韩欧美高清一区| 国产a精品视频| 久久精品av麻豆的观看方式| 精品国产免费久久| 成人永久免费视频| 亚洲成a人v欧美综合天堂下载| 91精品欧美福利在线观看| 国产精品99久久久久| 亚洲精品视频在线看| 91精品国产高清一区二区三区蜜臀| 美女网站色91| 中文字幕一区二区三区av| 欧美亚洲国产bt| 久久精品国产99| 日韩毛片在线免费观看| 3751色影院一区二区三区| 国产高清精品久久久久| 亚洲精品乱码久久久久| 日韩欧美综合一区| jvid福利写真一区二区三区| 丝袜美腿亚洲一区二区图片| 国产日韩三级在线| 欧美婷婷六月丁香综合色| 国产酒店精品激情| 亚洲一级在线观看| 久久噜噜亚洲综合| 欧洲精品在线观看| 国产一区二区三区在线观看免费视频| 亚洲欧美日韩久久| 精品国产伦一区二区三区免费| 色综合久久久久网| 国产美女在线精品| 天堂一区二区在线免费观看| 日本一区二区三区在线不卡| 在线不卡a资源高清| 972aa.com艺术欧美| 韩国中文字幕2020精品| 亚洲自拍偷拍九九九| 国产欧美日韩精品在线| 3751色影院一区二区三区| eeuss鲁片一区二区三区在线看| 免费成人你懂的| 亚洲激情第一区| 国产嫩草影院久久久久| 欧美一区二区免费| 91久久精品国产91性色tv| 国产精品一区久久久久| 三级影片在线观看欧美日韩一区二区| 国产精品久久久久aaaa樱花| 精品欧美一区二区在线观看 | 免费欧美日韩国产三级电影| 亚洲图片另类小说| 国产欧美日韩一区二区三区在线观看| 欧美精品欧美精品系列| 一本到不卡免费一区二区| 国产99精品国产| 久久成人精品无人区| 亚洲va欧美va天堂v国产综合| 国产精品久久久爽爽爽麻豆色哟哟 | 国产欧美日韩久久| 欧美va亚洲va香蕉在线| 69堂成人精品免费视频| 在线精品观看国产| 色老汉一区二区三区| 大美女一区二区三区| 韩国在线一区二区| 毛片av一区二区三区| 五月综合激情日本mⅴ| 亚洲最大色网站| 亚洲男同性视频| 亚洲欧美一区二区视频| 国产精品久久久久久久久免费桃花 | 亚洲一区av在线| 亚洲乱码国产乱码精品精的特点| 国产欧美精品国产国产专区| 久久久久高清精品| 2020国产成人综合网| 日韩视频免费观看高清完整版在线观看 | 无码av免费一区二区三区试看| 一区二区三区中文字幕在线观看| 国产精品国产精品国产专区不片| 欧美激情一区在线观看| 欧美激情一二三区| 国产精品久久久久久久久快鸭| 中文字幕高清不卡| 亚洲欧洲精品天堂一级| 国产精品福利影院| 日韩美女视频一区二区| 亚洲欧美电影院| 夜夜嗨av一区二区三区网页| 亚洲免费色视频| 亚洲一区二区三区国产| 偷拍一区二区三区| 午夜激情综合网| 久久精品99久久久| 国产成人在线观看免费网站| 成人福利电影精品一区二区在线观看| 成人性生交大片免费看视频在线 | 亚洲丝袜制服诱惑| 亚洲欧美激情小说另类| 亚洲午夜av在线| 免费国产亚洲视频| 激情综合五月天| 国产suv一区二区三区88区| 97se亚洲国产综合自在线观| 91黄色激情网站| 91精品国产综合久久婷婷香蕉 | 国产成人午夜99999|