新聞中心

        18b20測(cè)溫c51源程序

        作者: 時(shí)間:2010-12-09 來(lái)源:網(wǎng)絡(luò) 收藏

        #include reg51.h>
        #includeintrins.h>

        本文引用地址:http://www.104case.com/article/173091.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();

        /***************延時(shí)程序,單位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 寫(xiě)字節(jié) */
        /****************************************************/
        void wr_ds18_1(char dat)
        {
        signed char idata i=0;
        unsigned char idata j;
        bit testb;


        上一頁(yè) 1 2 下一頁(yè)

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

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 大同市| 谷城县| 东城区| 化州市| 巩留县| 寿宁县| 平罗县| 仙居县| 凤庆县| 兴隆县| 黎川县| 岑溪市| 乌兰县| 平谷区| 响水县| 武义县| 大安市| 靖安县| 西华县| 樟树市| 抚远县| 盘锦市| 民乐县| 临夏县| 黔江区| 绥棱县| 清流县| 邢台县| 哈巴河县| 永仁县| 永安市| 贞丰县| 来安县| 宜兰市| 遂昌县| 遵义市| 华池县| 铁岭县| 高密市| 龙门县| 沙河市|