• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 測試測量 > 設計應用 > 基于DS18B20與TMS320LF2407A的測溫系統

    基于DS18B20與TMS320LF2407A的測溫系統

    作者: 時間:2010-02-26 來源:網絡 收藏

    /* 從傳感器中讀一個字節 */
    void read_byte(unchar *ReadByte)
    {
    int i;
    unchar temp=0;
    unint loopindex=0;
    PIN_HIGH();
    for(i=0;i8;i++)
    {
    temp=temp>>1;
    PIN_LOW();
    nop();nop();nop();nop(); /*延時2us */
    nop();nop();nop();nop();
    PIN_HIGH();
    for(loopindex=0;loopindex6;loopindex++){;} /* 延時14us */
    PIN_LEAVE();
    nop();
    if((DATA_PORT DATA_BIT) == 0x0000)
    { temp=temp 0x7F; }
    else
    { temp=temp | 0x80; }
    PIN_HIGH();
    for(loopindex=0;loopindex26;loopindex++){;} /* 延時60us */
    }
    *ReadByte=temp;
    return;
    }
    /* 將讀得的溫度轉化為十進制 */
    float transform(unchar *T)
    {
    unchar temp=0;
    float temprature=0;
    temp=temp|(*(T+1)8);
    temp=temp|*T;
    if((temp0x0F800)==0x0F800)
    { temprature=0-((~temp)+1)*0.0625; }
    else
    { temprature=temp*0.0625; }
    return(temprature);
    }
    /* 讀取溫度主函數,返回十進制溫度數 */
    float read_temp()
    {
    Unchar buff[2];
    float temprature=0;
    unint loopindex=0;
    while (reset()==1){}; /* 復位等待從機應答 */
    write_byte(0xCC); /* 忽略ROM匹配 */
    write_byte(0x44); /* 發送溫度轉化命令 */
    for(loopindex=0;loopindex65535;loopindex++){;} /* 延時300ms,等待數模轉換 */
    for(loopindex=0;loopindex65535;loopindex++){;}
    while(reset()==1){}; /* 再次復位,等待從機應答 */
    write_byte(0xCC); /* 忽略ROM匹配 */
    write_byte(0xBE); /* 發送讀溫度命令 */
    read_byte(buff); /* 讀出溫度低8位 */
    read_byte(buff+1); /* 讀出溫度高8位 */
    temprature=transform(buff);
    PIN_HIGH(); /* 釋放總線 */
    return(temprature);
    }

    本文引用地址:http://www.czjhyjcfj.com/article/195524.htm

      4 結束語

      DS20是一款非常優秀的單總線數字式傳感器。硬件設計簡單,運行可靠。通過分析C語言編譯后的匯編語言可以很明確的計算出軟件延時的時間,從而滿足單線總線通訊的時序要求,從而可以出色的完成DSP與DS20通訊的軟件設計。

      5 本文創新點有兩個:

      1、通過C編譯器編譯出來的相應的C語言的延時程序,從而得到其對應的匯編語言,再通過定時器計時,能夠知道單指令周期的時間,從而能夠精確的計算出軟件延時程序的延時時間。

      2、通常DS20都是與單片機配合使用的,而本文則詳細的介紹了DS18與DSP的結合使用方法,其區別主要是在端口的操作上和延時的控制上。


    上一頁 1 2 3 下一頁

    關鍵詞: 2407A 2407 18B B20

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 佳木斯市| 哈巴河县| 桑植县| 巴马| 资溪县| 大化| 宜州市| 水城县| 岗巴县| 清河县| 浮梁县| 桐庐县| 全州县| 汤阴县| 蒙自县| 洛浦县| 石柱| 北安市| 邛崃市| 正定县| 林州市| 汤阴县| 昆明市| 富顺县| 红安县| 苍溪县| 新化县| 璧山县| 涪陵区| 上杭县| 东阳市| 新龙县| 耒阳市| 裕民县| 胶南市| 志丹县| 分宜县| 邵阳县| 岳普湖县| 梨树县| 林西县|