新聞中心

        18b20測溫源程序

        作者: 時間:2012-03-12 來源:網(wǎng)絡(luò) 收藏

        #include reg51.h>
        #includeintrins.h>

        本文引用地址:http://www.104case.com/article/171902.htm

        #define BUSY1 (DQ1==0)
        sbit DQ1 = P0^4;

        unsigned char idata TMP;
        unsigned char idata TMP_d;
        unsigned char f;
        void wr_ds18_1(char dat);
        unsigned char rd_ds18_1();

        /***************延時程序,單位us,大于10us*************/
        void time_delay(unsigned char time)
        {

        time=time-10;
        time=time/6;
        while(time!=0)time--;
        }


        /*****************************************************/
        /* reset ds */
        /*****************************************************/
        void ds_reset_1(void)
        {
        unsigned char idata count=0;
        DQ1=0;
        time_delay(240);
        time_delay(240);
        DQ1=1;
        return;
        }

        void check_pre_1(void)
        {
        while(DQ1);
        while(~DQ1);

        time_delay(30);
        }


        void read_ROM(void)
        {
        int n;
        ds_reset_1();
        check_pre_1();
        wr_ds18_1(0x33);
        for(n=0;n8;n++){ROM[n]=rd_ds18_1();}
        }


        /*****************************************************/
        /* Read a bit from 1820 位讀取 */
        /*****************************************************/
        bit tmrbit_1(void)
        {
        idata char i=0;
        bit dat;

        DQ1=0;_nop_();

        DQ1=1;

        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();


        dat = DQ1;

        time_delay(50);

        return dat;
        }


        /*****************************************************/
        /* read a bety from ds 字節(jié)讀取 */
        /*****************************************************/
        unsigned char rd_ds18_1()
        {
        unsigned char idata i,j,dat=0;
        for(i=1;i=8;i++)
        {
        j=tmrbit_1();
        dat=(j(i-1))|dat;
        }
        return dat;
        }


        /*****************************************************/
        /* write a bety from ds 寫字節(jié) */
        /****************************************************/
        void wr_ds18_1(char dat)
        {
        signed char idata i=0;
        unsigned char idata j;
        bit testb;


        上一頁 1 2 下一頁

        關(guān)鍵詞: 源程序 測溫 18b20

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 崇仁县| 多伦县| 习水县| 万山特区| 芒康县| 沭阳县| 英吉沙县| 五莲县| 边坝县| 额敏县| 河东区| 丹东市| 长乐市| 壤塘县| 两当县| 新和县| 兴隆县| 家居| 福海县| 泸西县| 屯门区| 丰都县| 雅江县| 开封县| 庆安县| 藁城市| 什邡市| 漳州市| 扶风县| 永修县| 霍城县| 青冈县| 冕宁县| 涿州市| 濮阳市| 六盘水市| 巨野县| 安康市| 伊宁县| 石楼县| 宜春市|