新聞中心

        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.104case.com/article/195524.htm

          4 結束語

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

          5 本文創新點有兩個:

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

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


        上一頁 1 2 3 下一頁

        關鍵詞: 2407A 2407 18B B20

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 三门峡市| 阿克苏市| 滁州市| 宽甸| 汽车| 邵武市| 项城市| 辉南县| 东方市| 石门县| 报价| 全南县| 宁南县| 定边县| 内乡县| 文登市| 石城县| 鹤峰县| 漳浦县| 巫溪县| 额济纳旗| 平度市| 西藏| 黄山市| 静宁县| 黄陵县| 日喀则市| 辽阳市| 彭山县| 桃园市| 清河县| 沁水县| 西藏| 桑植县| 四子王旗| 日土县| 隆化县| 巴里| 石景山区| 筠连县| 白玉县|