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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 18b20測溫源程序

    18b20測溫源程序

    作者: 時間:2012-03-12 來源:網絡 收藏

    #include reg51.h>
    #includeintrins.h>

    本文引用地址:http://www.czjhyjcfj.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 字節讀取 */
    /*****************************************************/
    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 寫字節 */
    /****************************************************/
    void wr_ds18_1(char dat)
    {
    signed char idata i=0;
    unsigned char idata j;
    bit testb;


    上一頁 1 2 下一頁

    關鍵詞: 源程序 測溫 18b20

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 梁山县| 顺昌县| 绥中县| 大丰市| 江都市| 读书| 息烽县| 鹤岗市| 建始县| 和平区| 庆元县| 齐河县| 镇康县| 长沙县| 荃湾区| 平舆县| 乡城县| 将乐县| 阜城县| 平凉市| 咸丰县| 疏勒县| 东海县| 桓仁| 凉山| 万全县| 洪洞县| 滦平县| 陕西省| 宿迁市| 策勒县| 义乌市| 上饶市| 调兵山市| 宜君县| 蒙阴县| 攀枝花市| 洛南县| 虹口区| 新乡市| 柞水县|